Blob Blame History Raw
--- gnome-applets-2.16.0.1/cpufreq/src/cpufreq-applet.c.cpufreq-changes	2006-10-23 23:44:40.000000000 -0400
+++ gnome-applets-2.16.0.1/cpufreq/src/cpufreq-applet.c	2006-10-23 23:45:42.000000000 -0400
@@ -54,6 +54,7 @@
         gboolean          show_perc;
         gboolean          show_unit;
         gboolean          show_icon;
+        gboolean          do_refresh;
 
         CPUFreqMonitor   *monitor;
 
@@ -222,6 +223,8 @@
         applet->size = panel_applet_get_size (PANEL_APPLET (applet));
         applet->orient = panel_applet_get_orient (PANEL_APPLET (applet));
 
+	applet->do_refresh = TRUE;
+
         gtk_widget_show (GTK_WIDGET (applet));
 }
 
@@ -663,7 +666,6 @@
         gint            perc;
         guint           cpu;
         gchar          *governor;
-        static gboolean do_refresh = TRUE;
 
         cpu = cpufreq_monitor_get_cpu (monitor);
         freq = cpufreq_monitor_get_frequency (monitor);
@@ -713,9 +715,9 @@
         g_free (text_tip);
 
         /* Call refresh only the first time */
-        if (do_refresh) {
+        if (applet->do_refresh) {
                 cpufreq_applet_refresh (applet);
-                do_refresh = FALSE;
+                applet->do_refresh = FALSE;
         }
 }
 
@@ -844,6 +846,18 @@
 }
 
 static void
+cpufreq_applet_prefs_cpu_changed (CPUFreqPrefs  *prefs,
+                                  GParamSpec    *arg1,
+                                  CPUFreqApplet *applet)
+{
+	gint cpu;
+
+	cpu = cpufreq_prefs_get_cpu (prefs);
+	cpufreq_monitor_set_cpu (applet->monitor, cpu);
+        cpufreq_applet_update (applet, applet->monitor);
+}
+
+static void
 cpufreq_applet_setup (CPUFreqApplet *applet)
 {
         BonoboUIComponent *popup_component;
@@ -873,9 +887,11 @@
                           "notify::show-text-mode",
                           G_CALLBACK (cpufreq_applet_prefs_show_mode_changed),
                           (gpointer) applet);
+        g_signal_connect (G_OBJECT (applet->prefs),
+                          "notify::cpu",
+                          G_CALLBACK (cpufreq_applet_prefs_cpu_changed),
+                          (gpointer) applet);
         
-        cpufreq_applet_update_visibility (applet);
-
         /* Monitor */
         applet->monitor = cpufreq_monitor_factory_create_monitor (
                 cpufreq_prefs_get_cpu (applet->prefs));
@@ -884,6 +900,8 @@
                                   G_CALLBACK (cpufreq_applet_update),
                                   (gpointer) applet);
            
+        cpufreq_applet_update_visibility (applet);
+
         /* Setup the menus */
         panel_applet_setup_menu_from_file (PANEL_APPLET (applet),
                                            DATADIR,