]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
fix XSYNCronization of resizes (especially with two monitors).
[chaz/openbox] / openbox / client.c
index 8acbf841877b527d0fd8a4f1b00ef5f3e8b65e18..ae97606d5e3fe82f5a3fd4b662f9b87be7edc341 100644 (file)
@@ -1551,7 +1551,13 @@ void client_update_sync_request_counter(ObClient *self)
 
     if (OBT_PROP_GET32(self->window, NET_WM_SYNC_REQUEST_COUNTER, CARDINAL,&i))
     {
+        XSyncValue val;
+
         self->sync_counter = i;
+
+        /* this must be set when managing a new window according to EWMH */
+        XSyncIntToValue(&val, 0);
+        XSyncSetCounter(obt_display, self->sync_counter, val);
     } else
         self->sync_counter = None;
 }
@@ -3082,9 +3088,11 @@ void client_configure(ObClient *self, gint x, gint y, gint w, gint h,
        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.
+       Lastly, if force_reply is TRUE, we always send a
+       ConfigureNotify, which is needed during a resize with XSYNCronization.
     */
     if ((!user && !resized && (rootmoved || force_reply)) ||
-        (user && final && rootmoved))
+        (user && ((!resized && force_reply) || (final && rootmoved))))
     {
         XEvent event;
 
This page took 0.02048 seconds and 4 git commands to generate.