summaryrefslogtreecommitdiff
path: root/src/Fl_compose.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_compose.cxx')
-rw-r--r--src/Fl_compose.cxx7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/Fl_compose.cxx b/src/Fl_compose.cxx
index 18ea1a596..20ff63249 100644
--- a/src/Fl_compose.cxx
+++ b/src/Fl_compose.cxx
@@ -49,9 +49,10 @@ int Fl::compose(int& del) {
// character composition is now handled by the OS
del = 0;
#if defined(__APPLE__)
- // this stuff is to be treated as a function key
- if(Fl::e_length == 0 || Fl::e_keysym == FL_Enter || Fl::e_keysym == FL_KP_Enter ||
- Fl::e_keysym == FL_Tab || Fl::e_keysym == FL_Escape || Fl::e_state&(FL_META | FL_CTRL) ) {
+ int has_text_key = Fl::compose_state || Fl::e_keysym <= '~' || Fl::e_keysym == FL_Iso_Key ||
+ (Fl::e_keysym >= FL_KP && Fl::e_keysym <= FL_KP_Last && Fl::e_keysym != FL_KP_Enter);
+ if ( Fl::e_state&(FL_META | FL_CTRL) || !has_text_key ) {
+ // this stuff is to be treated as a function key
return 0;
}
#elif defined(WIN32)