mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
Patch from Ken Harris in #135786 to focus a new default window when
2004-09-15 Elijah Newren <newren@math.utah.edu> Patch from Ken Harris in #135786 to focus a new default window when lowering via middle-click on the frame. * src/core.[hc], src/frames.c: rename meta_core_user_lower to meta_core_user_lower_and_unfocus * src/core.c (meta_core_user_lower_and_unfocus): if in click-to-focus mode then also move the window to the back of the mru list and focus the new default window for the active workspace
This commit is contained in:
parent
cffe7e9566
commit
63e1624bd7
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2004-09-15 Elijah Newren <newren@math.utah.edu>
|
||||||
|
|
||||||
|
Patch from Ken Harris in #135786 to focus a new default window
|
||||||
|
when lowering via middle-click on the frame.
|
||||||
|
|
||||||
|
* src/core.[hc], src/frames.c: rename meta_core_user_lower to
|
||||||
|
meta_core_user_lower_and_unfocus
|
||||||
|
|
||||||
|
* src/core.c (meta_core_user_lower_and_unfocus): if in
|
||||||
|
click-to-focus mode then also move the window to the back of the
|
||||||
|
mru list and focus the new default window for the active workspace
|
||||||
|
|
||||||
2004-09-15 Elijah Newren <newren@math.utah.edu>
|
2004-09-15 Elijah Newren <newren@math.utah.edu>
|
||||||
|
|
||||||
Focus the no_focus_window if no suitable window is in the mru list
|
Focus the no_focus_window if no suitable window is in the mru list
|
||||||
|
34
src/core.c
34
src/core.c
@ -236,8 +236,8 @@ meta_core_user_raise (Display *xdisplay,
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_core_user_lower (Display *xdisplay,
|
meta_core_user_lower_and_unfocus (Display *xdisplay,
|
||||||
Window frame_xwindow)
|
Window frame_xwindow)
|
||||||
{
|
{
|
||||||
MetaDisplay *display;
|
MetaDisplay *display;
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
@ -249,6 +249,36 @@ meta_core_user_lower (Display *xdisplay,
|
|||||||
meta_bug ("No such frame window 0x%lx!\n", frame_xwindow);
|
meta_bug ("No such frame window 0x%lx!\n", frame_xwindow);
|
||||||
|
|
||||||
meta_window_lower (window);
|
meta_window_lower (window);
|
||||||
|
|
||||||
|
if (meta_prefs_get_focus_mode () == META_FOCUS_MODE_CLICK)
|
||||||
|
{
|
||||||
|
/* Move window to the back of the focusing workspace's MRU list.
|
||||||
|
* Do extra sanity checks to avoid possible race conditions.
|
||||||
|
* (Borrowed from window.c.)
|
||||||
|
*/
|
||||||
|
if (window->screen->active_workspace &&
|
||||||
|
meta_window_visible_on_workspace (window,
|
||||||
|
window->screen->active_workspace))
|
||||||
|
{
|
||||||
|
GList* link;
|
||||||
|
link = g_list_find (window->screen->active_workspace->mru_list,
|
||||||
|
window);
|
||||||
|
g_assert (link);
|
||||||
|
|
||||||
|
window->screen->active_workspace->mru_list =
|
||||||
|
g_list_remove_link (window->screen->active_workspace->mru_list,
|
||||||
|
link);
|
||||||
|
g_list_free (link);
|
||||||
|
|
||||||
|
window->screen->active_workspace->mru_list =
|
||||||
|
g_list_append (window->screen->active_workspace->mru_list,
|
||||||
|
window);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* focus on the (new) topmost window */
|
||||||
|
if (window->has_focus)
|
||||||
|
meta_workspace_focus_default_window (window->screen->active_workspace, window);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -60,8 +60,8 @@ void meta_core_user_resize (Display *xdisplay,
|
|||||||
|
|
||||||
void meta_core_user_raise (Display *xdisplay,
|
void meta_core_user_raise (Display *xdisplay,
|
||||||
Window frame_xwindow);
|
Window frame_xwindow);
|
||||||
void meta_core_user_lower (Display *xdisplay,
|
void meta_core_user_lower_and_unfocus (Display *xdisplay,
|
||||||
Window frame_xwindow);
|
Window frame_xwindow);
|
||||||
|
|
||||||
void meta_core_user_focus (Display *xdisplay,
|
void meta_core_user_focus (Display *xdisplay,
|
||||||
Window frame_xwindow,
|
Window frame_xwindow,
|
||||||
|
@ -1373,7 +1373,7 @@ meta_frames_button_press_event (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
else if (event->button == 2)
|
else if (event->button == 2)
|
||||||
{
|
{
|
||||||
meta_core_user_lower (gdk_display, frame->xwindow);
|
meta_core_user_lower_and_unfocus (gdk_display, frame->xwindow);
|
||||||
}
|
}
|
||||||
else if (event->button == 3)
|
else if (event->button == 3)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user