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
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2019-01-14 14:43:34 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2019-01-14 14:43:34 +0300
commit7707bf203c0f977e96966fb5c4157505107e7590 (patch)
tree23196415d6a8287c75b8cabf3c942d21c43119aa /intern
parent728f43d5850940b5469ff24064ae2a418e1f02f0 (diff)
parent19fba61d46a6e54d0a85a88f36bd150ec3df97b4 (diff)
Merge branch 'blender2.7'
Diffstat (limited to 'intern')
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.cpp26
-rw-r--r--intern/ghost/intern/GHOST_WindowWin32.h3
2 files changed, 25 insertions, 4 deletions
diff --git a/intern/ghost/intern/GHOST_WindowWin32.cpp b/intern/ghost/intern/GHOST_WindowWin32.cpp
index 34b813cead3..41e1819f9e3 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.cpp
+++ b/intern/ghost/intern/GHOST_WindowWin32.cpp
@@ -190,7 +190,24 @@ GHOST_WindowWin32::GHOST_WindowWin32(GHOST_SystemWin32 *system,
0); // pointer to window-creation data
free(title_16);
}
+
+ m_user32 = ::LoadLibrary("user32.dll");
+
if (m_hWnd) {
+ if (m_user32) {
+ // Touch enabled screens with pen support by default have gestures
+ // enabled, which results in a delay between the pointer down event
+ // and the first move when using the stylus. RegisterTouchWindow
+ // disables the new gesture architecture enabling the events to be
+ // sent immediately to the application rather than being absorbed by
+ // the gesture API.
+ GHOST_WIN32_RegisterTouchWindow pRegisterTouchWindow =
+ (GHOST_WIN32_RegisterTouchWindow)GetProcAddress(m_user32, "RegisterTouchWindow");
+ if (pRegisterTouchWindow) {
+ pRegisterTouchWindow(m_hWnd, 0);
+ }
+ }
+
// Register this window as a droptarget. Requires m_hWnd to be valid.
// Note that OleInitialize(0) has to be called prior to this. Done in GHOST_SystemWin32.
m_dropTarget = new GHOST_DropTargetWin32(this, m_system);
@@ -368,6 +385,11 @@ GHOST_WindowWin32::~GHOST_WindowWin32()
::DestroyWindow(m_hWnd);
m_hWnd = 0;
}
+
+ if (m_user32) {
+ FreeLibrary(m_user32);
+ m_user32 = NULL;
+ }
}
bool GHOST_WindowWin32::getValid() const
@@ -976,10 +998,6 @@ void GHOST_WindowWin32::bringTabletContextToFront()
GHOST_TUns16 GHOST_WindowWin32::getDPIHint()
{
- if (!m_user32) {
- m_user32 = ::LoadLibrary("user32.dll");
- }
-
if (m_user32) {
GHOST_WIN32_GetDpiForWindow fpGetDpiForWindow = (GHOST_WIN32_GetDpiForWindow) ::GetProcAddress(m_user32, "GetDpiForWindow");
diff --git a/intern/ghost/intern/GHOST_WindowWin32.h b/intern/ghost/intern/GHOST_WindowWin32.h
index 8b0ba2f1934..9d6a1b667d6 100644
--- a/intern/ghost/intern/GHOST_WindowWin32.h
+++ b/intern/ghost/intern/GHOST_WindowWin32.h
@@ -59,6 +59,9 @@ typedef BOOL (API * GHOST_WIN32_WTPacket)(HCTX, UINT, LPVOID);
typedef BOOL (API * GHOST_WIN32_WTEnable)(HCTX, BOOL);
typedef BOOL (API * GHOST_WIN32_WTOverlap)(HCTX, BOOL);
+// typedef to user32 functions to disable gestures on windows
+typedef BOOL(API * GHOST_WIN32_RegisterTouchWindow)(HWND hwnd, ULONG ulFlags);
+
// typedefs for user32 functions to allow dynamic loading of Windows 10 DPI scaling functions
typedef UINT(API * GHOST_WIN32_GetDpiForWindow)(HWND);
#ifndef USER_DEFAULT_SCREEN_DPI