summaryrefslogtreecommitdiff
path: root/src/Fl_cocoa.mm
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2026-01-21 14:00:26 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2026-01-21 14:00:26 +0100
commit14a5f705c8e3385a637be3377f0800b30c38e589 (patch)
treec8199a77311468cec3cc7fc2e0b168e60b39a109 /src/Fl_cocoa.mm
parent2f7d7adfcf4bec55fa5e007947e4a455e85d8930 (diff)
Improve handling of text containing context-dependent unicode points.
This commit makes platforms Windows and macOS compute string widths with the same mechanism as what is in place for platforms Wayland/X11: - the width of a string containing a single codepoint is computed and memorized in the table of character widths; - the width of a string containing several codepoints is computed as such rather than as the sum of the widths of its composing characters. The result is that FLTK text widgets input and draw correctly also complex emojis encoded with context-dependent codepoints. Function fl_utf8_remove_context_dependent() is no longer necessary.
Diffstat (limited to 'src/Fl_cocoa.mm')
-rw-r--r--src/Fl_cocoa.mm2
1 files changed, 0 insertions, 2 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm
index fed978e1e..66d5227fd 100644
--- a/src/Fl_cocoa.mm
+++ b/src/Fl_cocoa.mm
@@ -67,7 +67,6 @@ extern "C" {
// external functions
extern void fl_fix_focus();
extern int fl_send_system_handlers(void *e);
-extern int fl_utf8_remove_context_dependent(char *text, int len);
// forward definition of functions in this file
// converting cr lf converter function
@@ -2957,7 +2956,6 @@ static FLTextInputContext* fltextinputcontext_instance = nil;
// insertText sent during handleEvent of a key without text cannot be processed in a single FL_KEYBOARD event.
// Occurs with deadkey followed by non-text key. Occurs also with emoji palette.
if (!in_key_event || !has_text_key) {
- Fl::e_length = fl_utf8_remove_context_dependent(Fl::e_text, Fl::e_length);
Fl::handle(FL_KEYBOARD, target);
Fl::e_length = 0;
}