stop sending redundant slide pos updates
This commit is contained in:
parent
e7a2e3d70b
commit
e1a50bed32
@ -178,11 +178,13 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
var deltaCanvasMouseY:Number = this.mouseY - prevMouseY;
|
var deltaCanvasMouseY:Number = this.mouseY - prevMouseY;
|
||||||
prevMouseX = this.mouseX;
|
prevMouseX = this.mouseX;
|
||||||
prevMouseY = this.mouseY;
|
prevMouseY = this.mouseY;
|
||||||
slideModel.onMove(deltaCanvasMouseX, deltaCanvasMouseY);
|
var xyChange:Boolean = slideModel.onMove(deltaCanvasMouseX, deltaCanvasMouseY);
|
||||||
slideModel.printViewedRegion();
|
if (xyChange) {
|
||||||
slideModel.displayPresenterView();
|
slideModel.printViewedRegion();
|
||||||
fitSlideToLoader();
|
slideModel.displayPresenterView();
|
||||||
notifyOthersOfZoomEvent();
|
fitSlideToLoader();
|
||||||
|
notifyOthersOfZoomEvent();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -232,12 +234,13 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
* Triggered when the presenter uses the mouse wheel to zoom in/out of the slide.
|
* Triggered when the presenter uses the mouse wheel to zoom in/out of the slide.
|
||||||
*/
|
*/
|
||||||
private function onMouseWheelZoomEvent(e:MouseEvent):void {
|
private function onMouseWheelZoomEvent(e:MouseEvent):void {
|
||||||
|
var newZoomPercentage:Number = zoomPercentage;
|
||||||
if (presenterIsZoomingOut(e.delta)) {
|
if (presenterIsZoomingOut(e.delta)) {
|
||||||
zoomPercentage -= ZOOM_STEP;
|
newZoomPercentage -= ZOOM_STEP;
|
||||||
} else {
|
} else {
|
||||||
zoomPercentage += ZOOM_STEP;
|
newZoomPercentage += ZOOM_STEP;
|
||||||
}
|
}
|
||||||
zoomSlide(zoomPercentage, this.mouseX, this.mouseY);
|
zoomSlide(newZoomPercentage, this.mouseX, this.mouseY);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function switchToFitToPage(ftp:Boolean):void {
|
public function switchToFitToPage(ftp:Boolean):void {
|
||||||
@ -251,17 +254,21 @@ with BigBlueButton; if not, see <http://www.gnu.org/licenses/>.
|
|||||||
}
|
}
|
||||||
|
|
||||||
private function zoomSlide(zoom:Number, mouseX:Number, mouseY:Number):void {
|
private function zoomSlide(zoom:Number, mouseX:Number, mouseY:Number):void {
|
||||||
zoomPercentage = zoom;
|
if (zoom <= SlideViewModel.HUNDRED_PERCENT) {
|
||||||
if (zoomPercentage <= SlideViewModel.HUNDRED_PERCENT) {
|
zoom = SlideViewModel.HUNDRED_PERCENT;
|
||||||
zoomPercentage = SlideViewModel.HUNDRED_PERCENT;
|
} else if (zoom >= SlideViewModel.MAX_ZOOM_PERCENT) {
|
||||||
} else if (zoomPercentage >= SlideViewModel.MAX_ZOOM_PERCENT) {
|
zoom = SlideViewModel.MAX_ZOOM_PERCENT
|
||||||
zoomPercentage = SlideViewModel.MAX_ZOOM_PERCENT
|
}
|
||||||
|
|
||||||
|
if (zoom != zoomPercentage) {
|
||||||
|
zoomPercentage = zoom;
|
||||||
|
|
||||||
|
slideModel.onZoom(zoomPercentage, mouseX, mouseY);
|
||||||
|
slideModel.printViewedRegion();
|
||||||
|
slideModel.displayPresenterView();
|
||||||
|
fitSlideToLoader();
|
||||||
|
notifyOthersOfZoomEvent();
|
||||||
}
|
}
|
||||||
slideModel.onZoom(zoomPercentage, mouseX, mouseY);
|
|
||||||
slideModel.printViewedRegion();
|
|
||||||
slideModel.displayPresenterView();
|
|
||||||
fitSlideToLoader();
|
|
||||||
notifyOthersOfZoomEvent();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function notifyOthersOfZoomEvent():void {
|
private function notifyOthersOfZoomEvent():void {
|
||||||
|
20
bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/models/SlideViewModel.as
Normal file → Executable file
20
bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/models/SlideViewModel.as
Normal file → Executable file
@ -150,7 +150,7 @@ package org.bigbluebutton.modules.present.ui.views.models
|
|||||||
_calcPageW = (viewportW/_viewedRegionW) * HUNDRED_PERCENT;
|
_calcPageW = (viewportW/_viewedRegionW) * HUNDRED_PERCENT;
|
||||||
_calcPageH = (_pageOrigH/_pageOrigW) * _calcPageW;
|
_calcPageH = (_pageOrigH/_pageOrigW) * _calcPageW;
|
||||||
calcViewedRegion();
|
calcViewedRegion();
|
||||||
onResizeMove();
|
doBoundsValidation();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,17 +186,27 @@ package org.bigbluebutton.modules.present.ui.views.models
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function onResizeMove():void {
|
private function doBoundsValidation():void {
|
||||||
doWidthBoundsDetection();
|
doWidthBoundsDetection();
|
||||||
doHeightBoundsDetection();
|
doHeightBoundsDetection();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function onMove(deltaX:Number, deltaY:Number):void {
|
/** Returns whether or not the page actually moved */
|
||||||
|
public function onMove(deltaX:Number, deltaY:Number):Boolean {
|
||||||
|
var oldX:Number = _calcPageX;
|
||||||
|
var oldY:Number = _calcPageY;
|
||||||
|
|
||||||
_calcPageX += deltaX / MYSTERY_NUM;
|
_calcPageX += deltaX / MYSTERY_NUM;
|
||||||
_calcPageY += deltaY / MYSTERY_NUM;
|
_calcPageY += deltaY / MYSTERY_NUM;
|
||||||
|
|
||||||
onResizeMove();
|
doBoundsValidation();
|
||||||
calcViewedRegion();
|
|
||||||
|
if (oldX != _calcPageX || oldY != _calcPageY) {
|
||||||
|
calcViewedRegion();
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function calculateViewportSize():void {
|
public function calculateViewportSize():void {
|
||||||
|
Loading…
Reference in New Issue
Block a user