diff --git a/src/syncterm/menu.c b/src/syncterm/menu.c index 9cefc78cb8bf32af2fe34e52491a43edc9f55b67..1ea087ea63f07f5617dd290559c623abb7defece 100644 --- a/src/syncterm/menu.c +++ b/src/syncterm/menu.c @@ -34,10 +34,16 @@ void viewscroll(void) puttext(term.x-1,term.y-1,term.x+term.width-2,term.y+term.height-2,scrollback+(term.width*2*top)); key=getch(); switch(key) { + case 0xff: case 0: - switch(getch()<<8) { + switch(key|getch()<<8) { case CIO_KEY_MOUSE: getmouse(&mevent); + switch(mevent.event) { + case CIOLIB_BUTTON_1_DRAG_START: + mousedrag(scrollback); + break; + } break; case CIO_KEY_UP: top--; diff --git a/src/syncterm/term.h b/src/syncterm/term.h index ce607467c5b3767d37e9a7abd5283bfbedca8b06..df2480e209ee649dbee2bc1d0b6b6a4529efd092 100644 --- a/src/syncterm/term.h +++ b/src/syncterm/term.h @@ -12,5 +12,6 @@ extern struct terminal term; extern int backlines; void doterm(void); +void mousedrag(unsigned char *scrollback); #endif