[gtk/fix-icontheme-invalidation: 6/14] css: Drop the -gtk-icon-theme property



commit 61e538fde9e80742fda847040ea7501bcc8e2afa
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Apr 21 08:46:35 2020 -0400

    css: Drop the -gtk-icon-theme property
    
    We want to always use the current icon theme, and only
    have the minimum amount of custom properties.

 docs/reference/gtk/css-overview.xml |   7 +-
 gtk/gtkcssanimatedstyle.c           |   4 -
 gtk/gtkcssiconthemevalue.c          | 175 ------------------------------------
 gtk/gtkcssiconthemevalueprivate.h   |  38 --------
 gtk/gtkcssstaticstyle.c             |   4 -
 gtk/gtkcssstyle.c                   |   2 -
 gtk/gtkcssstyleprivate.h            |   1 -
 gtk/gtkcssstylepropertyimpl.c       |  14 ---
 gtk/gtkcsstypesprivate.h            |   1 -
 gtk/gtkfilechooserbutton.c          |  15 ----
 gtk/gtkiconhelper.c                 |   2 +-
 gtk/gtkmountoperation.c             |   2 -
 gtk/gtkwindow.c                     |   3 -
 gtk/meson.build                     |   1 -
 14 files changed, 2 insertions(+), 267 deletions(-)
---
diff --git a/docs/reference/gtk/css-overview.xml b/docs/reference/gtk/css-overview.xml
index 627a2b0e76..67f32d6731 100644
--- a/docs/reference/gtk/css-overview.xml
+++ b/docs/reference/gtk/css-overview.xml
@@ -339,7 +339,7 @@ scale[.fine-tune]
         <member><literal>-gtk-icontheme(<replaceable>Name</replaceable>)</literal></member>
       </simplelist>
       The specified icon name is used to look up a themed icon, while taking into
-      account the values of the -gtk-icon-theme and -gtk-icon-palette properties.
+      account the values of the -gtk-icon-palette property.
       This kind of image is mainly used as value of the -gtk-icon-source property. 
     </para>
     <para>
@@ -599,11 +599,6 @@ scale[.fine-tune]
               <entry><ulink url="https://www.w3.org/TR/css-backgrounds-3/#typedef-image";>Image</ulink>, 
<literal>builtin</literal> or <literal>none</literal></entry>
               <entry>used for builtin icons in buttons and expanders</entry>
             </row>
-            <row>
-              <entry>-gtk-icon-theme</entry>
-              <entry>Theme name</entry>
-              <entry>icon theme to use with -gtk-icontheme()</entry>
-            </row>
             <row>
               <entry>-gtk-icon-size</entry>
               <entry><ulink url="https://www.w3.org/TR/css3-values/#length-value";>Length</ulink></entry>
