]> granicus.if.org Git - graphviz/commitdiff
xlib plugin handle_xlib_events: squash -Wsign-conversion warnings
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Wed, 30 Mar 2022 15:17:43 +0000 (08:17 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 2 Apr 2022 19:55:48 +0000 (12:55 -0700)
The Xlib API¹ claims to only return buttons 1-5.

¹ See the table in
  https://www.x.org/releases/X11R7.7/doc/libX11/libX11/libX11.html#Keyboard_and_Pointer_Events_b

plugin/xlib/gvdevice_xlib.c

index ed6c7bd66736b07b4d34e10216d884db4bbe1435..1185432cfe55c0490b85dc53364cb59f42a315c6 100644 (file)
@@ -188,7 +188,10 @@ static int handle_xlib_events (GVJ_t *firstjob, Display *dpy)
                 case ButtonPress:
                    pointer.x = (double)xev.xbutton.x;
                    pointer.y = (double)xev.xbutton.y;
-                    job->callbacks->button_press(job, xev.xbutton.button, pointer);
+                    assert(xev.xbutton.button >= 1 && xev.xbutton.button <= 5 &&
+                           "Xlib returned invalid button event");
+                    job->callbacks->button_press(job, (int)xev.xbutton.button,
+                                                 pointer);
                    rc++;
                     break;
                 case MotionNotify:
@@ -202,7 +205,10 @@ static int handle_xlib_events (GVJ_t *firstjob, Display *dpy)
                 case ButtonRelease:
                    pointer.x = (double)xev.xbutton.x;
                    pointer.y = (double)xev.xbutton.y;
-                    job->callbacks->button_release(job, xev.xbutton.button, pointer);
+                    assert(xev.xbutton.button >= 1 && xev.xbutton.button <= 5 &&
+                           "Xlib returned invalid button event");
+                    job->callbacks->button_release(job, (int)xev.xbutton.button,
+                                                   pointer);
                    if (job->selected_href && job->selected_href[0] && xev.xbutton.button == 1)
                        browser_show(job);
                    rc++;