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:
Elijah Newren 2005-01-09 19:27:22 +00:00 committed by Elijah Newren
parent c0924402d4
commit be29c69653
3 changed files with 33 additions and 17 deletions

View File

@ -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>
Make sure the save session dialog appears focused. Fixes #162983.

View File

@ -76,9 +76,13 @@ and LeaveNotify events should be ignored (they can be generated
without using the mouse, for example, by grabs).
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
these windows if the user clicks on them or uses Ctrl-Alt-Tab to
navigate to them.
the panel) present a special case, at least partially due to the lack
of decorations. For WM_DESKTOP windows, we only focus them if the
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
http://bugzilla.gnome.org/show_bug.cgi?id=101190
- 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
working; they helped form these policies and/or show the difficulties

View File

@ -1598,32 +1598,32 @@ event_callback (XEvent *event,
if (unmodified ||
event->xbutton.button == 1)
{
/* don't focus if frame received, will be lowered in
* frames.c or special-cased if the click was on a
* minimize/close button.
*/
if (!frame_was_receiver)
{
/* don't focus if frame received, will be lowered in
* frames.c or special-cased if the click was on a
* minimize/close button.
*/
/* Raise on clicking the client area always or only
* in click to focus mode? The debate rages.
* Feel free to change TRUE to FALSE or vice versa
*/
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,
"Focusing %s due to unmodified button %d press (display.c)\n",
window->desc, event->xbutton.button);
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