diff options
| author | moetunes <moetunes111@gmail.com> | 2011-09-14 11:12:46 +1000 |
|---|---|---|
| committer | moetunes <moetunes111@gmail.com> | 2011-09-14 11:12:46 +1000 |
| commit | 125486c0ad73f5f4c58d4900f6b469a5cf6006a7 (patch) | |
| tree | dc03d9d1281d9bf64d429b07331dd75ecf6efda3 /src/dminiwm.c | |
| parent | c83737abc9d3202b25b9d1d80f848c9356e9c448 (diff) | |
Added grid tiling mode back
Diffstat (limited to 'src/dminiwm.c')
| -rwxr-xr-x | src/dminiwm.c | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/dminiwm.c b/src/dminiwm.c index 80ea1a2..ab2cc70 100755 --- a/src/dminiwm.c +++ b/src/dminiwm.c @@ -96,6 +96,7 @@ static void start(); static void swap_master(); static void tile(); static void switch_fullscreen(); +static void switch_grid(); static void switch_horizontal(); static void switch_vertical(); static void update_current(); @@ -458,6 +459,65 @@ void tile() { x += (sw/n)-(growth/(n-1)); } break; + case 3: { // Grid + int xpos = 0; + int y = 0; + int wdt = 0; + int ht = 0; + + for(c=head;c;c=c->next) { + ++n; + if((n == 1) || (n == 3) || (n == 5) || (n == 7)) + x += 1; + } + n = 0; + for(c=head;c;c=c->next) { + ++n; + if(x == 4) { + wdt = (sw/3) - BORDER_WIDTH; + ht = (sh/3) - BORDER_WIDTH; + if((n == 1) || (n == 4) || (n == 7)) + xpos = 0; + if((n == 2) || (n == 5) || (n == 8)) + xpos = (sw/3) + BORDER_WIDTH; + if((n == 3) || (n == 6) || (n == 9)) + xpos = (2*(sw/3)) + BORDER_WIDTH; + if((n == 4) || (n == 7)) + y += (sh/3) + BORDER_WIDTH; + } else + if(x == 3) { + wdt = (sw/3) - BORDER_WIDTH; + ht = (sh/2) - BORDER_WIDTH; + if((n == 1) || (n == 4)) + xpos = 0; + if((n == 2) || (n == 5)) + xpos = (sw/3) + BORDER_WIDTH; + if((n == 3) || (n == 6)) + xpos = (2*(sw/3)) + BORDER_WIDTH; + if(n == 4) + y = (sh/2) + BORDER_WIDTH; + } else { + if(n > 2) + ht = (sh/x) - 2*BORDER_WIDTH; + else + ht = sh/x; + if((n == 1) || (n == 3)) { + xpos = 0; + wdt = master_size - BORDER_WIDTH; + } + if((n == 2) || (n == 4)) { + xpos = master_size+BORDER_WIDTH; + wdt = (sw - master_size) - BORDER_WIDTH; + } + if(n == 3) + y += (sh/x)+2*BORDER_WIDTH; + } + XMoveResizeWindow(dis,c->win,xpos,y,wdt,ht); + } + } + break; + default: + break; } } } @@ -505,6 +565,15 @@ void switch_horizontal() { } } +void switch_grid() { + if(mode != 3) { + mode = 3; + master_size = sw * MASTER_SIZE; + tile(); + update_current(); + } +} + void grow_window() { growth += 10; tile(); |
