]> Dogcows Code - chaz/openbox/commitdiff
make windows stay on screen when they are resized due to their normal hints changing
authorDana Jansens <danakj@orodu.net>
Thu, 27 Mar 2008 13:44:48 +0000 (09:44 -0400)
committerDana Jansens <danakj@orodu.net>
Thu, 27 Mar 2008 13:45:28 +0000 (09:45 -0400)
openbox/client.c
openbox/client.h

index 0ccb343b1ce32c0808eb914b2f30c75c5bd5ba6d..b6ca93a32d69e376d27ccadbd75d1759f58af6b4 100644 (file)
@@ -933,6 +933,19 @@ static gboolean client_restore_session_stacking(ObClient *self)
     return FALSE;
 }
 
+void client_reconfigure(ObClient *self, gboolean force)
+{
+    int x, y, w, h, lw, lh;
+
+    x = self->area.x;
+    y = self->area.y;
+    w = self->area.width;
+    h = self->area.height;
+    client_try_configure(self, &x, &y, &w, &h, &lw, &lh, FALSE);
+    client_find_onscreen(self, &x, &y, w, h, FALSE);
+    client_configure(self, x, y, w, h, FALSE, TRUE, force);
+}
+
 void client_move_onscreen(ObClient *self, gboolean rude)
 {
     gint x = self->area.x;
index 5e26ef30ea9690ccfabd7bc97ee9774be164f1a2..09c93e63770096592bca90b0b47b2ea843c5120d 100644 (file)
@@ -396,10 +396,13 @@ void client_convert_gravity_resize(ObClient *self, gint gravity,
   client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE, FALSE)
 #define client_move_resize(self, x, y, w, h) \
   client_configure(self, x, y, w, h, TRUE, TRUE, FALSE)
-#define client_reconfigure(self, force) \
-  client_configure(self, ((ObClient*)self)->area.x, ((ObClient*)self)->area.y, \
-                   ((ObClient*)self)->area.width, \
-                   ((ObClient*)self)->area.height, FALSE, TRUE, force)
+
+/*! Make a client reconfigure so that it will honour its current max/min sizes
+  and other bounds.
+  @param force If TRUE, then a ConfigureNotify event will be sent to the client
+               even if nothing has changed.
+*/
+void client_reconfigure(ObClient *self, gboolean force);
 
 /*! Figure out where a window will end up and what size it will be if you
   told it to move/resize to these coordinates.
This page took 0.02375 seconds and 4 git commands to generate.