]> Dogcows Code - chaz/openbox/blobdiff - openbox/place.c
typo from code i removed
[chaz/openbox] / openbox / place.c
index bfe27e28778e9b091ebe1d545f4f3e1e4ba6abfa..5164675d57048a931192430d7309e6d120392152 100644 (file)
@@ -69,7 +69,9 @@ static Rect **pick_head(ObClient *c)
         choice[i] = screen_num_monitors; /* make them all invalid to start */
 
     /* try direct parent first */
-    if (c->transient_for && c->transient_for != OB_TRAN_GROUP) {
+    if (c->transient_for && c->transient_for != OB_TRAN_GROUP &&
+        client_normal(c->transient_for))
+    {
         add_choice(choice, client_monitor(c->transient_for));
         ob_debug("placement adding choice %d for parent\n",
                  client_monitor(c->transient_for));
@@ -270,7 +272,8 @@ typedef enum
 #define SMART_IGNORE(placer, c) \
     (placer == c || c->shaded || !c->frame->visible || \
      c->type == OB_CLIENT_TYPE_SPLASH || c->type == OB_CLIENT_TYPE_DESKTOP || \
-     c->type == OB_CLIENT_TYPE_MENU || c->type == OB_CLIENT_TYPE_TOOLBAR || \
+     ((c->type == OB_CLIENT_TYPE_MENU || c->type == OB_CLIENT_TYPE_TOOLBAR) &&\
+      client_has_parent(c)) || \
      (c->desktop != DESKTOP_ALL && \
       c->desktop != (placer->desktop == DESKTOP_ALL ? \
                      screen_desktop : placer->desktop)))
@@ -444,7 +447,10 @@ static gboolean place_per_app_setting(ObClient *client, gint *x, gint *y,
 static gboolean place_transient_splash(ObClient *client, gint *x, gint *y)
 {
     if (client->transient_for && client->type == OB_CLIENT_TYPE_DIALOG) {
-        if (client->transient_for != OB_TRAN_GROUP && !client->iconic) {
+        if (client->transient_for != OB_TRAN_GROUP &&
+            client_normal(client->transient_for) &&
+            !client->iconic)
+        {
             ObClient *c = client;
             ObClient *p = client->transient_for;
 
This page took 0.025782 seconds and 4 git commands to generate.