aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--draw.c2
-rw-r--r--main.c12
2 files changed, 11 insertions, 3 deletions
diff --git a/draw.c b/draw.c
index cc7907e..da897e8 100644
--- a/draw.c
+++ b/draw.c
@@ -611,7 +611,7 @@ parse_line(const char *line, int lnr, int align, int reverse, int nodraw) {
switch(dzen.title_win.expand) {
case left:
/* grow left end */
- otx = dzen.title_win.x_right_corner - i > 0 ?
+ otx = dzen.title_win.x_right_corner - i > dzen.title_win.x ?
dzen.title_win.x_right_corner - i : dzen.title_win.x;
XMoveResizeWindow(dzen.dpy, dzen.title_win.win, otx, dzen.title_win.y, px, dzen.line_height);
break;
diff --git a/main.c b/main.c
index 3877243..29d6257 100644
--- a/main.c
+++ b/main.c
@@ -226,11 +226,18 @@ x_check_geometry(XRectangle si) {
if (dzen.title_win.x < si.x)
dzen.title_win.x = si.x;
- if(!dzen.title_win.width)
+ if(!dzen.title_win.width && dzen.title_win.expand != left)
dzen.title_win.width = si.width;
if((dzen.title_win.x + dzen.title_win.width) > (si.x + si.width))
dzen.title_win.width = si.width - (dzen.title_win.x - si.x);
+
+ if(dzen.title_win.expand == left) {
+ dzen.title_win.x_right_corner = dzen.title_win.width ? dzen.title_win.width+si.x : dzen.title_win.x;
+ dzen.title_win.width = dzen.title_win.x - si.x;
+ dzen.title_win.x = si.x;
+ }
+
if(!dzen.slave_win.width) {
dzen.slave_win.x = si.x;
dzen.slave_win.width = si.width;
@@ -238,6 +245,7 @@ x_check_geometry(XRectangle si) {
if( dzen.title_win.width == dzen.slave_win.width) {
dzen.slave_win.x = dzen.title_win.x;
}
+
if(dzen.slave_win.width != si.width) {
dzen.slave_win.x = dzen.title_win.x + (dzen.title_win.width - dzen.slave_win.width)/2;
if(dzen.slave_win.x < si.x)
@@ -891,7 +899,7 @@ main(int argc, char *argv[]) {
x_create_windows();
- dzen.title_win.x_right_corner = dzen.title_win.x + dzen.title_win.width;
+ //dzen.title_win.x_right_corner = dzen.title_win.x + dzen.title_win.width;
if(!dzen.slave_win.ishmenu)
x_map_window(dzen.title_win.win);