r3056 - in trunk/src/target/OM-2007.2/applications/openmoko-today2: . src

chris at sita.openmoko.org chris at sita.openmoko.org
Fri Sep 28 19:20:03 CEST 2007


Author: chris
Date: 2007-09-28 19:20:02 +0200 (Fri, 28 Sep 2007)
New Revision: 3056

Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-task-manager.c
Log:
        * src/today-task-manager.c:
        Trap around gdk_window_foreign_new_for_display() and flush before every
        gdk_error_trap_pop().


Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog	2007-09-28 16:18:38 UTC (rev 3055)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/ChangeLog	2007-09-28 17:20:02 UTC (rev 3056)
@@ -1,5 +1,15 @@
 2007-09-28  Chris Lord  <chris at openedhand.com>
 
+	* src/today-task-manager.c: (get_utf8_property),
+	(get_text_property), (window_get_icon),
+	(today_task_manager_populate_tasks), (today_task_manager_kill),
+	(today_task_manager_kill_clicked_cb),
+	(today_task_manager_raise_clicked_cb):
+	Trap around gdk_window_foreign_new_for_display() and flush before every
+	gdk_error_trap_pop().
+
+2007-09-28  Chris Lord  <chris at openedhand.com>
+
 	* src/today-task-manager.c: (today_task_manager_kill):
 	Call gdk_flush() before gdk_error_trap_pop() - Hopefully fix crashes
 	when closing other apps

Modified: trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-task-manager.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-task-manager.c	2007-09-28 16:18:38 UTC (rev 3055)
+++ trunk/src/target/OM-2007.2/applications/openmoko-today2/src/today-task-manager.c	2007-09-28 17:20:02 UTC (rev 3056)
@@ -62,6 +62,7 @@
                                      &nitems,
                                      &bytes_after,
                                      (gpointer) &val);  
+	gdk_flush ();
         if (gdk_error_trap_pop () || result != Success)
                 return NULL;
   
@@ -103,6 +104,7 @@
                                    window,
                                    &text,
                                    atom);
+	gdk_flush ();
         if (gdk_error_trap_pop () || result == 0)
                 return NULL;
 
@@ -186,6 +188,7 @@
                                      &nitems,
                                      &bytes_after,
                                      (gpointer) &data);
+	gdk_flush ();
         if (gdk_error_trap_pop () || result != Success)
                 return NULL;
 
@@ -359,6 +362,7 @@
                                      &nitems,
                                      &bytes_after,
                                      (gpointer) &windows);
+	gdk_flush ();
         if (gdk_error_trap_pop () || result != Success)
                 return;
 
@@ -563,7 +567,6 @@
 	 * http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html#id2506711
 	 */
 	if (GDK_IS_WINDOW (window)) {
-		gint error;
 		XEvent ev;
 		memset(&ev, 0, sizeof(ev));
 
@@ -581,8 +584,7 @@
 
 		XSync(GDK_DISPLAY(),FALSE);
 		gdk_flush ();
-		if ((error = gdk_error_trap_pop ()))
-			g_warning ("Trapped X11 error %d", error);
+		gdk_error_trap_pop ();
 		
 		/* The following code looks equivalent to me, but isn't.. */
 		/*GdkEvent *event = gdk_event_new (GDK_CLIENT_EVENT);
@@ -613,9 +615,13 @@
 	
         display = gtk_widget_get_display (data->tasks_table);
 	xid = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (tile), "window"));
+	
+	gdk_error_trap_push ();
 	window = gdk_window_foreign_new_for_display (display, xid);
+	gdk_flush ();
+	gdk_error_trap_pop ();
 
-	today_task_manager_kill (data, window);
+	if (window) today_task_manager_kill (data, window);
 }
 
 static void
@@ -658,6 +664,7 @@
 		SubstructureRedirectMask, &ev);
 
 	XSync(GDK_DISPLAY(),FALSE);
+	gdk_flush ();
 	gdk_error_trap_pop();
 }
 





More information about the commitlog mailing list