From 37ce32acc71d79972a8dbae30486bb054e0c5aa3 Mon Sep 17 00:00:00 2001 From: tokyo4j Date: Thu, 4 Apr 2024 20:01:52 +0900 Subject: [PATCH] [fixup] use --- docs/labwc-config.5.scd | 15 ++++++++------- docs/rc.xml.all | 6 +++--- include/config/rcxml.h | 5 +++-- src/config/rcxml.c | 33 ++++++++++----------------------- src/overlay.c | 9 ++++++--- 5 files changed, 30 insertions(+), 38 deletions(-) diff --git a/docs/labwc-config.5.scd b/docs/labwc-config.5.scd index a2c7143c..3bf8f91f 100644 --- a/docs/labwc-config.5.scd +++ b/docs/labwc-config.5.scd @@ -299,14 +299,15 @@ extending outward from the snapped edge. SnapToEdge action for that edge. A *range* of 0 disables snapping via interactive moves. Default is 1. -** - Set the delay to show a preview when snapping a window to an edge. - Default is 500 ms. +** [yes|no] + Show a preview when snaping to a window to an edge. Default is yes. - The *edgeType* attribute is optional and specifies the position of edges - to apply the delay. This can be either of: - - *interior* - Edges with an adjacent output - - *exterior* - Edges without an adjacent output +**++ +** + Sets the delay to show a preview when snapping a window to each type of edges. + Defaults are 500 ms. + *inner* edges are edges with an adjacent output and *outer* edges are edges + without an adjacent output. ** [yes|no] If *yes*, an interactive move that snaps a window to the top edge will diff --git a/docs/rc.xml.all b/docs/rc.xml.all index f91457f8..9d9f0188 100644 --- a/docs/rc.xml.all +++ b/docs/rc.xml.all @@ -99,9 +99,9 @@ 1 - - 500 - 500 + + + yes always diff --git a/include/config/rcxml.h b/include/config/rcxml.h index f8d15a11..0a4f10a7 100644 --- a/include/config/rcxml.h +++ b/include/config/rcxml.h @@ -125,8 +125,9 @@ struct rcxml { /* window snapping */ int snap_edge_range; - int snap_preview_delay_interior; - int snap_preview_delay_exterior; + bool snap_preview_enabled; + int snap_preview_delay_inner; + int snap_preview_delay_outer; bool snap_top_maximize; enum tiling_events_mode snap_tiling_events_mode; diff --git a/src/config/rcxml.c b/src/config/rcxml.c index 3d0e5d7e..c1c58bba 100644 --- a/src/config/rcxml.c +++ b/src/config/rcxml.c @@ -732,16 +732,9 @@ set_adaptive_sync_mode(const char *str, enum adaptive_sync_mode *variable) static void entry(xmlNode *node, char *nodename, char *content) { - /* current */ + /* current */ static enum font_place font_place = FONT_PLACE_NONE; - /* current */ - static enum { - EDGE_TYPE_INTERIOR = (1 << 0), - EDGE_TYPE_EXTERIOR = (1 << 1), - EDGE_TYPE_BOTH = (EDGE_TYPE_INTERIOR | EDGE_TYPE_EXTERIOR), - } edge_type = EDGE_TYPE_BOTH; - static uint32_t button_map_from; if (!nodename) { @@ -913,19 +906,12 @@ entry(xmlNode *node, char *nodename, char *content) rc.window_edge_strength = atoi(content); } else if (!strcasecmp(nodename, "range.snapping")) { rc.snap_edge_range = atoi(content); - } else if (!strcasecmp(nodename, "edgeType.previewDelay.snapping")) { - if (!strcasecmp(content, "interior")) { - edge_type = EDGE_TYPE_INTERIOR; - } else if (!strcasecmp(content, "exterior")) { - edge_type = EDGE_TYPE_EXTERIOR; - } - } else if (!strcasecmp(nodename, "previewDelay.snapping")) { - if (edge_type & EDGE_TYPE_INTERIOR) { - rc.snap_preview_delay_interior = atoi(content); - } - if (edge_type & EDGE_TYPE_EXTERIOR) { - rc.snap_preview_delay_exterior = atoi(content); - } + } else if (!strcasecmp(nodename, "enabled.preview.snapping")) { + set_bool(content, &rc.snap_preview_enabled); + } else if (!strcasecmp(nodename, "inner.delay.preview.snapping")) { + rc.snap_preview_delay_inner = atoi(content); + } else if (!strcasecmp(nodename, "outer.delay.preview.snapping")) { + rc.snap_preview_delay_outer = atoi(content); } else if (!strcasecmp(nodename, "topMaximize.snapping")) { set_bool(content, &rc.snap_top_maximize); } else if (!strcasecmp(nodename, "notifyClient.snapping")) { @@ -1203,8 +1189,9 @@ rcxml_init(void) rc.window_edge_strength = 20; rc.snap_edge_range = 1; - rc.snap_preview_delay_interior = 500; - rc.snap_preview_delay_exterior = 500; + rc.snap_preview_enabled = true; + rc.snap_preview_delay_inner = 500; + rc.snap_preview_delay_outer = 500; rc.snap_top_maximize = true; rc.snap_tiling_events_mode = LAB_TILING_EVENTS_ALWAYS; diff --git a/src/overlay.c b/src/overlay.c index 3424277a..04471b50 100644 --- a/src/overlay.c +++ b/src/overlay.c @@ -149,6 +149,9 @@ static void show_edge_overlay(struct seat *seat, enum view_edge edge, struct output *output) { + if (!rc.snap_preview_enabled) { + return; + } if (seat->overlay.active.edge == edge && seat->overlay.active.output == output) { return; @@ -159,9 +162,9 @@ show_edge_overlay(struct seat *seat, enum view_edge edge, int delay; if (edge_has_adjacent_output_from_cursor(seat, output, edge)) { - delay = rc.snap_preview_delay_interior; + delay = rc.snap_preview_delay_inner; } else { - delay = rc.snap_preview_delay_exterior; + delay = rc.snap_preview_delay_outer; } if (delay > 0) { @@ -170,7 +173,7 @@ show_edge_overlay(struct seat *seat, enum view_edge edge, seat->server->wl_event_loop, handle_edge_overlay_timeout, seat); } - /* Show overlay ms later */ + /* Show overlay ms later */ wl_event_source_timer_update(seat->overlay.timer, delay); } else { /* Show overlay now */