From b3023ac55b90d63cf8d5b21fb49a124f247f7e34 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Tue, 27 Apr 2010 17:24:51 -0400 Subject: make sure clients stay on screen when the root window changes size, and maximized/fullscreen windows must be on some monitor or it doesn't make much sense (and asserts) --- openbox/client.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'openbox/client.c') diff --git a/openbox/client.c b/openbox/client.c index 0a150fc3..8acbf841 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -3197,6 +3197,11 @@ void client_fullscreen(ObClient *self, gboolean fs) ob_debug("Window %s going fullscreen (%d)", self->title, self->fullscreen); + if (fs) { + /* make sure the window is on some monitor */ + client_find_onscreen(self, &x, &y, w, h, FALSE); + } + client_setup_decor_and_functions(self, FALSE); client_move_resize(self, x, y, w, h); @@ -3339,6 +3344,11 @@ void client_maximize(ObClient *self, gboolean max, gint dir) if (dir == 0 || dir == 2) /* vert */ self->max_vert = max; + if (max) { + /* make sure the window is on some monitor */ + client_find_onscreen(self, &x, &y, w, h, FALSE); + } + client_change_state(self); /* change the state hints on the client */ client_setup_decor_and_functions(self, FALSE); -- cgit v1.2.3