emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master eb4edfa0c8: Fix GTK native input on scaled displays


From: Po Lu
Subject: master eb4edfa0c8: Fix GTK native input on scaled displays
Date: Mon, 24 Jan 2022 19:22:43 -0500 (EST)

branch: master
commit eb4edfa0c86c27d0f978bc2551ba4ebee9dda63f
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Fix GTK native input on scaled displays
    
    * src/xfns.c (xic_set_preeditarea): Scale preedit spot rectangle
    before giving it to GTK.
---
 src/xfns.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/xfns.c b/src/xfns.c
index 33d8d98e70..bb1e431ff8 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);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]