qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] Let the USB tablet reach the far bottom and right p


From: Samuel Thibault
Subject: [Qemu-devel] [PATCH] Let the USB tablet reach the far bottom and right pixels
Date: Wed, 27 Feb 2008 14:45:55 +0000
User-agent: Mutt/1.5.12-2006-07-14

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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]