[gtk+/gtk-3-14] W32: Only override window miximized position for CSDed windows



commit b76e9e35e6fa82d970ab234c8989f524f16a2826
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date:   Thu Mar 26 17:01:59 2015 +0000

    W32: Only override window miximized position for CSDed windows
    
    This fixes an issue with non-CSDed windows being improperly positioned
    when maximized, which was introduced by the previous commit.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=746821

 gdk/win32/gdkevents-win32.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)
---
diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c
index d206efa..c55cee0 100644
--- a/gdk/win32/gdkevents-win32.c
+++ b/gdk/win32/gdkevents-win32.c
@@ -1837,6 +1837,7 @@ gdk_event_translate (MSG  *msg,
   RECT rect, *drag, orig_drag;
   POINT point;
   MINMAXINFO *mmi;
+  LONG style;
   HWND hwnd;
   HCURSOR hcursor;
   BYTE key_state[256];
@@ -3044,6 +3045,8 @@ gdk_event_translate (MSG  *msg,
                                 mmi->ptMaxPosition.x, mmi->ptMaxPosition.y,
                                 mmi->ptMaxSize.x, mmi->ptMaxSize.y));
 
+      style = GetWindowLong (GDK_WINDOW_HWND (window), GWL_STYLE);
+
       if (impl->hint_flags & GDK_HINT_MIN_SIZE)
        {
          rect.left = rect.top = 0;
@@ -3072,7 +3075,10 @@ gdk_event_translate (MSG  *msg,
          mmi->ptMaxTrackSize.x = maxw > 0 && maxw < G_MAXSHORT ? maxw : G_MAXSHORT;
          mmi->ptMaxTrackSize.y = maxh > 0 && maxh < G_MAXSHORT ? maxh : G_MAXSHORT;
        }
-      else
+      /* Assume that these styles are incompatible with CSD,
+       * so there's no reason for us to override the defaults.
+       */
+      else if ((style & (WS_BORDER | WS_THICKFRAME)) == 0)
        {
          HMONITOR winmon;
          MONITORINFO moninfo;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]