diff options
Diffstat (limited to 'src/Fl_x.cxx')
| -rw-r--r-- | src/Fl_x.cxx | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/Fl_x.cxx b/src/Fl_x.cxx index fa58c8076..150438755 100644 --- a/src/Fl_x.cxx +++ b/src/Fl_x.cxx @@ -1,7 +1,7 @@ // // X specific code for the Fast Light Tool Kit (FLTK). // -// Copyright 1998-2025 by Bill Spitzak and others. +// Copyright 1998-2026 by Bill Spitzak and others. // // This library is free software. Distribution and use rights are outlined in // the file "COPYING" which should have been included with this file. If this @@ -101,6 +101,7 @@ extern Fl_Window *fl_xmousewin; static void open_display_i(Display *d); // open display (internal) extern int fl_send_system_handlers(void *e); +extern int fl_utf8_remove_context_dependent(char *text, int len); #if FLTK_CONSOLIDATE_MOTION static Fl_Window *send_motion; @@ -1833,6 +1834,7 @@ int fl_handle(const XEvent& thisevent) Status status; len = XUtf8LookupString(Fl_X11_Screen_Driver::xim_ic, (XKeyPressedEvent *)&xevent.xkey, kp_buffer, kp_buffer_len, &keysym, &status); + len = fl_utf8_remove_context_dependent(kp_buffer, len); while (status == XBufferOverflow && kp_buffer_len < 50000) { kp_buffer_len = kp_buffer_len * 5 + 1; |
