[gnome-flashback] desktop: avoid unneeded work



commit 03e2e801780877be973c90c5db875a737ce4813b
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Tue Oct 29 00:11:10 2019 +0200

    desktop: avoid unneeded work
    
    Call draw_background_changed and show_icons_changed functions in
    gf_desktop_window_constructed only if values are default. This
    should ensure that both functions are called only once when object
    is constructed.

 gnome-flashback/libdesktop/gf-desktop-window.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/gnome-flashback/libdesktop/gf-desktop-window.c b/gnome-flashback/libdesktop/gf-desktop-window.c
index 380818f..b1de2c9 100644
--- a/gnome-flashback/libdesktop/gf-desktop-window.c
+++ b/gnome-flashback/libdesktop/gf-desktop-window.c
@@ -93,13 +93,19 @@ static void
 gf_desktop_window_constructed (GObject *object)
 {
   GfDesktopWindow *self;
+  GParamSpecBoolean *spec;
 
   self = GF_DESKTOP_WINDOW (object);
 
   G_OBJECT_CLASS (gf_desktop_window_parent_class)->constructed (object);
 
-  draw_background_changed (self);
-  show_icons_changed (self);
+  spec = (GParamSpecBoolean *) window_properties[PROP_DRAW_BACKGROUND];
+  if (self->draw_background == spec->default_value)
+    draw_background_changed (self);
+
+  spec = (GParamSpecBoolean *) window_properties[PROP_SHOW_ICONS];
+  if (self->show_icons == spec->default_value)
+    show_icons_changed (self);
 }
 
 static void
@@ -168,8 +174,13 @@ gf_desktop_window_class_init (GfDesktopWindowClass *self_class)
 static void
 gf_desktop_window_init (GfDesktopWindow *self)
 {
-  self->draw_background = TRUE;
-  self->show_icons = TRUE;
+  GParamSpecBoolean *spec;
+
+  spec = (GParamSpecBoolean *) window_properties[PROP_DRAW_BACKGROUND];
+  self->draw_background = spec->default_value;
+
+  spec = (GParamSpecBoolean *) window_properties[PROP_SHOW_ICONS];
+  self->show_icons =  spec->default_value;
 }
 
 GtkWidget *


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