From 16a4c2ded3478d38ffe145dbe5379681a25e4a99 Mon Sep 17 00:00:00 2001
From: Ajay Gopinath <ajgopi124@gmail.com>
Date: Sun, 15 Jul 2012 03:37:46 -0400
Subject: [PATCH] Fixed issue of zooming without TextToolbar. Fixed flicker
 with TextToolbar when changing values.

---
 .gitignore                                    |  2 +
 .../modules/present/ui/views/SlideView.mxml   | 14 ----
 .../whiteboard/events/HideTextToolbarEvent.as |  2 +-
 .../modules/whiteboard/views/PopUpCombo.as    | 10 +--
 .../views/WhiteboardTextToolbar.mxml          | 65 ++++++-------------
 5 files changed, 29 insertions(+), 64 deletions(-)

diff --git a/.gitignore b/.gitignore
index 30680f958a..34ac87e885 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,5 @@ record-and-playback/playback-web/playback-web-0.1.war
 bigbluebutton-client/.actionScriptProperties
 bigbluebutton-client/.flexProperties
 push_to_git.py
+a.txt
+
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/SlideView.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/SlideView.mxml
index f08bee139a..fa3a5b3f80 100755
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/SlideView.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/present/ui/views/SlideView.mxml
@@ -200,16 +200,12 @@
 			 */			
 			private function fitSlideToLoader():void {
 				if (noSlideContentLoaded()) return;
-				LogUtil.debug("STEP 8.25");
 				slideLoader.content.x = slideLoader.x;
 				slideLoader.content.y = slideLoader.y;
 				slideLoader.content.width = slideLoader.width;
 				slideLoader.content.height = slideLoader.height;
-				LogUtil.debug("STEP 8.5");
 				moveCanvas(slideLoader.x, slideLoader.y);
-				LogUtil.debug("STEP 8.75");
 				zoomCanvas(slideLoader.width, slideLoader.height);
-				LogUtil.debug("STEP 9");
 			}
 												
 			/**
@@ -241,34 +237,24 @@
 				} else if (zoomPercentage >= SlideViewModel.MAX_ZOOM_PERCENT) {
 					zoomPercentage = SlideViewModel.MAX_ZOOM_PERCENT
 				}
-				LogUtil.debug("STEP 5");
 				slideModel.onZoom(zoomPercentage, mouseX, mouseY);
-				LogUtil.debug("STEP 6");
 				slideModel.printViewedRegion();
-				LogUtil.debug("STEP 7");
 				slideModel.displayPresenterView();
-				LogUtil.debug("STEP 8");
 				LogUtil.debug(slideLoader.x + ": x");
 				LogUtil.debug(slideLoader.y + ": y");
 				LogUtil.debug(slideLoader.width + ": width");
 				LogUtil.debug(slideLoader.height + ": height");
 				fitSlideToLoader();	
-				LogUtil.debug("STEP 9");
 				notifyOthersOfZoomEvent();	
-				LogUtil.debug("STEP 12");
 			}
 									
 			private function notifyOthersOfZoomEvent():void {
-				//LogUtil.debug("notifying others of zoom event");
 				var presentEvent:PresenterCommands = new PresenterCommands(PresenterCommands.ZOOM);
 				presentEvent.xOffset = slideModel.viewedRegionX;
 				presentEvent.yOffset = slideModel.viewedRegionY;
 				presentEvent.slideToCanvasWidthRatio = slideModel.viewedRegionW;
 				presentEvent.slideToCanvasHeightRatio = slideModel.viewedRegionH;
-				LogUtil.debug("STEP 10");
 				dispatchEvent(presentEvent);
-				LogUtil.debug("STEP 11");
-				//LogUtil.debug("notifying others of zoom event22222222");
 			}
 			
 			private function presenterIsZoomingOut(delta:Number):Boolean {
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/events/HideTextToolbarEvent.as b/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/events/HideTextToolbarEvent.as
index 402d2a9bde..c73aa4427e 100644
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/events/HideTextToolbarEvent.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/events/HideTextToolbarEvent.as
@@ -28,7 +28,7 @@ package org.bigbluebutton.modules.whiteboard.events
 		
 		public function HideTextToolbarEvent(type:String)
 		{
-			super(type);
+			super(type, true, false);
 		}
 	}
 }
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/PopUpCombo.as b/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/PopUpCombo.as
index a53e11cd71..afba142c67 100644
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/PopUpCombo.as
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/PopUpCombo.as
@@ -20,7 +20,7 @@ package org.bigbluebutton.modules.whiteboard.views
 	
 	public class PopUpCombo extends PopUpButton
 	{
-		protected var _isOpen:Boolean = false;
+		public var isOpen:Boolean = false;
 		protected var _inTween:Boolean = false;
 		protected var _tween:Tween;
 		
@@ -64,7 +64,7 @@ package org.bigbluebutton.modules.whiteboard.views
 		
 		public function displayPopUp():void
 		{
-			var show:Boolean = !_isOpen;
+			var show:Boolean = !isOpen;
 			
 			var popUpGap:Number = getStyle("popUpGap");
 			var point:Point = new Point(0, unscaledHeight + popUpGap);
@@ -109,13 +109,13 @@ package org.bigbluebutton.modules.whiteboard.views
 					popUp.visible = true;
 				
 				endY = 0;
-				_isOpen = show;
+				isOpen = show;
 				duration = getStyle("openDuration");
 				easingFunction = getStyle("openEasingFunction") as Function;				
 			}
 			else
 			{
-				_isOpen = show;
+				isOpen = show;
 				
 				if (popUp.parent == null)
 					return;
@@ -173,7 +173,7 @@ package org.bigbluebutton.modules.whiteboard.views
 			_inTween = false;
 			UIComponent.resumeBackgroundProcessing();
 			
-			if (!_isOpen)
+			if (!isOpen)
 			{
 				popUp.visible = false;
 				popUp.scrollRect = null;
diff --git a/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/WhiteboardTextToolbar.mxml b/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/WhiteboardTextToolbar.mxml
index 463c0833fc..d361311c1a 100644
--- a/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/WhiteboardTextToolbar.mxml
+++ b/bigbluebutton-client/src/org/bigbluebutton/modules/whiteboard/views/WhiteboardTextToolbar.mxml
@@ -84,7 +84,7 @@
 			[Bindable] private var toggle_text_background_icon:Class = images.toggle_text_background_icon;
 			private var currentlySelectedTextObject:TextObject = null;	
 			private var presentationWindow:PresentationWindow;
-			private var normalAlpha:Number = 0.6;
+			private var normalAlpha:Number = 0.55;
 			private var focusedAlpha:Number = 1.0;
 			
 			public function init():void {
@@ -92,31 +92,26 @@
 				this.visible = true;
 				this.addEventListener(MouseEvent.ROLL_OVER, makeFocused);
 				this.addEventListener(MouseEvent.ROLL_OUT, makeDim);
-				this.textColor = ctextpik.selectedColor = 0x000000;
+				
+				
+				/* WARNING: enabling the following code caused some nasty issues with  the whiteboard
+					It is kept here for reference
+				*/
+				/*this.textColor = ctextpik.selectedColor = 0x000000;
 				this.bgColor = cbackpik.selectedColor = 0x000000;
 				this.backgroundVisible = btnToggleBackground.selected = false;
 				this.textSizeMenu.label = "14";
-				this.textSize = Number(textSizeMenu.label);
+				this.textSize = Number(textSizeMenu.label);*/
 			}
 			
