diff options
author | Owen Taylor <otaylor@redhat.com> | 2000-03-13 23:41:53 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2000-03-13 23:41:53 +0000 |
commit | 74bd7ec0a19504b8cc07e13e67525d3caf389ceb (patch) | |
tree | 1d6ef85c07919f4876f1c57a407cbcf6e6e1e48d | |
parent | 4078590376e6054f119bb09791c05776c6e660dd (diff) | |
download | gdk-pixbuf-74bd7ec0a19504b8cc07e13e67525d3caf389ceb.tar.gz |
Fix a bunch of cases where XGetWindowProperty() is called without trappinggtk-1-2-merge-to-head-2
Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com>
* gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty()
is called without trapping X errors.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-0 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-2 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-4 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-6 | 5 | ||||
-rw-r--r-- | ChangeLog.pre-2-8 | 5 | ||||
-rw-r--r-- | gdk/gdkdnd.c | 50 |
8 files changed, 65 insertions, 20 deletions
@@ -1,3 +1,8 @@ +Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com> + + * gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty() + is called without trapping X errors. + Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org> * docs/gtkfaq.sgml: FAQ Update: diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index bba4c5efd..4b677a7f3 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,8 @@ +Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com> + + * gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty() + is called without trapping X errors. + Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org> * docs/gtkfaq.sgml: FAQ Update: diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index bba4c5efd..4b677a7f3 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com> + + * gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty() + is called without trapping X errors. + Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org> * docs/gtkfaq.sgml: FAQ Update: diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index bba4c5efd..4b677a7f3 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,8 @@ +Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com> + + * gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty() + is called without trapping X errors. + Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org> * docs/gtkfaq.sgml: FAQ Update: diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index bba4c5efd..4b677a7f3 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com> + + * gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty() + is called without trapping X errors. + Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org> * docs/gtkfaq.sgml: FAQ Update: diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index bba4c5efd..4b677a7f3 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com> + + * gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty() + is called without trapping X errors. + Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org> * docs/gtkfaq.sgml: FAQ Update: diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index bba4c5efd..4b677a7f3 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Mon Mar 13 18:37:55 2000 Owen Taylor <otaylor@redhat.com> + + * gdk/gdkdnd.c: Fix a bunch of cases where XGetWindowProperty() + is called without trapping X errors. + Thu Mar 9 22:10:56 GMT 2000 Tony Gale <gale@gtk.org> * docs/gtkfaq.sgml: FAQ Update: diff --git a/gdk/gdkdnd.c b/gdk/gdkdnd.c index 12f0f5575..c27028b9a 100644 --- a/gdk/gdkdnd.c +++ b/gdk/gdkdnd.c @@ -947,6 +947,7 @@ motif_read_target_table (void) guchar *p; gboolean success = FALSE; + gdk_error_trap_push (); XGetWindowProperty (gdk_display, motif_drag_window, motif_drag_targets_atom, 0, (sizeof(MotifTargetTableHeader)+3)/4, FALSE, @@ -954,12 +955,13 @@ motif_read_target_table (void) &type, &format, &nitems, &bytes_after, (guchar **)&header); - if ((format != 8) || (nitems < sizeof (MotifTargetTableHeader))) + if (gdk_error_trap_pop () || (format != 8) || (nitems < sizeof (MotifTargetTableHeader))) goto error; header->n_lists = card16_to_host (header->n_lists, header->byte_order); header->total_size = card32_to_host (header->total_size, header->byte_order); + gdk_error_trap_push (); XGetWindowProperty (gdk_display, motif_drag_window, motif_drag_targets_atom, (sizeof(MotifTargetTableHeader)+3)/4, (header->total_size + 3)/4 - (sizeof(MotifTargetTableHeader) + 3)/4, @@ -967,7 +969,7 @@ motif_read_target_table (void) motif_drag_targets_atom, &type, &format, &nitems, &bytes_after, &target_bytes); - if ((format != 8) || (bytes_after != 0) || + if (gdk_error_trap_pop () || (format != 8) || (bytes_after != 0) || (nitems != header->total_size - sizeof(MotifTargetTableHeader))) goto error; @@ -1291,29 +1293,33 @@ motif_check_dest (Window win) if (!motif_drag_receiver_info_atom) motif_drag_receiver_info_atom = gdk_atom_intern ("_MOTIF_DRAG_RECEIVER_INFO", FALSE); + gdk_error_trap_push (); XGetWindowProperty (gdk_display, win, motif_drag_receiver_info_atom, 0, (sizeof(*info)+3)/4, False, AnyPropertyType, &type, &format, &nitems, &after, (guchar **)&info); - - if (type != None) + + if (gdk_error_trap_pop() == 0) { - if ((format == 8) && (nitems == sizeof(*info))) - { - if ((info->protocol_version == 0) && - ((info->protocol_style == XmDRAG_PREFER_PREREGISTER) || - (info->protocol_style == XmDRAG_PREFER_DYNAMIC) || - (info->protocol_style == XmDRAG_DYNAMIC))) - retval = TRUE; - } - else + if (type != None) { - GDK_NOTE (DND, - g_warning ("Invalid Motif drag receiver property on window %ld\n", win)); + if ((format == 8) && (nitems == sizeof(*info))) + { + if ((info->protocol_version == 0) && + ((info->protocol_style == XmDRAG_PREFER_PREREGISTER) || + (info->protocol_style == XmDRAG_PREFER_DYNAMIC) || + (info->protocol_style == XmDRAG_DYNAMIC))) + retval = TRUE; + } + else + { + GDK_NOTE (DND, + g_warning ("Invalid Motif drag receiver property on window %ld\n", win)); + } + + XFree (info); } - - XFree (info); } return retval ? win : GDK_NONE; @@ -1472,13 +1478,14 @@ motif_read_initiator_info (Window source_window, if (!motif_drag_initiator_info) motif_drag_initiator_info = gdk_atom_intern ("_MOTIF_DRAG_INITIATOR_INFO", FALSE); + gdk_error_trap_push (); XGetWindowProperty (gdk_display, source_window, atom, 0, sizeof(*initiator_info), FALSE, motif_drag_initiator_info, &type, &format, &nitems, &bytes_after, (guchar **)&initiator_info); - if ((format != 8) || (nitems != sizeof (MotifDragInitiatorInfo)) || (bytes_after != 0)) + if (gdk_error_trap_pop () || (format != 8) || (nitems != sizeof (MotifDragInitiatorInfo)) || (bytes_after != 0)) { g_warning ("Error reading initiator info\n"); return FALSE; @@ -2509,13 +2516,14 @@ xdnd_enter_filter (GdkXEvent *xev, new_context->targets = NULL; if (get_types) { + gdk_error_trap_push (); XGetWindowProperty (GDK_WINDOW_XDISPLAY (event->any.window), source_window, gdk_atom_intern ("XdndTypeList", FALSE), 0, 65536, False, XA_ATOM, &type, &format, &nitems, &after, (guchar **)&data); - if ((format != 32) || (type != XA_ATOM)) + if (gdk_error_trap_pop () || (format != 32) || (type != XA_ATOM)) { gdk_drag_context_unref (new_context); return GDK_FILTER_REMOVE; @@ -2777,10 +2785,12 @@ gdk_drag_get_protocol (guint32 xid, if (xid == gdk_root_window) rootwin = TRUE; + gdk_error_warnings = 0; + if (!rootwin) { gdk_error_code = 0; - + XGetWindowProperty (gdk_display, xid, gdk_atom_intern ("ENLIGHTENMENT_DESKTOP", FALSE), 0, 0, False, AnyPropertyType, |