diff options
author | Mike Erwin <significant.bit@gmail.com> | 2013-01-07 05:23:09 +0400 |
---|---|---|
committer | Mike Erwin <significant.bit@gmail.com> | 2013-01-07 05:23:09 +0400 |
commit | eca21a2532f56872c5b7b8de3ba271420ddfb22e (patch) | |
tree | ab4077aca7b5ee1aef3c77457e6195f8cd999b57 /intern/ghost | |
parent | 6a7a144f500b59334224f250c6a816ae5d7327bf (diff) |
fix for bugs 30300, 31107: pen pressure with multiple open windows on MS Windows
Diffstat (limited to 'intern/ghost')
-rw-r--r-- | intern/ghost/intern/GHOST_SystemWin32.cpp | 1 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_WindowWin32.cpp | 10 | ||||
-rw-r--r-- | intern/ghost/intern/GHOST_WindowWin32.h | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 9f62ed76735..75d606a5d79 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -761,6 +761,7 @@ GHOST_Event *GHOST_SystemWin32::processWindowEvent(GHOST_TEventType type, GHOST_ if (type == GHOST_kEventWindowActivate) { system->getWindowManager()->setActiveWindow(window); + ((GHOST_WindowWin32*)window)->bringTabletContextToFront(); } return new GHOST_Event(system->getMilliSeconds(), type, window); diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp index fead1884f8a..bf429527199 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.cpp +++ b/intern/ghost/intern/GHOST_WindowWin32.cpp @@ -1192,6 +1192,16 @@ void GHOST_WindowWin32::processWin32TabletEvent(WPARAM wParam, LPARAM lParam) } } +void GHOST_WindowWin32::bringTabletContextToFront() +{ + if (m_wintab) { + GHOST_WIN32_WTOverlap fpWTOverlap = (GHOST_WIN32_WTOverlap) ::GetProcAddress(m_wintab, "WTOverlap"); + if (fpWTOverlap) { + fpWTOverlap(m_tablet, TRUE); + } + } +} + /** Reverse the bits in a GHOST_TUns8 */ static GHOST_TUns8 uns8ReverseBits(GHOST_TUns8 ch) { diff --git a/intern/ghost/intern/GHOST_WindowWin32.h b/intern/ghost/intern/GHOST_WindowWin32.h index 9e4377b8225..7f50d58ce35 100644 --- a/intern/ghost/intern/GHOST_WindowWin32.h +++ b/intern/ghost/intern/GHOST_WindowWin32.h @@ -58,6 +58,7 @@ typedef UINT (API * GHOST_WIN32_WTInfo)(UINT, UINT, LPVOID); typedef HCTX (API * GHOST_WIN32_WTOpen)(HWND, LPLOGCONTEXTA, BOOL); typedef BOOL (API * GHOST_WIN32_WTClose)(HCTX); typedef BOOL (API * GHOST_WIN32_WTPacket)(HCTX, UINT, LPVOID); +typedef BOOL (API * GHOST_WIN32_WTOverlap)(HCTX, BOOL); /** * GHOST window on M$ Windows OSs. @@ -273,6 +274,7 @@ public: void processWin32TabletInitEvent(); void processWin32TabletEvent(WPARAM wParam, LPARAM lParam); + void bringTabletContextToFront(); protected: GHOST_TSuccess initMultisample(PIXELFORMATDESCRIPTOR pfd); |