-			/* adjusts the alpha of the TextToolbar for aesthetics and to show that
-				it is not currently the 'focus' of the screen
-			*/
 			public function makeDim(event:MouseEvent):void {
 					this.alpha = normalAlpha;
 			}
 			
-			/* adjusts the alpha of the TextToolbar for aesthetics and to show that
-				it is currently the 'focus' of the screen
-			*/
 			public function makeFocused(event:MouseEvent):void {
 					this.alpha = focusedAlpha;
 			}
 			
-			/* used to indicate the various font size options
-				that are availible to the presenter. more can be
-				added if desired.
-			*/
 			private function initTextSizeMenu(): void {
 				var m:Menu = new Menu();
 				m.variableRowHeight = true;
@@ -141,7 +136,6 @@
 				textSizeMenu.displayPopUp();
 				var newTextSize:Number = Number(event.label);    
 				setTextSize(newTextSize);
-				//textSizeMenu.close();
 			}
 			
 			/**
@@ -205,13 +199,9 @@
 				this.visible = false;
 			}
 			
-			private function closeToolbar(e:StopWhiteboardModuleEvent):void{
-				parent.removeChild(this);
-			}
-			
 			private function handleHideTextToolbarEvent(e:HideTextToolbarEvent):void{
 				LogUtil.debug("hiding toolbar by hidetexttoolbarevent");
-				disableTextToolbar();
+				this.disableTextToolbar();
 			}
 			
 			public function syncPropsWith(tobj:TextObject):void{
@@ -246,36 +236,35 @@
 			public function repositionToolbar(tobj:TextObject = null):void {
 				// translate TextObject's coords to stage coords because TextToolbar is added to stage
 				if(tobj == null)  tobj = currentlySelectedTextObject;
-				if(textSizeMenu.isPopUp)
+				if(textSizeMenu.isOpen) {
+					LogUtil.debug("Text size menu is open...trying to close");
 					textSizeMenu.close();
+				}
 				var loc:Point = canvas.localToGlobal(new Point(tobj.x, tobj.y));
 				this.x = loc.x;
 				this.y = loc.y - this.height - 45;
 				parent.setChildIndex(this, parent.numChildren-1);
 			}
 			
-			/* called when a GraphicObject, specifically, a TextObject, is selected. Repositions the toolbar to the 
-				location of the new TextObject for convenience, and syncs the toolbar's properties with the 
-				selected text's properties
-			*/
+			private function closeToolbar(e:StopWhiteboardModuleEvent):void{
+				parent.removeChild(this);
+			}
+			
 			private function handleObjSelected(event:GraphicObjectFocusEvent):void  {
 				if(event.data.getGraphicType() != WhiteboardConstants.TYPE_TEXT) return;
 				var tobj:TextObject = event.data as TextObject;
 				repositionToolbar(tobj);
 				syncPropsWith(tobj);
-				enableTextToolbar();
-				if(textSizeMenu.isPopUp)
-					textSizeMenu.close();
+				/*if(!this.visible)
+					enableTextToolbar();
+				if(!this.enabled)
+					this.enabled = true;*/
 				LogUtil.debug("!!!!SELECTED:" + " " + tobj.getProperties());
 			}
 
