ssd: set squared corners for tiled views conditionally

Respect the snapping settings for notify-client.
This commit is contained in:
Jens Peters 2024-06-22 23:40:19 +02:00 committed by Johan Malm
parent 2c979fe269
commit 3b605b0142
3 changed files with 22 additions and 2 deletions

View file

@ -495,6 +495,7 @@ void view_toggle_always_on_bottom(struct view *view);
void view_toggle_visible_on_all_workspaces(struct view *view);
bool view_is_tiled(struct view *view);
bool view_is_tiled_and_notify_tiled(struct view *view);
bool view_is_floating(struct view *view);
void view_move_to_workspace(struct view *view, struct workspace *workspace);
enum ssd_mode view_get_ssd_mode(struct view *view);

View file

@ -123,7 +123,7 @@ ssd_titlebar_create(struct ssd *ssd)
set_maximize_alt_icon(ssd, true);
ssd->state.was_maximized = true;
}
if (view_is_tiled(view) && !maximized) {
if (view_is_tiled_and_notify_tiled(view) && !maximized) {
set_squared_corners(ssd, true);
ssd->state.was_tiled_not_maximized = true;
}
@ -193,7 +193,9 @@ ssd_titlebar_update(struct ssd *ssd)
struct theme *theme = view->server->theme;
bool maximized = view->maximized == VIEW_AXIS_BOTH;
bool tiled_not_maximized = view_is_tiled(ssd->view) && !maximized;
bool tiled_not_maximized = view_is_tiled_and_notify_tiled(ssd->view)
&& !maximized;
if (ssd->state.was_maximized != maximized
|| ssd->state.was_tiled_not_maximized != tiled_not_maximized) {
set_squared_corners(ssd, maximized || tiled_not_maximized);

View file

@ -1171,6 +1171,23 @@ view_is_tiled(struct view *view)
|| view->tiled_region_evacuate);
}
bool
view_is_tiled_and_notify_tiled(struct view *view)
{
switch (rc.snap_tiling_events_mode) {
case LAB_TILING_EVENTS_NEVER:
return false;
case LAB_TILING_EVENTS_REGION:
return view->tiled_region || view->tiled_region_evacuate;
case LAB_TILING_EVENTS_EDGE:
return view->tiled;
case LAB_TILING_EVENTS_ALWAYS:
return view_is_tiled(view);
}
return false;
}
bool
view_is_floating(struct view *view)
{