Alexandre Julliard : winex11: Moved the ConfigureNotify handler to event.c.
Alexandre Julliard
julliard at winehq.org
Wed Apr 23 07:59:14 CDT 2008
Module: wine
Branch: master
Commit: 31ed6473bef708a66e29627d523140b10a3d056a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=31ed6473bef708a66e29627d523140b10a3d056a
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Apr 22 16:56:31 2008 +0200
winex11: Moved the ConfigureNotify handler to event.c.
---
dlls/winex11.drv/event.c | 64 +++++++++++++++++++++++++++++++++++++++++++++
dlls/winex11.drv/winpos.c | 63 --------------------------------------------
dlls/winex11.drv/x11drv.h | 1 -
3 files changed, 64 insertions(+), 64 deletions(-)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index adbf585..2cb8cc8 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -77,6 +77,7 @@ static void X11DRV_FocusIn( HWND hwnd, XEvent *event );
static void X11DRV_FocusOut( HWND hwnd, XEvent *event );
static void X11DRV_Expose( HWND hwnd, XEvent *event );
static void X11DRV_MapNotify( HWND hwnd, XEvent *event );
+static void X11DRV_ConfigureNotify( HWND hwnd, XEvent *event );
static void X11DRV_PropertyNotify( HWND hwnd, XEvent *event );
static void X11DRV_ClientMessage( HWND hwnd, XEvent *event );
@@ -731,6 +732,69 @@ static void X11DRV_MapNotify( HWND hwnd, XEvent *event )
/***********************************************************************
+ * X11DRV_ConfigureNotify
+ */
+void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev )
+{
+ XConfigureEvent *event = &xev->xconfigure;
+ struct x11drv_win_data *data;
+ RECT rect;
+ UINT flags;
+ int cx, cy, x = event->x, y = event->y;
+
+ if (!hwnd) return;
+ if (!(data = X11DRV_get_win_data( hwnd ))) return;
+ if (!data->mapped || data->iconic) return;
+
+ /* Get geometry */
+
+ if (!event->send_event) /* normal event, need to map coordinates to the root */
+ {
+ Window child;
+ wine_tsx11_lock();
+ XTranslateCoordinates( event->display, data->whole_window, root_window,
+ 0, 0, &x, &y, &child );
+ wine_tsx11_unlock();
+ }
+ rect.left = x;
+ rect.top = y;
+ rect.right = x + event->width;
+ rect.bottom = y + event->height;
+ OffsetRect( &rect, virtual_screen_rect.left, virtual_screen_rect.top );
+ TRACE( "win %p new X rect %d,%d,%dx%d (event %d,%d,%dx%d)\n",
+ hwnd, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top,
+ event->x, event->y, event->width, event->height );
+ X11DRV_X_to_window_rect( data, &rect );
+
+ x = rect.left;
+ y = rect.top;
+ cx = rect.right - rect.left;
+ cy = rect.bottom - rect.top;
+ flags = SWP_NOACTIVATE | SWP_NOZORDER;
+
+ /* Compare what has changed */
+
+ GetWindowRect( hwnd, &rect );
+ if (rect.left == x && rect.top == y) flags |= SWP_NOMOVE;
+ else
+ TRACE( "%p moving from (%d,%d) to (%d,%d)\n",
+ hwnd, rect.left, rect.top, x, y );
+
+ if ((rect.right - rect.left == cx && rect.bottom - rect.top == cy) ||
+ (IsRectEmpty( &rect ) && event->width == 1 && event->height == 1))
+ {
+ if (flags & SWP_NOMOVE) return; /* if nothing changed, don't do anything */
+ flags |= SWP_NOSIZE;
+ }
+ else
+ TRACE( "%p resizing from (%dx%d) to (%dx%d)\n",
+ hwnd, rect.right - rect.left, rect.bottom - rect.top, cx, cy );
+
+ SetWindowPos( hwnd, 0, x, y, cx, cy, flags );
+}
+
+
+/***********************************************************************
* get_window_wm_state
*/
int get_window_wm_state( Display *display, struct x11drv_win_data *data )
diff --git a/dlls/winex11.drv/winpos.c b/dlls/winex11.drv/winpos.c
index 2f7ab13..5348ec6 100644
--- a/dlls/winex11.drv/winpos.c
+++ b/dlls/winex11.drv/winpos.c
@@ -534,66 +534,3 @@ void X11DRV_resize_desktop( unsigned int width, unsigned int height )
EnumWindows( update_windows_on_desktop_resize, (LPARAM)&resize_data );
}
-
-
-/***********************************************************************
- * X11DRV_ConfigureNotify
- */
-void X11DRV_ConfigureNotify( HWND hwnd, XEvent *xev )
-{
- XConfigureEvent *event = &xev->xconfigure;
- struct x11drv_win_data *data;
- RECT rect;
- UINT flags;
- int cx, cy, x = event->x, y = event->y;
-
- if (!hwnd) return;
- if (!(data = X11DRV_get_win_data( hwnd ))) return;
- if (!data->mapped || data->iconic) return;
-
- /* Get geometry */
-
- if (!event->send_event) /* normal event, need to map coordinates to the root */
- {
- Window child;
- wine_tsx11_lock();
- XTranslateCoordinates( event->display, data->whole_window, root_window,
- 0, 0, &x, &y, &child );
- wine_tsx11_unlock();
- }
- rect.left = x;
- rect.top = y;
- rect.right = x + event->width;
- rect.bottom = y + event->height;
- OffsetRect( &rect, virtual_screen_rect.left, virtual_screen_rect.top );
- TRACE( "win %p new X rect %d,%d,%dx%d (event %d,%d,%dx%d)\n",
- hwnd, rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top,
- event->x, event->y, event->width, event->height );
- X11DRV_X_to_window_rect( data, &rect );
-
- x = rect.left;
- y = rect.top;
- cx = rect.right - rect.left;
- cy = rect.bottom - rect.top;
- flags = SWP_NOACTIVATE | SWP_NOZORDER;
-
- /* Compare what has changed */
-
- GetWindowRect( hwnd, &rect );
- if (rect.left == x && rect.top == y) flags |= SWP_NOMOVE;
- else
- TRACE( "%p moving from (%d,%d) to (%d,%d)\n",
- hwnd, rect.left, rect.top, x, y );
-
- if ((rect.right - rect.left == cx && rect.bottom - rect.top == cy) ||
- (IsRectEmpty( &rect ) && event->width == 1 && event->height == 1))
- {
- if (flags & SWP_NOMOVE) return; /* if nothing changed, don't do anything */
- flags |= SWP_NOSIZE;
- }
- else
- TRACE( "%p resizing from (%dx%d) to (%dx%d)\n",
- hwnd, rect.right - rect.left, rect.bottom - rect.top, cx, cy );
-
- SetWindowPos( hwnd, 0, x, y, cx, cy, flags );
-}
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
index 450153b..287acbb 100644
--- a/dlls/winex11.drv/x11drv.h
+++ b/dlls/winex11.drv/x11drv.h
@@ -643,7 +643,6 @@ extern void X11DRV_EnterNotify( HWND hwnd, XEvent *event );
extern void X11DRV_KeyEvent( HWND hwnd, XEvent *event );
extern void X11DRV_KeymapNotify( HWND hwnd, XEvent *event );
extern void X11DRV_DestroyNotify( HWND hwnd, XEvent *event );
-extern void X11DRV_ConfigureNotify( HWND hwnd, XEvent *event );
extern void X11DRV_SelectionRequest( HWND hWnd, XEvent *event );
extern void X11DRV_SelectionClear( HWND hWnd, XEvent *event );
extern void X11DRV_MappingNotify( HWND hWnd, XEvent *event );
More information about the wine-cvs
mailing list