qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] Let the USB tablet reach the far bottom and right pixels
@ 2008-02-27 14:45 Samuel Thibault
  2008-02-27 15:35 ` Johannes Schindelin
  2008-03-05 10:46 ` [Qemu-devel] " Samuel Thibault
  0 siblings, 2 replies; 5+ messages in thread
From: Samuel Thibault @ 2008-02-27 14:45 UTC (permalink / raw)
  To: qemu-devel

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;

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-03-05 10:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-27 14:45 [Qemu-devel] [PATCH] Let the USB tablet reach the far bottom and right pixels Samuel Thibault
2008-02-27 15:35 ` Johannes Schindelin
2008-02-27 16:41   ` Samuel Thibault
2008-02-27 16:56     ` Johannes Schindelin
2008-03-05 10:46 ` [Qemu-devel] " Samuel Thibault

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).