refactor: sendevent to hide X11 deps, rename and move enums
This commit is contained in:
@ -1,21 +1,35 @@
|
||||
#include <QX11Info>
|
||||
#include "event.h"
|
||||
|
||||
//this should be initialized by main.cpp as soon as the program starts.
|
||||
Display *display = 0;
|
||||
|
||||
//actually creates an XWindows event :)
|
||||
void sendevent(Display* display, const xevent &e ) {
|
||||
if (e.value1 == 0 && e.value2 == 0) return;
|
||||
if (e.type == WARP) {
|
||||
XTestFakeRelativeMotionEvent(display, e.value1, e.value2, 0);
|
||||
}
|
||||
else {
|
||||
if (e.type == KREL || e.type == KPRESS) {
|
||||
XTestFakeKeyEvent(display, e.value1, (e.type == KPRESS), 0);
|
||||
}
|
||||
else if (e.type == BREL || e.type == BPRESS) {
|
||||
XTestFakeButtonEvent(display, e.value1, (e.type == BPRESS), 0);
|
||||
}
|
||||
void sendevent(const FakeEvent &e) {
|
||||
Display* display = QX11Info::display();
|
||||
|
||||
switch (e.type) {
|
||||
case FakeEvent::MouseMove:
|
||||
if (e.move.x == 0 && e.move.y == 0) return;
|
||||
XTestFakeRelativeMotionEvent(display, e.move.x, e.move.y, 0);
|
||||
break;
|
||||
|
||||
case FakeEvent::KeyUp:
|
||||
if (e.keycode == 0) return;
|
||||
XTestFakeKeyEvent(display, e.keycode, false, 0);
|
||||
break;
|
||||
|
||||
case FakeEvent::KeyDown:
|
||||
if (e.keycode == 0) return;
|
||||
XTestFakeKeyEvent(display, e.keycode, true, 0);
|
||||
break;
|
||||
|
||||
case FakeEvent::MouseUp:
|
||||
if (e.keycode == 0) return;
|
||||
XTestFakeButtonEvent(display, e.keycode, false, 0);
|
||||
break;
|
||||
|
||||
case FakeEvent::MouseDown:
|
||||
if (e.keycode == 0) return;
|
||||
XTestFakeButtonEvent(display, e.keycode, true, 0);
|
||||
break;
|
||||
}
|
||||
XFlush(display);
|
||||
}
|
||||
|
Reference in New Issue
Block a user