From: <ka...@us...> - 2009-11-12 22:13:07
|
Revision: 3246 http://java-game-lib.svn.sourceforge.net/java-game-lib/?rev=3246&view=rev Author: kappa1 Date: 2009-11-12 22:12:49 +0000 (Thu, 12 Nov 2009) Log Message: ----------- FIX: Mouse Grab should now work on Windows when using Display.setParent() Modified Paths: -------------- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java =================================================================== --- trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java 2009-10-12 11:56:46 UTC (rev 3245) +++ trunk/LWJGL/src/java/org/lwjgl/opengl/WindowsDisplay.java 2009-11-12 22:12:49 UTC (rev 3246) @@ -131,6 +131,7 @@ private WindowsDisplayPeerInfo peer_info; private Object current_cursor; private Canvas parent; + private static boolean hasParent = false; private WindowsKeyboard keyboard; private WindowsMouse mouse; @@ -169,6 +170,7 @@ isFocused = false; did_maximize = false; this.parent = parent; + hasParent = parent != null; long parent_hwnd = parent != null ? getHwnd(parent) : 0; this.hwnd = nCreateWindow(x, y, mode.getWidth(), mode.getHeight(), Display.isFullscreen() || isUndecorated(), parent != null, parent_hwnd); if (hwnd == 0) { @@ -519,7 +521,7 @@ private static native long getForegroundWindow(); static void centerCursor(long hwnd) { - if (getForegroundWindow() != hwnd) + if (getForegroundWindow() != hwnd && !hasParent) return; getGlobalClientRect(hwnd, rect); int local_offset_x = rect.left; @@ -764,7 +766,7 @@ } private void updateClipping() { - if ((Display.isFullscreen() || (mouse != null && mouse.isGrabbed())) && !isMinimized && isFocused && getForegroundWindow() == getHwnd()) { + if ((Display.isFullscreen() || (mouse != null && mouse.isGrabbed())) && !isMinimized && isFocused && (getForegroundWindow() == getHwnd() || hasParent)) { try { setupCursorClipping(getHwnd()); } catch (LWJGLException e) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |