Don't focus the panel on click. Fixes #160470 (and 100470 and removes the
2005-01-09 Elijah Newren <newren@gmail.com> Don't focus the panel on click. Fixes #160470 (and 100470 and removes the need for the hack from 128200) * doc/how-to-get-focus-right.txt: Update section on focusing non-decorated windows (specifically, DOCKS and DESKTOPS) * src/display.c (event_callback): don't focus dock windows on click
This commit is contained in:
parent
c0924402d4
commit
be29c69653
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
|||||||
|
2005-01-09 Elijah Newren <newren@gmail.com>
|
||||||
|
|
||||||
|
Don't focus the panel on click. Fixes #160470 (and 100470 and
|
||||||
|
removes the need for the hack from 128200)
|
||||||
|
|
||||||
|
* doc/how-to-get-focus-right.txt: Update section on focusing
|
||||||
|
non-decorated windows (specifically, DOCKS and DESKTOPS)
|
||||||
|
|
||||||
|
* src/display.c (event_callback): don't focus dock windows on
|
||||||
|
click
|
||||||
|
|
||||||
2005-01-06 Elijah Newren <newren@gmail.com>
|
2005-01-06 Elijah Newren <newren@gmail.com>
|
||||||
|
|
||||||
Make sure the save session dialog appears focused. Fixes #162983.
|
Make sure the save session dialog appears focused. Fixes #162983.
|
||||||
|
@ -76,9 +76,13 @@ and LeaveNotify events should be ignored (they can be generated
|
|||||||
without using the mouse, for example, by grabs).
|
without using the mouse, for example, by grabs).
|
||||||
|
|
||||||
Finally, windows of type WM_DOCK or WM_DESKTOP (e.g. the desktop and
|
Finally, windows of type WM_DOCK or WM_DESKTOP (e.g. the desktop and
|
||||||
the panel) present a special case. For all focus modes, we only focus
|
the panel) present a special case, at least partially due to the lack
|
||||||
these windows if the user clicks on them or uses Ctrl-Alt-Tab to
|
of decorations. For WM_DESKTOP windows, we only focus them if the
|
||||||
navigate to them.
|
user explicitly requests it (e.g. clicks on the window, uses
|
||||||
|
Ctrl-Alt-Tab to navigate to it, uses a keybinding to show the desktop,
|
||||||
|
etc.). For WM_DOCK windows, we do not focus unless we receive a very
|
||||||
|
explicit request (e.g. Ctrl-Alt-Tab or a _NET_ACTIVE_WINDOW message;
|
||||||
|
not normal clicks).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -94,7 +98,8 @@ To read more about the bugs that inspired these choices:
|
|||||||
- Ignoring EnterNotify and LeaveNotify events during keynav
|
- Ignoring EnterNotify and LeaveNotify events during keynav
|
||||||
http://bugzilla.gnome.org/show_bug.cgi?id=101190
|
http://bugzilla.gnome.org/show_bug.cgi?id=101190
|
||||||
- Not focusing panels
|
- Not focusing panels
|
||||||
http://bugzilla.gnome.org/show_bug.cgi?id=120100 (maybe a different bug?)
|
http://bugzilla.gnome.org/show_bug.cgi?id=160470
|
||||||
|
http://bugzilla.gnome.org/show_bug.cgi?id=120100
|
||||||
|
|
||||||
There were many bugs which had to be fixed to get all the above
|
There were many bugs which had to be fixed to get all the above
|
||||||
working; they helped form these policies and/or show the difficulties
|
working; they helped form these policies and/or show the difficulties
|
||||||
|
@ -1597,33 +1597,33 @@ event_callback (XEvent *event,
|
|||||||
|
|
||||||
if (unmodified ||
|
if (unmodified ||
|
||||||
event->xbutton.button == 1)
|
event->xbutton.button == 1)
|
||||||
{
|
|
||||||
if (!frame_was_receiver)
|
|
||||||
{
|
{
|
||||||
/* don't focus if frame received, will be lowered in
|
/* don't focus if frame received, will be lowered in
|
||||||
* frames.c or special-cased if the click was on a
|
* frames.c or special-cased if the click was on a
|
||||||
* minimize/close button.
|
* minimize/close button.
|
||||||
*/
|
*/
|
||||||
|
if (!frame_was_receiver)
|
||||||
|
{
|
||||||
/* Raise on clicking the client area always or only
|
/* Raise on clicking the client area always or only
|
||||||
* in click to focus mode? The debate rages.
|
* in click to focus mode? The debate rages.
|
||||||
* Feel free to change TRUE to FALSE or vice versa
|
* Feel free to change TRUE to FALSE or vice versa
|
||||||
*/
|
*/
|
||||||
if (TRUE /* meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK */)
|
if (TRUE /* meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK */)
|
||||||
{
|
|
||||||
meta_window_raise (window);
|
meta_window_raise (window);
|
||||||
|
else
|
||||||
|
meta_topic (META_DEBUG_FOCUS,
|
||||||
|
"Not raising window on click due to mouse/sloppy focus mode\n");
|
||||||
|
|
||||||
|
/* Don't focus panels--they must explicitly request focus.
|
||||||
|
* See bug 160470
|
||||||
|
*/
|
||||||
|
if (window->type != META_WINDOW_DOCK)
|
||||||
|
{
|
||||||
meta_topic (META_DEBUG_FOCUS,
|
meta_topic (META_DEBUG_FOCUS,
|
||||||
"Focusing %s due to unmodified button %d press (display.c)\n",
|
"Focusing %s due to unmodified button %d press (display.c)\n",
|
||||||
window->desc, event->xbutton.button);
|
window->desc, event->xbutton.button);
|
||||||
meta_window_focus (window, event->xbutton.time);
|
meta_window_focus (window, event->xbutton.time);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
meta_topic (META_DEBUG_FOCUS,
|
|
||||||
"Not raising window on click due to mouse/sloppy focus mode\n");
|
|
||||||
meta_window_focus (window, event->xbutton.time);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* you can move on alt-click but not on
|
/* you can move on alt-click but not on
|
||||||
|
Loading…
x
Reference in New Issue
Block a user