Cloudef / bemenu

Dynamic menu library and client program inspired by dmenu
GNU General Public License v3.0
1.22k stars 94 forks source link

Border Missing on Right Side #321

Closed fictitiousexistence closed 1 year ago

fictitiousexistence commented 1 year ago

bemenu v0.6.13

Border is appliying all around bemenu except for the right side.

bemenu -b -l 10 -p ">>>" --tf "#f25805" --hf "#ff0000" --bdr "#ff0000" --nf "#f25805" --af "#f25805" --fn "Code New Roman" -B 5 -M 4

bemenu

merrittlj commented 1 year ago

The command seems to work fine for me. Could we get more details(distro, specs, window manager, etc)?

fictitiousexistence commented 1 year ago

I upgraded to v0.6.14 and its working now. Thanks.

stacyharper commented 1 year ago

I also relate this on master

stacyharper commented 1 year ago

seq 1 4 | LD_LIBRARY_PATH=. BEMENU_RENDERERS=. ./bemenu --fixed-height -l5 -B50

2023-02-21-15-41-47

It looks a little bit better with this change:

2023-02-21-15-42-44

diff --git a/lib/renderers/cairo_renderer.h b/lib/renderers/cairo_renderer.h                                                                                    
index e021b53..0b1d6ce 100644
--- a/lib/renderers/cairo_renderer.h
+++ b/lib/renderers/cairo_renderer.h
@@ -509,9 +509,9 @@ bm_cairo_paint(struct cairo *cairo, uint32_t width, uint32_t max_height, const s
     bm_cairo_color_from_menu_color(menu, BM_COLOR_BORDER, &paint.fg);
     cairo_set_source_rgba(cairo->cr, paint.fg.r, paint.fg.b, paint.fg.g, paint.fg.a);
     if (!border_radius) {
-        cairo_rectangle(cairo->cr, 0, 0, width + border_size, (height * (page_length + 1)) + (2 * border_size));
+        cairo_rectangle(cairo->cr, 0, 0, width/cairo->scale + border_size, (height * (page_length + 1)) + (2 * border_size));
     } else {
-        bm_cairo_draw_rounded_path(cairo->cr, 0, 0, width + border_size, (height * (page_length + 1)) + (2 * border_size), border_radius);
+        bm_cairo_draw_rounded_path(cairo->cr, 0, 0, width/cairo->scale + border_size, (height * (page_length + 1)) + (2 * border_size), border_radius);
     }
     cairo_set_line_width(cairo->cr, 2 * menu->border_size);
     cairo_stroke(cairo->cr);

But the right border still is thinner than the others

edited: I think I got it, I sent the patch