Patch from Thomas Thurman to work around buggy application grouping with
2006-02-27 Elijah Newren <newren gmail com> Patch from Thomas Thurman to work around buggy application grouping with transient windows. #328211 * src/group.c (meta_window_compute_group): Put transients in the same group with their parent, always. * src/window.c (update_transient_for): Update group too
This commit is contained in:
parent
6a08faf99b
commit
04a4f7c363
11
ChangeLog
11
ChangeLog
@ -1,3 +1,14 @@
|
||||
2006-02-27 Elijah Newren <newren gmail com>
|
||||
|
||||
Patch from Thomas Thurman to work around buggy application
|
||||
grouping with transient windows. #328211
|
||||
|
||||
* src/group.c (meta_window_compute_group):
|
||||
Put transients in the same group with their parent, always.
|
||||
|
||||
* src/window.c (update_transient_for):
|
||||
Update group too
|
||||
|
||||
2006-02-27 Elijah Newren <newren gmail com>
|
||||
|
||||
* configure.in:
|
||||
|
10
src/group.c
10
src/group.c
@ -123,7 +123,10 @@ meta_window_compute_group (MetaWindow* window)
|
||||
|
||||
if (window->display->groups_by_leader)
|
||||
{
|
||||
if (window->xgroup_leader != None)
|
||||
if (window->xtransient_for != None)
|
||||
group = g_hash_table_lookup (window->display->groups_by_leader,
|
||||
&window->xtransient_for);
|
||||
else if (window->xgroup_leader != None)
|
||||
group = g_hash_table_lookup (window->display->groups_by_leader,
|
||||
&window->xgroup_leader);
|
||||
else
|
||||
@ -138,7 +141,10 @@ meta_window_compute_group (MetaWindow* window)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (window->xgroup_leader != None)
|
||||
if (window->xtransient_for != None)
|
||||
group = meta_group_new (window->display,
|
||||
window->xtransient_for);
|
||||
else if (window->xgroup_leader != None)
|
||||
group = meta_group_new (window->display,
|
||||
window->xgroup_leader);
|
||||
else
|
||||
|
@ -5468,6 +5468,15 @@ update_transient_for (MetaWindow *window)
|
||||
|
||||
/* update stacking constraints */
|
||||
meta_stack_update_transient (window->screen->stack, window);
|
||||
|
||||
/* possibly change its group. We treat being a window's transient as
|
||||
* equivalent to making it your group leader, to work around shortcomings
|
||||
* in programs such as xmms-- see #328211.
|
||||
*/
|
||||
if (window->xtransient_for != None &&
|
||||
window->xgroup_leader != None &&
|
||||
window->xtransient_for != window->xgroup_leader)
|
||||
meta_window_group_leader_changed (window);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user