diff options
Diffstat (limited to 'perl-install/interactive')
| -rw-r--r-- | perl-install/interactive/gtk.pm | 26 | ||||
| -rw-r--r-- | perl-install/interactive/http.pm | 9 | ||||
| -rw-r--r-- | perl-install/interactive/newt.pm | 11 | ||||
| -rw-r--r-- | perl-install/interactive/stdio.pm | 2 |
4 files changed, 31 insertions, 17 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 ])) { diff --git a/perl-install/interactive/http.pm b/perl-install/interactive/http.pm index 393ede7f6..8a453616f 100644 --- a/perl-install/interactive/http.pm +++ b/perl-install/interactive/http.pm @@ -25,8 +25,8 @@ sub open_stdout() { # cont_stdout must be called after open_stdout and before the first print sub cont_stdout { - my ($title) = @_; - print CGI::start_html('-title' => $title) if $no_header; + my ($o_title) = @_; + print CGI::start_html('-title' => $o_title) if $no_header; $no_header = 0; } @@ -108,9 +108,8 @@ sub ask_fromW { close STDOUT; # page terminated while (1) { - local *F; - open F, "<$pipe_r" or die; - $q = CGI->new(*F); + open(my $F, "<$pipe_r") or die; + $q = CGI->new($F); $q->param('force_exit_dead_prog') and $o->exit; last if $q->param('uid') == $uid; diff --git a/perl-install/interactive/newt.pm b/perl-install/interactive/newt.pm index 5a1f22e5d..c9da9c92a 100644 --- a/perl-install/interactive/newt.pm +++ b/perl-install/interactive/newt.pm @@ -15,7 +15,16 @@ my ($width, $height) = (80, 25); my @wait_messages; sub new { - Newt::Init(); + if ($::isInstall) { + system('unicode_start'); #- don't use run_program, we must do it on current console + { + local $ENV{LC_CTYPE} = "en_US.UTF-8"; + Newt::Init(1); + } + c::setlocale(); + } else { + Newt::Init(0); + } Newt::Cls(); Newt::SetSuspendCallback(); ($width, $height) = Newt::GetScreenSize(); diff --git a/perl-install/interactive/stdio.pm b/perl-install/interactive/stdio.pm index ba3088876..8fd7a43ef 100644 --- a/perl-install/interactive/stdio.pm +++ b/perl-install/interactive/stdio.pm @@ -155,7 +155,7 @@ Your choice? "); } my ($callback_error) = $common->{callbacks}{$i == 2 ? 'canceled' : 'complete'}->(); $callback_error and goto ask_fromW_begin; - return !($i == 2); + return $i != 2; } sub wait_messageW { |
