Henri Verbeet : winex11: Fullscreen windows are never maximized.

Alexandre Julliard julliard at winehq.org
Fri Sep 28 11:39:03 CDT 2012


Module: wine
Branch: master
Commit: 47c54c4ae7f235780a55ddf670503db4afc11055
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=47c54c4ae7f235780a55ddf670503db4afc11055

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Fri Sep 28 01:06:52 2012 +0200

winex11: Fullscreen windows are never maximized.

Some window managers incorrectly set maximized state on fullscreen windows.

---

 dlls/winex11.drv/event.c |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index 514f0d4..d9c932e 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -998,6 +998,7 @@ void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev )
     HWND parent;
     BOOL root_coords;
     int cx, cy, x = event->x, y = event->y;
+    DWORD style;
 
     if (!hwnd) return;
     if (!(data = get_win_data( hwnd ))) return;
@@ -1061,9 +1062,10 @@ void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev )
                hwnd, data->window_rect.right - data->window_rect.left,
                data->window_rect.bottom - data->window_rect.top, cx, cy );
 
-    if (is_net_wm_state_maximized( event->display, data ))
+    style = GetWindowLongW( data->hwnd, GWL_STYLE );
+    if ((style & WS_CAPTION) == WS_CAPTION && is_net_wm_state_maximized( event->display, data ))
     {
-        if (!IsZoomed( data->hwnd ))
+        if (!(style & WS_MAXIMIZE))
         {
             TRACE( "win %p/%lx is maximized\n", data->hwnd, data->whole_window );
             release_win_data( data );
@@ -1073,7 +1075,7 @@ void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev )
     }
     else
     {
-        if (IsZoomed( data->hwnd ))
+        if (style & WS_MAXIMIZE)
         {
             TRACE( "window %p/%lx is no longer maximized\n", data->hwnd, data->whole_window );
             release_win_data( data );
@@ -1198,7 +1200,7 @@ static void handle_wm_state_notify( HWND hwnd, XPropertyEvent *event, BOOL updat
     if (data->iconic && data->wm_state == NormalState)  /* restore window */
     {
         data->iconic = FALSE;
-        if (is_net_wm_state_maximized( event->display, data ))
+        if ((style & WS_CAPTION) == WS_CAPTION && is_net_wm_state_maximized( event->display, data ))
         {
             if ((style & WS_MAXIMIZEBOX) && !(style & WS_DISABLED))
             {




More information about the wine-cvs mailing list