aboutsummaryrefslogtreecommitdiffstats
path: root/matchbox/core/mb-window-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'matchbox/core/mb-window-manager.c')
-rw-r--r--matchbox/core/mb-window-manager.c54
1 files changed, 13 insertions, 41 deletions
diff --git a/matchbox/core/mb-window-manager.c b/matchbox/core/mb-window-manager.c
index a641fa3..4045b3a 100644
--- a/matchbox/core/mb-window-manager.c
+++ b/matchbox/core/mb-window-manager.c
@@ -631,49 +631,21 @@ mb_wm_handle_config_request (XConfigureRequestEvent *xev,
req_geom.width = (value_mask & CWWidth) ? req_w : win_geom->width;
req_geom.height = (value_mask & CWHeight) ? req_h : win_geom->height;
-
-#if 0 /* stacking to sort */
- if (value_mask & (CWSibling|CWStackMode))
- {
-
- }
-#endif
-
- if (mb_geometry_compare (&req_geom, win_geom))
- {
- /* No change in window geometry, but needs configure request
- * per ICCCM.
- */
- mb_wm_client_synthetic_config_event_queue (client);
- return True;
- }
-
- /*
- * Check for position-only change (needs to be done before we
- * request new geometry as that call changes the win_geom values if
- * successful.
+ /* We can't determine at this point what the right response
+ * to this configure request is since layout management might
+ * also want to tweak the window geometry.
+ *
+ * We make a note that the configure request needs a response
+ * and when we reach mb_wm_sync - but after all layout decisions
+ * have been made - then we can determine if the request
+ * has been accepted or not and send any synthetic events as
+ * needed.
*/
- no_size_change = (req_geom.width == win_geom->width &&
- req_geom.height == win_geom->height);
-
- if (no_size_change
- || !mb_wm_client_request_geometry (client,
- &req_geom,
- MBWMClientReqGeomIsViaConfigureReq))
- {
- /* ICCCM says if you ignore a configure request or you respond
- * by only moving/re-stacking the window - without a size change,
- * then the WM must send a synthetic ConfigureNotify.
- */
- mb_wm_client_synthetic_config_event_queue (client);
- }
+ mb_wm_client_configure_request_ack_queue (client);
-#if ENABLE_COMPOSITE
- if (mb_wm_comp_mgr_enabled (wm->comp_mgr))
- {
- mb_wm_comp_mgr_client_configure (client->cm_client);
- }
-#endif
+ mb_wm_client_request_geometry (client,
+ &req_geom,
+ MBWMClientReqGeomIsViaConfigureReq);
return True;
}