From f57e8a4e91536b3f9df5b4341f3343c38272c316 Mon Sep 17 00:00:00 2001 From: Carl Philipp Klemm Date: Fri, 1 Aug 2025 18:20:44 +0200 Subject: [PATCH] Remaximize after fullscreen move --- include/view.h | 1 + src/input/cursor.c | 2 ++ src/interactive.c | 7 +++++++ 3 files changed, 10 insertions(+) diff --git a/include/view.h b/include/view.h index 5e1c5baf..a8bad905 100644 --- a/include/view.h +++ b/include/view.h @@ -222,6 +222,7 @@ struct view { enum ssd_preference ssd_preference; bool shaded; bool minimized; + bool remaximize; enum view_axis maximized; bool fullscreen; bool tearing_hint; diff --git a/src/input/cursor.c b/src/input/cursor.c index 0fc2bbd0..eb88051b 100644 --- a/src/input/cursor.c +++ b/src/input/cursor.c @@ -295,6 +295,8 @@ process_cursor_move(struct server *server, uint32_t time) }; interactive_anchor_to_cursor(server, &new_geo); /* Shaded clients will not process resize events until unshaded */ + if (view->maximized == VIEW_AXIS_BOTH) + view->remaximize = true; view_set_shade(view, false); view_set_untiled(view); view_restore_to(view, new_geo); diff --git a/src/interactive.c b/src/interactive.c index f6fd5450..149316f6 100644 --- a/src/interactive.c +++ b/src/interactive.c @@ -152,6 +152,8 @@ interactive_begin(struct view *view, enum input_mode mode, uint32_t edges) interactive_anchor_to_cursor(server, &natural_geo); /* Shaded clients will not process resize events until unshaded */ view_set_shade(view, false); + if (view->maximized == VIEW_AXIS_BOTH) + view->remaximize = true; view_set_untiled(view); view_restore_to(view, natural_geo); } @@ -265,6 +267,11 @@ interactive_finish(struct view *view) } } + if (view->remaximize) { + view_maximize(view, VIEW_AXIS_BOTH, true); + view->remaximize = false; + } + interactive_cancel(view); }