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:
authorNicholas Rishel <rishel.nick@gmail.com>2021-06-19 06:38:34 +0300
committerNicholas Rishel <rishel.nick@gmail.com>2021-06-19 07:03:13 +0300
commit46221219d880c8148f783788d88b712ec3d19ae0 (patch)
treea3f0c5b62a259566d8c2931fa1741a96780ada21 /intern/ghost/intern/GHOST_SystemWin32.cpp
parent1a484889466650a4d3532437d94b9dfcb6126520 (diff)
Fix T83930 and Fix T84659: Walk navigation tablet bugs.fix-tablet-walk
Fixes T83930, allowing walk navigation to continue without jumping back after repositiong pen. Fixes T84659, allow walk navigation to start (for Windows Ink) from keyboard shortcut when pen is in use.
Diffstat (limited to 'intern/ghost/intern/GHOST_SystemWin32.cpp')
-rw-r--r--intern/ghost/intern/GHOST_SystemWin32.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp
index 09cfa30eca5..32c5dd2b885 100644
--- a/intern/ghost/intern/GHOST_SystemWin32.cpp
+++ b/intern/ghost/intern/GHOST_SystemWin32.cpp
@@ -1601,6 +1601,17 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam,
}
else {
wt->leaveRange();
+
+ /* Send mouse event to signal end of tablet tracking to operators. */
+ DWORD msgPos = ::GetMessagePos();
+ int x = GET_X_LPARAM(msgPos);
+ int y = GET_Y_LPARAM(msgPos);
+ event = new GHOST_EventCursor(system->getMilliSeconds(),
+ GHOST_kEventCursorMove,
+ window,
+ x,
+ y,
+ GHOST_TABLET_DATA_NONE);
}
}
eventHandled = true;
@@ -1640,6 +1651,18 @@ LRESULT WINAPI GHOST_SystemWin32::s_wndProc(HWND hwnd, UINT msg, WPARAM wParam,
/* Reset pointer pen info if pen device has left tracking range. */
if (pointerInfo.pointerType == PT_PEN && !IS_POINTER_INRANGE_WPARAM(wParam)) {
window->resetPointerPenInfo();
+
+ /* Send mouse event to signal end of tablet tracking to operators. */
+ DWORD msgPos = ::GetMessagePos();
+ int x = GET_X_LPARAM(msgPos);
+ int y = GET_Y_LPARAM(msgPos);
+ event = new GHOST_EventCursor(system->getMilliSeconds(),
+ GHOST_kEventCursorMove,
+ window,
+ x,
+ y,
+ GHOST_TABLET_DATA_NONE);
+
eventHandled = true;
}
break;