]> git.saurik.com Git - wxWidgets.git/commitdiff
Applied [ 654253 ] wxGTK: fix to wxGetMousePosition()
authorJulian Smart <julian@anthemion.co.uk>
Mon, 16 Dec 2002 09:44:35 +0000 (09:44 +0000)
committerJulian Smart <julian@anthemion.co.uk>
Mon, 16 Dec 2002 09:44:35 +0000 (09:44 +0000)
wxGetMousePosition() returns -999, -999 when the mouse
pointer is not over a GTK window. This is apparently
because it uses the current window as a handle to get
to the X display. This is not necessary, however;
GDK_DISPLAY() can be used. With
this patch wxGetMousePosition() works regardless of
where on the screen the mouse is.

Jay Berkenbilt (jay_berkenbilt) modified by JACS

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/window.cpp
src/gtk1/window.cpp

index 2cee058d32e6b6826198459a16a474d0cfd4755f..5208da0f59e67783be5afa7bf037e6977fc4987b 100644 (file)
@@ -4605,10 +4605,8 @@ wxPoint wxGetMousePosition()
 
     int x, y;
     GdkWindow* windowAtPtr = gdk_window_at_pointer(& x, & y);
 
     int x, y;
     GdkWindow* windowAtPtr = gdk_window_at_pointer(& x, & y);
-    if (!windowAtPtr)
-      return wxPoint(-999, -999);
 
 
-    Display *display = GDK_WINDOW_XDISPLAY(windowAtPtr);
+    Display *display = windowAtPtr ? GDK_WINDOW_XDISPLAY(windowAtPtr) : GDK_DISPLAY();
     Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display));
     Window rootReturn, childReturn;
     int rootX, rootY, winX, winY;
     Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display));
     Window rootReturn, childReturn;
     int rootX, rootY, winX, winY;
index 2cee058d32e6b6826198459a16a474d0cfd4755f..5208da0f59e67783be5afa7bf037e6977fc4987b 100644 (file)
@@ -4605,10 +4605,8 @@ wxPoint wxGetMousePosition()
 
     int x, y;
     GdkWindow* windowAtPtr = gdk_window_at_pointer(& x, & y);
 
     int x, y;
     GdkWindow* windowAtPtr = gdk_window_at_pointer(& x, & y);
-    if (!windowAtPtr)
-      return wxPoint(-999, -999);
 
 
-    Display *display = GDK_WINDOW_XDISPLAY(windowAtPtr);
+    Display *display = windowAtPtr ? GDK_WINDOW_XDISPLAY(windowAtPtr) : GDK_DISPLAY();
     Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display));
     Window rootReturn, childReturn;
     int rootX, rootY, winX, winY;
     Window rootWindow = RootWindowOfScreen (DefaultScreenOfDisplay(display));
     Window rootReturn, childReturn;
     int rootX, rootY, winX, winY;