summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/client.c13
-rw-r--r--openbox/client.h11
2 files changed, 20 insertions, 4 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 0ccb343b..b6ca93a3 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -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;
diff --git a/openbox/client.h b/openbox/client.h
index 5e26ef30..09c93e63 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -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.