From 7f051e2a80d07939fbfad9a03551ecc26c79c6f9 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. git-svn-id: http://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.45.2