aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/9term/9term.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@swtch.com>2011-10-12 13:19:04 -0400
committerRuss Cox <rsc@swtch.com>2011-10-12 13:19:04 -0400
commit210d461c87a6c5f598ef958b303a7f24d4e4a93b (patch)
tree542f2adb7c8c52a31360e6038b182ba344ad307c /src/cmd/9term/9term.c
parent7064acbd104d7c1af5a94533213d2bb124a7a60e (diff)
parent7064acbd104d7c1af5a94533213d2bb124a7a60e (diff)
downloadplan9port-210d461c87a6c5f598ef958b303a7f24d4e4a93b.tar.gz
plan9port-210d461c87a6c5f598ef958b303a7f24d4e4a93b.tar.bz2
plan9port-210d461c87a6c5f598ef958b303a7f24d4e4a93b.zip
merge
Diffstat (limited to 'src/cmd/9term/9term.c')
-rw-r--r--src/cmd/9term/9term.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/cmd/9term/9term.c b/src/cmd/9term/9term.c
index ed68ed19..5ca47b90 100644
--- a/src/cmd/9term/9term.c
+++ b/src/cmd/9term/9term.c
@@ -67,7 +67,7 @@ threadmain(int argc, char *argv[])
fontname = EARGF(usage());
break;
case 's':
- /* no-op */
+ scrolling = TRUE;
break;
case 'c':
cooked = TRUE;
@@ -114,7 +114,7 @@ threadmain(int argc, char *argv[])
timerinit();
servedevtext();
rcpid = rcstart(argc, argv, &rcfd, &sfd);
- w = new(screen, FALSE, rcpid, ".", nil, nil);
+ w = new(screen, FALSE, scrolling, rcpid, ".", nil, nil);
threadcreate(keyboardthread, nil, STACK);
threadcreate(mousethread, nil, STACK);
@@ -241,7 +241,7 @@ wpointto(Point pt)
}
Window*
-new(Image *i, int hideit, int pid, char *dir, char *cmd, char **argv)
+new(Image *i, int hideit, int scrollit, int pid, char *dir, char *cmd, char **argv)
{
Window *w;
Mousectl *mc;
@@ -258,7 +258,7 @@ new(Image *i, int hideit, int pid, char *dir, char *cmd, char **argv)
*mc = *mousectl;
/* mc->image = i; */
mc->c = cm;
- w = wmk(i, mc, ck, cctl);
+ w = wmk(i, mc, ck, cctl, scrollit);
free(mc); /* wmk copies *mc */
window = erealloc(window, ++nwindow*sizeof(Window*));
window[nwindow-1] = w;
@@ -288,6 +288,7 @@ enum
Snarf,
Plumb,
Send,
+ Scroll,
Cook
};
@@ -298,6 +299,7 @@ char *menu2str[] = {
"plumb",
"send",
"cook",
+ "scroll",
nil
};
@@ -315,6 +317,10 @@ button2menu(Window *w)
if(w->deleted)
return;
incref(&w->ref);
+ if(w->scrolling)
+ menu2str[Scroll] = "noscroll";
+ else
+ menu2str[Scroll] = "scroll";
if(cooked)
menu2str[Cook] = "nocook";
else
@@ -358,7 +364,11 @@ button2menu(Window *w)
wsetselect(w, w->nr, w->nr);
wshow(w, w->nr);
break;
-
+
+ case Scroll:
+ if(w->scrolling ^= 1)
+ wshow(w, w->nr);
+ break;
case Cook:
cooked ^= 1;
break;