diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xterm.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/xterm.c b/src/xterm.c index 21d99f0c7bb..5d229e4f524 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -4790,6 +4790,16 @@ x_detect_focus_change (struct x_display_info *dpyinfo, struct frame *frame, | |||
| 4790 | 4790 | ||
| 4791 | case FocusIn: | 4791 | case FocusIn: |
| 4792 | case FocusOut: | 4792 | case FocusOut: |
| 4793 | /* Ignore transient focus events from hotkeys, window manager | ||
| 4794 | gadgets, and other odd sources. Some buggy window managers | ||
| 4795 | (e.g., Muffin 4.2.4) send FocusIn events of this type without | ||
| 4796 | corresponding FocusOut events even when some other window | ||
| 4797 | really has focus, and these kinds of focus event don't | ||
| 4798 | correspond to real user input changes. GTK+ uses the same | ||
| 4799 | filtering. */ | ||
| 4800 | if (event->xfocus.mode == NotifyGrab || | ||
| 4801 | event->xfocus.mode == NotifyUngrab) | ||
| 4802 | return; | ||
| 4793 | x_focus_changed (event->type, | 4803 | x_focus_changed (event->type, |
| 4794 | (event->xfocus.detail == NotifyPointer ? | 4804 | (event->xfocus.detail == NotifyPointer ? |
| 4795 | FOCUS_IMPLICIT : FOCUS_EXPLICIT), | 4805 | FOCUS_IMPLICIT : FOCUS_EXPLICIT), |