Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package bemenu for openSUSE:Factory checked 
in at 2024-07-08 19:08:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bemenu (Old)
 and      /work/SRC/openSUSE:Factory/.bemenu.new.2080 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bemenu"

Mon Jul  8 19:08:44 2024 rev:26 rq:1186089 version:0.6.22

Changes:
--------
--- /work/SRC/openSUSE:Factory/bemenu/bemenu.changes    2024-03-13 
22:20:19.768143900 +0100
+++ /work/SRC/openSUSE:Factory/.bemenu.new.2080/bemenu.changes  2024-07-08 
19:09:08.692681216 +0200
@@ -1,0 +2,12 @@
+Mon Jul  8 07:02:19 UTC 2024 - Michael Vetter <mvet...@suse.com>
+
+- Update to 0.6.22:
+  * Clipboard fixes/improvements #405
+  * Fix: Transparency on the filter reveals a rectangle behind it
+    that shouldn't be there. #404
+  * Fix osx build failing. #406
+  * Correctness fixes (memory leaks, compiler warning, out-of-bounds
+    read) #411
+  * Border fixes (fixes: #399) #407
+
+-------------------------------------------------------------------

Old:
----
  bemenu-0.6.21.tar.gz

New:
----
  bemenu-0.6.22.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bemenu.spec ++++++
--- /var/tmp/diff_new_pack.iS5qi1/_old  2024-07-08 19:09:09.276702575 +0200
+++ /var/tmp/diff_new_pack.iS5qi1/_new  2024-07-08 19:09:09.280702721 +0200
@@ -18,7 +18,7 @@
 
 %define bcond_with curses
 Name:           bemenu
-Version:        0.6.21
+Version:        0.6.22
 Release:        0
 Summary:        Dynamic menu library and client program inspired by dmenu
 License:        MIT

++++++ bemenu-0.6.21.tar.gz -> bemenu-0.6.22.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/README.md new/bemenu-0.6.22/README.md
--- old/bemenu-0.6.21/README.md 2024-03-13 03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/README.md 2024-07-08 01:51:20.000000000 +0200
@@ -85,7 +85,7 @@
 | x11      | x11, xinerama, cairo, pango, pangocairo                           
     |
 | Wayland  | wayland-client, wayland-protocols, cairo, pango, pangocairo, 
xkbcommon |
 
-Currently, pasting from clipboard is done at runtime with `wl-paste -t 
text/plain` and `xclip -t text/plain -out`, attempted in that order.
+Currently, pasting from clipboard is done at runtime with `wl-paste` and 
`xclip`, attempted in that order.
 
 ### Installing the dependencies
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/VERSION new/bemenu-0.6.22/VERSION
--- old/bemenu-0.6.21/VERSION   2024-03-13 03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/VERSION   2024-07-08 01:51:20.000000000 +0200
@@ -1 +1 @@
-0.6.21
+0.6.22
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/client/common/common.c 
new/bemenu-0.6.22/client/common/common.c
--- old/bemenu-0.6.21/client/common/common.c    2024-03-13 03:28:12.000000000 
+0100
+++ new/bemenu-0.6.22/client/common/common.c    2024-07-08 01:51:20.000000000 
+0200
@@ -363,7 +363,7 @@
             {
                 char *ptr;
                 client->lines = strtol(optarg, &ptr, 10);
-                client->lines_mode = (!strcmp(ptr + 1, "up") ? BM_LINES_UP : 
BM_LINES_DOWN);
+                client->lines_mode = (*ptr && !strcmp(ptr + 1, "up") ? 
BM_LINES_UP : BM_LINES_DOWN);
                 break;
             }
             case 'c':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/default.nix 
new/bemenu-0.6.22/default.nix
--- old/bemenu-0.6.21/default.nix       2024-03-13 03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/default.nix       2024-07-08 01:51:20.000000000 +0200
@@ -19,10 +19,13 @@
 with lib;
 
 let
-  src = ./.;
-  version = readFile "${src}/VERSION";
+  version = readFile ./VERSION;
 in stdenv.mkDerivation {
-  inherit src version;
+  src = with fileset; toSource {
+    root = ./.;
+    fileset = unions [ ./VERSION ./GNUmakefile ./bemenu.pc.in ./scripts ./lib 
./man ./client ];
+  };
+  inherit version;
   pname = "bemenu";
 
   strictDeps = true;
@@ -64,6 +67,11 @@
     done
   '';
 
+  doCheck = stdenv.isLinux;
+  checkPhase = ''
+    make check-symbols
+  '';
+
   meta = {
     homepage = "https://github.com/Cloudef/bemenu";;
     description = "Dynamic menu library and client program inspired by dmenu";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/bemenu.h 
new/bemenu-0.6.22/lib/bemenu.h
--- old/bemenu-0.6.21/lib/bemenu.h      2024-03-13 03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/bemenu.h      2024-07-08 01:51:20.000000000 +0200
@@ -256,7 +256,8 @@
     BM_KEY_LINE_DELETE_LEFT,
     BM_KEY_LINE_DELETE_RIGHT,
     BM_KEY_WORD_DELETE,
-    BM_KEY_PASTE,
+    BM_KEY_PASTE_PRIMARY,
+    BM_KEY_PASTE_CLIPBOARD,
     BM_KEY_TAB,
     BM_KEY_SHIFT_TAB,
     BM_KEY_ESCAPE,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/list.c new/bemenu-0.6.22/lib/list.c
--- old/bemenu-0.6.21/lib/list.c        2024-03-13 03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/list.c        2024-07-08 01:51:20.000000000 +0200
@@ -64,7 +64,7 @@
     }
 
     void *new_items;
-    if (!(new_items = calloc(sizeof(void*), nmemb)))
+    if (!(new_items = calloc(nmemb, sizeof(void*))))
         return false;
 
     memcpy(new_items, items, sizeof(void*) * nmemb);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/menu.c new/bemenu-0.6.22/lib/menu.c
--- old/bemenu-0.6.21/lib/menu.c        2024-03-13 03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/menu.c        2024-07-08 01:51:20.000000000 +0200
@@ -767,7 +767,7 @@
     assert(menu);
 
     struct bm_item **new_items;
-    if (!(new_items = calloc(sizeof(struct bm_item*), nmemb)))
+    if (!(new_items = calloc(nmemb, sizeof(struct bm_item*))))
         return 0;
 
     memcpy(new_items, items, sizeof(struct bm_item*) * nmemb);
@@ -1150,9 +1150,18 @@
             }
             break;
 
-        case BM_KEY_PASTE:
+        case BM_KEY_PASTE_PRIMARY:
+        case BM_KEY_PASTE_CLIPBOARD:
             {
-                char *paster[] = {"wl-paste -t text/plain", "xclip -t 
text/plain -out"};
+                char *paster[2] = {NULL, NULL};
+                if (key == BM_KEY_PASTE_PRIMARY) {
+                    paster[0] = "wl-paste -t text -p";
+                    paster[1] = "xclip -t UTF8_STRING -out";
+                } else {
+                    paster[0] = "wl-paste -t text";
+                    paster[1] = "xclip -t UTF8_STRING -out -selection 
clipboard";
+                }
+
                 for (size_t paster_i = 0; paster_i < sizeof paster / sizeof 
paster[0]; paster_i++) {
                     FILE *clipboard = popen(paster[paster_i], "r");
                     if (clipboard == NULL) {
@@ -1390,7 +1399,6 @@
     }
 
     if (count_down == 2) {
-        int16_t scroll_count = 0;
         int16_t scroll_directions[2];
         int16_t distance_trigger = displayed * bm_menu_get_line_height(menu) / 
4;
         for (size_t i = 0; i < 2; ++i) {
@@ -1401,7 +1409,6 @@
             int32_t movement_y = point.pos_y - point.start_y;
             if (abs(movement_y) > distance_trigger) {
                 scroll_directions[i] = movement_y / abs(movement_y);
-                scroll_count++;
             }
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/renderers/cairo_renderer.h 
new/bemenu-0.6.22/lib/renderers/cairo_renderer.h
--- old/bemenu-0.6.21/lib/renderers/cairo_renderer.h    2024-03-13 
03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/renderers/cairo_renderer.h    2024-07-08 
01:51:20.000000000 +0200
@@ -67,7 +67,7 @@
     if (!(cairo->pango = pango_cairo_create_context(cairo->cr)))
         goto fail;
 
-    cairo_set_antialias(cairo->cr, CAIRO_ANTIALIAS_NONE);
+    cairo_set_antialias(cairo->cr, CAIRO_ANTIALIAS_DEFAULT);
 
     cairo->surface = surface;
     assert(cairo->scale > 0);
@@ -85,6 +85,8 @@
 {
     if (cairo->cr)
         cairo_destroy(cairo->cr);
+    if (cairo->pango)
+        g_object_unref(cairo->pango);
     if (cairo->surface)
         cairo_surface_destroy(cairo->surface);
 }
@@ -130,6 +132,7 @@
 static inline bool
 bm_cairo_draw_line_str(struct cairo *cairo, struct cairo_paint *paint, struct 
cairo_result *result, const char *buffer)
 {
+    cairo_save(cairo->cr);
     PangoLayout *layout = bm_pango_get_layout(cairo, paint, buffer);
     pango_cairo_update_layout(cairo->cr, layout);
 
@@ -188,6 +191,7 @@
     result->height = line_height;
 
     cairo_identity_matrix(cairo->cr);
+    cairo_restore(cairo->cr);
     return true;
 }
 
@@ -260,17 +264,19 @@
 }
 
 static inline void
-bm_cairo_draw_rounded_path(cairo_t *cr, double x, double y, double width, 
double height, double radius)
+bm_cairo_rounded_path(cairo_t *cr, double x, double y, double width, double 
height, double radius)
 {
+    double adjusted_radius = MIN(MIN(radius, height * 0.5), width * 0.5); /* 
Prevent border from intersecting itself. */
     double degrees = M_PI / 180;
     cairo_new_sub_path(cr);
-    cairo_arc(cr, x + width - radius, y + radius, radius, -90 * degrees, 0 * 
degrees);
-    cairo_arc(cr, x + width - radius, y + height - radius, radius, 0 * 
degrees, 90 * degrees);
-    cairo_arc(cr, x + radius, y + height - radius, radius, 90 * degrees, 180 * 
degrees);
-    cairo_arc(cr, x + radius, y + radius, radius, 180 * degrees, 270 * 
degrees);
+    cairo_arc(cr, x + width - adjusted_radius, y + adjusted_radius, 
adjusted_radius, -90 * degrees, 0 * degrees);
+    cairo_arc(cr, x + width - adjusted_radius, y + height - adjusted_radius, 
adjusted_radius, 0 * degrees, 90 * degrees);
+    cairo_arc(cr, x + adjusted_radius, y + height - adjusted_radius, 
adjusted_radius, 90 * degrees, 180 * degrees);
+    cairo_arc(cr, x + adjusted_radius, y + adjusted_radius, adjusted_radius, 
180 * degrees, 270 * degrees);
     cairo_close_path(cr);
 }
 
+
 static inline void
 bm_cairo_paint(struct cairo *cairo, uint32_t width, uint32_t max_height, 
struct bm_menu *menu, struct cairo_paint_result *out_result)
 {
@@ -302,11 +308,9 @@
     uint32_t filtered_item_count;
     bm_menu_get_filtered_items(menu, &filtered_item_count);
 
-    cairo_set_source_rgba(cairo->cr, 0, 0, 0, 0);
-    cairo_rectangle(cairo->cr, 0, 0, width, height);
-
     cairo_save(cairo->cr);
     cairo_set_operator(cairo->cr, CAIRO_OPERATOR_CLEAR);
+    cairo_reset_clip(cairo->cr);
     cairo_paint(cairo->cr);
     cairo_restore(cairo->cr);
 
@@ -323,6 +327,16 @@
     memset(&result, 0, sizeof(result));
     uint32_t title_x = 0;
 
+    uint32_t total_height=menu->lines*height; /*Total height of the full menu*/
+    if (!menu->fixed_height){
+        total_height = MIN(count*height, total_height);
+    }
+    total_height += height+border_size*2;
+    total_height = MIN(total_height, (max_height/height)*height);
+
+    bm_cairo_rounded_path(cairo->cr, 1, 1, ((width + 
border_size)/cairo->scale)-2, total_height-2, border_radius);
+    cairo_clip(cairo->cr);
+
     if (menu->title) {
         /* Essentially hide the title text if we are drawing lines "up". */
         enum bm_color title_fg = (menu->lines_mode == BM_LINES_UP ? 
BM_COLOR_ITEM_BG : BM_COLOR_TITLE_FG);
@@ -347,7 +361,7 @@
     paint.cursor = menu->cursor;
     paint.cursor_height = menu->cursor_height;
     paint.cursor_width = menu->cursor_width;
-    paint.pos = (struct pos){ (menu->title ? 2 : 0) + result.x_advance + 
border_size, vpadding + border_size };
+    paint.pos = (struct pos){ (menu->title ? 6 : 0) + result.x_advance + 
border_size, vpadding + border_size };
     paint.box = (struct box){ (menu->title ? 2 : 4), 0, vpadding, -vpadding, 
width - paint.pos.x, height };
 
     if (menu->lines == 0 || menu->lines_mode == BM_LINES_DOWN) {
@@ -585,9 +599,9 @@
     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)/cairo->scale, 
(height * (page_length + 1)) + (2 * border_size));
+        cairo_rectangle(cairo->cr, 0, 0, (width + border_size)/cairo->scale, 
total_height);
     } else {
-        bm_cairo_draw_rounded_path(cairo->cr, 0, 0, (width + 
border_size)/cairo->scale, (height * (page_length + 1)) + (2 * border_size), 
border_radius);
+        bm_cairo_rounded_path(cairo->cr, 1, 1, ((width + 
border_size)/cairo->scale)-2, total_height-2, border_radius);
     }
     cairo_set_line_width(cairo->cr, 2 * menu->border_size);
     
@@ -595,6 +609,7 @@
 
     out_result->height += 2 * border_size;
     out_result->height *= cairo->scale;
+    cairo_reset_clip(cairo->cr);
 }
 
 #endif /* _BM_CAIRO_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/renderers/curses/curses.c 
new/bemenu-0.6.22/lib/renderers/curses/curses.c
--- old/bemenu-0.6.21/lib/renderers/curses/curses.c     2024-03-13 
03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/renderers/curses/curses.c     2024-07-08 
01:51:20.000000000 +0200
@@ -238,7 +238,6 @@
     uint32_t count, cl = 0;
     const uint32_t lines = fmax(getmaxy(curses.stdscreen), 1) - 1;
     if (lines > 1) {
-        uint32_t displayed = 0;
         struct bm_item **items = bm_menu_get_filtered_items(menu, &count);
         const bool scrollbar = (menu->scrollbar > BM_SCROLLBAR_NONE && 
(menu->scrollbar != BM_SCROLLBAR_AUTOHIDE || count > lines) ? true : false);
         const int32_t offset_x = title_len + (scrollbar && 2 > title_len ? 2 - 
title_len : 0);
@@ -255,7 +254,6 @@
                 draw_line(color, 1 + cl++, "%*s%s%s", offset_x + prefix_x, "", 
(menu->prefix ? " " : ""), (items[i]->text ? items[i]->text : ""));
             }
 
-            ++displayed;
         }
 
         if (scrollbar) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/renderers/wayland/registry.c 
new/bemenu-0.6.22/lib/renderers/wayland/registry.c
--- old/bemenu-0.6.21/lib/renderers/wayland/registry.c  2024-03-13 
03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/renderers/wayland/registry.c  2024-07-08 
01:51:20.000000000 +0200
@@ -477,30 +477,27 @@
 {
     struct input *input = data;
 
-    if (!input->seat) {
-        input->seat = seat;
-    }
-
-    if (caps & WL_SEAT_CAPABILITY_KEYBOARD) {
+    if ((caps & WL_SEAT_CAPABILITY_KEYBOARD) && !input->keyboard) {
         input->keyboard = wl_seat_get_keyboard(seat);
         wl_keyboard_add_listener(input->keyboard, &keyboard_listener, data);
+    } else if (!(caps & WL_SEAT_CAPABILITY_KEYBOARD) && input->keyboard) {
+        wl_keyboard_destroy(input->keyboard);
+        input->keyboard = NULL;
     }
 
-    if (caps & WL_SEAT_CAPABILITY_POINTER) {
+    if ((caps & WL_SEAT_CAPABILITY_POINTER) && !input->pointer) {
         input->pointer = wl_seat_get_pointer(seat);
         wl_pointer_add_listener(input->pointer, &pointer_listener, data);
+    } else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && input->pointer) {
+        wl_pointer_destroy(input->pointer);
+        input->pointer = NULL;
     }
 
-    if (caps & WL_SEAT_CAPABILITY_TOUCH) {
+    if ((caps & WL_SEAT_CAPABILITY_TOUCH) && !input->touch) {
         input->touch = wl_seat_get_touch(seat);
         wl_touch_add_listener(input->touch, &wl_touch_listener, data);
-    }
-
-    if (seat == input->seat && !(caps & WL_SEAT_CAPABILITY_KEYBOARD) && !(caps 
& WL_SEAT_CAPABILITY_POINTER)) {
-        wl_keyboard_destroy(input->keyboard);
-        input->seat = NULL;
-        input->keyboard = NULL;
-        input->pointer = NULL;
+    } else if (!(caps & WL_SEAT_CAPABILITY_TOUCH) && input->touch) {
+        wl_touch_destroy(input->touch);
         input->touch = NULL;
     }
 }
@@ -631,9 +628,35 @@
 {
     assert(wayland);
 
+    if (wayland->input.keyboard)
+        wl_keyboard_destroy(wayland->input.keyboard);
+
+    if (wayland->input.pointer)
+        wl_pointer_destroy(wayland->input.pointer);
+
+    if (wayland->input.touch)
+        wl_touch_destroy(wayland->input.touch);
+
+    if (wayland->viewporter)
+        wp_viewporter_destroy(wayland->viewporter);
+
+    if (wayland->wfs_mgr)
+        wp_fractional_scale_manager_v1_destroy(wayland->wfs_mgr);
+
+    struct output *output, *output_tmp;
+    wl_list_for_each_safe(output, output_tmp, &wayland->outputs, link) {
+        wl_list_remove(&output->link);
+        wl_output_destroy(output->output);
+        free(output->name);
+        free(output);
+    }
+
     if (wayland->shm)
         wl_shm_destroy(wayland->shm);
 
+    if (wayland->seat)
+        wl_seat_destroy(wayland->seat);
+
     if (wayland->layer_shell)
         zwlr_layer_shell_v1_destroy(wayland->layer_shell);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/renderers/wayland/wayland.c 
new/bemenu-0.6.22/lib/renderers/wayland/wayland.c
--- old/bemenu-0.6.21/lib/renderers/wayland/wayland.c   2024-03-13 
03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/renderers/wayland/wayland.c   2024-07-08 
01:51:20.000000000 +0200
@@ -203,7 +203,10 @@
             return (mods & MOD_CTRL ? BM_KEY_RETURN : BM_KEY_UNICODE);
 
         case XKB_KEY_y:
-            return (mods & MOD_CTRL ? BM_KEY_PASTE : BM_KEY_UNICODE);
+            return (mods & MOD_CTRL ? BM_KEY_PASTE_PRIMARY : BM_KEY_UNICODE);
+
+        case XKB_KEY_Y:
+            return (mods & MOD_CTRL ? BM_KEY_PASTE_CLIPBOARD : BM_KEY_UNICODE);
 
         case XKB_KEY_1:
             if ((mods & MOD_ALT)) return BM_KEY_CUSTOM_1;
@@ -462,10 +465,11 @@
     (void)wl_surface;
     struct window *window = data;
 
-    struct surf_output *surf_output;
-    wl_list_for_each(surf_output, &window->surf_outputs, link) {
+    struct surf_output *surf_output, *surf_output_tmp;
+    wl_list_for_each_safe(surf_output, surf_output_tmp, &window->surf_outputs, 
link) {
         if (surf_output->output->output == wl_output) {
             wl_list_remove(&surf_output->link);
+            free(surf_output);
             break;
         }
     }
@@ -481,11 +485,12 @@
 static void
 destroy_windows(struct wayland *wayland)
 {
-    struct window *window;
-    wl_list_for_each(window, &wayland->windows, link) {
+    struct window *window, *window_tmp;
+    wl_list_for_each_safe(window, window_tmp, &wayland->windows, link) {
+        wl_list_remove(&window->link);
         bm_wl_window_destroy(window);
+        free(window);
     }
-    wl_list_init(&wayland->windows);
 }
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/renderers/wayland/wayland.h 
new/bemenu-0.6.22/lib/renderers/wayland/wayland.h
--- old/bemenu-0.6.21/lib/renderers/wayland/wayland.h   2024-03-13 
03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/renderers/wayland/wayland.h   2024-07-08 
01:51:20.000000000 +0200
@@ -81,7 +81,6 @@
 struct input {
     int *repeat_fd;
 
-    struct wl_seat *seat;
     struct wl_keyboard *keyboard;
     struct wl_pointer *pointer;
     struct wl_touch *touch;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/renderers/wayland/window.c 
new/bemenu-0.6.22/lib/renderers/wayland/window.c
--- old/bemenu-0.6.21/lib/renderers/wayland/window.c    2024-03-13 
03:28:12.000000000 +0100
+++ new/bemenu-0.6.22/lib/renderers/wayland/window.c    2024-07-08 
01:51:20.000000000 +0200
@@ -297,6 +297,12 @@
 
     if (window->surface)
         wl_surface_destroy(window->surface);
+
+    struct surf_output *surf_output, *surf_output_tmp;
+    wl_list_for_each_safe(surf_output, surf_output_tmp, &window->surf_outputs, 
link) {
+        wl_list_remove(&surf_output->link);
+        free(surf_output);
+    }
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/lib/renderers/x11/x11.c 
new/bemenu-0.6.22/lib/renderers/x11/x11.c
--- old/bemenu-0.6.21/lib/renderers/x11/x11.c   2024-03-13 03:28:12.000000000 
+0100
+++ new/bemenu-0.6.22/lib/renderers/x11/x11.c   2024-07-08 01:51:20.000000000 
+0200
@@ -150,7 +150,10 @@
             return (mods & MOD_CTRL ? BM_KEY_WORD_DELETE : BM_KEY_UNICODE);
 
         case XK_y:
-            return (mods & MOD_CTRL ? BM_KEY_PASTE : BM_KEY_UNICODE);
+            return (mods & MOD_CTRL ? BM_KEY_PASTE_PRIMARY : BM_KEY_UNICODE);
+
+        case XK_Y:
+            return (mods & MOD_CTRL ? BM_KEY_PASTE_CLIPBOARD : BM_KEY_UNICODE);
 
         case XK_j:
             return (mods & MOD_ALT ? BM_KEY_DOWN : BM_KEY_UNICODE);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bemenu-0.6.21/man/bemenu.1.scd.in 
new/bemenu-0.6.22/man/bemenu.1.scd.in
--- old/bemenu-0.6.21/man/bemenu.1.scd.in       2024-03-13 03:28:12.000000000 
+0100
+++ new/bemenu-0.6.22/man/bemenu.1.scd.in       2024-07-08 01:51:20.000000000 
+0200
@@ -298,8 +298,8 @@
 *C-w*
        Clear the filter.
 
-*C-y*
-       Paste the clipboard.
+*C-y, C-Y*
+       Paste selection (*C-y* for "primary", *C-Y* for "clipboard").
 
 *M-[1-9]*
        Print selected items and exit with a custom error code 10 (*M-1*)

Reply via email to