Hello, While using a virtual usbtablet, I noticed that I could not reach the extreme bottom and right pixels. That is because of the conversion from screen coordinates to 0..0x7FFF, below is a patch that fixes it.
Samuel Index: cocoa.m =================================================================== RCS file: /sources/qemu/qemu/cocoa.m,v retrieving revision 1.15 diff -u -p -r1.15 cocoa.m --- cocoa.m 22 Jan 2008 23:25:15 -0000 1.15 +++ cocoa.m 27 Feb 2008 14:42:02 -0000 @@ -40,7 +40,7 @@ #define cgrect(nsrect) (*(CGRect *)&(nsrect)) #define COCOA_MOUSE_EVENT \ if (isTabletEnabled) { \ - kbd_mouse_event((int)(p.x * 0x7FFF / screen.width), (int)((screen.height - p.y) * 0x7FFF / screen.height), 0, buttons); \ + kbd_mouse_event((int)(p.x * 0x7FFF / (screen.width - 1)), (int)((screen.height - p.y) * 0x7FFF / (screen.height - 1)), 0, buttons); \ } else if (isMouseGrabed) { \ kbd_mouse_event((int)[event deltaX], (int)[event deltaY], 0, buttons); \ } else { \ --- vl.c 17 Feb 2008 11:42:19 -0000 1.406 +++ vl.c 27 Feb 2008 14:42:04 -0000 @@ -588,7 +588,7 @@ if (qemu_put_mouse_event_current->qemu_put_mouse_event_absolute) width = 0x7fff; else - width = graphic_width; + width = graphic_width - 1; mouse_event(mouse_event_opaque, width - dy, dx, dz, buttons_state); } else --- sdl.c 17 Nov 2007 17:14:38 -0000 1.45 +++ sdl.c 27 Feb 2008 14:42:04 -0000 @@ -311,8 +311,8 @@ absolute_enabled = 1; } - 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; Index: vnc.c =================================================================== RCS file: /sources/qemu/qemu/vnc.c,v --- vnc.c 10 Feb 2008 16:33:13 -0000 1.35 +++ vnc.c 27 Feb 2008 14:42:04 -0000 @@ -879,8 +879,8 @@ 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;