]> git.decadent.org.uk Git - ion3.git/blobdiff - ioncore/detach.c
[svn-upgrade] Integrating new upstream version, ion3 (20080103)
[ion3.git] / ioncore / detach.c
index 8a866401f6d9009dd5f07d13265478ccc060c337..89187a4a4d321f4ad8ab3f64d1208c41e5dbc82a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * ion/ioncore/detach.c
  *
- * Copyright (c) Tuomo Valkonen 1999-2007
+ * Copyright (c) Tuomo Valkonen 1999-2008
  *
  * See the included file LICENSE for details.
  */
@@ -63,6 +63,7 @@ static bool ioncore_do_detach(WRegion *reg, WGroup *grp, WFrameMode framemode,
     }
     
     if(framemode!=FRAME_MODE_UNKNOWN){
+        /* TODO: remove/obsolete this special case */
         WFramedParam fpa=FRAMEDPARAM_INIT;
         
         fpa.mode=framemode;
@@ -83,17 +84,20 @@ static bool ioncore_do_detach(WRegion *reg, WGroup *grp, WFrameMode framemode,
     }else{
         WStacking *st=ioncore_find_stacking(reg);
         
+        ap.level_set=TRUE;
+        ap.level=framelevel+1;
+
         if(st!=NULL){
             ap.szplcy=st->szplcy;
             ap.szplcy_set=TRUE;
             
-            /*ap.level_set=TRUE;
-            ap.level=maxof(st->level, STACKING_LEVEL_NORMAL);*/
+            /* Hack for modal detached queries, while transients become
+             * non-modal detached.
+             */
+            if(st->level>STACKING_LEVEL_MODAL1)
+                ap.level=st->level;
         }
         
-        ap.level_set=TRUE;
-        ap.level=framelevel+1;
-        
         ap.geom_set=TRUE;
         get_relative_geom(&ap.geom, reg, (WRegion*)grp);