diff options
-rw-r--r-- | action.c | 8 | ||||
-rw-r--r-- | action.h | 2 | ||||
-rw-r--r-- | main.c | 6 |
3 files changed, 9 insertions, 7 deletions
@@ -48,7 +48,7 @@ struct action_lookup ac_lookup_table[] = { { "menuexec", a_menuexec}, { "raise", a_raise}, { "lower", a_lower}, - { "showhead", a_showhead}, + { "scrollhome", a_scrollhome}, { 0, 0 } }; @@ -201,7 +201,7 @@ a_uncollapse(char * opt[]){ XMapRaised(dzen.dpy, dzen.slave_win.win); for(i=0; i < dzen.slave_win.max_lines; i++) XMapRaised(dzen.dpy, dzen.slave_win.line[i]); - x_draw_body(); + //x_draw_body(); } return 0; } @@ -335,10 +335,10 @@ a_lower(char * opt[]) { } int -a_showhead(char * opt[]) { +a_scrollhome(char * opt[]) { if(dzen.slave_win.max_lines) { dzen.slave_win.first_line_vis = 0; - dzen.slave_win.last_line_vis = dzen.slave_win.max_lines; + dzen.slave_win.last_line_vis = dzen.slave_win.max_lines; x_draw_body(); } return 0; @@ -73,6 +73,6 @@ int a_menuprint(char **); int a_menuexec(char **); int a_raise(char **); int a_lower(char **); -int a_showhead(char **); +int a_scrollhome(char **); @@ -387,11 +387,13 @@ handle_newl(void) { if(dzen.slave_win.max_lines && (dzen.slave_win.tcnt > last_cnt)) { if (XGetWindowAttributes(dzen.dpy, dzen.slave_win.win, &wa), - wa.map_state != IsUnmapped) { + wa.map_state != IsUnmapped && + /* scroll only if we're viewing the last line of input */ + (dzen.slave_win.last_line_vis == last_cnt)) { dzen.slave_win.first_line_vis = 0; dzen.slave_win.last_line_vis = 0; - do_action(exposeslave); } + do_action(exposeslave); last_cnt = dzen.slave_win.tcnt; } } |