don't crash when a window adds itself to the focus order while cycling
This commit is contained in:
parent
df50b6bbd4
commit
a76ac8205c
2 changed files with 21 additions and 16 deletions
|
@ -193,9 +193,30 @@ void focus_nothing()
|
|||
event_curtime);
|
||||
}
|
||||
|
||||
void focus_order_add_new(ObClient *c)
|
||||
{
|
||||
if (c->iconic)
|
||||
focus_order_to_top(c);
|
||||
else {
|
||||
g_assert(!g_list_find(focus_order, c));
|
||||
/* if there are any iconic windows, put this above them in the order,
|
||||
but if there are not, then put it under the currently focused one */
|
||||
if (focus_order && ((ObClient*)focus_order->data)->iconic)
|
||||
focus_order = g_list_insert(focus_order, c, 0);
|
||||
else
|
||||
focus_order = g_list_insert(focus_order, c, 1);
|
||||
}
|
||||
|
||||
/* in the middle of cycling..? kill it. */
|
||||
focus_cycle_stop();
|
||||
}
|
||||
|
||||
void focus_order_remove(ObClient *c)
|
||||
{
|
||||
focus_order = g_list_remove(focus_order, c);
|
||||
|
||||
/* in the middle of cycling..? kill it. */
|
||||
focus_cycle_stop();
|
||||
}
|
||||
|
||||
void focus_order_to_top(ObClient *c)
|
||||
|
|
|
@ -396,19 +396,3 @@ done_cycle:
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
void focus_order_add_new(ObClient *c)
|
||||
{
|
||||
if (c->iconic)
|
||||
focus_order_to_top(c);
|
||||
else {
|
||||
g_assert(!g_list_find(focus_order, c));
|
||||
/* if there are any iconic windows, put this above them in the order,
|
||||
but if there are not, then put it under the currently focused one */
|
||||
if (focus_order && ((ObClient*)focus_order->data)->iconic)
|
||||
focus_order = g_list_insert(focus_order, c, 0);
|
||||
else
|
||||
focus_order = g_list_insert(focus_order, c, 1);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue