[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25233] trunk/blender/source/blender: grabcursor attribute stores full grab mode so we can better differentiate when it needs to wrap around cursor draw .
Martin Poirier
theeth at yahoo.com
Wed Dec 9 05:51:36 CET 2009
Revision: 25233
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25233
Author: theeth
Date: 2009-12-09 05:51:35 +0100 (Wed, 09 Dec 2009)
Log Message:
-----------
grabcursor attribute stores full grab mode so we can better differentiate when it needs to wrap around cursor draw.
Also add cocoa exception to wm_get_cursor_position (this should be fixed at the ghost level)
Modified Paths:
--------------
trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
trunk/blender/source/blender/windowmanager/intern/wm_cursors.c
trunk/blender/source/blender/windowmanager/intern/wm_draw.c
trunk/blender/source/blender/windowmanager/intern/wm_window.c
Modified: trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h 2009-12-09 02:55:19 UTC (rev 25232)
+++ trunk/blender/source/blender/makesdna/DNA_windowmanager_types.h 2009-12-09 04:51:35 UTC (rev 25233)
@@ -141,7 +141,7 @@
int winid; /* winid also in screens, is for retrieving this window after read */
- short grabcursor; /* 1 if cursor is grabbed */
+ short grabcursor; /* cursor grab mode */
short pad;
struct bScreen *screen; /* active screen */
Modified: trunk/blender/source/blender/windowmanager/intern/wm_cursors.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_cursors.c 2009-12-09 02:55:19 UTC (rev 25232)
+++ trunk/blender/source/blender/windowmanager/intern/wm_cursors.c 2009-12-09 04:51:35 UTC (rev 25233)
@@ -181,7 +181,7 @@
else if (tabletdata->Active == GHOST_kTabletModeNone)
GHOST_SetCursorGrab(win->ghostwin, mode, bounds);
- win->grabcursor = 1;
+ win->grabcursor = mode;
}
}
}
@@ -191,7 +191,7 @@
if ((G.f & G_DEBUG) == 0) {
if(win && win->ghostwin) {
GHOST_SetCursorGrab(win->ghostwin, GHOST_kGrabDisable, NULL);
- win->grabcursor = 0;
+ win->grabcursor = GHOST_kGrabDisable;
}
}
}
Modified: trunk/blender/source/blender/windowmanager/intern/wm_draw.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_draw.c 2009-12-09 02:55:19 UTC (rev 25232)
+++ trunk/blender/source/blender/windowmanager/intern/wm_draw.c 2009-12-09 04:51:35 UTC (rev 25233)
@@ -41,7 +41,10 @@
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_utildefines.h"
+#include "GHOST_C-api.h"
+
#include "ED_screen.h"
#include "GPU_extensions.h"
@@ -74,7 +77,7 @@
for(pc= wm->paintcursors.first; pc; pc= pc->next) {
if(pc->poll == NULL || pc->poll(C)) {
ARegion *ar= CTX_wm_region(C);
- if (win->grabcursor) {
+ if (ELEM(win->grabcursor, GHOST_kGrabWrap, GHOST_kGrabHide)) {
int x = 0, y = 0;
wm_get_cursor_position(win, &x, &y);
pc->draw(C, x - ar->winrct.xmin, y - ar->winrct.ymin, pc->customdata);
Modified: trunk/blender/source/blender/windowmanager/intern/wm_window.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_window.c 2009-12-09 02:55:19 UTC (rev 25232)
+++ trunk/blender/source/blender/windowmanager/intern/wm_window.c 2009-12-09 04:51:35 UTC (rev 25233)
@@ -977,7 +977,12 @@
{
GHOST_GetCursorPosition(g_system, x, y);
GHOST_ScreenToClient(win->ghostwin, *x, *y, x, y);
+#if defined(__APPLE__) && defined(GHOST_COCOA)
+ //Cocoa has silly exception that should be fixed at the ghost level
+ //(ghost is an allegory for an invisible system specific code)
+#else
*y = (win->sizey-1) - *y;
+#endif
}
/* ******************* exported api ***************** */
More information about the Bf-blender-cvs
mailing list