[mutter] Revert "window-x11: Fix the coordinates we use in the synthetic ConfigureNotify"
- From: Owen Taylor <otaylor src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] Revert "window-x11: Fix the coordinates we use in the synthetic ConfigureNotify"
- Date: Fri, 19 Sep 2014 19:41:55 +0000 (UTC)
commit 1250afef7b1d0061dba7a55589b12909459ab191
Author: Owen W. Taylor <otaylor fishsoup net>
Date: Thu Sep 18 15:05:10 2014 -0400
Revert "window-x11: Fix the coordinates we use in the synthetic ConfigureNotify"
The coordinates in ConfigureNotify *should* be the coordinates of the
client window; using the coordinates of the frame window compensated for
a problem with the interpretation of StaticGravity for some clients but
broke other clients.
This reverts commit f4f70afe313cbae2414296028f24647dbcd65dfd.
https://bugzilla.gnome.org/show_bug.cgi?id=736719
src/x11/window-x11.c | 25 +++++++++++++++++++++++--
1 files changed, 23 insertions(+), 2 deletions(-)
---
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index ebbd226..282ecd2 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -214,8 +214,29 @@ send_configure_notify (MetaWindow *window)
event.xconfigure.display = window->display->xdisplay;
event.xconfigure.event = window->xwindow;
event.xconfigure.window = window->xwindow;
- event.xconfigure.x = window->rect.x - priv->border_width;
- event.xconfigure.y = window->rect.y - priv->border_width;
+ event.xconfigure.x = priv->client_rect.x - priv->border_width;
+ event.xconfigure.y = priv->client_rect.y - priv->border_width;
+ if (window->frame)
+ {
+ if (window->withdrawn)
+ {
+ MetaFrameBorders borders;
+ /* We reparent the client window and put it to the position
+ * where the visible top-left of the frame window currently is.
+ */
+
+ meta_frame_calc_borders (window->frame, &borders);
+
+ event.xconfigure.x = window->frame->rect.x + borders.invisible.left;
+ event.xconfigure.y = window->frame->rect.y + borders.invisible.top;
+ }
+ else
+ {
+ /* Need to be in root window coordinates */
+ event.xconfigure.x += window->frame->rect.x;
+ event.xconfigure.y += window->frame->rect.y;
+ }
+ }
event.xconfigure.width = priv->client_rect.width;
event.xconfigure.height = priv->client_rect.height;
event.xconfigure.border_width = priv->border_width; /* requested not actual */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]