[evolution-rss] do not crash when clicking rss icon



commit f87c6266a691eaee96b71178db8f22505d46f98b
Author: Lucian Langa <lucilanga gnome org>
Date:   Sun Feb 28 14:16:59 2010 +0200

    do not crash when clicking rss icon

 src/rss.c |   38 +++++++++++++++++++++++++++++++-------
 src/rss.h |    2 +-
 2 files changed, 32 insertions(+), 8 deletions(-)
---
diff --git a/src/rss.c b/src/rss.c
index d8a6b18..e38a3f0 100644
--- a/src/rss.c
+++ b/src/rss.c
@@ -4343,7 +4343,7 @@ custom_fetch_feed(gpointer key, gpointer value, gpointer user_data)
 	return 0;
 }
 
-void gtkut_window_popup(GtkWidget *window)
+void evo_window_popup(GtkWidget *window)
 {
 	gint x, y, sx, sy, new_x, new_y;
 
@@ -4370,20 +4370,38 @@ void gtkut_window_popup(GtkWidget *window)
 static void
 icon_activated (GtkStatusIcon *icon, gpointer pnotify)
 {
+#if EVOLUTION_VERSION < 22900 //KB//
 	GList *p, *pnext;
 	for (p = (gpointer)evo_window; p != NULL; p = pnext) {
 		pnext = p->next;
 
 		if (gtk_window_is_active(GTK_WINDOW(p->data))) {
-			g_print("window active\n");
 			gtk_window_iconify(GTK_WINDOW(p->data));
-			gtk_window_set_skip_taskbar_hint(GTK_WINDOW(p->data), TRUE);
+			gtk_window_set_skip_taskbar_hint(
+				GTK_WINDOW(p->data),
+				TRUE);
 		} else {
 			gtk_window_iconify(GTK_WINDOW(p->data));
-			gtkut_window_popup(GTK_WIDGET(p->data));
-			gtk_window_set_skip_taskbar_hint(GTK_WINDOW(p->data), FALSE);
+			evo_window_popup(GTK_WIDGET(p->data));
+			gtk_window_set_skip_taskbar_hint(
+				GTK_WINDOW(p->data),
+				FALSE);
 		}
 	}
+#else
+	if (gtk_window_is_active(evo_window)) {
+		gtk_window_iconify(evo_window);
+		gtk_window_set_skip_taskbar_hint(
+			evo_window,
+			TRUE);
+	} else {
+		gtk_window_iconify(evo_window);
+		evo_window_popup(evo_window);
+		gtk_window_set_skip_taskbar_hint(
+			evo_window,
+			FALSE);
+		}
+#endif
 }
 
 static void
@@ -4395,9 +4413,15 @@ create_status_icon(void)
 			NULL);
 
 		status_icon = gtk_status_icon_new ();
-		gtk_status_icon_set_from_file (status_icon, iconfile);
+		gtk_status_icon_set_from_file (
+			status_icon,
+			iconfile);
 		g_free(iconfile);
-		g_signal_connect (G_OBJECT (status_icon), "activate", G_CALLBACK (icon_activated), NULL);
+		g_signal_connect (
+			G_OBJECT (status_icon),
+			"activate",
+			G_CALLBACK (icon_activated),
+			NULL);
 	}
 //     gtk_status_icon_set_visible (status_icon, FALSE);
 }
diff --git a/src/rss.h b/src/rss.h
index 5f5f2d7..184ecab 100644
--- a/src/rss.h
+++ b/src/rss.h
@@ -497,7 +497,7 @@ gboolean check_update_feed_image(gchar *key);
 void get_feed_folders(void);
 void update_main_folder(gchar *new_name);
 void search_rebase(gpointer key, gpointer value, gchar *oname);
-void gtkut_window_popup(GtkWidget *window);
+void evo_window_popup(GtkWidget *window);
 void flaten_status(gpointer msg, gpointer user_data);
 gboolean check_if_enabled (
 	gpointer key,



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