diff --git a/src/config.c b/src/config.c index 49abecd..080bd07 100644 --- a/src/config.c +++ b/src/config.c @@ -386,7 +386,6 @@ conf_layout_section(void) conf.colors.layout_bg = getcolor((fetch_opt_first(layouts, "#000000", "bg").str)); conf.keep_layout_geo = fetch_opt_first(layouts, "false", "keep_layout_geo").bool; - if((tmp = fetch_opt_first(layouts, "menu", "system").str) && !strcmp(tmp, "menu")) conf.layout_system = True; diff --git a/src/init.c b/src/init.c index 6a9b853..a924c8d 100644 --- a/src/init.c +++ b/src/init.c @@ -40,8 +40,10 @@ const func_name_list_t layout_list[] = {"tile_left", tile_left }, {"tile_top", tile_top }, {"tile_bottom", tile_bottom }, - {"tile_grid", grid }, - {"grid", grid }, + {"tile_grid", grid_horizontal }, + {"tile_grid_horizontal", grid_horizontal }, + {"tile_grid_vertical", grid_vertical }, + {"grid", grid_horizontal }, {"mirror_vertical", mirror_vertical }, {"tile_mirror_vertical", mirror_vertical }, {"mirror_horizontal", mirror_horizontal }, diff --git a/src/layout.c b/src/layout.c index 5b4fd71..a1dc488 100644 --- a/src/layout.c +++ b/src/layout.c @@ -270,7 +270,7 @@ uicb_set_layer(uicb_t cmd) /** Grid layout function */ void -grid(int screen) +grid(int screen, Bool horizontal) { Client *c; XRectangle sg = sgeo[screen]; @@ -288,6 +288,14 @@ grid(int screen) ? rows - 1 : rows; + if(!horizontal) + { + unsigned int tmp; + tmp = cols; + cols = rows; + rows = tmp; + } + for(i = 0, c = tiled_client(screen, clients); c; c = tiled_client(screen, c->next), ++i) { /* Set client property */ @@ -757,6 +765,26 @@ mirror_horizontal(int screen) return; } +/** Horizontal grid function + */ +void +grid_horizontal(int screen) +{ + grid(screen, True); + + return; +} + +/** Vertical grid function + */ +void +grid_vertical(int screen) +{ + grid(screen, False); + + return; +} + /** Put the selected client to the master postion * \param cmd uicb_t type unused */ diff --git a/src/tag.c b/src/tag.c index 80845ef..59029be 100644 --- a/src/tag.c +++ b/src/tag.c @@ -486,8 +486,10 @@ tag_new(int s, char *name) ++conf.ntag[s]; - if((!name || strlen(name) == 0)){ - if(conf.tagnamecount){ + if((!name || strlen(name) == 0)) + { + if(conf.tagnamecount) + { displayedName = (char*) malloc( sizeof(char)*2 ); sprintf(displayedName, "[%d]", conf.ntag[s]); } diff --git a/src/wmfs.h b/src/wmfs.h index c497549..8759a43 100644 --- a/src/wmfs.h +++ b/src/wmfs.h @@ -347,7 +347,7 @@ void layoutswitch(Bool b); void maxlayout(int screen); Client *tiled_client(int screen, Client *c); /* tile {{{ */ - void grid(int screen); + void grid(int screen, Bool horizontal); void tile(int screen); void tile_left(int screen); void tile_top(int screen); @@ -355,6 +355,8 @@ Client *tiled_client(int screen, Client *c); void mirror_vertical(int screen); void mirror_horizontal(int screen); void layer(int screen); + void grid_vertical(int screen); + void grid_horizontal(int screen); /* }}} */ void uicb_togglemax(uicb_t); void uicb_togglefree(uicb_t); diff --git a/wmfsrc.in b/wmfsrc.in index 3965ba6..c30986d 100644 --- a/wmfsrc.in +++ b/wmfsrc.in @@ -52,13 +52,14 @@ keep_layout_geo = false # Tiling layouts. - [layout] type = "tile_right" symbol = "RIGHT" [/layout] - [layout] type = "tile_left" symbol = "LEFT" [/layout] - [layout] type = "tile_top" symbol = "TOP" [/layout] - [layout] type = "tile_bottom" symbol = "BOTTOM" [/layout] - [layout] type = "tile_grid" symbol = "GRID" [/layout] - [layout] type = "mirror_vertical" symbol = "MIRROR_V" [/layout] - [layout] type = "mirror_horizontal" symbol = "MIRROR_H" [/layout] + [layout] type = "tile_right" symbol = "RIGHT" [/layout] + [layout] type = "tile_left" symbol = "LEFT" [/layout] + [layout] type = "tile_top" symbol = "TOP" [/layout] + [layout] type = "tile_bottom" symbol = "BOTTOM" [/layout] + [layout] type = "tile_grid" symbol = "GRID_H" [/layout] + [layout] type = "tile_grid_vertical" symbol = "GRID_V" [/layout] + [layout] type = "mirror_vertical" symbol = "MIRROR_V" [/layout] + [layout] type = "mirror_horizontal" symbol = "MIRROR_H" [/layout] # Other layouts. [layout] type = "max" symbol = "MAX" [/layout]