summaryrefslogtreecommitdiffstats
path: root/perl-install/interactive/gtk.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/interactive/gtk.pm')
-rw-r--r--perl-install/interactive/gtk.pm26
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 ])) {