view_store_natural_geometry(struct view *view)
{
assert(view);
+ if (view->maximized || view->tiled) {
+ /* Do not overwrite the stored geometry with special cases */
+ return;
+ }
+
/**
* If an application was started maximized or fullscreened, its
* natural_geometry width/height may still be zero in which case we set
* a maximized view.
*/
interactive_cancel(view);
- if (!view->tiled && store_natural_geometry) {
+ if (store_natural_geometry) {
view_store_natural_geometry(view);
}
}
* a fullscreen view.
*/
interactive_cancel(view);
- if (!view->maximized && !view->tiled) {
- view_store_natural_geometry(view);
- }
+ view_store_natural_geometry(view);
+
/* Hide decorations when going fullscreen */
if (view->ssd_enabled) {
undecorate(view);
if (view->maximized) {
/* Unmaximize + keep using existing natural_geometry */
view_maximize(view, false, /*store_natural_geometry*/ false);
- } else if (!view->tiled && store_natural_geometry) {
+ } else if (store_natural_geometry) {
/* store current geometry as new natural_geometry */
view_store_natural_geometry(view);
}