From f6b78bd167ed560920412dc773c478bec7cc6318 Mon Sep 17 00:00:00 2001 From: deepend Date: Wed, 18 Feb 2026 00:32:42 -0700 Subject: [PATCH] Standardized GTK menu-icon fallback mapping so stock names for Save As, Previous, and Next now resolve through the bundled zc-menu-* icon family (and map back correctly on GTK2), ensuring these menu actions use the same icon set path as the rest of your menu icons. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated search controls in the main UI to use zc-menu-previous / zc-menu-next and to load through gtkutil_image_new_from_stock(...), so those menu-sized icons are rendered from the same data/icons/menu resources instead of theme-dependent icon names. Updated URL Grabber and Raw Log “Save As” icon constants to use zc-menu-save-as for consistency with the menu icon set. Added new menu SVGs (save-as, previous, next) in both light and dark variants, and registered all of them in the GResource manifest so they’re available cross-platform from the bundled resource system. --- data/icons/menu/dark/next.svg | 3 +++ data/icons/menu/dark/previous.svg | 3 +++ data/icons/menu/dark/save-as.svg | 6 ++++++ data/icons/menu/light/next.svg | 3 +++ data/icons/menu/light/previous.svg | 3 +++ data/icons/menu/light/save-as.svg | 6 ++++++ data/zoitechat.gresource.xml | 6 ++++++ src/fe-gtk/gtkutil.c | 6 ++++++ src/fe-gtk/maingui.c | 10 +++++----- src/fe-gtk/rawlog.c | 2 +- src/fe-gtk/urlgrab.c | 2 +- 11 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 data/icons/menu/dark/next.svg create mode 100644 data/icons/menu/dark/previous.svg create mode 100644 data/icons/menu/dark/save-as.svg create mode 100644 data/icons/menu/light/next.svg create mode 100644 data/icons/menu/light/previous.svg create mode 100644 data/icons/menu/light/save-as.svg diff --git a/data/icons/menu/dark/next.svg b/data/icons/menu/dark/next.svg new file mode 100644 index 00000000..9a61599d --- /dev/null +++ b/data/icons/menu/dark/next.svg @@ -0,0 +1,3 @@ + diff --git a/data/icons/menu/dark/previous.svg b/data/icons/menu/dark/previous.svg new file mode 100644 index 00000000..1f6c39a0 --- /dev/null +++ b/data/icons/menu/dark/previous.svg @@ -0,0 +1,3 @@ + diff --git a/data/icons/menu/dark/save-as.svg b/data/icons/menu/dark/save-as.svg new file mode 100644 index 00000000..642442d0 --- /dev/null +++ b/data/icons/menu/dark/save-as.svg @@ -0,0 +1,6 @@ + diff --git a/data/icons/menu/light/next.svg b/data/icons/menu/light/next.svg new file mode 100644 index 00000000..e2427e28 --- /dev/null +++ b/data/icons/menu/light/next.svg @@ -0,0 +1,3 @@ + diff --git a/data/icons/menu/light/previous.svg b/data/icons/menu/light/previous.svg new file mode 100644 index 00000000..bf85619d --- /dev/null +++ b/data/icons/menu/light/previous.svg @@ -0,0 +1,3 @@ + diff --git a/data/icons/menu/light/save-as.svg b/data/icons/menu/light/save-as.svg new file mode 100644 index 00000000..a0e43f07 --- /dev/null +++ b/data/icons/menu/light/save-as.svg @@ -0,0 +1,6 @@ + diff --git a/data/zoitechat.gresource.xml b/data/zoitechat.gresource.xml index b42f4044..0be80d77 100644 --- a/data/zoitechat.gresource.xml +++ b/data/zoitechat.gresource.xml @@ -39,9 +39,12 @@ icons/menu/light/remove.svg icons/menu/light/spell-check.svg icons/menu/light/save.svg + icons/menu/light/save-as.svg icons/menu/light/refresh.svg icons/menu/light/search.svg icons/menu/light/find.svg + icons/menu/light/previous.svg + icons/menu/light/next.svg icons/menu/light/help.svg icons/menu/light/about.svg @@ -63,9 +66,12 @@ icons/menu/dark/remove.svg icons/menu/dark/spell-check.svg icons/menu/dark/save.svg + icons/menu/dark/save-as.svg icons/menu/dark/refresh.svg icons/menu/dark/search.svg icons/menu/dark/find.svg + icons/menu/dark/previous.svg + icons/menu/dark/next.svg icons/menu/dark/help.svg icons/menu/dark/about.svg diff --git a/src/fe-gtk/gtkutil.c b/src/fe-gtk/gtkutil.c index 1a005c66..4076afc8 100644 --- a/src/fe-gtk/gtkutil.c +++ b/src/fe-gtk/gtkutil.c @@ -88,9 +88,12 @@ gtkutil_menu_custom_icon_from_stock (const char *stock_name) { "gtk-remove", "zc-menu-remove" }, { "gtk-spell-check", "zc-menu-spell-check" }, { "gtk-save", "zc-menu-save" }, + { "gtk-save-as", "zc-menu-save-as" }, { "gtk-refresh", "zc-menu-refresh" }, { "gtk-justify-left", "zc-menu-search" }, { "gtk-find", "zc-menu-find" }, + { "gtk-go-back", "zc-menu-previous" }, + { "gtk-go-forward", "zc-menu-next" }, { "gtk-help", "zc-menu-help" }, { "gtk-about", "zc-menu-about" }, }; @@ -136,9 +139,12 @@ gtkutil_stock_from_menu_custom_icon (const char *custom_icon) { "zc-menu-remove", GTK_STOCK_REMOVE }, { "zc-menu-spell-check", GTK_STOCK_SPELL_CHECK }, { "zc-menu-save", GTK_STOCK_SAVE }, + { "zc-menu-save-as", GTK_STOCK_SAVE_AS }, { "zc-menu-refresh", GTK_STOCK_REFRESH }, { "zc-menu-search", GTK_STOCK_JUSTIFY_LEFT }, { "zc-menu-find", GTK_STOCK_FIND }, + { "zc-menu-previous", GTK_STOCK_GO_BACK }, + { "zc-menu-next", GTK_STOCK_GO_FORWARD }, { "zc-menu-help", GTK_STOCK_HELP }, { "zc-menu-about", GTK_STOCK_ABOUT }, }; diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index e40a0e0b..20dad6b8 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -63,8 +63,8 @@ #if HAVE_GTK3 #define ICON_TAB_DETACH "zc-menu-detach" #define ICON_TAB_CLOSE "zc-menu-close" -#define ICON_TAB_PREVIOUS "go-previous" -#define ICON_TAB_NEXT "go-next" +#define ICON_TAB_PREVIOUS "zc-menu-previous" +#define ICON_TAB_NEXT "zc-menu-next" #define ICON_ENTRY_ERROR "dialog-error" #endif #if !HAVE_GTK3 @@ -3464,7 +3464,7 @@ mg_create_search(session *sess, GtkWidget *box) close = gtk_button_new (); #if HAVE_GTK3 - gtk_button_set_image (GTK_BUTTON (close), gtk_image_new_from_icon_name (ICON_TAB_CLOSE, GTK_ICON_SIZE_MENU)); + gtk_button_set_image (GTK_BUTTON (close), gtkutil_image_new_from_stock (ICON_TAB_CLOSE, GTK_ICON_SIZE_MENU)); #endif #if !HAVE_GTK3 gtk_button_set_image (GTK_BUTTON (close), gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU)); @@ -3489,7 +3489,7 @@ mg_create_search(session *sess, GtkWidget *box) previous = gtk_button_new (); #if HAVE_GTK3 - gtk_button_set_image (GTK_BUTTON (previous), gtk_image_new_from_icon_name (ICON_TAB_PREVIOUS, GTK_ICON_SIZE_MENU)); + gtk_button_set_image (GTK_BUTTON (previous), gtkutil_image_new_from_stock (ICON_TAB_PREVIOUS, GTK_ICON_SIZE_MENU)); #endif #if !HAVE_GTK3 gtk_button_set_image (GTK_BUTTON (previous), gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_MENU)); @@ -3501,7 +3501,7 @@ mg_create_search(session *sess, GtkWidget *box) next = gtk_button_new (); #if HAVE_GTK3 - gtk_button_set_image (GTK_BUTTON (next), gtk_image_new_from_icon_name (ICON_TAB_NEXT, GTK_ICON_SIZE_MENU)); + gtk_button_set_image (GTK_BUTTON (next), gtkutil_image_new_from_stock (ICON_TAB_NEXT, GTK_ICON_SIZE_MENU)); #endif #if !HAVE_GTK3 gtk_button_set_image (GTK_BUTTON (next), gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_MENU)); diff --git a/src/fe-gtk/rawlog.c b/src/fe-gtk/rawlog.c index dc8c1c1f..7a3438cf 100644 --- a/src/fe-gtk/rawlog.c +++ b/src/fe-gtk/rawlog.c @@ -44,7 +44,7 @@ #if HAVE_GTK3 #define ICON_RAWLOG_CLEAR "zc-menu-clear" -#define ICON_RAWLOG_SAVE_AS "zc-menu-save" +#define ICON_RAWLOG_SAVE_AS "zc-menu-save-as" #endif #if !HAVE_GTK3 #define ICON_RAWLOG_CLEAR GTK_STOCK_CLEAR diff --git a/src/fe-gtk/urlgrab.c b/src/fe-gtk/urlgrab.c index f71f7f60..3b919ef5 100644 --- a/src/fe-gtk/urlgrab.c +++ b/src/fe-gtk/urlgrab.c @@ -36,7 +36,7 @@ #if HAVE_GTK3 #define ICON_URLGRAB_CLEAR "zc-menu-clear" #define ICON_URLGRAB_COPY "zc-menu-copy" -#define ICON_URLGRAB_SAVE_AS "zc-menu-save" +#define ICON_URLGRAB_SAVE_AS "zc-menu-save-as" #endif #if !HAVE_GTK3 #define ICON_URLGRAB_CLEAR GTK_STOCK_CLEAR