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