diff options
Diffstat (limited to 'base/message_pump_x.cc')
-rw-r--r-- | base/message_pump_x.cc | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/base/message_pump_x.cc b/base/message_pump_x.cc index 20c8b0e..1174e4b 100644 --- a/base/message_pump_x.cc +++ b/base/message_pump_x.cc @@ -51,6 +51,13 @@ void MessagePumpX::DisableGtkMessagePump() { use_gtk_message_pump = false; } +// static +Display* MessagePumpX::GetDefaultXDisplay() { + static GdkDisplay* display = gdk_display_get_default(); + return display ? GDK_DISPLAY_XDISPLAY(display) : NULL; +} + + bool MessagePumpX::ShouldCaptureXEvent(XEvent* xev) { return (!use_gtk_message_pump || capture_x_events_[xev->type]) && (xev->type != GenericEvent || xev->xcookie.extension == xiopcode_) @@ -86,7 +93,7 @@ bool MessagePumpX::ProcessXEvent(XEvent* xev) { } bool MessagePumpX::RunOnce(GMainContext* context, bool block) { - Display* display = MessageLoopForUI::current()->GetDisplay(); + Display* display = GetDefaultXDisplay(); if (!display || !GetDispatcher()) return g_main_context_iteration(context, block); @@ -192,7 +199,7 @@ void MessagePumpX::InitializeEventsToCapture(void) { } void MessagePumpX::InitializeXInput2(void) { - Display* display = MessageLoopForUI::current()->GetDisplay(); + Display* display = GetDefaultXDisplay(); if (!display) return; |