rpms/gnome-panel/devel clock1.patch, NONE, 1.1 clock2.patch, NONE, 1.1 gnome-panel.spec, 1.290, 1.291

Matthias Clasen (mclasen) fedora-extras-commits at redhat.com
Fri Apr 11 03:41:08 UTC 2008


Author: mclasen

Update of /cvs/extras/rpms/gnome-panel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv31039

Modified Files:
	gnome-panel.spec 
Added Files:
	clock1.patch clock2.patch 
Log Message:
2.22.1.2


clock1.patch:

--- NEW FILE clock1.patch ---
--- trunk/applets/clock/clock.c	2008/04/10 13:05:02	11046
+++ trunk/applets/clock/clock.c	2008/04/10 16:25:30	11047
@@ -2208,7 +2208,11 @@
                 return;
         }
 
-        loc = clock_location_new (name, timezone, latitude, longitude, code, &prefs);
+	loc = clock_location_find_and_ref (cd->locations, name, timezone,
+					   latitude, longitude, code);
+	if (!loc)
+		loc = clock_location_new (name, timezone,
+					  latitude, longitude, code, &prefs);
 
 	if (current && clock_location_is_current_timezone (loc))
 		clock_location_make_current (loc, NULL, NULL, NULL);
@@ -3087,9 +3091,10 @@
 		clock_location_is_current (loc);
 
                 cd->locations = g_list_append (cd->locations, loc);
-                locations_changed (cd);
         }
 
+	/* This will update everything related to locations to take into
+	 * account the new location (via the gconf notification) */
         save_cities_store (cd);
 
         edit_hide (edit_window, cd);
@@ -3828,12 +3833,11 @@
         ClockLocation *loc = NULL;
 
         gtk_tree_model_get (model, iter, COL_CITY_LOC, &loc, -1);
-
-        gtk_list_store_remove (cd->cities_store, iter);
 	cd->locations = g_list_remove (cd->locations, loc);
-	locations_changed (cd);
 	g_object_unref (loc);
 
+	/* This will update everything related to locations to take into
+	 * account the removed location (via the gconf notification) */
         save_cities_store (cd);
 }
 
--- trunk/applets/clock/clock-location.h	2008/04/10 13:05:02	11046
+++ trunk/applets/clock/clock-location.h	2008/04/10 16:25:30	11047
@@ -38,6 +38,13 @@
 				   const gchar *code,
 				   WeatherPrefs *prefs);
 
+ClockLocation *clock_location_find_and_ref (GList       *locations,
+                                            const gchar *name,
+                                            const gchar *timezone,
+                                            gfloat       latitude,
+                                            gfloat       longitude,
+                                            const gchar *code);
+
 gchar *clock_location_get_tzname (ClockLocation *loc);
 
 const gchar *clock_location_get_name (ClockLocation *loc);
--- trunk/applets/clock/clock-location.c	2008/04/10 13:05:02	11046
+++ trunk/applets/clock/clock-location.c	2008/04/10 16:25:30	11047
@@ -67,6 +67,34 @@
 #define PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CLOCK_LOCATION_TYPE, ClockLocationPrivate))
 
 ClockLocation *
+clock_location_find_and_ref (GList       *locations,
+                             const gchar *name,
+                             const gchar *timezone,
+                             gfloat       latitude,
+                             gfloat       longitude,
+                             const gchar *code)
+{
+        GList *l;
+        ClockLocationPrivate *priv;
+
+        for (l = locations; l != NULL; l = l->next) {
+                priv = PRIVATE (l->data);
+
+                if (priv->latitude == latitude &&
+                    priv->longitude == longitude &&
+                    g_strcmp0 (priv->weather_code, code) == 0 &&
+                    g_strcmp0 (priv->timezone, timezone) == 0 &&
+                    g_strcmp0 (priv->name, name) == 0)
+                        break;
+        }
+
+        if (l != NULL)
+                return g_object_ref (CLOCK_LOCATION (l->data));
+        else
+                return NULL;
+}
+
+ClockLocation *
 clock_location_new (const gchar *name, const gchar *timezone,
 		    gfloat latitude, gfloat longitude,
 		    const gchar *code, WeatherPrefs *prefs)
