summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-06-01 16:32:51 +0000
committerDana Jansens <danakj@orodu.net>2007-06-01 16:32:51 +0000
commit3da77dbf712d79ebe0559d448c3529fc515ae993 (patch)
treefaf15a185eb966908a63713f8cf9cde55d5df608 /openbox
parent668e855b96836325d6ac8bafe8f0617be11e49c1 (diff)
big explanation
Diffstat (limited to 'openbox')
-rw-r--r--openbox/client.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 87a27fd2..c7a6f0e2 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -2898,6 +2898,19 @@ void client_configure(ObClient *self, gint x, gint y, gint w, gint h,
if (fmoved || fresized)
frame_adjust_area(self->frame, fmoved, fresized, FALSE);
+ /* This is kinda tricky and should not be changed.. let me explain!
+
+ When user = FALSE, then the request is coming from the application
+ itself, and we are more strict about when to send a synthetic
+ ConfigureNotify. We strictly follow the rules of the ICCCM sec 4.1.5
+ in this case.
+
+ When user = TRUE, then the request is coming from "us", like when we
+ maximize a window or sometihng. In this case we are more lenient. We
+ used to follow the same rules as above, but _Java_ Swing can't handle
+ this. So just to appease Swing, when user = TRUE, we always send
+ a synthetic ConfigureNotify to give the window its root coordinates.
+ */
if ((!user && !resized) || (user && final))
{
XEvent event;