Hi On Sun, Dec 19, 2021 at 6:33 AM Alexander Orzechowski < orzechowski.alexan...@gmail.com> wrote:
> In these cases, we only care about the size of the virtual console > itself. Previously, these calculations were made using the size of > the entire window, which would include the size of the virtual console > plus all the ui elements around it. > > Signed-off-by: Alexander Orzechowski <orzechowski.alexan...@gmail.com> > It's not obvious to me that the drawing area doesn't have its own window. Nonetheless, it is better to use the allocated size. Reviewed-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- > ui/gtk.c | 26 ++++++++++---------------- > 1 file changed, 10 insertions(+), 16 deletions(-) > > diff --git a/ui/gtk.c b/ui/gtk.c > index 428f02f2df..824334ff3d 100644 > --- a/ui/gtk.c > +++ b/ui/gtk.c > @@ -340,8 +340,8 @@ static void gd_update_full_redraw(VirtualConsole *vc) > { > GtkWidget *area = vc->gfx.drawing_area; > int ww, wh; > - ww = gdk_window_get_width(gtk_widget_get_window(area)); > - wh = gdk_window_get_height(gtk_widget_get_window(area)); > + ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); > + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); > #if defined(CONFIG_OPENGL) > if (vc->gfx.gls && gtk_use_gl_area) { > gtk_gl_area_queue_render(GTK_GL_AREA(vc->gfx.drawing_area)); > @@ -387,7 +387,6 @@ static void gd_update(DisplayChangeListener *dcl, > int x, int y, int w, int h) > { > VirtualConsole *vc = container_of(dcl, VirtualConsole, gfx.dcl); > - GdkWindow *win; > int x1, x2, y1, y2; > int mx, my; > int fbw, fbh; > @@ -414,12 +413,8 @@ static void gd_update(DisplayChangeListener *dcl, > fbw = surface_width(vc->gfx.ds) * vc->gfx.scale_x; > fbh = surface_height(vc->gfx.ds) * vc->gfx.scale_y; > > - win = gtk_widget_get_window(vc->gfx.drawing_area); > - if (!win) { > - return; > - } > - ww = gdk_window_get_width(win); > - wh = gdk_window_get_height(win); > + ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); > + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); > > mx = my = 0; > if (ww > fbw) { > @@ -788,8 +783,8 @@ static gboolean gd_draw_event(GtkWidget *widget, > cairo_t *cr, void *opaque) > fbw = surface_width(vc->gfx.ds); > fbh = surface_height(vc->gfx.ds); > > - ww = gdk_window_get_width(gtk_widget_get_window(widget)); > - wh = gdk_window_get_height(gtk_widget_get_window(widget)); > + ww = gtk_widget_get_allocated_width(vc->gfx.drawing_area); > + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); > > if (s->full_screen) { > vc->gfx.scale_x = (double)ww / fbw; > @@ -838,7 +833,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; > @@ -851,10 +845,10 @@ 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(vc->gfx.drawing_area); > + wh = gtk_widget_get_allocated_height(vc->gfx.drawing_area); > + ws = gdk_window_get_scale_factor( > + gtk_widget_get_window(vc->gfx.drawing_area)); > > mx = my = 0; > if (ww > fbw) { > -- > 2.34.1 > > > -- Marc-André Lureau