@@ -467,6 +495,12 @@
         gchar *filename;
 	MakeCurrentData *mcdata;
 
+        if (loc == current_location) {
+                if (destroy)
+                        destroy (data);
+                return;
+        }
+
 	if (clock_location_is_current_timezone (loc)) {
 		if (current_location)
 			g_object_remove_weak_pointer (G_OBJECT (current_location), 

clock2.patch:

--- NEW FILE clock2.patch ---
--- trunk/applets/clock/clock.c	2008/04/10 16:25:30	11047
+++ trunk/applets/clock/clock.c	2008/04/10 20:01:41	11048
@@ -3410,8 +3410,12 @@
                           G_CALLBACK (location_row_activated), cd);
 
 	model = gweather_xml_load_locations ();
-	gtk_tree_view_set_model (tree, model);
-        g_object_unref (model);
+
+	/* Can be NULL if libgweather is not correctly installed */
+	if (model) {
+		gtk_tree_view_set_model (tree, model);
+		g_object_unref (model);
+	}
 }
 
 static void
@@ -3421,23 +3425,41 @@
 	GtkWidget *name_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-name-entry");
         GtkWidget *window;
 	const char *find;
+	const char *location;
 
 	fill_location_tree (cd);
         window = glade_xml_get_widget (cd->glade_xml, "find-location-window");
 
 	/* prefill the find entry if it's empty */
 	find = gtk_entry_get_text (GTK_ENTRY (cd->find_location_entry));
-	if (!find || !find[0]) {
-		const char *location;
+	location = gtk_entry_get_text (GTK_ENTRY (name_entry));
 
-		location = gtk_entry_get_text (GTK_ENTRY (name_entry));
-		gtk_entry_set_text (GTK_ENTRY (cd->find_location_entry),
-				    location);
+	if (g_strcmp0 (find, location) != 0 || !find || !find[0]) {
+		GtkWidget *scroll = glade_xml_get_widget (cd->glade_xml, "find-location-scroll");
+		GtkAdjustment *adjustment;
+
+		/* If we autofill the entry, reset the state of the treeview
+		 * first so that it looks like a brand new search */
+		gtk_tree_view_collapse_all (GTK_TREE_VIEW (cd->location_tree));
+
+		adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scroll));
+		gtk_adjustment_set_value (adjustment, 0);
+		gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (scroll),
+						     adjustment);
+
+		if (g_strcmp0 (find, location) != 0)
+			gtk_entry_set_text (GTK_ENTRY (cd->find_location_entry),
+					    location);
 	}
+
 	gtk_widget_grab_focus (cd->find_location_entry);
+	gtk_editable_set_position (GTK_EDITABLE (cd->find_location_entry),
+				   -1);
 
-        gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (edit_window));
-        gtk_window_present_with_time (GTK_WINDOW (window), gtk_get_current_event_time ());
+        gtk_window_set_transient_for (GTK_WINDOW (window),
+				      GTK_WINDOW (edit_window));
+        gtk_window_present_with_time (GTK_WINDOW (window),
+				      gtk_get_current_event_time ());
 }
 
 static gboolean
@@ -3512,6 +3534,10 @@
 
 	tree = GTK_TREE_VIEW (cd->location_tree);
 	model = gtk_tree_view_get_model (tree);
+	/* Can happen if libgweather is not correctly installed */
+	if (!model)
+		return;
+
 	entry = GTK_ENTRY (cd->find_location_entry);
 	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree));
 
@@ -3556,6 +3582,9 @@
 
 	tree = GTK_TREE_VIEW (cd->location_tree);
 	model = gtk_tree_view_get_model (tree);
