From dcfd072859faf68a06c2836a478d3771fb518c2a Mon Sep 17 00:00:00 2001 From: owen 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. git-svn-id: svn://svn.tartarus.org/sgt/putty@6337 cda61777-01e9-0310-a592-d414129be87e --- 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.11.0