diff options
author | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2012-01-19 16:35:03 -0500 |
---|---|---|
committer | Sadrul Habib Chowdhury <sadrul@users.sourceforge.net> | 2012-01-19 16:35:03 -0500 |
commit | c795ac322ff7c81c8d57445337c9f70cba226d1f (patch) | |
tree | 00362a9b3c203b64de2400f0a124f9dc9e2a5397 /src/list_window.c | |
parent | 869278e490913531a98602b8bec5cc08831aa46d (diff) | |
parent | 8cf5efc07048abee125a24652768f4b24fc761bf (diff) | |
download | screen-unicode++.tar.gz |
Merge remote-tracking branch 'origin/master' into unicode++unicode++
Diffstat (limited to 'src/list_window.c')
-rw-r--r-- | src/list_window.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/list_window.c b/src/list_window.c index b65600d..4fd65d0 100644 --- a/src/list_window.c +++ b/src/list_window.c @@ -427,6 +427,38 @@ gl_Window_input(struct ListData *ldata, char **inp, int *len) } break; default: + if (ch >= '0' && ch <= '9') + { + struct ListRow *row = ldata->root; + for (; row; row = row->next) + { + struct win *w = row->data; + if (w->w_number == ch - '0') + { + struct ListRow *old = ldata->selected; + if (old == row) + break; + ldata->selected = row; + if (ldata->selected->y == -1) + { + /* We need to list all the rows, since we are scrolling down. But first, + * find the top of the visible list. */ + ldata->top = row; + glist_display_all(ldata); + } + else + { + /* just redisplay the two lines. */ + ldata->list_fn->gl_printrow(ldata, old); + ldata->list_fn->gl_printrow(ldata, ldata->selected); + flayer->l_y = ldata->selected->y; + LaySetCursor(); + } + break; + } + } + break; + } --*inp; ++*len; return 0; |