Browse Source

[X11] Fix IME window focus events.

bruvzg 2 years ago
parent
commit
103f671ada
1 changed files with 2 additions and 2 deletions
  1. 2 2
      platform/linuxbsd/x11/display_server_x11.cpp

+ 2 - 2
platform/linuxbsd/x11/display_server_x11.cpp

@@ -4109,7 +4109,7 @@ void DisplayServerX11::process_events() {
 
 
 			case FocusIn: {
 			case FocusIn: {
 				DEBUG_LOG_X11("[%u] FocusIn window=%lu (%u), mode='%u' \n", frame, event.xfocus.window, window_id, event.xfocus.mode);
 				DEBUG_LOG_X11("[%u] FocusIn window=%lu (%u), mode='%u' \n", frame, event.xfocus.window, window_id, event.xfocus.mode);
-				if (ime_window_event) {
+				if (ime_window_event || (event.xfocus.detail == NotifyInferior)) {
 					break;
 					break;
 				}
 				}
 
 
@@ -4157,7 +4157,7 @@ void DisplayServerX11::process_events() {
 			case FocusOut: {
 			case FocusOut: {
 				DEBUG_LOG_X11("[%u] FocusOut window=%lu (%u), mode='%u' \n", frame, event.xfocus.window, window_id, event.xfocus.mode);
 				DEBUG_LOG_X11("[%u] FocusOut window=%lu (%u), mode='%u' \n", frame, event.xfocus.window, window_id, event.xfocus.mode);
 				WindowData &wd = windows[window_id];
 				WindowData &wd = windows[window_id];
-				if (wd.ime_active && event.xfocus.detail == NotifyInferior) {
+				if (ime_window_event || (event.xfocus.detail == NotifyInferior)) {
 					break;
 					break;
 				}
 				}
 				if (wd.ime_active) {
 				if (wd.ime_active) {