]> git.sur5r.net Git - i3/i3/commitdiff
Add new_float config option.
authorMateusz Poszwa <old4@o2.pl>
Mon, 8 Aug 2011 19:51:21 +0000 (21:51 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 9 Aug 2011 07:29:53 +0000 (09:29 +0200)
This option sets the default border style for containers automatically put into floating mode.

Fixes #264

include/config.h
src/cfgparse.l
src/cfgparse.y
src/config.c
src/floating.c

index 1021a612e7a98917a211a61d037b688e255c6861..3234b91e5d5f658cae51ed548d047b5df05116e4 100644 (file)
@@ -126,6 +126,9 @@ struct Config {
         /** The default border style for new windows. */
         border_style_t default_border;
 
+        /** The default border style for new floating windows. */
+        border_style_t default_floating_border;
+
         /** The modifier which needs to be pressed in combination with your mouse
          * buttons to do things with floating windows (move, resize) */
         uint32_t floating_modifier;
index 4cf1a1c3777a5fd1f7a115c7cf85b3123764e055..e29f6efc1466ec0438ea9d2f681b65c0a179de1f 100644 (file)
@@ -118,6 +118,7 @@ vertical                        { return TOK_VERT; }
 auto                            { return TOK_AUTO; }
 workspace_layout                { return TOK_WORKSPACE_LAYOUT; }
 new_window                      { return TOKNEWWINDOW; }
+new_float                       { return TOKNEWFLOAT; }
 normal                          { return TOK_NORMAL; }
 none                            { return TOK_NONE; }
 1pixel                          { return TOK_1PIXEL; }
index 68173757589f50e90e666751bfd59391e2bfea16..4a4c26ca39eff116292942daa209aa8852e4e985 100644 (file)
@@ -579,6 +579,7 @@ void parse_file(const char *f) {
 %token                  TOK_AUTO                    "auto"
 %token                  TOK_WORKSPACE_LAYOUT        "workspace_layout"
 %token                  TOKNEWWINDOW                "new_window"
+%token                  TOKNEWFLOAT                 "new_float"
 %token                  TOK_NORMAL                  "normal"
 %token                  TOK_NONE                    "none"
 %token                  TOK_1PIXEL                  "1pixel"
@@ -610,6 +611,7 @@ void parse_file(const char *f) {
 %type   <number>        layout_mode
 %type   <number>        border_style
 %type   <number>        new_window
+%type   <number>        new_float
 %type   <number>        colorpixel
 %type   <number>        bool
 %type   <number>        popup_setting
@@ -634,6 +636,7 @@ line:
     | orientation
     | workspace_layout
     | new_window
+    | new_float
     | focus_follows_mouse
     | force_focus_wrapping
     | workspace_bar
@@ -924,6 +927,14 @@ new_window:
     }
     ;
 
+new_float:
+    TOKNEWFLOAT border_style
+    {
+       DLOG("new floating windows should start with border style %d\n", $2);
+       config.default_floating_border = $2;
+    }
+    ;
+
 border_style:
     TOK_NORMAL      { $$ = BS_NORMAL; }
     | TOK_NONE      { $$ = BS_NONE; }
index 14fc6e025922c924f9c11f8f0f80493e44b1ad37..b3a204420fa18d463be5716638b24c10f8f9283d 100644 (file)
@@ -333,6 +333,7 @@ void load_configuration(xcb_connection_t *conn, const char *override_configpath,
         INIT_COLOR(config.bar.urgent, "#2f343a", "#900000", "#ffffff");
 
         config.default_border = BS_NORMAL;
+        config.default_floating_border = BS_NORMAL;
         /* Set default_orientation to NO_ORIENTATION for auto orientation. */
         config.default_orientation = NO_ORIENTATION;
 
index b394f3156780cc0fa0c22dcf543ffe86f9c376aa..2ba08330c3c218982bb3eb27dd27105cc896c945 100644 (file)
@@ -129,6 +129,10 @@ void floating_enable(Con *con, bool automatic) {
     con->percent = 1.0;
     con->floating = FLOATING_USER_ON;
 
+    /* 4: set the border style as specified with new_float */
+    if (automatic)
+        con->border_style = config.default_floating_border;
+
     /* Some clients (like GIMP’s color picker window) get mapped
      * to (0, 0), so we push them to a reasonable position
      * (centered over their leader) */