Dmitry Timoshkov : winex11.drv: Add a some heuristics when to add a maximize or fullscreen hint.

Alexandre Julliard julliard at winehq.org
Wed Mar 19 07:28:10 CDT 2008


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

Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date:   Tue Mar 18 22:25:33 2008 +0800

winex11.drv: Add a some heuristics when to add a maximize or fullscreen hint.

---

 dlls/winex11.drv/winpos.c |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/dlls/winex11.drv/winpos.c b/dlls/winex11.drv/winpos.c
index eed9eeb..b444423 100644
--- a/dlls/winex11.drv/winpos.c
+++ b/dlls/winex11.drv/winpos.c
@@ -183,16 +183,23 @@ static void update_net_wm_states( Display *display, struct x11drv_win_data *data
     if (!data->mapped) return;
 
     style = GetWindowLongW( data->hwnd, GWL_STYLE );
-    if (style & WS_MAXIMIZE) new_state |= (1 << NET_WM_STATE_MAXIMIZED);
-
-    if (!(style & WS_MAXIMIZE) &&
-        data->whole_rect.left <= 0 && data->whole_rect.right >= screen_width &&
+    if (data->whole_rect.left <= 0 && data->whole_rect.right >= screen_width &&
         data->whole_rect.top <= 0 && data->whole_rect.bottom >= screen_height)
-        new_state |= (1 << NET_WM_STATE_FULLSCREEN);
+    {
+        if ((style & WS_MAXIMIZE) && (style & WS_CAPTION) == WS_CAPTION)
+            new_state |= (1 << NET_WM_STATE_MAXIMIZED);
+        else
+            new_state |= (1 << NET_WM_STATE_FULLSCREEN);
+    }
+    else if (style & WS_MAXIMIZE)
+        new_state |= (1 << NET_WM_STATE_MAXIMIZED);
 
     ex_style = GetWindowLongW( data->hwnd, GWL_EXSTYLE );
     if (ex_style & WS_EX_TOPMOST)
+    {
         new_state |= (1 << NET_WM_STATE_ABOVE);
+        ERR("switching window %p/%lx to STATE_ABOVE\n", data->hwnd, data->whole_window);
+    }
     if (ex_style & WS_EX_TOOLWINDOW)
         new_state |= (1 << NET_WM_STATE_SKIP_TASKBAR) | (1 << NET_WM_STATE_SKIP_PAGER);
 




More information about the wine-cvs mailing list