]> git.mdlowis.com Git - proto/labwc.git/commitdiff
theme: add option osd.window-switcher.item.active.border.width
authorConsolatis <35009135+Consolatis@users.noreply.github.com>
Sat, 1 Jul 2023 12:56:13 +0000 (14:56 +0200)
committerJohan Malm <johanmalm@users.noreply.github.com>
Wed, 5 Jul 2023 20:31:30 +0000 (21:31 +0100)
...and change default values for the variables below to keep the
window-switcher look the same as it was at the last release.

osd.window-switcher.padding = 4
osd.window-switcher.item.padding.y = 1
osd.window-switcher.item.active.border.width = 2

docs/labwc-theme.5.scd
docs/themerc
include/theme.h
src/osd.c
src/theme.c

index 6142f085887f64f14f6ee7dec15913356a65f4da..9402e41af76a8fa715a05b4933fbcc2cc45ff741 100644 (file)
@@ -151,8 +151,7 @@ elements are not listed here, but are supported.
 
 *osd.window-switcher.padding*
        Padding of window switcher in pixels. This is the space between the
-       window-switcher border and its items. Inherits *osd.border.width* if
-       not set.
+       window-switcher border and its items. Default is 4.
 
 *osd.window-switcher.item.padding.x*
        Horizontal padding of window switcher entries in pixels.
@@ -160,7 +159,11 @@ elements are not listed here, but are supported.
 
 *osd.window-switcher.item.padding.y*
        Vertical padding of window switcher entries in pixels.
-       Default is 6.
+       Default is 1.
+
+*osd.window-switcher.item.active.border.width*
+       Border width of the selection box in the window switcher in pixels.
+       Default is 2.
 
 *border.color*
        Set all border colors. This is obsolete, but supported for backward
index 03bb3216c22f507acab7959a28a6812d844c5142..2e7e4f6be5541097e2d4a4cf30991452a7d69853 100644 (file)
@@ -54,6 +54,7 @@ osd.border.width: 1
 osd.label.text.color: #000000
 
 osd.window-switcher.width: 600
-osd.window-switcher.padding: 1
+osd.window-switcher.padding: 4
 osd.window-switcher.item.padding.x: 10
-osd.window-switcher.item.padding.y: 6
+osd.window-switcher.item.padding.y: 1
+osd.window-switcher.item.active.border.width: 2
index df6fbab22362bbb39487f64fa62f207bfc6e3bdb..5d3e848b916131b99367801cb81585f82f70e960 100644 (file)
@@ -71,6 +71,7 @@ struct theme {
        int osd_window_switcher_padding;
        int osd_window_switcher_item_padding_x;
        int osd_window_switcher_item_padding_y;
+       int osd_window_switcher_item_active_border_width;
 
        /* textures */
        struct lab_data_buffer *xbm_close_active_unpressed;
index f95d8031e0e7d72e336df419220480926fde5a34..f011259cd59701d0ea61a256339d732a2834d201 100644 (file)
--- a/src/osd.c
+++ b/src/osd.c
@@ -339,12 +339,10 @@ render_osd(struct server *server, cairo_t *cairo, int w, int h,
        struct buf buf;
        buf_init(&buf);
 
-       /*
-        * Subtract 4x border-width to allow for both the OSD border and the
-        * item border. This is the width of the area available for text fields.
-        */
-       int available_width = w - 4 * theme->osd_border_width
-               - 2 * theme->osd_window_switcher_padding;
+       /* This is the width of the area available for text fields */
+       int available_width = w - 2 * theme->osd_border_width
+               - 2 * theme->osd_window_switcher_padding
+               - 2 * theme->osd_window_switcher_item_active_border_width;
 
        /* Draw text for each node */
        wl_list_for_each_reverse(node, node_list, link) {
@@ -412,14 +410,15 @@ render_osd(struct server *server, cairo_t *cairo, int w, int h,
                        /* Highlight current window */
                        struct wlr_fbox fbox = {
                                .x = theme->osd_border_width + theme->osd_window_switcher_padding,
-                               .y = y - theme->osd_border_width,
+                               .y = y - theme->osd_window_switcher_item_active_border_width,
                                .width = theme->osd_window_switcher_width
                                        - 2 * theme->osd_border_width
                                        - 2 * theme->osd_window_switcher_padding,
                                .height = theme->osd_window_switcher_item_height
-                                       + 2 * theme->osd_border_width,
+                                       + theme->osd_window_switcher_item_active_border_width,
                        };
-                       draw_cairo_border(cairo, fbox, theme->osd_border_width);
+                       draw_cairo_border(cairo, fbox,
+                               theme->osd_window_switcher_item_active_border_width);
                        cairo_stroke(cairo);
                }
 
index 03d54a9ef39fa26f8e53aa314cd4adad5ebc122c..f8bfa6154c561e86fe0e3fe1cb55a6889b956aab 100644 (file)
@@ -141,9 +141,10 @@ theme_builtin(struct theme *theme)
        parse_hexstr("#888888", theme->menu_separator_color);
 
        theme->osd_window_switcher_width = 600;
-       theme->osd_window_switcher_padding = INT_MIN;
+       theme->osd_window_switcher_padding = 4;
        theme->osd_window_switcher_item_padding_x = 10;
-       theme->osd_window_switcher_item_padding_y = 6;
+       theme->osd_window_switcher_item_padding_y = 1;
+       theme->osd_window_switcher_item_active_border_width = 2;
 
        /* inherit settings in post_processing() if not set elsewhere */
        theme->osd_bg_color[0] = FLT_MIN;
@@ -321,6 +322,9 @@ entry(struct theme *theme, const char *key, const char *value)
        if (match_glob(key, "osd.window-switcher.item.padding.y")) {
                theme->osd_window_switcher_item_padding_y = atoi(value);
        }
+       if (match_glob(key, "osd.window-switcher.item.active.border.width")) {
+               theme->osd_window_switcher_item_active_border_width = atoi(value);
+       }
        if (match_glob(key, "osd.label.text.color")) {
                parse_hexstr(value, theme->osd_label_text_color);
        }
@@ -558,9 +562,6 @@ post_processing(struct theme *theme)
        if (theme->osd_border_width == INT_MIN) {
                theme->osd_border_width = theme->border_width;
        }
-       if (theme->osd_window_switcher_padding == INT_MIN) {
-               theme->osd_window_switcher_padding = theme->osd_border_width;
-       }
        if (theme->osd_label_text_color[0] == FLT_MIN) {
                memcpy(theme->osd_label_text_color,
                        theme->window_active_label_text_color,