From ea9797f1105ed972147e3dc81f0b49090d0d88b6 Mon Sep 17 00:00:00 2001 From: gotmor Date: Fri, 6 Jul 2007 06:04:23 +0000 Subject: added actions: togglecollapse togglehide a_collapse: removed unmapping of each subwindow git-svn-id: http://dzen.googlecode.com/svn/trunk@118 f2baff5b-bf2c-0410-a398-912abdc3d8b2 --- action.c | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'action.c') diff --git a/action.c b/action.c index d5eaa93..7acf87a 100644 --- a/action.c +++ b/action.c @@ -36,11 +36,13 @@ struct action_lookup ac_lookup_table[] = { { "exit", a_exit}, { "collapse", a_collapse}, { "uncollapse", a_uncollapse}, + { "togglecollapse", a_togglecollapse}, { "stick", a_stick}, { "unstick", a_unstick}, { "togglestick", a_togglestick}, { "hide", a_hide}, { "unhide", a_unhide}, + { "togglehide", a_togglehide}, { "scrollup", a_scrollup}, { "scrolldown", a_scrolldown}, { "menuprint", a_menuprint}, @@ -265,8 +267,6 @@ a_collapse(char * opt[]){ if(!dzen.slave_win.ishmenu && dzen.slave_win.max_lines && !dzen.slave_win.issticky) { - for(i=0; i < dzen.slave_win.max_lines; i++) - XUnmapWindow(dzen.dpy, dzen.slave_win.line[i]); XUnmapWindow(dzen.dpy, dzen.slave_win.win); } return 0; @@ -286,13 +286,19 @@ a_uncollapse(char * opt[]){ return 0; } -#if 0 -static int +int a_togglecollapse(char * opt[]){ + XWindowAttributes wa; (void)opt; + + if(dzen.slave_win.max_lines && + (XGetWindowAttributes(dzen.dpy, dzen.slave_win.win, &wa), wa.map_state == IsUnmapped)) + a_uncollapse(NULL); + else + a_collapse(NULL); + return 0; } -#endif int a_stick(char * opt[]) { @@ -392,6 +398,17 @@ a_unhide(char * opt[]) { return 0; } +int +a_togglehide(char * opt[]) { + (void)opt; + + dzen.title_win.ishidden ? + a_unhide(NULL) : + a_hide(NULL); + + return 0; +} + int a_exec(char * opt[]) { int i; -- cgit v1.2.3-54-g00ecf