From 6b68b99491bad1c5e65057eb40c5dc9467f368d8 Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Fri, 21 Feb 2014 09:05:31 +0000 Subject: [PATCH] Tiling2: Initial commit. --- src/modules/Makefile_tiling.mk | 39 ---------------------------- src/modules/tiling/.gitignore | 1 - src/modules/tiling/TODO | 12 --------- src/modules/tiling/e_mod_tiling.c | 10 ++++--- src/modules/tiling/e_mod_tiling.h | 11 ++++++++ src/modules/tiling/module.desktop.in | 2 +- 6 files changed, 18 insertions(+), 57 deletions(-) delete mode 100644 src/modules/Makefile_tiling.mk delete mode 100644 src/modules/tiling/.gitignore delete mode 100644 src/modules/tiling/TODO diff --git a/src/modules/Makefile_tiling.mk b/src/modules/Makefile_tiling.mk deleted file mode 100644 index 5c5138572..000000000 --- a/src/modules/Makefile_tiling.mk +++ /dev/null @@ -1,39 +0,0 @@ -EXTRA_DIST += src/modules/tiling/module.desktop.in \ -src/modules/tiling/e-module-tiling.edj -if USE_MODULE_TILING -tilingdir = $(MDIR)/tiling -tiling_DATA = src/modules/tiling/e-module-tiling.edj \ - src/modules/tiling/module.desktop -CLEANFILES += src/modules/tiling/e-module-tiling.edj - - src/modules/tiling/e-module-tiling.edc \ - src/modules/tiling/module.desktop.in \ - src/modules/tiling/images/module_icon.png \ - src/modules/tiling/images/arrow_e.png \ - src/modules/tiling/images/arrow_ne.png \ - src/modules/tiling/images/arrow_n.png \ - src/modules/tiling/images/arrow_nw.png \ - src/modules/tiling/images/arrow_se.png \ - src/modules/tiling/images/arrow_s.png \ - src/modules/tiling/images/arrow_sw.png \ - src/modules/tiling/images/arrow_w.png - -tilingpkgdir = $(MDIR)/tiling/$(MODULE_ARCH) -tilingpkg_LTLIBRARIES = src/modules/tiling/module.la - -TILING_EDJE_FLAGS = $(EDJE_FLAGS) -id $(top_srcdir)/src/modules/tiling/images - -src/modules/tiling/%.edj: src/modules/tiling/%.edc Makefile - $(EDJE_CC) $(TILING_EDJE_FLAGS) $< $@ - -src_modules_tiling_module_la_LIBADD = $(MOD_LIBS) -src_modules_tiling_module_la_CPPFLAGS = $(MOD_CPPFLAGS) -DNEED_X=1 -src_modules_tiling_module_la_LDFLAGS = $(MOD_LDFLAGS) -src_modules_tiling_module_la_SOURCES = src/modules/tiling/e_mod_tiling.c \ - src/modules/tiling/e_mod_tiling.h \ - src/modules/tiling/e_mod_config.c - -PHONIES += tiling install-tiling -tiling: $(tilingpkg_LTLIBRARIES) $(tiling_DATA) -install-tiling: install-tilingDATA install-tilingpkgLTLIBRARIES -endif diff --git a/src/modules/tiling/.gitignore b/src/modules/tiling/.gitignore deleted file mode 100644 index d6ceca657..000000000 --- a/src/modules/tiling/.gitignore +++ /dev/null @@ -1 +0,0 @@ -e-module-tiling.edj diff --git a/src/modules/tiling/TODO b/src/modules/tiling/TODO deleted file mode 100644 index 75465fb79..000000000 --- a/src/modules/tiling/TODO +++ /dev/null @@ -1,12 +0,0 @@ - ---- v1.0 -[ ] Respect more ICCCM -[ ] Show how many columns are configured. (?) -[ ] Remove remaining bugs ☺. - ---- v0.9 -[X] Toggle between horizontal and vertical columns -[X] Handle correctly multiple screens -[X] Setting whether to display the window title -[X] Setting to choose hint keys -[X] Save original border and restore it when untiling diff --git a/src/modules/tiling/e_mod_tiling.c b/src/modules/tiling/e_mod_tiling.c index 3ea9da078..4fc7ba058 100644 --- a/src/modules/tiling/e_mod_tiling.c +++ b/src/modules/tiling/e_mod_tiling.c @@ -346,7 +346,7 @@ _e_client_maximize(E_Client *ec, E_Maximize max) DBG("new_client:%s, ec->maximized=%x", ec->new_client? "true": "false", ec->maximized); - e_client_maximize(ec, max); +// e_client_maximize(ec, max); } static void @@ -357,7 +357,7 @@ _e_client_unmaximize(E_Client *ec, E_Maximize max) (max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_VERTICAL ? "VERTICAL" : (max & E_MAXIMIZE_DIRECTION) == E_MAXIMIZE_HORIZONTAL ? "HORIZONTAL" : "BOTH"); - e_client_unmaximize(ec, max); +// e_client_unmaximize(ec, max); } static void @@ -1242,6 +1242,8 @@ _add_client(E_Client *ec) DBG("adding %p", ec); + e_client_focused_get(); + if (_G.tinfo->stacks[0]) { DBG("got stack 0"); if (_G.tinfo->stacks[_G.tinfo->conf->nb_stacks - 1]) { @@ -3703,8 +3705,8 @@ e_modapi_init(E_Module *m) HANDLER(_G.handler_client_iconify, CLIENT_ICONIFY, _iconify_hook); HANDLER(_G.handler_client_uniconify, CLIENT_UNICONIFY, _uniconify_hook); - HANDLER(_G.handler_client_stick, CLIENT_PROPERTY, _stick_hook); - HANDLER(_G.handler_client_unstick, CLIENT_PROPERTY, _unstick_hook); + HANDLER(_G.handler_client_stick, CLIENT_STICK, _stick_hook); + HANDLER(_G.handler_client_unstick, CLIENT_UNSTICK, _unstick_hook); HANDLER(_G.handler_desk_show, DESK_SHOW, _desk_show_hook); HANDLER(_G.handler_desk_before_show, DESK_BEFORE_SHOW, _desk_before_show_hook); diff --git a/src/modules/tiling/e_mod_tiling.h b/src/modules/tiling/e_mod_tiling.h index c7594fd80..1c83397a7 100644 --- a/src/modules/tiling/e_mod_tiling.h +++ b/src/modules/tiling/e_mod_tiling.h @@ -42,6 +42,15 @@ struct _Config Eina_List *vdesks; }; +typedef struct _Window_Tree Window_Tree; + +struct _Window_Tree +{ + EINA_INLIST; + Window_Tree *children; + float weight; +}; + struct _Tiling_Info { /* The desk for which this _Tiling_Info is used. Needed because @@ -57,6 +66,8 @@ struct _Tiling_Info Eina_List *stacks[TILING_MAX_STACKS]; int pos[TILING_MAX_STACKS]; int size[TILING_MAX_STACKS]; + + Window_Tree tree; }; struct _E_Config_Dialog_Data diff --git a/src/modules/tiling/module.desktop.in b/src/modules/tiling/module.desktop.in index 2d53b0916..49dd9724c 100644 --- a/src/modules/tiling/module.desktop.in +++ b/src/modules/tiling/module.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] Encoding=UTF-8 Type=Link -Name=Tiling +Name=Tiling2 Name[ca]=Mosaic Name[eo]=Kaheligado Name[es]=Mosaico