all repos — openbox @ d3ca5d5b4c36f6b3e5f64e5332e907471ee2196e

openbox fork - make it a bit more like ryudo

Remember the maximized state of a window when it goes fullscreen and try restore it after
Dana Jansens danakj@orodu.net
commit

d3ca5d5b4c36f6b3e5f64e5332e907471ee2196e

parent

54e04a520bd04ef7bc97c1fc2eef3495daa8a18f

2 files changed, 17 insertions(+), 0 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -3149,6 +3149,9 @@ client_change_state(self); /* change the state hints on the client */

if (fs) { self->pre_fullscreen_area = self->area; + self->pre_fullscreen_max_horz = self->max_horz; + self->pre_fullscreen_max_vert = self->max_vert; + /* if the window is maximized, its area isn't all that meaningful. save its premax area instead. */ if (self->max_horz) {

@@ -3169,6 +3172,17 @@ h = self->area.height;

} else { g_assert(self->pre_fullscreen_area.width > 0 && self->pre_fullscreen_area.height > 0); + + self->max_horz = self->pre_fullscreen_max_horz; + self->max_vert = self->pre_fullscreen_max_vert; + if (self->max_horz) { + self->pre_max_area.x = self->pre_fullscreen_area.x; + self->pre_max_area.width = self->pre_fullscreen_area.width; + } + if (self->max_vert) { + self->pre_max_area.y = self->pre_fullscreen_area.y; + self->pre_max_area.height = self->pre_fullscreen_area.height; + } x = self->pre_fullscreen_area.x; y = self->pre_fullscreen_area.y;
M openbox/client.hopenbox/client.h

@@ -147,6 +147,9 @@ /*! Position and size of the window prior to being maximized */

Rect pre_max_area; /*! Position and size of the window prior to being fullscreened */ Rect pre_fullscreen_area; + /*! Remember if the window was maximized before going fullscreen */ + gboolean pre_fullscreen_max_horz, + pre_fullscreen_max_vert; /*! The window's strut The strut defines areas of the screen that are marked off-bounds for