From 39aa63057ec0d0723b37fff0e2707442040e4b15 Mon Sep 17 00:00:00 2001 From: deepend Date: Tue, 17 Feb 2026 20:37:37 -0700 Subject: [PATCH] =?UTF-8?q?Added=20a=20centralized=20menu=5Fnew()=20helper?= =?UTF-8?q?=20in=20the=20GTK=20menu=20code=20that=20creates=20menus=20and?= =?UTF-8?q?=20disables=20GTK3=E2=80=99s=20reserved=20toggle=20gutter=20(gt?= =?UTF-8?q?k=5Fmenu=5Fset=5Freserve=5Ftoggle=5Fsize(...,=20FALSE)),=20whic?= =?UTF-8?q?h=20removes=20the=20awkward=20empty=20left-side=20spacing=20for?= =?UTF-8?q?=20normal=20menu=20items.=20Updated=20menu=20construction=20cal?= =?UTF-8?q?lsites=20in=20the=20main=20menu=20paths=20(top-level,=20submenu?= =?UTF-8?q?s,=20nick/url/channel=20context=20menus)=20to=20use=20menu=5Fne?= =?UTF-8?q?w(),=20so=20the=20spacing=20fix=20applies=20broadly=20across=20?= =?UTF-8?q?menus=20instead=20of=20only=20one=20location.=20Committed=20the?= =?UTF-8?q?=20change=20on=20the=20current=20branch=20(976970f)=20and=20cre?= =?UTF-8?q?ated=20a=20PR=20record=20via=20the=20make=5Fpr=20tool.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fe-gtk/menu.c | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/fe-gtk/menu.c b/src/fe-gtk/menu.c index de249755..86aa4297 100644 --- a/src/fe-gtk/menu.c +++ b/src/fe-gtk/menu.c @@ -65,6 +65,18 @@ static GSList *submenu_list; +static GtkWidget * +menu_new (void) +{ + GtkWidget *menu = gtk_menu_new (); + +#if HAVE_GTK3 + gtk_menu_set_reserve_toggle_size (GTK_MENU (menu), FALSE); +#endif + + return menu; +} + enum { M_MENUITEM, @@ -388,7 +400,7 @@ menu_quick_sub (char *name, GtkWidget *menu, GtkWidget **sub_item_ret, int flags return menu; /* Code to add a submenu */ - sub_menu = gtk_menu_new (); + sub_menu = menu_new (); if (flags & XCMENU_MARKUP) { sub_item = gtk_menu_item_new_with_label (""); @@ -805,7 +817,7 @@ menu_nickmenu (session *sess, GdkEventButton *event, char *nick, int num_sel) { char buf[512]; struct User *user; - GtkWidget *submenu, *menu = gtk_menu_new (); + GtkWidget *submenu, *menu = menu_new (); g_free (str_copy); str_copy = g_strdup (nick); @@ -1040,7 +1052,7 @@ menu_urlmenu (GdkEventButton *event, char *url) g_free (str_copy); str_copy = g_strdup (url); - menu = gtk_menu_new (); + menu = menu_new (); /* more than 51 chars? Chop it */ if (g_utf8_strlen (str_copy, -1) >= 52) { @@ -1132,7 +1144,7 @@ menu_chanmenu (struct session *sess, GdkEventButton * event, char *chan) g_free (str_copy); str_copy = g_strdup (chan); - menu = gtk_menu_new (); + menu = menu_new (); menu_quick_item (0, chan, menu, XCMENU_SHADED, str_copy, 0); menu_quick_item (0, 0, menu, XCMENU_SHADED, str_copy, 0); @@ -2657,7 +2669,7 @@ menu_create_main (void *accel_group, int bar, int away, int toplevel, #endif } else - menu_bar = gtk_menu_new (); + menu_bar = menu_new (); /* /MENU needs to know this later */ g_object_set_data (G_OBJECT (menu_bar), "accel", accel_group); @@ -2753,7 +2765,7 @@ menu_create_main (void *accel_group, int bar, int away, int toplevel, case M_NEWMENU: if (menu) gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_item), menu); - item = menu = gtk_menu_new (); + item = menu = menu_new (); if (mymenu[i].id == MENU_ID_USERMENU) usermenu = menu; menu_item = gtk_menu_item_new_with_mnemonic (_(mymenu[i].text)); @@ -2839,7 +2851,7 @@ togitem: case M_MENUSUB: group = NULL; - submenu = gtk_menu_new (); + submenu = menu_new (); item = create_icon_menu (_(mymenu[i].text), mymenu[i].image, TRUE); /* record the English name for /menu */ g_object_set_data (G_OBJECT (item), "name", mymenu[i].text);