diff options
author | gotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2> | 2007-07-06 06:04:23 +0000 |
---|---|---|
committer | gotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2> | 2007-07-06 06:04:23 +0000 |
commit | ea9797f1105ed972147e3dc81f0b49090d0d88b6 (patch) | |
tree | ae9bcebfe01249be9eae45869eb2eba260500d5f | |
parent | 445d958902177390320e2d5bc384e7fb47afdeaf (diff) | |
download | dzen-ea9797f1105ed972147e3dc81f0b49090d0d88b6.tar.gz dzen-ea9797f1105ed972147e3dc81f0b49090d0d88b6.zip |
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
-rw-r--r-- | action.c | 27 | ||||
-rw-r--r-- | action.h | 2 | ||||
-rw-r--r-- | main.c | 14 |
3 files changed, 37 insertions, 6 deletions
@@ -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[]) { @@ -393,6 +399,17 @@ a_unhide(char * opt[]) { } 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; @@ -63,6 +63,7 @@ int a_exit(char **); int a_exec(char **); int a_collapse(char **); int a_uncollapse(char **); +int a_togglecollapse(char **); int a_stick(char **); int a_unstick(char **); int a_togglestick(char **); @@ -70,6 +71,7 @@ int a_scrollup(char **); int a_scrolldown(char **); int a_hide(char **); int a_unhide(char **); +int a_togglehide(char **); int a_menuprint(char **); int a_menuexec(char **); int a_raise(char **); @@ -271,7 +271,8 @@ queryscreeninfo(Display *dpy, XRectangle *rect, int screen) { } #endif -static void set_net_wm_strut_partial_for(Display *dpy, Window w) { +static void +set_net_wm_strut_partial_for(Display *dpy, Window w) { unsigned long strut[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; XWindowAttributes wa; @@ -508,6 +509,17 @@ handle_xev(void) { XLookupString(&ev.xkey, buf, sizeof buf, &ksym, 0); do_action(ksym+keymarker); break; + + /* TODO: XRandR rotation and size chnages */ +#if 0 + +#ifdef DZEN_XRANDR + case RRScreenChangeNotify: + handle_xrandr(); +#endif + +#endif + } } |