[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/19] ui/gtk: use widget size for cursor motion event
|
From: |
marcandre . lureau |
|
Subject: |
[PULL 02/19] ui/gtk: use widget size for cursor motion event |
|
Date: |
Sun, 28 May 2023 17:19:59 +0400 |
From: Erico Nunes <ernunes@redhat.com>
The gd_motion_event size has some calculations for the cursor position,
which also take into account things like different size of the
framebuffer compared to the window size.
The use of window size makes things more difficult though, as at least
in the case of Wayland includes the size of ui elements like a menu bar
at the top of the window. This leads to a wrong position calculation by
a few pixels.
Fix it by using the size of the widget, which already returns the size
of the actual space to render the framebuffer.
Signed-off-by: Erico Nunes <ernunes@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Acked-by: Vivek Kasireddy <vivek.kasireddy@intel.com>
Message-Id: <20230320160856.364319-1-ernunes@redhat.com>
---
ui/gtk.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/ui/gtk.c b/ui/gtk.c
index f16e0f8dee..0a9f24ee0a 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -869,7 +869,6 @@ static gboolean gd_motion_event(GtkWidget *widget,
GdkEventMotion *motion,
{
VirtualConsole *vc = opaque;
GtkDisplayState *s = vc->s;
- GdkWindow *window;
int x, y;
int mx, my;
int fbh, fbw;
@@ -882,10 +881,9 @@ static gboolean gd_motion_event(GtkWidget *widget,
GdkEventMotion *motion,
fbw = surface_width(vc->gfx.ds) * vc->gfx.scale_x;
fbh = surface_height(vc->gfx.ds) * vc->gfx.scale_y;
- window = gtk_widget_get_window(vc->gfx.drawing_area);
- ww = gdk_window_get_width(window);
- wh = gdk_window_get_height(window);
- ws = gdk_window_get_scale_factor(window);
+ ww = gtk_widget_get_allocated_width(widget);
+ wh = gtk_widget_get_allocated_height(widget);
+ ws = gtk_widget_get_scale_factor(widget);
mx = my = 0;
if (ww > fbw) {
--
2.40.1
- [PULL 00/19] Ui patches, marcandre . lureau, 2023/05/28
- [PULL 01/19] ui/gtk: fix passing y0_top parameter to scanout, marcandre . lureau, 2023/05/28
- [PULL 03/19] ui/gtk-egl: fix scaling for cursor position in scanout mode, marcandre . lureau, 2023/05/28
- [PULL 02/19] ui/gtk: use widget size for cursor motion event,
marcandre . lureau <=
- [PULL 04/19] ui/sdl2: fix surface_gl_update_texture: Assertion 'gls' failed, marcandre . lureau, 2023/05/28
- [PULL 05/19] ui/dbus: fix compilation when GBM && !OPENGL, marcandre . lureau, 2023/05/28
- [PULL 06/19] win32: wrap socket close() with an exception handler, marcandre . lureau, 2023/05/28
- [PULL 07/19] virtio-gpu: add a FIXME for virtio_gpu_load(), marcandre . lureau, 2023/05/28
- [PULL 08/19] gtk: add gl-area support on win32, marcandre . lureau, 2023/05/28
- [PULL 09/19] ui/dbus: add a FIXME about texture/dmabuf scanout handling, marcandre . lureau, 2023/05/28
- [PULL 10/19] ui/sdl2: Grab Alt+Tab also in fullscreen mode, marcandre . lureau, 2023/05/28
- [PULL 11/19] ui/sdl2: Grab Alt+F4 also under Windows, marcandre . lureau, 2023/05/28
- [PULL 12/19] ui/sdl2: disable SDL_HINT_GRAB_KEYBOARD on Windows, marcandre . lureau, 2023/05/28
- [PULL 13/19] ui/cursor: make width/height unsigned 16-bit integer, marcandre . lureau, 2023/05/28