From cc772ddd61be5fcb0412f1f871e5814d841362aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Fri, 13 Oct 2017 19:08:46 -0500 Subject: [PATCH] display: trap X errors in get_current_time_roundtrip Only return the actual timestamp if we get one. https://bugzilla.gnome.org/show_bug.cgi?id=788971 --- src/core/display.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/core/display.c b/src/core/display.c index dc4d8dfe5..6fc2ff736 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -1326,14 +1326,24 @@ meta_display_get_current_time_roundtrip (MetaDisplay *display) { XEvent property_event; + meta_error_trap_push (display); + XChangeProperty (display->xdisplay, display->timestamp_pinging_window, display->atom__MUTTER_TIMESTAMP_PING, XA_STRING, 8, PropModeAppend, NULL, 0); - XIfEvent (display->xdisplay, - &property_event, - find_timestamp_predicate, - (XPointer) display); - timestamp = property_event.xproperty.time; + + if (meta_error_trap_pop_with_return (display) == Success) + { + meta_error_trap_push (display); + + XIfEvent (display->xdisplay, + &property_event, + find_timestamp_predicate, + (XPointer) display); + + if (meta_error_trap_pop_with_return (display) == Success) + timestamp = property_event.xproperty.time; + } } meta_display_sanity_check_timestamps (display, timestamp);