overlay: add theme setting snapping.preview.[region|edge].fill

This settings allows user to choose whether to draw a filled rectangle
or an outlined rectangle as the preview for window snapping.
This commit is contained in:
tokyo4j 2024-04-14 02:24:36 +09:00 committed by Consolatis
parent be491e0e4c
commit 50fd65416f
8 changed files with 114 additions and 36 deletions

View file

@ -18,6 +18,7 @@
#define IGNORE_SSD true
#define IGNORE_MENU true
#define IGNORE_OSD_PREVIEW_OUTLINE true
#define IGNORE_SNAPPING_PREVIEW_OUTLINE true
static struct view *last_view;
@ -136,10 +137,15 @@ get_special(struct server *server, struct wlr_scene_node *node)
if (node == &server->seat.drag.icons->node) {
return "seat->drag.icons";
}
if (server->seat.overlay.tree
&& node == &server->seat.overlay.tree->node) {
if (server->seat.overlay.region_rect.node
&& node == server->seat.overlay.region_rect.node) {
/* Created on-demand */
return "seat->overlay";
return "seat->overlay.region_rect";
}
if (server->seat.overlay.edge_rect.node
&& node == server->seat.overlay.edge_rect.node) {
/* Created on-demand */
return "seat->overlay.edge_rect";
}
if (server->seat.input_method_relay->popup_tree
&& node == &server->seat.input_method_relay->popup_tree->node) {
@ -216,7 +222,13 @@ dump_tree(struct server *server, struct wlr_scene_node *node,
|| (IGNORE_SSD && last_view
&& ssd_debug_is_root_node(last_view->ssd, node))
|| (IGNORE_OSD_PREVIEW_OUTLINE && server->osd_state.preview_outline
&& node == &server->osd_state.preview_outline->tree->node)) {
&& node == &server->osd_state.preview_outline->tree->node)
|| (IGNORE_SNAPPING_PREVIEW_OUTLINE && server->seat.overlay.region_rect.node
&& !server->seat.overlay.region_rect.fill
&& node == server->seat.overlay.region_rect.node)
|| (IGNORE_SNAPPING_PREVIEW_OUTLINE && server->seat.overlay.edge_rect.node
&& !server->seat.overlay.edge_rect.fill
&& node == server->seat.overlay.edge_rect.node)) {
printf("%*c%s\n", pos + 4 + INDENT_SIZE, ' ', "<skipping children>");
return;
}