summaryrefslogtreecommitdiffstats
path: root/base/message_pump_x.cc
diff options
context:
space:
mode:
authoroshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-22 19:49:23 +0000
committeroshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-22 19:49:23 +0000
commit2656a354677e57bd271160c0edcbeb2cad541f51 (patch)
treedde422a236acb69418d0ada4819228d510d2fd4a /base/message_pump_x.cc
parent74b9241c1734b73b48aff28710509ba810b65032 (diff)
downloadchromium_src-2656a354677e57bd271160c0edcbeb2cad541f51.zip
chromium_src-2656a354677e57bd271160c0edcbeb2cad541f51.tar.gz
chromium_src-2656a354677e57bd271160c0edcbeb2cad541f51.tar.bz2
re-landing r93629
Consolidate access to X Display Change ui::GetXDisplay to use the MessagePumpForUI class to get Display. This allows us to have two different implementation for x and gtk. Remove MessageLoop::GetDisplay from message loop API. Client should use ui::GetXDisplay instead. This will also be removed in near future, and client should get display from window it is dealing with. BUG=none TEST=none Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=93629 Review URL: http://codereview.chromium.org/7484006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93686 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_pump_x.cc')
-rw-r--r--base/message_pump_x.cc11
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;