x11: Wrap X call with error traps

Lest it fails. Try to recover from that and keep reading
the mimetypes present in the atom list.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6555
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2945>
This commit is contained in:
Carlos Garnacho 2023-03-31 15:09:02 +02:00 committed by Marge Bot
parent 2e82702084
commit 1e459c8302

View File

@ -21,6 +21,7 @@
#include "config.h"
#include "meta/meta-x11-errors.h"
#include "x11/meta-x11-selection-input-stream-private.h"
#include "x11/meta-selection-source-x11-private.h"
@ -156,7 +157,13 @@ atoms_to_mimetypes (MetaX11Display *display,
{
const gchar *mimetype;
meta_x11_error_trap_push (display);
mimetype = XGetAtomName (xdisplay, atoms[i]);
meta_x11_error_trap_pop (display);
if (!mimetype)
continue;
mimetypes = g_list_prepend (mimetypes, g_strdup (mimetype));
utf8_text_plain_found |= strcmp (mimetype, "text/plain;charset=utf-8") == 0;