From: Po Lu Date: Tue, 25 Jan 2022 00:21:55 +0000 (+0800) Subject: Fix GTK native input on scaled displays X-Git-Tag: emacs-29.0.90~2771 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=eb4edfa0c86c27d0f978bc2551ba4ebee9dda63f;p=emacs.git Fix GTK native input on scaled displays * src/xfns.c (xic_set_preeditarea): Scale preedit spot rectangle before giving it to GTK. --- diff --git a/src/xfns.c b/src/xfns.c index 33d8d98e70b..bb1e431ff87 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -2844,14 +2844,16 @@ xic_set_preeditarea (struct window *w, int x, int y) } #ifdef USE_GTK GdkRectangle rect; + int scale = xg_get_scale (f); + rect.x = (WINDOW_TO_FRAME_PIXEL_X (w, x) + WINDOW_LEFT_FRINGE_WIDTH (w) - + WINDOW_LEFT_MARGIN_WIDTH (w)); + + WINDOW_LEFT_MARGIN_WIDTH (w)) / scale; rect.y = (WINDOW_TO_FRAME_PIXEL_Y (w, y) + FRAME_TOOLBAR_HEIGHT (f) - + FRAME_MENUBAR_HEIGHT (f)); - rect.width = w->phys_cursor_width; - rect.height = w->phys_cursor_height; + + FRAME_MENUBAR_HEIGHT (f)) / scale; + rect.width = w->phys_cursor_width / scale; + rect.height = w->phys_cursor_height / scale; gtk_im_context_set_cursor_location (FRAME_X_OUTPUT (f)->im_context, &rect);