]> Pileus Git - ~andy/gtk/commitdiff
gdk/win32/gdkevents-win32.c (gdk_event_translate) <WM_MOUSEACTIVATE> Call
authorJohn Ehresman <jpe@wingware.com>
Thu, 9 Feb 2006 03:20:56 +0000 (03:20 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Thu, 9 Feb 2006 03:20:56 +0000 (03:20 +0000)
2006-02-08  John Ehresman  <jpe@wingware.com>

* gdk/win32/gdkevents-win32.c (gdk_event_translate)
<WM_MOUSEACTIVATE>
* gdk/win32/gdkwindow-win32.c (show_window_internal)
(gdk_window_raise): Call SetWindowPos() instead of
SetForegroundWindow() or BringWindowToTop() if the window
shouldn't accept focus. (#327375)

ChangeLog
ChangeLog.pre-2-10
gdk/win32/gdkevents-win32.c
gdk/win32/gdkwindow-win32.c

index b0ff70ee443170dd031553cc954148abb52bef55..5ce8f4c50c7da0d5195856c4215ee0bbfe4b20c2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-02-08  John Ehresman  <jpe@wingware.com>
+
+       * gdk/win32/gdkevents-win32.c (gdk_event_translate)
+       <WM_MOUSEACTIVATE>
+       * gdk/win32/gdkwindow-win32.c (show_window_internal)
+       (gdk_window_raise): Call SetWindowPos() instead of
+       SetForegroundWindow() or BringWindowToTop() if the window
+       shouldn't accept focus. (#327375)
+       
 2006-02-08  John Ehresman  <jpe@wingware.com>
 
        * gdk/win32/gdkwindow-win32.c: Let gdk_window_set_decorations()
index b0ff70ee443170dd031553cc954148abb52bef55..5ce8f4c50c7da0d5195856c4215ee0bbfe4b20c2 100644 (file)
@@ -1,3 +1,12 @@
+2006-02-08  John Ehresman  <jpe@wingware.com>
+
+       * gdk/win32/gdkevents-win32.c (gdk_event_translate)
+       <WM_MOUSEACTIVATE>
+       * gdk/win32/gdkwindow-win32.c (show_window_internal)
+       (gdk_window_raise): Call SetWindowPos() instead of
+       SetForegroundWindow() or BringWindowToTop() if the window
+       shouldn't accept focus. (#327375)
+       
 2006-02-08  John Ehresman  <jpe@wingware.com>
 
        * gdk/win32/gdkwindow-win32.c: Let gdk_window_set_decorations()
index e47d8fd73cb4e620b8a344f06cd451758ff30998..53ee6c4a6b04029a943ab627cd7812fdeaffa948 100644 (file)
@@ -2921,7 +2921,8 @@ gdk_event_translate (MSG  *msg,
       break;
 
      case WM_MOUSEACTIVATE:
-       if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP) 
+       if (gdk_window_get_window_type (window) == GDK_WINDOW_TEMP 
+          || !((GdkWindowObject *)window)->accept_focus)
         {
           *ret_valp = MA_NOACTIVATE;
           return_val = TRUE;
index 57105c597a7e4839701559c5aca8d01c5875b089..cf9a8ebcfd792889394695cefeee607eba0c6259 100644 (file)
@@ -1072,7 +1072,14 @@ show_window_internal (GdkWindow *window,
                      SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
       else if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TOPLEVEL ||
               GDK_WINDOW_TYPE (window) == GDK_WINDOW_DIALOG)
-        SetForegroundWindow (GDK_WINDOW_HWND (window));
+       {
+          if (focus_on_map && private->accept_focus)
+            SetForegroundWindow (GDK_WINDOW_HWND (window));
+         else
+            SetWindowPos (GDK_WINDOW_HWND (window), HWND_TOP,
+                         0, 0, 0, 0,
+                         SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
+       }
       else
         BringWindowToTop (GDK_WINDOW_HWND (window));
     }
@@ -1471,7 +1478,16 @@ gdk_window_raise (GdkWindow *window)
       GDK_NOTE (MISC, g_print ("gdk_window_raise: %p\n",
                               GDK_WINDOW_HWND (window)));
 
-      API_CALL (BringWindowToTop, (GDK_WINDOW_HWND (window)));
+      if (GDK_WINDOW_TYPE (window) == GDK_WINDOW_TEMP)
+        API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window), HWND_TOPMOST,
+                                0, 0, 0, 0,
+                                SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE));
+      else if (((GdkWindowObject *)window)->accept_focus)
+        API_CALL (BringWindowToTop, (GDK_WINDOW_HWND (window)));
+      else
+        API_CALL (SetWindowPos, (GDK_WINDOW_HWND (window), HWND_TOP,
+                                0, 0, 0, 0,
+                                SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE));
     }
 }