don't crash when a window adds itself to the focus order while cycling

This commit is contained in:
Dana Jansens 2007-05-26 20:43:08 +00:00
parent df50b6bbd4
commit a76ac8205c
2 changed files with 21 additions and 16 deletions

View file

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

View file

@ -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);
}
}