[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32134] trunk/blender/intern/ghost/intern: OSX/Cocoa : discard Cocoa GL view flush while in live resize, and send Window size change ghost message only when user releases mouse button (not in live resize).

Damien Plisson damien.plisson at yahoo.fr
Sun Sep 26 21:53:45 CEST 2010


Revision: 32134
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32134
Author:   damien78
Date:     2010-09-26 21:53:45 +0200 (Sun, 26 Sep 2010)

Log Message:
-----------
OSX/Cocoa : discard Cocoa GL view flush while in live resize, and send Window size change ghost message only when user releases mouse button (not in live resize).
Potentially fixing bug [#23561]

Modified Paths:
--------------
    trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
    trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm

Modified: trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm	2010-09-26 18:29:54 UTC (rev 32133)
+++ trunk/blender/intern/ghost/intern/GHOST_SystemCocoa.mm	2010-09-26 19:53:45 UTC (rev 32134)
@@ -987,6 +987,8 @@
 		return true;
 	}
 	
+	m_ignoreWindowSizedMessages = false;
+	
     return anyProcessed;
 }
 
@@ -1054,8 +1056,10 @@
 			case GHOST_kEventWindowSize:
 				if (!m_ignoreWindowSizedMessages)
 				{
+					//Enforce only one resize message per event loop (coalescing all the live resize messages)					
 					window->updateDrawingContext();
 					pushEvent( new GHOST_Event(getMilliSeconds(), GHOST_kEventWindowSize, window) );
+					m_ignoreWindowSizedMessages = true;
 				}
 				break;
 			default:

Modified: trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm
===================================================================
--- trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm	2010-09-26 18:29:54 UTC (rev 32133)
+++ trunk/blender/intern/ghost/intern/GHOST_WindowCocoa.mm	2010-09-26 19:53:45 UTC (rev 32134)
@@ -280,6 +280,18 @@
     return YES;
 }
 
+- (void) drawRect:(NSRect)rect
+{
+    if ([self inLiveResize])
+    {
+        //Don't redraw while in live resize
+    }
+    else
+    {
+        [super drawRect:rect];
+    }
+}
+
 @end
 
 





More information about the Bf-blender-cvs mailing list