From d83e18f21e0c394acf44b3ad3591f4bc0a2a884e Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Fri, 7 Feb 2014 10:00:34 +0000 Subject: [PATCH] Tiling2: Implemented window padding. Thanks to cippp for the feature request + some code. --- src/modules/tiling/e_mod_tiling.c | 3 ++- src/modules/tiling/window_tree.c | 14 ++++++++------ src/modules/tiling/window_tree.h | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/modules/tiling/e_mod_tiling.c b/src/modules/tiling/e_mod_tiling.c index e8cf381e1..a475738a2 100644 --- a/src/modules/tiling/e_mod_tiling.c +++ b/src/modules/tiling/e_mod_tiling.c @@ -364,7 +364,8 @@ _reapply_tree(void) { e_zone_useful_geometry_get(_G.tinfo->desk->zone, &zx, &zy, &zw, &zh); - tiling_window_tree_apply(_G.tinfo->tree, zx, zy, zw, zh); + tiling_window_tree_apply(_G.tinfo->tree, zx, zy, zw, zh, + tiling_g.config->nb_space); } } diff --git a/src/modules/tiling/window_tree.c b/src/modules/tiling/window_tree.c index 2e8768e95..a81509ef8 100644 --- a/src/modules/tiling/window_tree.c +++ b/src/modules/tiling/window_tree.c @@ -256,7 +256,7 @@ tiling_window_tree_client_find(Window_Tree * root, E_Client * client) void _tiling_window_tree_level_apply(Window_Tree * root, Evas_Coord x, Evas_Coord y, - Evas_Coord w, Evas_Coord h, int level) + Evas_Coord w, Evas_Coord h, int level, Evas_Coord padding) { Window_Tree *itr; Tiling_Split_Type split_type = level % 2; @@ -264,7 +264,8 @@ _tiling_window_tree_level_apply(Window_Tree * root, Evas_Coord x, Evas_Coord y, if (root->client) { - tiling_e_client_move_resize_extra(root->client, x, y, w, h); + tiling_e_client_move_resize_extra(root->client, x, y, + w - padding, h - padding); return; } @@ -275,7 +276,7 @@ _tiling_window_tree_level_apply(Window_Tree * root, Evas_Coord x, Evas_Coord y, Evas_Coord itw = w * itr->weight; total_weight += itr->weight; - _tiling_window_tree_level_apply(itr, x, y, itw, h, level + 1); + _tiling_window_tree_level_apply(itr, x, y, itw, h, level + 1, padding); x += itw; } } else if (split_type == TILING_SPLIT_VERTICAL) @@ -285,7 +286,7 @@ _tiling_window_tree_level_apply(Window_Tree * root, Evas_Coord x, Evas_Coord y, Evas_Coord ith = h * itr->weight; total_weight += itr->weight; - _tiling_window_tree_level_apply(itr, x, y, w, ith, level + 1); + _tiling_window_tree_level_apply(itr, x, y, w, ith, level + 1, padding); y += ith; } } @@ -296,9 +297,10 @@ _tiling_window_tree_level_apply(Window_Tree * root, Evas_Coord x, Evas_Coord y, void tiling_window_tree_apply(Window_Tree * root, Evas_Coord x, Evas_Coord y, - Evas_Coord w, Evas_Coord h) + Evas_Coord w, Evas_Coord h, Evas_Coord padding) { - _tiling_window_tree_level_apply(root, x, y, w, h, 0); + _tiling_window_tree_level_apply(root, x + padding, y + padding, + w - padding, h - padding, 0, padding); } static Window_Tree * diff --git a/src/modules/tiling/window_tree.h b/src/modules/tiling/window_tree.h index bf38cd154..b83ac5281 100644 --- a/src/modules/tiling/window_tree.h +++ b/src/modules/tiling/window_tree.h @@ -43,7 +43,7 @@ Window_Tree *tiling_window_tree_client_find(Window_Tree * root, E_Client * client); void tiling_window_tree_apply(Window_Tree * root, Evas_Coord x, Evas_Coord y, - Evas_Coord w, Evas_Coord h); + Evas_Coord w, Evas_Coord h, Evas_Coord padding); Eina_Bool tiling_window_tree_node_resize(Window_Tree * node, int w_dir, double w_diff, int h_dir, double h_diff);