aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--action.c8
-rw-r--r--action.h2
-rw-r--r--main.c6
3 files changed, 9 insertions, 7 deletions
diff --git a/action.c b/action.c
index 8139759..b2579f2 100644
--- a/action.c
+++ b/action.c
@@ -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;
diff --git a/action.h b/action.h
index ac546a5..944f434 100644
--- a/action.h
+++ b/action.h
@@ -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 **);
diff --git a/main.c b/main.c
index f22faa4..c7e5ab8 100644
--- a/main.c
+++ b/main.c
@@ -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;
}
}