diff --git a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx index d5850e1a3..0125bfc07 100644 --- a/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx +++ b/src/drivers/Wayland/Fl_Wayland_Screen_Driver.cxx @@ -678,7 +678,12 @@ int Fl_Wayland_Screen_Driver::compose(int& del) { // letter+modifier key int condition = (Fl::e_state & (FL_ALT | FL_META | FL_CTRL)) && ascii < 128 ; // pressing modifier key + // FL_Shift_L, FL_Shift_R, FL_Control_L, FL_Control_R, FL_Caps_Lock + // FL_Meta_L, FL_Meta_R, FL_Alt_L, FL_Alt_R + // TODO: FL_Alt_Gr condition |= (Fl::e_keysym >= FL_Shift_L && Fl::e_keysym <= FL_Alt_R); + // FL_Home FL_Left FL_Up FL_Right FL_Down FL_Page_Up FL_Page_Down FL_End + // FL_Print FL_Insert FL_Menu FL_Help and more condition |= (Fl::e_keysym >= FL_Home && Fl::e_keysym <= FL_Help); condition |= Fl::e_keysym == FL_Tab; //fprintf(stderr, "compose: condition=%d e_state=%x ascii=%d\n", condition, Fl::e_state, ascii); diff --git a/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx index 6f6d20828..2534d63a5 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_Screen_Driver.cxx @@ -332,7 +332,7 @@ void Fl_WinAPI_Screen_Driver::get_system_colors() int Fl_WinAPI_Screen_Driver::compose(int &del) { unsigned char ascii = (unsigned char)Fl::e_text[0]; - int condition = (Fl::e_state & (FL_ALT | FL_META)) && !(ascii & 128) ; + int condition = (Fl::e_state & (FL_ALT | FL_META | FL_CTRL)) && !(ascii & 128) ; if (condition) { // this stuff is to be treated as a function key del = 0; return 0;