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