if (uc->optmenu) {
gtk_option_menu_set_history(GTK_OPTION_MENU(uc->optmenu), index);
} else {
+ int nitems;
+ GList *items;
+ gdouble newtop, newbot;
+
gtk_list_select_item(GTK_LIST(uc->list), index);
+
+ /*
+ * Scroll the list box if necessary to ensure the newly
+ * selected item is visible.
+ */
+ items = gtk_container_children(GTK_CONTAINER(uc->list));
+ nitems = g_list_length(items);
+ if (nitems > 0) {
+ int modified = FALSE;
+ g_list_free(items);
+ newtop = uc->adj->lower +
+ (uc->adj->upper - uc->adj->lower) * index / nitems;
+ newbot = uc->adj->lower +
+ (uc->adj->upper - uc->adj->lower) * (index+1) / nitems;
+ if (uc->adj->value > newtop) {
+ modified = TRUE;
+ uc->adj->value = newtop;
+ } else if (uc->adj->value < newbot - uc->adj->page_size) {
+ modified = TRUE;
+ uc->adj->value = newbot - uc->adj->page_size;
+ }
+ if (modified)
+ gtk_adjustment_value_changed(uc->adj);
+ }
}
}
GtkTreeItem *treeitemlevels[8];
GtkTree *treelevels[8];
struct dlgparam dp;
- struct sesslist sl;
struct Shortcuts scs;
struct selparam *selparams = NULL;
dlg_init(&dp);
- get_sesslist(&sl, TRUE);
-
listitemheight = get_listitemheight();
for (index = 0; index < lenof(scs.sc); index++) {
window = gtk_dialog_new();
ctrlbox = ctrl_new_box();
- setup_config_box(ctrlbox, &sl, midsession, cfg->protocol, protcfginfo);
+ setup_config_box(ctrlbox, midsession, cfg->protocol, protcfginfo);
unix_setup_config_box(ctrlbox, midsession);
gtk_setup_config_box(ctrlbox, midsession, window);
gtk_main();
- get_sesslist(&sl, FALSE);
dlg_cleanup(&dp);
sfree(selparams);
char *title;
char *licence =
- "Copyright 1997-2005 Simon Tatham.\n\n"
+ "Copyright 1997-2006 Simon Tatham.\n\n"
"Portions copyright Robert de Bath, Joris van Rantwijk, Delian "
"Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas "
- "Barry, Justin Bradford, Ben Harris, Malcolm Smith, and CORE SDI S.A.\n\n"
+ "Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, "
+ "Markus Kuhn, and CORE SDI S.A.\n\n"
"Permission is hereby granted, free of charge, to any person "
"obtaining a copy of this software and associated documentation "
w, FALSE, FALSE, 5);
gtk_widget_show(w);
- w = gtk_label_new("Copyright 1997-2005 Simon Tatham. All rights reserved");
+ w = gtk_label_new("Copyright 1997-2006 Simon Tatham. All rights reserved");
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(aboutbox)->vbox),
w, FALSE, FALSE, 5);
gtk_widget_show(w);