Subset of a possible fix: ```diff diff --git a/src/build.c b/src/build.c index 56ec9d613..3d94a683f 100644 --- a/src/build.c +++ b/src/build.c @@ -1898,7 +1898,7 @@ static RowWidgets *build_add_dialog_row(GeanyDocument *doc, GtkTable *table, gui GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding); } column++; - clearicon = gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU); + clearicon = gtk_image_new_from_icon_name("edit-clear-symbolic", GTK_ICON_SIZE_MENU); clear = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(clear), clearicon); g_signal_connect(clear, "clicked", G_CALLBACK(on_clear_dialog_row), roww); @@ -1995,7 +1995,7 @@ GtkWidget *build_commands_table(GeanyDocument *doc, GeanyBuildSource dst, BuildT } gtk_table_attach(table, fields->fileregex, DC_ENTRIES + 1, DC_CLEAR, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding); - clearicon = gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU); + clearicon = gtk_image_new_from_icon_name("edit-clear-symbolic", GTK_ICON_SIZE_MENU); clear = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(clear), clearicon); g_signal_connect_swapped(clear, "clicked", @@ -2029,7 +2029,7 @@ GtkWidget *build_commands_table(GeanyDocument *doc, GeanyBuildSource dst, BuildT } gtk_table_attach(table, fields->nonfileregex, DC_ENTRIES + 1, DC_CLEAR, row, row + 1, GTK_FILL, GTK_FILL | GTK_EXPAND, entry_x_padding, entry_y_padding); - clearicon = gtk_image_new_from_stock(GTK_STOCK_CLEAR, GTK_ICON_SIZE_MENU); + clearicon = gtk_image_new_from_icon_name("edit-clear-symbolic", GTK_ICON_SIZE_MENU); clear = gtk_button_new(); gtk_button_set_image(GTK_BUTTON(clear), clearicon); g_signal_connect_swapped(clear, "clicked", diff --git a/src/notebook.c b/src/notebook.c index ec00d3e96..df6f44f9d 100644 --- a/src/notebook.c +++ b/src/notebook.c @@ -746,7 +746,7 @@ gint notebook_new_tab(GeanyDocument *this) gtk_button_set_focus_on_click(GTK_BUTTON(btn), FALSE); gtk_widget_set_name(btn, "geany-close-tab-button");
- image = gtk_image_new_from_stock(GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU); + image = gtk_image_new_from_icon_name("window-close-symbolic", GTK_ICON_SIZE_MENU); gtk_container_add(GTK_CONTAINER(btn), image);
align = gtk_alignment_new(1.0, 0.5, 0.0, 0.0); diff --git a/src/ui_utils.c b/src/ui_utils.c index 34b26bc62..602d87080 100644 --- a/src/ui_utils.c +++ b/src/ui_utils.c @@ -1601,7 +1601,7 @@ static void entry_clear_icon_release_cb(GtkEntry *entry, gint icon_pos, GEANY_API_SYMBOL void ui_entry_add_clear_icon(GtkEntry *entry) { - g_object_set(entry, "secondary-icon-stock", GTK_STOCK_CLEAR, + g_object_set(entry, "secondary-icon-name", "edit-clear-symbolic", "secondary-icon-activatable", TRUE, NULL); g_signal_connect(entry, "icon-release", G_CALLBACK(entry_clear_icon_release_cb), NULL); } ```
IIUC in theory GTK icons should fall back on the non-symbolic version if the symbolic one is missing. Not sure if it plays any better if there's the same "one is there but not in the correct size" issue though.