aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-07-06 06:04:23 +0000
committergotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-07-06 06:04:23 +0000
commitea9797f1105ed972147e3dc81f0b49090d0d88b6 (patch)
treeae9bcebfe01249be9eae45869eb2eba260500d5f
parent445d958902177390320e2d5bc384e7fb47afdeaf (diff)
downloaddzen-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.c27
-rw-r--r--action.h2
-rw-r--r--main.c14
3 files changed, 37 insertions, 6 deletions
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[]) {
@@ -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;
diff --git a/action.h b/action.h
index 0af044b..4c592d3 100644
--- a/action.h
+++ b/action.h
@@ -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 **);
diff --git a/main.c b/main.c
index 6b7ceff..531b10f 100644
--- a/main.c
+++ b/main.c
@@ -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
+
}
}