mirror of
https://github.com/brl/mutter.git
synced 2024-11-21 15:40:41 -05:00
Fix middle-frame-click-to-lower focus inconsistency (#154601)
2004-10-08 Elijah Newren <newren@math.utah.edu> Fix middle-frame-click-to-lower focus inconsistency (#154601) * src/core.c (meta_core_user_lower_and_unfocus): focus the default window in all focus modes, not just click-to-focus (EnterNotify events will not handle this case for sloppy and mouse focus) * src/display.c (event_callback): replace window->has_focus with window == display->expected_focus_window to avoid a race issue
This commit is contained in:
parent
79b4de04fc
commit
81fe64991c
17
ChangeLog
17
ChangeLog
@ -1,8 +1,19 @@
|
||||
2004-10-08 Elijah Newren <newren@math.utah.edu>
|
||||
|
||||
Alter the meaning of expected_focus_window; doesn't affect
|
||||
current operation but assists in fixing some other bugs
|
||||
(#154598)
|
||||
Fix middle-frame-click-to-lower focus inconsistency (#154601)
|
||||
|
||||
* src/core.c (meta_core_user_lower_and_unfocus): focus the default
|
||||
window in all focus modes, not just click-to-focus (EnterNotify
|
||||
events will not handle this case for sloppy and mouse focus)
|
||||
|
||||
* src/display.c (event_callback): replace window->has_focus with
|
||||
window == display->expected_focus_window to avoid a race issue
|
||||
|
||||
2004-10-08 Elijah Newren <newren@math.utah.edu>
|
||||
|
||||
Alter the meaning of expected_focus_window; doesn't affect
|
||||
current operation but assists in fixing some other bugs
|
||||
(#154598)
|
||||
|
||||
* src/display.c (meta_display_focus_the_no_focus_window): set the
|
||||
expected_focus_window to NULL.
|
||||
|
12
src/core.c
12
src/core.c
@ -275,13 +275,13 @@ meta_core_user_lower_and_unfocus (Display *xdisplay,
|
||||
g_list_append (window->screen->active_workspace->mru_list,
|
||||
window);
|
||||
}
|
||||
|
||||
/* focus on the (new) topmost window */
|
||||
if (window->has_focus)
|
||||
meta_workspace_focus_default_window (window->screen->active_workspace,
|
||||
window,
|
||||
timestamp);
|
||||
}
|
||||
|
||||
/* focus the default window, if needed */
|
||||
if (window->has_focus)
|
||||
meta_workspace_focus_default_window (window->screen->active_workspace,
|
||||
NULL,
|
||||
timestamp);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1784,7 +1784,7 @@ event_callback (XEvent *event,
|
||||
switch (meta_prefs_get_focus_mode ())
|
||||
{
|
||||
case META_FOCUS_MODE_MOUSE:
|
||||
if (window->has_focus &&
|
||||
if (window == display->expected_focus_window &&
|
||||
(window->frame == NULL || frame_was_receiver) &&
|
||||
event->xcrossing.mode != NotifyGrab &&
|
||||
event->xcrossing.mode != NotifyUngrab &&
|
||||
|
Loading…
Reference in New Issue
Block a user