+	/* Can happen if libgweather is not correctly installed */
+	if (!model)
+		return;
 
 	selection = gtk_tree_view_get_selection (tree);
 	gtk_tree_model_get_iter_first (model, &iter);
@@ -3601,8 +3630,6 @@
         GtkWidget *lon_entry = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-entry");
         GtkWidget *lat_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-latitude-combo");
         GtkWidget *lon_combo = glade_xml_get_widget (cd->glade_xml, "edit-location-longitude-combo");
-        GtkWidget *scroll = glade_xml_get_widget (cd->glade_xml, "find-location-scroll");
-	GtkAdjustment *adjustment;
 
         /* clear out the old data */
         gtk_combo_box_set_active (GTK_COMBO_BOX (zone_combo), -1);
@@ -3614,16 +3641,6 @@
 
         gtk_combo_box_set_active (GTK_COMBO_BOX (lat_combo), -1);
         gtk_combo_box_set_active (GTK_COMBO_BOX (lon_combo), -1);
-
-	/* reset the state of the find window */
-	gtk_entry_set_text (GTK_ENTRY (cd->find_location_entry), "");
-
-	gtk_tree_view_collapse_all (GTK_TREE_VIEW (cd->location_tree));
-
-	adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scroll));
-	gtk_adjustment_set_value (adjustment, 0);
-	gtk_scrolled_window_set_vadjustment (GTK_SCROLLED_WINDOW (scroll),
-					     adjustment);
 }
 
 static void
@@ -3730,7 +3747,10 @@
   data.distance = 1e6;
   data.location = NULL;
 
-  gtk_tree_model_foreach (GTK_TREE_MODEL (model), compare_location, &data);
+  /* Can be NULL if libgweather is not correctly installed */
+  if (model)
+	  gtk_tree_model_foreach (GTK_TREE_MODEL (model),
+			  	  compare_location, &data);
 
   if (data.location)
     code = g_strdup (data.location->code);


Index: gnome-panel.spec
===================================================================
RCS file: /cvs/extras/rpms/gnome-panel/devel/gnome-panel.spec,v
retrieving revision 1.290
retrieving revision 1.291
diff -u -r1.290 -r1.291
--- gnome-panel.spec	8 Apr 2008 13:23:24 -0000	1.290
+++ gnome-panel.spec	11 Apr 2008 03:40:07 -0000	1.291
@@ -21,7 +21,7 @@
 
 Summary: GNOME panel
 Name: gnome-panel
-Version: 2.22.1.1
+Version: 2.22.1.2
 Release: 1%{?dist}
 URL: http://www.gnome.org
 Source0: http://download.gnome.org/sources/gnome-panel/2.22/%{name}-%{version}.tar.bz2
@@ -116,6 +116,10 @@
 # fixed upstream
 Patch28: gnome-panel-larger-find-window.patch
 
+# some upstream fixes 
+Patch30: clock1.patch
+Patch31: clock2.patch
+
 Conflicts: gnome-power-manager < 2.15.3
 
 %description
@@ -164,6 +168,8 @@
 %patch14 -p1 -b .ck-shutdown
 %patch24 -p1 -b .allow-spurious-view-done-signals
 %patch28 -p1 -b .larger-find-window
+%patch30 -p1 -b .clock1
+%patch31 -p1 -b .clock2
 
 . %{SOURCE6}
 
@@ -348,6 +354,10 @@
 %{_datadir}/gtk-doc/html/*
 
 %changelog
+* Thu Apr 10 2008 Matthias Clasen  <mclasen at redhat.com> - 2.22.1.2-1
+- Update to 2.22.1.2 (significant performance and usability 
+  improvements for the clock applet)
+
 * Tue Apr 08 2008 - Bastien Nocera <bnocera at redhat.com> - 2.22.1.1-1
 - Update to 2.22.1.1
 




More information about the fedora-extras-commits mailing list