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>
|
2004-10-08 Elijah Newren <newren@math.utah.edu>
|
||||||
|
|
||||||
Alter the meaning of expected_focus_window; doesn't affect
|
Fix middle-frame-click-to-lower focus inconsistency (#154601)
|
||||||
current operation but assists in fixing some other bugs
|
|
||||||
(#154598)
|
* 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
|
* src/display.c (meta_display_focus_the_no_focus_window): set the
|
||||||
expected_focus_window to NULL.
|
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,
|
g_list_append (window->screen->active_workspace->mru_list,
|
||||||
window);
|
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
|
void
|
||||||
|
@ -1784,7 +1784,7 @@ event_callback (XEvent *event,
|
|||||||
switch (meta_prefs_get_focus_mode ())
|
switch (meta_prefs_get_focus_mode ())
|
||||||
{
|
{
|
||||||
case META_FOCUS_MODE_MOUSE:
|
case META_FOCUS_MODE_MOUSE:
|
||||||
if (window->has_focus &&
|
if (window == display->expected_focus_window &&
|
||||||
(window->frame == NULL || frame_was_receiver) &&
|
(window->frame == NULL || frame_was_receiver) &&
|
||||||
event->xcrossing.mode != NotifyGrab &&
|
event->xcrossing.mode != NotifyGrab &&
|
||||||
event->xcrossing.mode != NotifyUngrab &&
|
event->xcrossing.mode != NotifyUngrab &&
|
||||||
|
Loading…
Reference in New Issue
Block a user