diff options
Diffstat (limited to 'perl-install/interactive/gtk.pm')
| -rw-r--r-- | perl-install/interactive/gtk.pm | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/perl-install/interactive/gtk.pm b/perl-install/interactive/gtk.pm index b6dade81d..871541697 100644 --- a/perl-install/interactive/gtk.pm +++ b/perl-install/interactive/gtk.pm @@ -81,6 +81,7 @@ sub create_treeview_list { my ($starting_word, $start_reg) = ('', '^'); my $timeout; + $list_tv->set_enable_search(0); $list_tv->signal_connect(key_press_event => sub { my ($_w, $event) = @_; my $c = chr($event->keyval & 0xff); @@ -234,11 +235,12 @@ sub create_treeview_tree { } }; + $tree->set_enable_search(0); $tree->signal_connect(key_press_event => sub { my ($_w, $event) = @_; $selected_via_click = 0; my $c = chr($event->keyval & 0xff); - $curr or return; + $curr or return 0; Glib::Source->remove($timeout) if $timeout; $timeout = ''; if ($event->keyval >= 0x100) { @@ -248,7 +250,7 @@ sub create_treeview_tree { my $next; if (member('control-mask', @{$event->state})) { $c eq "s" or return 1; - $start_reg and $start_reg = '', return 1; + $start_reg and $start_reg = '', return 0; $next = 1; } else { &$toggle if $c eq ' '; @@ -545,7 +547,7 @@ sub ask_fromW { } $w->set_popdown_strings(@formatted_list); - $w->set_text($formatted_list[0]) if $w->isa('Gtk2::ComboBox'); + $w->set_text(ref($e->{val}) ? may_apply($e->{format}, ${$e->{val}}) : $formatted_list[0]) if $w->isa('Gtk2::ComboBox'); ($real_w, $w) = ($w, $w->entry); #- FIXME workaround gtk suckiness (set_text generates two 'change' signals, one when removing the whole, one for inserting the replacement..) @@ -592,8 +594,9 @@ sub ask_fromW { @widgets_always = map_index { $create_widget->($_, $::i) } @$l; @widgets_advanced = map_index { $create_widget->($_, $::i + @$l) } @$l2; + $mainw->{box_allow_grow} = !@$l; my $pack = create_box_with_title($mainw, @{$common->{messages}}); - ugtk2::set_main_window_size($mainw) if $mainw->{pop_it} && @$l; + ugtk2::set_main_window_size($mainw) if $mainw->{pop_it} && (@$l || $mainw->{box_size} == 200); my @before_widgets_advanced = ( (map { { grow => 0, real_w => Gtk2::WrappedLabel->new($_) } } @{$common->{advanced_messages}}), @@ -620,16 +623,19 @@ sub ask_fromW { $w->child->set_label($advanced ? $common->{advanced_label_close} : $common->{advanced_label}); } ]; - my @help = if_($common->{interactive_help}, - [ N("Help"), sub { - my $message = $common->{interactive_help}->() or return; - $o->ask_warn(N("Help"), $message); - }, 1 ]); + my @more_buttons = ( + if_($common->{interactive_help}, + [ N("Help"), sub { + my $message = $common->{interactive_help}->() or return; + $o->ask_warn(N("Help"), $message); + }, 1 ]), + if_($common->{more_buttons}, @{$common->{more_buttons}}), + ); if ($::expert && @$l2) { $common->{advanced_state} = 1; $advanced_button->[0] = $common->{advanced_label_close}; } - my $buttons_pack = ($common->{ok} || !exists $common->{ok}) && $mainw->create_okcancel($common->{ok}, $common->{cancel}, '', @help, if_(@$l2, $advanced_button)); + my $buttons_pack = ($common->{ok} || !exists $common->{ok}) && $mainw->create_okcancel($common->{ok}, $common->{cancel}, '', @more_buttons, if_(@$l2, $advanced_button)); my @widgets_to_pack; foreach my $l (\@widgets_always, if_(@widgets_advanced, [ @before_widgets_advanced, @widgets_advanced ])) { |
