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> 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.

View File

@ -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

View File

@ -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