On Thu, Nov 22, 2012 at 08:22:57PM -0200, Tiago Vignatti wrote: > Given xf86ScaleAxis(int Cx, int to_max, int to_min, int from_max, int > from_min), if to_max goes from 0 to rows - 1, then from_max has to be entered > accordingly to perform correct scaling. Check xf86ScaleAxis definition for > details. > > An easy way to reproduce the bug exposed, is to open an xterm with small > letters and try to select one text character. You can see that the cursor > pointer doesn't match precisely the character selection. > > Signed-off-by: Tiago Vignatti <[email protected]> > --- > hw/xfree86/xwayland/xwayland-input.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/hw/xfree86/xwayland/xwayland-input.c > b/hw/xfree86/xwayland/xwayland-input.c > index 0c0838d..cff6d5e 100644 > --- a/hw/xfree86/xwayland/xwayland-input.c > +++ b/hw/xfree86/xwayland/xwayland-input.c > @@ -330,8 +330,10 @@ pointer_handle_motion(void *data, struct wl_pointer > *pointer, > dx = xwl_seat->focus_window->window->drawable.x; > dy = xwl_seat->focus_window->window->drawable.y; > > - lx = xf86ScaleAxis(sx + dx, 0xFFFF, 0, xwl_screen->scrninfo->virtualX, > 0); > - ly = xf86ScaleAxis(sy + dy, 0xFFFF, 0, xwl_screen->scrninfo->virtualY, > 0); > + lx = xf86ScaleAxis(sx + dx, 0xFFFF, 0, > + xwl_screen->scrninfo->virtualX - 1, 0); > + ly = xf86ScaleAxis(sy + dy, 0xFFFF, 0, > + xwl_screen->scrninfo->virtualY - 1, 0);
I don't know why we're scaling the coordinates at all, we should just remove this. Kristian > xf86PostMotionEvent(xwl_seat->pointer, TRUE, 0, 2, lx, ly); > } > -- > 1.7.9.5 > > _______________________________________________ > wayland-devel mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
