diff options
author | António Fernandes <antoniof@gnome.org> | 2021-12-31 13:29:57 +0000 |
---|---|---|
committer | António Fernandes <antoniof@gnome.org> | 2022-01-01 21:58:06 +0000 |
commit | 72b8c44450c1364fd981468fca1ec305be17e7b9 (patch) | |
tree | 8025dcdf8e4d8b798ad31cb73dddc01bb6a9fe51 | |
parent | 839203fe06bc746ed0e085e9ab3d49878d49727d (diff) | |
download | nautilus-72b8c44450c1364fd981468fca1ec305be17e7b9.tar.gz |
pathbar: Stop overriding GtkWidget.style_updated() and .screen_changed()
Both vfuncs are gone in GTK 4.
They were used for the sake of updating icons live the icon theme is
changed. I don't see any need for that. If GTK doesn't update the icons
automatically, the icon is updated next time the pathbar is updated for
other reasons (such as switching locations).
-rw-r--r-- | src/nautilus-pathbar.c | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/src/nautilus-pathbar.c b/src/nautilus-pathbar.c index 93842c5eb..9c95f67de 100644 --- a/src/nautilus-pathbar.c +++ b/src/nautilus-pathbar.c @@ -95,7 +95,6 @@ struct _NautilusPathBar gpointer current_button_data; GList *button_list; - gulong settings_signal_id; GActionGroup *action_group; @@ -111,9 +110,6 @@ struct _NautilusPathBar G_DEFINE_TYPE (NautilusPathBar, nautilus_path_bar, GTK_TYPE_BOX); -static void nautilus_path_bar_check_icon_theme (NautilusPathBar *self); -static void nautilus_path_bar_update_button_appearance (ButtonData *button_data, - gboolean current_dir); static void nautilus_path_bar_update_button_state (ButtonData *button_data, gboolean current_dir); static void nautilus_path_bar_update_path (NautilusPathBar *self, @@ -322,27 +318,9 @@ nautilus_path_bar_finalize (GObject *object) G_OBJECT_CLASS (nautilus_path_bar_parent_class)->finalize (object); } -/* Removes the settings signal handler. It's safe to call multiple times */ -static void -remove_settings_signal (NautilusPathBar *self, - GdkScreen *screen) -{ - GtkSettings *settings; - - settings = gtk_settings_get_for_screen (screen); - - g_clear_signal_handler (&self->settings_signal_id, settings); -} - static void nautilus_path_bar_dispose (GObject *object) { - NautilusPathBar *self; - - self = NAUTILUS_PATH_BAR (object); - - remove_settings_signal (self, gtk_widget_get_screen (GTK_WIDGET (object))); - G_OBJECT_CLASS (nautilus_path_bar_parent_class)->dispose (object); } @@ -388,30 +366,6 @@ get_dir_name (ButtonData *button_data) } static void -nautilus_path_bar_style_updated (GtkWidget *widget) -{ - GTK_WIDGET_CLASS (nautilus_path_bar_parent_class)->style_updated (widget); - - nautilus_path_bar_check_icon_theme (NAUTILUS_PATH_BAR (widget)); -} - -static void -nautilus_path_bar_screen_changed (GtkWidget *widget, - GdkScreen *previous_screen) -{ - if (GTK_WIDGET_CLASS (nautilus_path_bar_parent_class)->screen_changed) - { - GTK_WIDGET_CLASS (nautilus_path_bar_parent_class)->screen_changed (widget, previous_screen); - } - /* We might nave a new settings, so we remove the old one */ - if (previous_screen) - { - remove_settings_signal (NAUTILUS_PATH_BAR (widget), previous_screen); - } - nautilus_path_bar_check_icon_theme (NAUTILUS_PATH_BAR (widget)); -} - -static void button_data_free (ButtonData *button_data) { g_object_unref (button_data->path); @@ -433,17 +387,12 @@ static void nautilus_path_bar_class_init (NautilusPathBarClass *path_bar_class) { GObjectClass *gobject_class; - GtkWidgetClass *widget_class; gobject_class = (GObjectClass *) path_bar_class; - widget_class = (GtkWidgetClass *) path_bar_class; gobject_class->finalize = nautilus_path_bar_finalize; gobject_class->dispose = nautilus_path_bar_dispose; - widget_class->style_updated = nautilus_path_bar_style_updated; - widget_class->screen_changed = nautilus_path_bar_screen_changed; - path_bar_signals [OPEN_LOCATION] = g_signal_new ("open-location", G_OBJECT_CLASS_TYPE (path_bar_class), @@ -483,57 +432,6 @@ nautilus_path_bar_set_templates_menu (NautilusPathBar *self, g_idle_add ((GSourceFunc) bind_current_view_menu_model_to_popover, self); } -/* Changes the icons wherever it is needed */ -static void -reload_icons (NautilusPathBar *self) -{ - GList *list; - - for (list = self->button_list; list; list = list->next) - { - ButtonData *button_data; - - button_data = BUTTON_DATA (list->data); - if (button_data->type != NORMAL_BUTTON || button_data->is_root) - { - nautilus_path_bar_update_button_appearance (button_data, - list->next == NULL); - } - } -} - -/* Callback used when a GtkSettings value changes */ -static void -settings_notify_cb (GObject *object, - GParamSpec *pspec, - NautilusPathBar *self) -{ - const char *name; - - name = g_param_spec_get_name (pspec); - - if (!strcmp (name, "gtk-icon-theme-name") || !strcmp (name, "gtk-icon-sizes")) - { - reload_icons (self); - } -} - -static void -nautilus_path_bar_check_icon_theme (NautilusPathBar *self) -{ - GtkSettings *settings; - - if (self->settings_signal_id) - { - return; - } - - settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (self))); - self->settings_signal_id = g_signal_connect (settings, "notify", G_CALLBACK (settings_notify_cb), self); - - reload_icons (self); -} - /* Public functions and their helpers */ static void nautilus_path_bar_clear_buttons (NautilusPathBar *self) |