]> Dogcows Code - chaz/openbox/blobdiff - plugins/placement/placement.c
history placement works. loads. saves. woot.
[chaz/openbox] / plugins / placement / placement.c
index a6dbd868dd8772656021567afcab84d70e4676cb..2627eb84358fd27fea6a808ddf22184cb970b168 100644 (file)
@@ -8,12 +8,14 @@
 
 gboolean history = TRUE;
 
-void place_random(Client *c)
+static void place_random(Client *c)
 {
     int l, r, t, b;
     int x, y;
     Rect *area;
 
+    if (ob_state == State_Starting) return;
+
     area = screen_area(c->desktop);
 
     l = area->x;
@@ -31,11 +33,12 @@ void place_random(Client *c)
                      TRUE, TRUE);
 }
 
-void place_event(ObEvent *e, void *foo)
+static void event(ObEvent *e, void *foo)
 {
     g_assert(e->type == Event_Client_New);
 
-    if (ob_state == State_Starting) return;
+    /* requested a position */
+    if (e->data.c.client->positioned) return;
 
     if (!place_history(e->data.c.client))
         place_random(e->data.c.client);
@@ -43,14 +46,14 @@ void place_event(ObEvent *e, void *foo)
 
 void plugin_startup()
 {
-    dispatch_register(Event_Client_New, (EventHandler)place_event, NULL);
+    dispatch_register(Event_Client_New, (EventHandler)event, NULL);
 
     history_startup();
 }
 
 void plugin_shutdown()
 {
-    dispatch_register(0, (EventHandler)place_event, NULL);
+    dispatch_register(0, (EventHandler)event, NULL);
 
     history_shutdown();
 }
This page took 0.025147 seconds and 4 git commands to generate.