+static void
+ev_sidebar_attachments_screen_changed (GtkWidget *widget,
+ GdkScreen *old_screen)
+{
+ EvSidebarAttachments *ev_attachbar = EV_SIDEBAR_ATTACHMENTS (widget);
+ GdkScreen *screen;
+
+ if (!ev_attachbar->priv->icon_theme)
+ return;
+
+ screen = gtk_widget_get_screen (widget);
+ if (screen == old_screen)
+ return;
+
+ if (old_screen) {
+ g_signal_handlers_disconnect_by_func (
+ gtk_icon_theme_get_for_screen (old_screen),
+ G_CALLBACK (ev_sidebar_attachments_update_icons),
+ ev_attachbar);
+ }
+
+ ev_attachbar->priv->icon_theme = gtk_icon_theme_get_for_screen (screen);
+ g_signal_connect_swapped (ev_attachbar->priv->icon_theme,
+ "changed",
+ G_CALLBACK (ev_sidebar_attachments_update_icons),
+ (gpointer) ev_attachbar);
+
+ if (GTK_WIDGET_CLASS (ev_sidebar_attachments_parent_class)->screen_changed) {
+ GTK_WIDGET_CLASS (ev_sidebar_attachments_parent_class)->screen_changed (widget, old_screen);
+ }
+}
+