diff --git a/gtk/gtkcssanimatedstyle.c b/gtk/gtkcssanimatedstyle.c
index 15745f9b9e..d67bb9f191 100644
--- a/gtk/gtkcssanimatedstyle.c
+++ b/gtk/gtkcssanimatedstyle.c
@@ -176,10 +176,6 @@ gtk_css_animated_style_set_animated_value (GtkCssAnimatedStyle *animated,
       unshare_core (animated);
       gtk_css_take_value (&style->core->font_size, value);
       break;
-    case GTK_CSS_PROPERTY_ICON_THEME:
-      unshare_core (animated);
-      gtk_css_take_value (&style->core->icon_theme, value);
-      break;
     case GTK_CSS_PROPERTY_ICON_PALETTE:
       unshare_core (animated);
       gtk_css_take_value (&style->core->icon_palette, value);
diff --git a/gtk/gtkcssstaticstyle.c b/gtk/gtkcssstaticstyle.c
index fee5c01e56..d4f7bb5fc7 100644
--- a/gtk/gtkcssstaticstyle.c
+++ b/gtk/gtkcssstaticstyle.c
@@ -50,7 +50,6 @@ static const int core_props[] = {
   GTK_CSS_PROPERTY_COLOR,
   GTK_CSS_PROPERTY_DPI,
   GTK_CSS_PROPERTY_FONT_SIZE,
-  GTK_CSS_PROPERTY_ICON_THEME,
   GTK_CSS_PROPERTY_ICON_PALETTE
 };
 
@@ -396,9 +395,6 @@ gtk_css_static_style_set_value (GtkCssStaticStyle *sstyle,
     case GTK_CSS_PROPERTY_FONT_SIZE:
       gtk_css_take_value (&style->core->font_size, value);
       break;
-    case GTK_CSS_PROPERTY_ICON_THEME:
-      gtk_css_take_value (&style->core->icon_theme, value);
-      break;
     case GTK_CSS_PROPERTY_ICON_PALETTE:
       gtk_css_take_value (&style->core->icon_palette, value);
       break;
diff --git a/gtk/gtkcssstyle.c b/gtk/gtkcssstyle.c
index 9c570a61a0..b02c4dd394 100644
--- a/gtk/gtkcssstyle.c
+++ b/gtk/gtkcssstyle.c
@@ -103,8 +103,6 @@ gtk_css_style_get_value (GtkCssStyle *style,
       return style->core->dpi;
     case GTK_CSS_PROPERTY_FONT_SIZE:
       return style->core->font_size;
-    case GTK_CSS_PROPERTY_ICON_THEME:
-      return style->core->icon_theme;
     case GTK_CSS_PROPERTY_ICON_PALETTE:
       return style->core->icon_palette;
     case GTK_CSS_PROPERTY_BACKGROUND_COLOR:
diff --git a/gtk/gtkcssstyleprivate.h b/gtk/gtkcssstyleprivate.h
index 1ee874d06b..65c8c6f700 100644
--- a/gtk/gtkcssstyleprivate.h
+++ b/gtk/gtkcssstyleprivate.h
@@ -83,7 +83,6 @@ struct _GtkCssCoreValues {
   GtkCssValue *color;
   GtkCssValue *dpi;
   GtkCssValue *font_size;
-  GtkCssValue *icon_theme;
   GtkCssValue *icon_palette;
 };
 
diff --git a/gtk/gtkcssstylepropertyimpl.c b/gtk/gtkcssstylepropertyimpl.c
index b27b7730c0..94cd77f6a1 100644
--- a/gtk/gtkcssstylepropertyimpl.c
+++ b/gtk/gtkcssstylepropertyimpl.c
@@ -43,7 +43,6 @@
 #include "gtkcsseasevalueprivate.h"
 #include "gtkcssfiltervalueprivate.h"
 #include "gtkcssfontfeaturesvalueprivate.h"
-#include "gtkcssiconthemevalueprivate.h"
 #include "gtkcssimageprivate.h"
 #include "gtkcssimagevalueprivate.h"
 #include "gtkcssinitialvalueprivate.h"
@@ -794,13 +793,6 @@ background_position_parse (GtkCssStyleProperty *property,
   return _gtk_css_array_value_parse (parser, _gtk_css_position_value_parse);
 }
 
-static GtkCssValue *
-icon_theme_value_parse (GtkCssStyleProperty *property,
-                       GtkCssParser        *parser)
-{
-  return gtk_css_icon_theme_value_parse (parser);
-}
-
 /*** REGISTRATION ***/
 
 G_STATIC_ASSERT (GTK_CSS_PROPERTY_COLOR == 0);
@@ -831,12 +823,6 @@ _gtk_css_style_property_init_properties (void)
                                           GTK_CSS_AFFECTS_SIZE | GTK_CSS_AFFECTS_TEXT_SIZE,
                                           font_size_parse,
                                           _gtk_css_font_size_value_new (GTK_CSS_FONT_SIZE_MEDIUM));
-  gtk_css_style_property_register        ("-gtk-icon-theme",
-                                          GTK_CSS_PROPERTY_ICON_THEME,
-                                          GTK_STYLE_PROPERTY_INHERIT,
-                                          GTK_CSS_AFFECTS_ICON_TEXTURE,
-                                          icon_theme_value_parse,
-                                          gtk_css_icon_theme_value_new (NULL));
   gtk_css_style_property_register        ("-gtk-icon-palette",
                                          GTK_CSS_PROPERTY_ICON_PALETTE,
                                          GTK_STYLE_PROPERTY_ANIMATED | GTK_STYLE_PROPERTY_INHERIT,
diff --git a/gtk/gtkcsstypesprivate.h b/gtk/gtkcsstypesprivate.h
index 16d4e61f66..e95e31ac9c 100644
--- a/gtk/gtkcsstypesprivate.h
+++ b/gtk/gtkcsstypesprivate.h
@@ -188,7 +188,6 @@ enum { /*< skip >*/
   GTK_CSS_PROPERTY_COLOR,
   GTK_CSS_PROPERTY_DPI,
   GTK_CSS_PROPERTY_FONT_SIZE,
-  GTK_CSS_PROPERTY_ICON_THEME,
   GTK_CSS_PROPERTY_ICON_PALETTE,
   GTK_CSS_PROPERTY_BACKGROUND_COLOR,
   GTK_CSS_PROPERTY_FONT_FAMILY,
diff --git a/gtk/gtkfilechooserbutton.c b/gtk/gtkfilechooserbutton.c
index b5860d0161..6f233c89c9 100644
--- a/gtk/gtkfilechooserbutton.c
+++ b/gtk/gtkfilechooserbutton.c
@@ -272,8 +272,6 @@ static void     gtk_file_chooser_button_root               (GtkWidget *widget);
 static void     gtk_file_chooser_button_map                (GtkWidget        *widget);
 static gboolean gtk_file_chooser_button_mnemonic_activate  (GtkWidget        *widget,
                                                            gboolean          group_cycling);
-static void     gtk_file_chooser_button_css_changed             (GtkWidget              *widget,
-                                                                 GtkCssStyleChange      *change);
 static void     gtk_file_chooser_button_state_flags_changed     (GtkWidget       *widget,
                                                                  GtkStateFlags    previous_state);
 
@@ -467,7 +465,6 @@ gtk_file_chooser_button_class_init (GtkFileChooserButtonClass * class)
   widget_class->show = gtk_file_chooser_button_show;
   widget_class->hide = gtk_file_chooser_button_hide;
   widget_class->map = gtk_file_chooser_button_map;
-  widget_class->css_changed = gtk_file_chooser_button_css_changed;
   widget_class->root = gtk_file_chooser_button_root;
   widget_class->mnemonic_activate = gtk_file_chooser_button_mnemonic_activate;
   widget_class->state_flags_changed = gtk_file_chooser_button_state_flags_changed;
@@ -1346,18 +1343,6 @@ change_icon_theme (GtkFileChooserButton *button)
                NULL);
 }
 
-static void
-gtk_file_chooser_button_css_changed (GtkWidget         *widget,
-                                     GtkCssStyleChange *change)
-{
-  GTK_WIDGET_CLASS (gtk_file_chooser_button_parent_class)->css_changed (widget, change);
-
-  /* We need to update the icon surface, but only in case
-   * the icon theme really changed. */
-  if (!change || gtk_css_style_change_changes_property (change, GTK_CSS_PROPERTY_ICON_THEME))
-    change_icon_theme (GTK_FILE_CHOOSER_BUTTON (widget));
-}
-
 static void
 gtk_file_chooser_button_root (GtkWidget *widget)
 {
diff --git a/gtk/gtkiconhelper.c b/gtk/gtkiconhelper.c
index 2bbbcc0354..872a30fda3 100644
--- a/gtk/gtkiconhelper.c
+++ b/gtk/gtkiconhelper.c
@@ -95,7 +95,7 @@ ensure_paintable_for_gicon (GtkIconHelper    *self,
   GtkIconPaintable *icon;
   GtkIconLookupFlags flags;
 
-  icon_theme = gtk_css_icon_theme_value_get_icon_theme (style->core->icon_theme);
+  icon_theme = gtk_icon_theme_get_for_display (gtk_widget_get_display (self->owner));
   flags = get_icon_lookup_flags (self, style);
   if (preload)
     flags |= GTK_ICON_LOOKUP_PRELOAD;
diff --git a/gtk/gtkmountoperation.c b/gtk/gtkmountoperation.c
index a9626ac35e..d1eb782079 100644
--- a/gtk/gtkmountoperation.c
+++ b/gtk/gtkmountoperation.c
@@ -1206,8 +1206,6 @@ add_pid_to_process_list_store (GtkMountOperation              *mount_operation,
       GtkIconPaintable *icon;
 
       theme = gtk_icon_theme_get_for_display (gtk_widget_get_display (GTK_WIDGET 
(mount_operation->priv->dialog)));
-        (_gtk_style_context_peek_property (gtk_widget_get_style_context (GTK_WIDGET 
(mount_operation->priv->dialog)),
-                                           GTK_CSS_PROPERTY_ICON_THEME));
       icon = gtk_icon_theme_lookup_icon (theme,
                                          "application-x-executable",
                                          NULL,
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index c79f23c150..ca1688550c 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -5731,9 +5731,6 @@ gtk_window_css_changed (GtkWidget         *widget,
 
       update_opaque_region (window, &window_border, &allocation);
     }
-
-  if (change == NULL || gtk_css_style_change_changes_property (change, GTK_CSS_PROPERTY_ICON_THEME))
-    update_themed_icon (window);
 }
 
 /**
diff --git a/gtk/meson.build b/gtk/meson.build
index 71fb901e21..df08266be0 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -55,7 +55,6 @@ gtk_private_sources = files([
   'gtkcssfiltervalue.c',
   'gtkcssfontfeaturesvalue.c',
   'gtkcssfontvariationsvalue.c',
-  'gtkcssiconthemevalue.c',
   'gtkcssimage.c',
   'gtkcssimagecrossfade.c',
   'gtkcssimagefallback.c',


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]