From 5408f0a545185896ac56a5a4220faa96b873c6b0 Mon Sep 17 00:00:00 2001 From: Owen Dunn Date: Wed, 21 Sep 2005 14:53:32 +0000 Subject: [PATCH] Platform-independent support for zooming around session list by typing in the session name box. Thwarted on Unix by GTK not automatically scrolling the listbox to the selected item, but we can fix that in the platform-specific side later. [originally from svn r6337] --- config.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/config.c b/config.c index 0a470803..39da6c2a 100644 --- a/config.c +++ b/config.c @@ -350,9 +350,25 @@ static void sessionsaver_handler(union control *ctrl, void *dlg, dlg_update_done(ctrl, dlg); } } else if (event == EVENT_VALCHANGE) { + int top, bottom, halfway, i; if (ctrl == ssd->editbox) { dlg_editbox_get(ctrl, dlg, savedsession, SAVEDSESSION_LEN); + top = ssd->sesslist.nsessions; + bottom = -1; + while (top-bottom > 1) { + halfway = (top+bottom)/2; + i = strcmp(savedsession, ssd->sesslist.sessions[halfway]); + if (i <= 0 ) { + top = halfway; + } else { + bottom = halfway; + } + } + if (top == ssd->sesslist.nsessions) { + top -= 1; + } + dlg_listbox_select(ssd->listbox, dlg, top); } } else if (event == EVENT_ACTION) { if (!ssd->midsession && -- 2.45.2