-			/* called when a GraphicObject, specifically, a TextObject, is deselected. No current
-				use now, but may be added later.
-			*/
 			private function handleObjDeselected(event:GraphicObjectFocusEvent):void  {
 				if(event.data.getGraphicType() != WhiteboardConstants.TYPE_TEXT) return;
 				var tobj:TextObject = event.data as TextObject;
-				syncPropsWith(null);
 				disableTextToolbar();
 				textSizeMenu.close();
 				LogUtil.debug("!!!!DESELECTED:" + " " + tobj.getProperties());
@@ -283,6 +272,7 @@
 
 			// repositions the toolbar when canvas is zoomed
 			public function adjustForZoom(x:Number, y:Number):void {
+				if(currentlySelectedTextObject == null) return;
 				repositionToolbar(currentlySelectedTextObject);
 			}
 		]]>
@@ -299,19 +289,6 @@
 	
 	<mx:ColorPicker width="20" height="20" change="changeTextBackgroundColor(event)" id="cbackpik"  selectedColor="0x000000" 
 					toolTip="{ResourceUtil.getInstance().getString('ltbcustom.bbb.highlighter.texttoolbar.backColorPicker')}"/>
-
-	<!--<mx:ComboBox id="textSizeMenu" change="setTextSize(event)" width="25"
-				 toolTip="{ResourceUtil.getInstance().getString('ltbcustom.bbb.highlighter.texttoolbar.textSizeMenu')}"> 
-		<mx:ArrayCollection>
-			<mx:Object label="12" data="12"/>
-			<mx:Object label="14" data="14"/>
-			<mx:Object label="16" data="16"/>
-			<mx:Object label="18" data="18"/>
-			<mx:Object label="22" data="22"/>
-			<mx:Object label="24" data="24"/>
-			<mx:Object label="32" data="32"/>
-		</mx:ArrayCollection>
-	</mx:ComboBox>-->
 	
 	<views:PopUpCombo id="textSizeMenu" creationComplete="initTextSizeMenu()" 
 					  toolTip="{ResourceUtil.getInstance().getString('ltbcustom.bbb.highlighter.texttoolbar.textSizeMenu')}" 
-- 
GitLab