#endif /* TARGET_HOST_MS_WINDOWS */
+#ifdef WM_TOUCH
+ typedef BOOL (WINAPI *pRegisterTouchWindow)(HWND,ULONG);
+ static pRegisterTouchWindow fghRegisterTouchWindow = (pRegisterTouchWindow)0xDEADBEEF;
+#endif
/* pushing attribute/value pairs into an array */
#define ATTRIB(a) attributes[where++]=(a)
/* Enable multitouch: additional flag TWF_FINETOUCH, TWF_WANTPALM */
#ifdef WM_TOUCH
- RegisterTouchWindow( window->Window.Handle, TWF_FINETOUCH | TWF_WANTPALM );
+ if (fghRegisterTouchWindow == (pRegisterTouchWindow)0xDEADBEEF)
+ fghRegisterTouchWindow = (pRegisterTouchWindow)GetProcAddress(GetModuleHandle("user32"),"RegisterTouchWindow");
+ if (fghRegisterTouchWindow)
+ fghRegisterTouchWindow( window->Window.Handle, TWF_FINETOUCH | TWF_WANTPALM );
#endif
#if defined(_WIN32_WCE)
*/
void fgCloseWindow( SFG_Window* window )
{
- /* if we're in gamemode, call glutLeaveGameMode first to make sure the
- * gamemode is properly closed before closing the window
+ /* if we're in gamemode and we're closing the gamemode window,
+ * call glutLeaveGameMode first to make sure the gamemode is
+ * properly closed before closing the window
*/
- if (fgStructure.GameModeWindow != NULL)
+ if (fgStructure.GameModeWindow != NULL && fgStructure.GameModeWindow->ID==window->ID)
glutLeaveGameMode();
#if TARGET_HOST_POSIX_X11