summaryrefslogtreecommitdiffstats
path: root/base/message_pump_x.cc
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-21 19:33:43 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-21 19:33:43 +0000
commitb2a566e6ed4dfe3c3afd17c9872c2762193152a4 (patch)
treef25cadcd5bf55d21f3fbc593d8d361d7fe010531 /base/message_pump_x.cc
parent76b70f91d71f6e36489dd5c9876a54e65af46f7c (diff)
downloadchromium_src-b2a566e6ed4dfe3c3afd17c9872c2762193152a4.zip
chromium_src-b2a566e6ed4dfe3c3afd17c9872c2762193152a4.tar.gz
chromium_src-b2a566e6ed4dfe3c3afd17c9872c2762193152a4.tar.bz2
Some dead-code removal from message_pump_x and touch_factory.
BUG=none TEST=none Review URL: http://codereview.chromium.org/8575017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110980 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/message_pump_x.cc')
-rw-r--r--base/message_pump_x.cc149
1 files changed, 5 insertions, 144 deletions
diff --git a/base/message_pump_x.cc b/base/message_pump_x.cc
index 15276e4..06dea11 100644
--- a/base/message_pump_x.cc
+++ b/base/message_pump_x.cc
@@ -9,10 +9,6 @@
#include "base/basictypes.h"
#include "base/message_loop.h"
-#if defined(TOOLKIT_USES_GTK)
-#include <gdk/gdkx.h>
-#endif
-
namespace {
gboolean XSourcePrepare(GSource* source, gint* timeout_ms) {
@@ -46,17 +42,8 @@ GSourceFuncs XSourceFuncs = {
// The opcode used for checking events.
int xiopcode = -1;
-#if defined(TOOLKIT_USES_GTK)
-gboolean PlaceholderDispatch(GSource* source,
- GSourceFunc cb,
- gpointer data) {
- return TRUE;
-}
-#else
-// If the GTK/GDK event processing is not present, the message-pump opens a
-// connection to the display and owns it.
+// The message-pump opens a connection to the display and owns it.
Display* g_xdisplay = NULL;
-#endif // defined(TOOLKIT_USES_GTK)
void InitializeXInput2(void) {
Display* display = base::MessagePumpX::GetDefaultXDisplay();
@@ -97,46 +84,23 @@ void InitializeXInput2(void) {
namespace base {
MessagePumpX::MessagePumpX() : MessagePumpGlib(),
-#if defined(TOOLKIT_USES_GTK)
- gdksource_(NULL),
- dispatching_event_(false),
- capture_x_events_(0),
- capture_gdk_events_(0),
-#endif
x_source_(NULL) {
InitializeXInput2();
-#if defined(TOOLKIT_USES_GTK)
- gdk_window_add_filter(NULL, &GdkEventFilter, this);
- gdk_event_handler_set(&EventDispatcherX, this, NULL);
- InitializeEventsToCapture();
-#else
InitXSource();
-#endif
}
MessagePumpX::~MessagePumpX() {
-#if defined(TOOLKIT_USES_GTK)
- gdk_window_remove_filter(NULL, &GdkEventFilter, this);
- gdk_event_handler_set(reinterpret_cast<GdkEventFunc>(gtk_main_do_event),
- this, NULL);
-#else
g_source_destroy(x_source_);
g_source_unref(x_source_);
XCloseDisplay(g_xdisplay);
g_xdisplay = NULL;
-#endif
}
// static
Display* MessagePumpX::GetDefaultXDisplay() {
-#if defined(TOOLKIT_USES_GTK)
- static GdkDisplay* display = gdk_display_get_default();
- return display ? GDK_DISPLAY_XDISPLAY(display) : NULL;
-#else
if (!g_xdisplay)
g_xdisplay = XOpenDisplay(NULL);
return g_xdisplay;
-#endif
}
// static
@@ -158,17 +122,6 @@ void MessagePumpX::InitXSource() {
g_source_attach(x_source_, g_main_context_default());
}
-bool MessagePumpX::ShouldCaptureXEvent(XEvent* xev) {
-#if defined(TOOLKIT_USES_GTK)
- return capture_x_events_[xev->type] &&
- (xev->type != GenericEvent || xev->xcookie.extension == xiopcode);
-#else
- // When not using GTK, we always handle all events ourselves, and always have
- // to remove it from the queue, whether we do anything with it or not.
- return true;
-#endif
-}
-
bool MessagePumpX::ProcessXEvent(XEvent* xev) {
bool should_quit = false;
@@ -207,49 +160,12 @@ bool MessagePumpX::RunOnce(GMainContext* context, bool block) {
// the tasks. This is what happens in the message_pump_glib case.
while (XPending(display)) {
XEvent xev;
- XPeekEvent(display, &xev);
-
- if (ShouldCaptureXEvent(&xev)) {
- XNextEvent(display, &xev);
- if (ProcessXEvent(&xev))
- return true;
-#if defined(TOOLKIT_USES_GTK)
- } else if (gdksource_) {
- // TODO(sad): A couple of extra events can still sneak in during this.
- // Those should be sent back to the X queue from the dispatcher
- // EventDispatcherX.
- gdksource_->source_funcs->dispatch = gdkdispatcher_;
- g_main_context_iteration(context, FALSE);
-#endif
- }
-#if defined(TOOLKIT_USES_GTK)
- // In the GTK case, we only want to process one event at a time.
- break;
-#endif
- }
-
- bool retvalue;
-#if defined(TOOLKIT_USES_GTK)
- if (gdksource_) {
- // Replace the dispatch callback of the GDK event source temporarily so that
- // it doesn't read events from X.
- gboolean (*cb)(GSource*, GSourceFunc, void*) =
- gdksource_->source_funcs->dispatch;
- gdksource_->source_funcs->dispatch = PlaceholderDispatch;
-
- dispatching_event_ = true;
- retvalue = g_main_context_iteration(context, block);
- dispatching_event_ = false;
-
- gdksource_->source_funcs->dispatch = cb;
- } else {
- retvalue = g_main_context_iteration(context, block);
+ XNextEvent(display, &xev);
+ if (ProcessXEvent(&xev))
+ return true;
}
-#else
- retvalue = g_main_context_iteration(context, block);
-#endif
- return retvalue;
+ return g_main_context_iteration(context, block);
}
bool MessagePumpX::WillProcessXEvent(XEvent* xevent) {
@@ -270,59 +186,4 @@ void MessagePumpX::DidProcessXEvent(XEvent* xevent) {
}
}
-#if defined(TOOLKIT_USES_GTK)
-GdkFilterReturn MessagePumpX::GdkEventFilter(GdkXEvent* gxevent,
- GdkEvent* gevent,
- gpointer data) {
- MessagePumpX* pump = static_cast<MessagePumpX*>(data);
- XEvent* xev = static_cast<XEvent*>(gxevent);
-
- if (pump->ShouldCaptureXEvent(xev) && pump->GetDispatcher()) {
- pump->ProcessXEvent(xev);
- return GDK_FILTER_REMOVE;
- }
- return GDK_FILTER_CONTINUE;
-}
-
-void MessagePumpX::EventDispatcherX(GdkEvent* event, gpointer data) {
- MessagePumpX* pump_x = reinterpret_cast<MessagePumpX*>(data);
- if (!pump_x->gdksource_) {
- pump_x->gdksource_ = g_main_current_source();
- if (pump_x->gdksource_)
- pump_x->gdkdispatcher_ = pump_x->gdksource_->source_funcs->dispatch;
- } else if (!pump_x->IsDispatchingEvent()) {
- if (event->type != GDK_NOTHING &&
- pump_x->capture_gdk_events_[event->type]) {
- NOTREACHED() << "GDK received an event it shouldn't have:" << event->type;
- }
- }
-
- gtk_main_do_event(event);
-}
-
-void MessagePumpX::InitializeEventsToCapture(void) {
- // TODO(sad): Decide which events we want to capture and update the tables
- // accordingly.
- capture_x_events_[KeyPress] = true;
- capture_gdk_events_[GDK_KEY_PRESS] = true;
-
- capture_x_events_[KeyRelease] = true;
- capture_gdk_events_[GDK_KEY_RELEASE] = true;
-
- capture_x_events_[ButtonPress] = true;
- capture_gdk_events_[GDK_BUTTON_PRESS] = true;
-
- capture_x_events_[ButtonRelease] = true;
- capture_gdk_events_[GDK_BUTTON_RELEASE] = true;
-
- capture_x_events_[MotionNotify] = true;
- capture_gdk_events_[GDK_MOTION_NOTIFY] = true;
-
- capture_x_events_[GenericEvent] = true;
-}
-
-COMPILE_ASSERT(XLASTEvent >= LASTEvent, XLASTEvent_too_small);
-
-#endif // defined(TOOLKIT_USES_GTK)
-
} // namespace base