summaryrefslogtreecommitdiff
path: root/plugingui/eventhandler.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2013-03-09 20:01:41 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2013-03-09 20:01:41 +0100
commit221f7216d1b6fda90f1aba36b2509aa62e158bee (patch)
treea8b7eab0d4561514a5dd201b5ff52d4793b1b09b /plugingui/eventhandler.cc
parent1fe04afd8dd8addcc8902ea3c1c0f77d148cd1b7 (diff)
Ignore duplicate mouxe move events in X11. Only play the last one. Also a bit of spring cleaning...
Diffstat (limited to 'plugingui/eventhandler.cc')
-rw-r--r--plugingui/eventhandler.cc55
1 files changed, 8 insertions, 47 deletions
diff --git a/plugingui/eventhandler.cc b/plugingui/eventhandler.cc
index 088380f..57718c2 100644
--- a/plugingui/eventhandler.cc
+++ b/plugingui/eventhandler.cc
@@ -296,47 +296,15 @@ GUI::Event *GUI::EventHandler::getNextEvent()
XEvent xe;
XNextEvent(gctx->display, &xe);
- //printf("XEvent ?%d[%d]\n", ConfigureNotify, xe.type);
-
-/**
- * KeyPress 2
- * KeyRelease 3
- * ButtonPress 4
- * ButtonRelease 5
- * MotionNotify 6
- * EnterNotify 7
- * LeaveNotify 8
- * FocusIn 9
- * FocusOut 10
- * KeymapNotify 11
- * Expose 12
- * GraphicsExpose 13
- * NoExpose 14
- * VisibilityNotify 15
- * CreateNotify 16
- * DestroyNotify 17
- * UnmapNotify 18
- * MapNotify 19
- * MapRequest 20
- * ReparentNotify 21
- * ConfigureNotify 22
- * ConfigureRequest 23
- * GravityNotify 24
- * ResizeRequest 25
- * CirculateNotify 26
- * CirculateRequest 27
- * PropertyNotify 28
- * SelectionClear 29
- * SelectionRequest 30
- * SelectionNotify 31
- * ColormapNotify 32
- * ClientMessage 33
- * MappingNotify 34
- * GenericEvent 35
- * LASTEvent 36 // must be bigger than any event #
- **/
-
if(xe.type == MotionNotify) {
+ while(true) { // Hack to make sure only the last event is played.
+ if(!hasEvent()) break;
+ XEvent nxe;
+ XPeekEvent(gctx->display, &nxe);
+ if(nxe.type != MotionNotify) break;
+ XNextEvent(gctx->display, &xe);
+ }
+
MouseMoveEvent *e = new MouseMoveEvent();
e->window_id = xe.xmotion.window;
e->x = xe.xmotion.x;
@@ -355,13 +323,6 @@ GUI::Event *GUI::EventHandler::getNextEvent()
}
if(xe.type == ConfigureNotify) {
- /*
- if(hasEvent()) { // Hack to make sure only the last resize event is played.
- XEvent nxe;
- XPeekEvent(gctx->display, &nxe);
- if(xe.type == ConfigureNotify) return NULL;
- }
- */
ResizeEvent *e = new ResizeEvent();
e->window_id = xe.xconfigure.window;
// e->x = xe.xconfigure.x;