diff options
| author | Dana Jansens <danakj@orodu.net> | 2010-01-15 14:50:36 -0500 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2010-01-15 14:50:36 -0500 |
| commit | d3ca5d5b4c36f6b3e5f64e5332e907471ee2196e (patch) | |
| tree | 2ac41f24d8257eb66bc780c180fff6369500d11b /openbox/client.c | |
| parent | 54e04a520bd04ef7bc97c1fc2eef3495daa8a18f (diff) | |
Remember the maximized state of a window when it goes fullscreen and try restore it after
Diffstat (limited to 'openbox/client.c')
| -rw-r--r-- | openbox/client.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/openbox/client.c b/openbox/client.c index 6d934bd7..909112ea 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -3149,6 +3149,9 @@ void client_fullscreen(ObClient *self, gboolean fs) 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) { @@ -3170,6 +3173,17 @@ void client_fullscreen(ObClient *self, gboolean fs) 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; w = self->pre_fullscreen_area.width; |
