diff options
| author | Akshay Nair <phenax5@gmail.com> | 2020-07-18 00:04:02 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2020-07-18 00:04:02 +0530 |
| commit | 45ff5f2ac7622f120b8037b2aab5babeb3af8d5a (patch) | |
| tree | f8c7877d0132c0984eb86c4ce79ecc53e045bcd7 /shotkey.c | |
| parent | b765e4811bdc0b570a7a2542cb7d3b1b2e2064f4 (diff) | |
| download | shotkey-45ff5f2ac7622f120b8037b2aab5babeb3af8d5a.tar.gz shotkey-45ff5f2ac7622f120b8037b2aab5babeb3af8d5a.zip | |
Adds buttonpress event handler
Diffstat (limited to 'shotkey.c')
| -rw-r--r-- | shotkey.c | 24 |
1 files changed, 20 insertions, 4 deletions
@@ -44,6 +44,10 @@ void unbind_key(Display *dpy, Window win, unsigned int mod, KeySym key) { XUngrabKey(dpy, keycode, mod, win); } +void bind_mouse_button(Display *dpy, Window win, unsigned int mod, KeySym button) { + XGrabButton(dpy, button, mod, win, False, ButtonPress, GrabModeSync, GrabModeAsync, None, None); +} + int error_handler(Display *disp, XErrorEvent *xe) { switch(xe->error_code) { case BadAccess: @@ -152,6 +156,13 @@ void keypress(Display *dpy, Window win, XKeyEvent *ev) { } } +void buttonpress(Display* dpy, Window win, XButtonEvent* ev) { + printf("Muse click\n"); + + // Replay event + XAllowEvents(dpy, ReplayPointer, CurrentTime); +} + int main() { XSetErrorHandler(error_handler); @@ -165,7 +176,10 @@ int main() { bind_key(dpy, root, keys[i].mod, keys[i].key); } - XSelectInput(dpy, root, KeyPressMask); + bind_mouse_button(dpy, root, 0, Button1); + + long int event_mask = KeyPressMask | ButtonPressMask; + XSelectInput(dpy, root, event_mask); handle_mode_change(); @@ -173,13 +187,15 @@ int main() { XEvent ev; XSync(dpy, False); while (running) { - XMaskEvent(dpy, KeyPressMask, &ev); + XMaskEvent(dpy, event_mask, &ev); switch (ev.type) { - case KeyPress: { + case KeyPress: keypress(dpy, root, &ev.xkey); break; - } + case ButtonPress: + buttonpress(dpy, root, &ev.xbutton); + break; } } |
