aboutsummaryrefslogtreecommitdiffstats
path: root/main.c
diff options
context:
space:
mode:
authorgotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-11-27 12:04:24 +0000
committergotmor <gotmor@f2baff5b-bf2c-0410-a398-912abdc3d8b2>2007-11-27 12:04:24 +0000
commit9d42d81a58a767d51cffc964fa8b3320f4094e11 (patch)
tree98bb359317676f0d9519097bc10b2de9b2a49466 /main.c
parent5b63308bfc7b2490561350fcccc340ded9cc2a06 (diff)
downloaddzen-9d42d81a58a767d51cffc964fa8b3320f4094e11.tar.gz
dzen-9d42d81a58a767d51cffc964fa8b3320f4094e11.zip
added -geometry option, allows relative positioning
git-svn-id: http://dzen.googlecode.com/svn/trunk@170 f2baff5b-bf2c-0410-a398-912abdc3d8b2
Diffstat (limited to 'main.c')
-rw-r--r--main.c31
1 files changed, 27 insertions, 4 deletions
diff --git a/main.c b/main.c
index 469f431..4b69079 100644
--- a/main.c
+++ b/main.c
@@ -212,8 +212,14 @@ x_draw_body(void) {
static void
x_check_geometry(XRectangle si) {
- dzen.title_win.x += si.x;
- dzen.title_win.y += si.y;
+
+ dzen.title_win.x = dzen.title_win.x < 0 ?
+ si.width + dzen.title_win.x + si.x :
+ dzen.title_win.x + si.x;
+ dzen.title_win.y = dzen.title_win.y < 0 ?
+ si.height + dzen.title_win.y + si.y :
+ dzen.title_win.y + si.x;
+
if(dzen.title_win.x > si.x + si.width)
dzen.title_win.x = si.x;
@@ -500,7 +506,7 @@ handle_xev(void) {
if(ev.xcrossing.window == dzen.slave_win.line[i])
x_hilight_line(i);
}
- if(!dzen.slave_win.ishmenu
+if(!dzen.slave_win.ishmenu
&& ev.xcrossing.window == dzen.title_win.win)
do_action(entertitle);
if(ev.xcrossing.window == dzen.slave_win.win)
@@ -710,6 +716,23 @@ main(int argc, char *argv[]) {
init_input_buffer();
}
}
+ else if(!strncmp(argv[i], "-geometry", 8)) {
+ if(++i < argc) {
+ int t;
+ unsigned int tx, ty, tw, th;
+
+ t = XParseGeometry(argv[i], &tx, &ty, &tw, &th);
+
+ if(t & XValue)
+ dzen.title_win.x = (signed int) tx;
+ if(t & YValue)
+ dzen.title_win.y = (signed int) ty;
+ if(t & WidthValue)
+ dzen.title_win.width = (signed int) tw;
+ if(t & HeightValue)
+ dzen.line_height = (signed int) th;
+ }
+ }
else if(!strncmp(argv[i], "-u", 3)){
dzen.tsupdate = True;
}
@@ -770,7 +793,7 @@ main(int argc, char *argv[]) {
eprint("dzen-"VERSION", (C)opyright 2007 Robert Manea\n");
else
eprint("usage: dzen2 [-v] [-p [seconds]] [-m [v|h]] [-ta <l|c|r>] [-sa <l|c|r>]\n"
- " [-x <pixel>] [-y <pixel>] [-w <pixel>] [-tw <pixel>] [-u] \n"
+ " [-geometry <g>] [-x <pixel>] [-y <pixel>] [-w <pixel>] [-tw <pixel>] [-u] \n"
" [-e <string>] [-l <lines>] [-fn <font>] [-bg <color>] [-fg <color>]\n"
#ifdef DZEN_XINERAMA
" [-xs <screen>]\n"