Module: wine Branch: master Commit: 6eed4c4241ae30f9e0af2581555c5ce6c25623f3 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6eed4c4241ae30f9e0af258155...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Tue Apr 5 18:31:27 2011 +0900
winex11: Move the SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE/SC_RESTORE) call after the window extents check.
---
dlls/winex11.drv/event.c | 44 ++++++++++++++++++++++++-------------------- 1 files changed, 24 insertions(+), 20 deletions(-)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index 2fdc028..474e288 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -912,25 +912,6 @@ void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev ) hwnd, data->whole_window, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top, event->x, event->y, event->width, event->height );
- if (is_net_wm_state_maximized( event->display, data )) - { - if (!IsZoomed( data->hwnd )) - { - TRACE( "win %p/%lx is maximized\n", data->hwnd, data->whole_window ); - SendMessageW( data->hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0 ); - return; - } - } - else - { - if (IsZoomed( data->hwnd )) - { - TRACE( "window %p/%lx is no longer maximized\n", data->hwnd, data->whole_window ); - SendMessageW( data->hwnd, WM_SYSCOMMAND, SC_RESTORE, 0 ); - return; - } - } - X11DRV_X_to_window_rect( data, &rect ); if (root_coords) MapWindowPoints( 0, parent, (POINT *)&rect, 2 );
@@ -953,7 +934,11 @@ void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev ) data->window_rect.bottom - data->window_rect.top == cy) || (IsRectEmpty( &data->window_rect ) && event->width == 1 && event->height == 1)) { - if (flags & SWP_NOMOVE) return; /* if nothing changed, don't do anything */ + if (flags & SWP_NOMOVE) /* if nothing changed, don't do anything */ + { + TRACE( "Nothing has changed, ignoring event\n" ); + return; + } flags |= SWP_NOSIZE; } else @@ -961,6 +946,25 @@ 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 )) + { + if (!IsZoomed( data->hwnd )) + { + TRACE( "win %p/%lx is maximized\n", data->hwnd, data->whole_window ); + SendMessageW( data->hwnd, WM_SYSCOMMAND, SC_MAXIMIZE, 0 ); + return; + } + } + else + { + if (IsZoomed( data->hwnd )) + { + TRACE( "window %p/%lx is no longer maximized\n", data->hwnd, data->whole_window ); + SendMessageW( data->hwnd, WM_SYSCOMMAND, SC_RESTORE, 0 ); + return; + } + } + SetWindowPos( hwnd, 0, x, y, cx, cy, flags ); }