mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 09:30:45 -05:00
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>
|
2006-02-27 Elijah Newren <newren gmail com>
|
||||||
|
|
||||||
* configure.in:
|
* 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->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,
|
group = g_hash_table_lookup (window->display->groups_by_leader,
|
||||||
&window->xgroup_leader);
|
&window->xgroup_leader);
|
||||||
else
|
else
|
||||||
@ -138,7 +141,10 @@ meta_window_compute_group (MetaWindow* window)
|
|||||||
}
|
}
|
||||||
else
|
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,
|
group = meta_group_new (window->display,
|
||||||
window->xgroup_leader);
|
window->xgroup_leader);
|
||||||
else
|
else
|
||||||
|
@ -5468,6 +5468,15 @@ update_transient_for (MetaWindow *window)
|
|||||||
|
|
||||||
/* update stacking constraints */
|
/* update stacking constraints */
|
||||||
meta_stack_update_transient (window->screen->stack, window);
|
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
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user