summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
Diffstat (limited to 'openbox')
-rw-r--r--openbox/focus.c21
-rw-r--r--openbox/focus_cycle.c16
2 files changed, 21 insertions, 16 deletions
diff --git a/openbox/focus.c b/openbox/focus.c
index fad53e92..73099a4b 100644
--- a/openbox/focus.c
+++ b/openbox/focus.c
@@ -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)
diff --git a/openbox/focus_cycle.c b/openbox/focus_cycle.c
index 4c0630b3..1fef3754 100644
--- a/openbox/focus_cycle.c
+++ b/openbox/focus_cycle.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);
- }
-}
-