1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-29 00:31:01 -08:00

Fix GTK native input on scaled displays

* src/xfns.c (xic_set_preeditarea): Scale preedit spot rectangle
before giving it to GTK.
This commit is contained in:
Po Lu 2022-01-25 08:21:55 +08:00
parent 667e212048
commit eb4edfa0c8

View file

@ -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);