Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/makesdna/DNA_windowmanager_types.h5
-rw-r--r--source/blender/windowmanager/intern/wm_cursors.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h
index 1af1dd7a158..24374720232 100644
--- a/source/blender/makesdna/DNA_windowmanager_types.h
+++ b/source/blender/makesdna/DNA_windowmanager_types.h
@@ -139,7 +139,10 @@ typedef struct wmWindow {
void *ghostwin; /* dont want to include ghost.h stuff */
- int winid, pad; /* winid also in screens, is for retrieving this window after read */
+ int winid; /* winid also in screens, is for retrieving this window after read */
+
+ short grabcursor; /* 1 if cursor is grabbed */
+ short pad;
struct bScreen *screen; /* active screen */
struct bScreen *newscreen; /* temporary when switching */
diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c
index 95a1de96115..cec5886014a 100644
--- a/source/blender/windowmanager/intern/wm_cursors.c
+++ b/source/blender/windowmanager/intern/wm_cursors.c
@@ -180,6 +180,8 @@ void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds)
GHOST_SetCursorGrab(win->ghostwin, mode, bounds);
else if (tabletdata->Active == GHOST_kTabletModeNone)
GHOST_SetCursorGrab(win->ghostwin, mode, bounds);
+
+ win->grabcursor = 1;
}
}
}
@@ -187,8 +189,10 @@ void WM_cursor_grab(wmWindow *win, int wrap, int hide, int *bounds)
void WM_cursor_ungrab(wmWindow *win)
{
if ((G.f & G_DEBUG) == 0) {
- if(win && win->ghostwin)
+ if(win && win->ghostwin) {
GHOST_SetCursorGrab(win->ghostwin, GHOST_kGrabDisable, NULL);
+ win->grabcursor = 0;
+ }
}
}