aboutsummaryrefslogtreecommitdiffstats
path: root/src/x11.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2021-12-17 10:43:11 -0500
committerDavid Robillard <d@drobilla.net>2021-12-17 11:18:04 -0500
commit6ca68635e8cef8407e91bc9542edf196ef708210 (patch)
tree3eac52f9fff833979e348b7e89b3a9f19628d34a /src/x11.c
parentcea2a9b9f454192bccb1bf0b1f5561d601022d00 (diff)
downloadpugl-6ca68635e8cef8407e91bc9542edf196ef708210.tar.gz
pugl-6ca68635e8cef8407e91bc9542edf196ef708210.tar.bz2
pugl-6ca68635e8cef8407e91bc9542edf196ef708210.zip
Make button numbers consistent across platforms
There's no universal consensus on how buttons are numbered. Left, right, middle as 0, 1, 2 seems to be the most common convention on modern vaguely similar libraries, so I've gone with that. The switch to zero-based indices will obviously break all current client code. Particularly since now is the time to finish any breaking changes before a stable release, I think that is better than only changing the middle and right numbers, which would likely go unnoticed.
Diffstat (limited to 'src/x11.c')
-rw-r--r--src/x11.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/x11.c b/src/x11.c
index 614b7ac..ed249a8 100644
--- a/src/x11.c
+++ b/src/x11.c
@@ -741,7 +741,14 @@ translateEvent(PuglView* const view, XEvent xevent)
event.button.xRoot = xevent.xbutton.x_root;
event.button.yRoot = xevent.xbutton.y_root;
event.button.state = translateModifiers(xevent.xbutton.state);
- event.button.button = xevent.xbutton.button;
+ event.button.button = xevent.xbutton.button - 1;
+ if (event.button.button == 1) {
+ event.button.button = 2;
+ } else if (event.button.button == 2) {
+ event.button.button = 1;
+ } else if (event.button.button >= 7) {
+ event.button.button -= 4;
+ }
}
break;
case KeyPress: