window: Focus windows on button press regardless of modifier state
This seems like a more generally useful and intuitive behavior. Note that, in X sessions, this is what already happened in practice since meta_display_begin_grab_op() calls meta_window_grab_all_keys() which, on X11, does meta_window_focus(). https://bugzilla.gnome.org/show_bug.cgi?id=756789
This commit is contained in:
parent
8e22dce5d7
commit
88acfb8e60
@ -7707,6 +7707,22 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
|
|||||||
if (window->override_redirect)
|
if (window->override_redirect)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* Don't focus panels--they must explicitly request focus.
|
||||||
|
* See bug 160470
|
||||||
|
*/
|
||||||
|
if (window->type != META_WINDOW_DOCK)
|
||||||
|
{
|
||||||
|
meta_topic (META_DEBUG_FOCUS,
|
||||||
|
"Focusing %s due to button %u press (display.c)\n",
|
||||||
|
window->desc, button);
|
||||||
|
meta_window_focus (window, event->any.time);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
/* However, do allow terminals to lose focus due to new
|
||||||
|
* window mappings after the user clicks on a panel.
|
||||||
|
*/
|
||||||
|
display->allow_terminal_deactivation = TRUE;
|
||||||
|
|
||||||
/* We have three passive button grabs:
|
/* We have three passive button grabs:
|
||||||
* - on any button, without modifiers => focuses and maybe raises the window
|
* - on any button, without modifiers => focuses and maybe raises the window
|
||||||
* - on resize button, with modifiers => start an interactive resizing
|
* - on resize button, with modifiers => start an interactive resizing
|
||||||
@ -7741,22 +7757,6 @@ meta_window_handle_ungrabbed_event (MetaWindow *window,
|
|||||||
else
|
else
|
||||||
meta_topic (META_DEBUG_FOCUS,
|
meta_topic (META_DEBUG_FOCUS,
|
||||||
"Not raising window on click due to don't-raise-on-click option\n");
|
"Not raising window on click due to don't-raise-on-click option\n");
|
||||||
|
|
||||||
/* Don't focus panels--they must explicitly request focus.
|
|
||||||
* See bug 160470
|
|
||||||
*/
|
|
||||||
if (window->type != META_WINDOW_DOCK)
|
|
||||||
{
|
|
||||||
meta_topic (META_DEBUG_FOCUS,
|
|
||||||
"Focusing %s due to unmodified button %u press (display.c)\n",
|
|
||||||
window->desc, button);
|
|
||||||
meta_window_focus (window, event->any.time);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
/* However, do allow terminals to lose focus due to new
|
|
||||||
* window mappings after the user clicks on a panel.
|
|
||||||
*/
|
|
||||||
display->allow_terminal_deactivation = TRUE;
|
|
||||||
}
|
}
|
||||||
else if (is_window_grab && (int) button == meta_prefs_get_mouse_button_resize ())
|
else if (is_window_grab && (int) button == meta_prefs_get_mouse_button_resize ())
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user