[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Misc patches (back?)ported from dwm



Hi there.

I added a config options to do this float lowering. See the attached
patch (against 7ca3bd32bb469096575e74e1ba27360692abb507).

--- patch-lower-float begins here ---
diff --git a/config.c b/config.c
index aff23a5..796d2e7 100644
--- a/config.c
+++ b/config.c
@@ -176,6 +176,7 @@ parse_config(Display * disp, int scr,const char *confpatharg, awesome_config *aw
         CFG_BOOL((char *) "resize_hints", cfg_false, CFGF_NONE),
         CFG_INT((char *) "opacity_unfocused", 100, CFGF_NONE),
         CFG_BOOL((char *) "focus_move_pointer", cfg_false, CFGF_NONE),
+        CFG_BOOL((char *) "allow_lower_floats", cfg_false, CFGF_NONE),
         CFG_STR((char *) "font", (char *) "mono-12", CFGF_NONE),
         CFG_END()
     };
@@ -305,6 +306,7 @@ parse_config(Display * disp, int scr,const char *confpatharg, awesome_config *aw
     awesomeconf->resize_hints = cfg_getbool(cfg_general, "resize_hints");
     awesomeconf->opacity_unfocused = cfg_getint(cfg_general, "opacity_unfocused");
     awesomeconf->focus_move_pointer = cfg_getbool(cfg_general, "focus_move_pointer");
+    awesomeconf->allow_lower_floats = cfg_getbool(cfg_general, "allow_lower_floats");
     awesomeconf->font = XftFontOpenName(disp, awesomeconf->phys_screen, cfg_getstr(cfg_general, "font"));
     if(!awesomeconf->font)
         eprint("awesome: cannot init font\n");
diff --git a/config.h b/config.h
index 10f1057..2ba95a2 100644
--- a/config.h
+++ b/config.h
@@ -172,6 +172,8 @@ struct awesome_config
     int opacity_unfocused;
     /** Focus move pointer */
     Bool focus_move_pointer;
+    /** Allow floats to be lowered on focus change */
+    Bool allow_lower_floats;
     /** Respect resize hints */
     Bool resize_hints;
     /** Text displayed in bar */
diff --git a/layout.c b/layout.c
index 4c46209..031367e 100644
--- a/layout.c
+++ b/layout.c
@@ -121,24 +121,28 @@ restack(Display * disp, awesome_config *awesomeconf)
     drawstatusbar(disp, awesomeconf);
     if(!*awesomeconf->client_sel)
         return;
-    if((*awesomeconf->client_sel)->isfloating || IS_ARRANGE(0, layout_floating))
-        XRaiseWindow(disp, (*awesomeconf->client_sel)->win);
-    if(!IS_ARRANGE(0, layout_floating))
-    {
-        wc.stack_mode = Below;
-        wc.sibling = awesomeconf->statusbar.window;
-        if(!(*awesomeconf->client_sel)->isfloating)
-        {
-            XConfigureWindow(disp, (*awesomeconf->client_sel)->win, CWSibling | CWStackMode, &wc);
-            wc.sibling = (*awesomeconf->client_sel)->win;
-        }
-        for(c = *awesomeconf->clients; c; c = c->next)
-        {
-            if(!IS_TILED(c, awesomeconf->screen, awesomeconf->tags, awesomeconf->ntags) || c == *awesomeconf->client_sel)
+    if (awesomeconf->allow_lower_floats) {
+       XRaiseWindow(disp, (*awesomeconf->client_sel)->win);
+    } else {
+       if((*awesomeconf->client_sel)->isfloating || IS_ARRANGE(0, layout_floating))
+          XRaiseWindow(disp, (*awesomeconf->client_sel)->win);
+       if(!IS_ARRANGE(0, layout_floating))
+       {
+          wc.stack_mode = Below;
+          wc.sibling = awesomeconf->statusbar.window;
+          if(!(*awesomeconf->client_sel)->isfloating)
+          {
+             XConfigureWindow(disp, (*awesomeconf->client_sel)->win, CWSibling | CWStackMode, &wc);
+             wc.sibling = (*awesomeconf->client_sel)->win;
+          }
+          for(c = *awesomeconf->clients; c; c = c->next)
+          {
+             if(!IS_TILED(c, awesomeconf->screen, awesomeconf->tags, awesomeconf->ntags) || c == *awesomeconf->client_sel)
                 continue;
-            XConfigureWindow(disp, c->win, CWSibling | CWStackMode, &wc);
-            wc.sibling = c->win;
-        }
+             XConfigureWindow(disp, c->win, CWSibling | CWStackMode, &wc);
+             wc.sibling = c->win;
+          }
+       }
     }
     if(awesomeconf->focus_move_pointer)
         XWarpPointer(disp, None, (*awesomeconf->client_sel)->win, 0, 0, 0, 0, (*awesomeconf->client_sel)->w / 2, (*awesomeconf->client_sel)->h / 2);
--- patch-lower-float ends here ---

Cheers...

\n\n


-- 
To unsubscribe, send mail to awesome-unsubscribe@xxxxxxxxxxxxx