diff --git a/dlls/winex11.drv/winpos.c b/dlls/winex11.drv/winpos.c index e1e36dc2718..2297829c9d8 100644 --- a/dlls/winex11.drv/winpos.c +++ b/dlls/winex11.drv/winpos.c @@ -197,13 +197,14 @@ static void update_net_wm_states( Display *display, struct x11drv_win_data *data if (!data->managed) return; if (!data->mapped) return; - 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); - 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 && + data->whole_rect.top <= 0 && data->whole_rect.bottom >= screen_height) + new_state |= (1 << NET_WM_STATE_FULLSCREEN); + ex_style = GetWindowLongW( data->hwnd, GWL_EXSTYLE ); if (ex_style & WS_EX_TOPMOST) new_state |= (1 << NET_WM_STATE_ABOVE);