tMake selection border color stand out - spkp - Stacking wayland compositor
 (HTM) git clone git://git.z3bra.org/spkp.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
 (DIR) commit 08dafffce80305abfea7da9365ac9850f4b7f8c1
 (DIR) parent 34f80fafd1d2f50e2f89b12e551475067b261e4e
 (HTM) Author: Willy Goiffon <dev@z3bra.org>
       Date:   Sat, 14 Nov 2020 22:37:58 +0100
       
       Make selection border color stand out
       
       Diffstat:
         M config.def.h                        |       1 +
         M sp:kp.c                             |      11 ++++-------
       
       2 files changed, 5 insertions(+), 7 deletions(-)
       ---
 (DIR) diff --git a/config.def.h b/config.def.h
       t@@ -2,6 +2,7 @@ float background[4] = { 1, 1, 0.9, 1 };
        
        float bordercolor[4] = { 0.6, 0.6, 0.6, 0.7 };
        float activecolor[4] = { 0.2, 0.2, 0.2, 0.7 };
       +float drawcolor[4] = { 1, 0.2, 0.2, 0.7 };
        
        int bordersize = 6;
        
 (DIR) diff --git a/sp:kp.c b/sp:kp.c
       t@@ -195,7 +195,7 @@ static void cb_paint_cursor(struct wl_listener *, void *);
        static void add_keyboard(struct state *, struct wlr_input_device *);
        static void add_pointer(struct state *, struct wlr_input_device *);
        static void render(struct wlr_surface *, int, int, void *);
       -static void render_border(struct wlr_box *, struct rdata *, int);
       +static void render_border(struct wlr_box *, struct rdata *, float *);
        static void focus(struct window *);
        static int dropprivilege();
        static int keybinding(struct state *, uint32_t, uint32_t, enum wlr_key_state);
       t@@ -363,7 +363,7 @@ cb_frame_output(struct wl_listener *listener, void *data)
        
                struct state *server = output->server;
                if (server->grabmode != NORMAL)
       -                render_border(&server->grabbox, &rdata, 1);
       +                render_border(&server->grabbox, &rdata, drawcolor);
        
                /* render cursor by software in case the GPU doesn't handle it */
                wlr_output_render_software_cursors(wlr_output, NULL);
       t@@ -900,7 +900,7 @@ render(struct wlr_surface *surface, int x, int y, void *data)
        
                focus = window->server->seat->keyboard_state.focused_surface;
                if (surface == window->toplevel->surface)
       -                render_border(&box, rdata, (surface == focus));
       +                render_border(&box, rdata, (surface == focus) ? activecolor : bordercolor);
        
                wlr_matrix_project_box(matrix, &box, transform, 0, output->transform_matrix);
                wlr_render_texture_with_matrix(rdata->renderer, texture, matrix, 1);
       t@@ -908,13 +908,10 @@ render(struct wlr_surface *surface, int x, int y, void *data)
        }
        
        void
       -render_border(struct wlr_box *content, struct rdata *rdata, int active)
       +render_border(struct wlr_box *content, struct rdata *rdata, float *color)
        {
       -        float *color;
                struct wlr_box box;
        
       -        color = active ? activecolor : bordercolor;
       -
                /* top */
                box.x = content->x - bordersize;
                box.y = content->y - bordersize;