[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [24662] trunk/blender/source/blender/ windowmanager/intern/wm_cursors.c: Fix crash on Windows when clicking anywhere in a window.

Joshua Leung aligorith at gmail.com
Wed Nov 18 22:01:05 CET 2009


Revision: 24662
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=24662
Author:   aligorith
Date:     2009-11-18 22:01:04 +0100 (Wed, 18 Nov 2009)

Log Message:
-----------
Fix crash on Windows when clicking anywhere in a window. Cursor grabbing code was missing checks for invalid tablet data.

Modified Paths:
--------------
    trunk/blender/source/blender/windowmanager/intern/wm_cursors.c

Modified: trunk/blender/source/blender/windowmanager/intern/wm_cursors.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_cursors.c	2009-11-18 20:38:35 UTC (rev 24661)
+++ trunk/blender/source/blender/windowmanager/intern/wm_cursors.c	2009-11-18 21:01:04 UTC (rev 24662)
@@ -173,16 +173,22 @@
 	if(hide)		mode = GHOST_kGrabHide;
 	else if(wrap)	mode = GHOST_kGrabWrap;
 
-	if ((G.f & G_DEBUG) == 0)
-		if(win && (GHOST_GetTabletData(win->ghostwin)->Active == GHOST_kTabletModeNone))
-			GHOST_SetCursorGrab(win->ghostwin, mode, bounds);
+	if ((G.f & G_DEBUG) == 0) {
+		if (win && win->ghostwin) {
+			const GHOST_TabletData *tabletdata= GHOST_GetTabletData(win->ghostwin);
+			
+			if ((tabletdata) && (tabletdata->Active == GHOST_kTabletModeNone))
+				GHOST_SetCursorGrab(win->ghostwin, mode, bounds);
+		}
+	}
 }
 
 void WM_cursor_ungrab(wmWindow *win)
 {
-	if ((G.f & G_DEBUG) == 0)
+	if ((G.f & G_DEBUG) == 0) {
 		if(win && win->ghostwin)
 			GHOST_SetCursorGrab(win->ghostwin, GHOST_kGrabDisable, NULL);
+	}
 }
 
 /* afer this you can call restore too */





More information about the Bf-blender-cvs mailing list