Skip to contentSkip to conversation

ioemu: Let the USB tablet reach the far bottom and right pixels

PATCH New Samuel Thibault 1 participant 1 message Mar 5, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ioemu: Let the USB tablet reach the far bottom and right pixels

ioemu: Let the USB tablet reach the far bottom and right pixels by fixing divisions / multiplications into using width-1.

tools/ioemu/hw/xenfb.c +4 -4
diff -r 854b0704962b tools/ioemu/hw/xenfb.c
@@ -1052,8 +1052,8 @@ static void xenfb_mouse_event(void *opaq
     struct xenfb *xenfb = opaque;
     if (xenfb->abs_pointer_wanted)
 	    xenfb_send_position(xenfb,
-				dx * xenfb->ds->width / 0x7fff,
-				dy * xenfb->ds->height / 0x7fff,
+                                dx * (xenfb->ds->width - 1) / 0x7fff,
+                                dy * (xenfb->ds->height - 1) / 0x7fff,
 				dz);
     else
 	    xenfb_send_motion(xenfb, dx, dy, dz);
@@ -1312,8 +1312,8 @@ static void xenfb_kbd_handler(void *opaq
                         buttons &= ~button;
                     if (kbd_mouse_is_absolute())
                         kbd_mouse_event(
-                                x * 0x7FFF / s->width,
-                                y * 0x7FFF / s->height,
+                                x * 0x7FFF / (s->width - 1),
+                                y * 0x7FFF / (s->height - 1),
                                 0,
                                 buttons);
                     else
tools/ioemu/sdl.c +2 -2
diff -r 854b0704962b tools/ioemu/sdl.c
@@ -331,8 +331,8 @@ static void sdl_send_mouse_event(int dx,
 	}
 
 	SDL_GetMouseState(&dx, &dy);
-	dx = dx * 0x7FFF / width;
-	dy = dy * 0x7FFF / height;
+        dx = dx * 0x7FFF / (width - 1);
+        dy = dy * 0x7FFF / (height - 1);
     } else if (absolute_enabled) {
 	sdl_show_cursor();
 	absolute_enabled = 0;
tools/ioemu/vnc.c +2 -2
diff -r 854b0704962b tools/ioemu/vnc.c
@@ -1214,8 +1214,8 @@ static void pointer_event(VncState *vs, 
 	dz = 1;
 
     if (vs->absolute) {
-	kbd_mouse_event(x * 0x7FFF / vs->ds->width,
-			y * 0x7FFF / vs->ds->height,
+        kbd_mouse_event(x * 0x7FFF / (vs->ds->width - 1),
+                        y * 0x7FFF / (vs->ds->height - 1),
 			dz, buttons);
     } else if (vs->has_pointer_type_change) {
 	x -= 0x7FFF;