summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/interactive.pm2
-rw-r--r--perl-install/interactive_gtk.pm21
-rw-r--r--perl-install/my_gtk.pm1
3 files changed, 15 insertions, 9 deletions
diff --git a/perl-install/interactive.pm b/perl-install/interactive.pm
index fd1fbe059..e23206d4c 100644
--- a/perl-install/interactive.pm
+++ b/perl-install/interactive.pm
@@ -224,12 +224,12 @@ sub ask_from_entries_refH_powered_normalize {
sub ask_from_entries_refH_powered {
my ($o, $common, $l) = @_;
ask_from_entries_refH_powered_normalize($o, $common, $l);
+ @$l or return 1;
$o->ask_from_entries_refW($common, [ grep { !$_->{advanced} } @$l ], [ grep { $_->{advanced} } @$l ]);
}
sub ask_from_entries_refH_powered_no_check {
my ($o, $common, $l) = @_;
ask_from_entries_refH_powered_normalize($o, $common, $l);
- @$l or return 1;
$o->ask_from_entries_refW($common, [ grep { !$_->{advanced} } @$l ], [ grep { $_->{advanced} } @$l ]);
}
diff --git a/perl-install/interactive_gtk.pm b/perl-install/interactive_gtk.pm
index c9ee639f0..310f88fc6 100644
--- a/perl-install/interactive_gtk.pm
+++ b/perl-install/interactive_gtk.pm
@@ -60,10 +60,6 @@ sub create_clist {
# $list->signal_connect(button_release_event => $leave) :
# $list->signal_connect(button_press_event => sub { &$leave if $_[1]{type} =~ /^2/ });
- $list->signal_connect(select_row => sub {
- my ($w, $row) = @_;
- ${$e->{val}} = $e->{list}[$curr = $row];
- });
$list->signal_connect(key_press_event => sub {
my ($w, $event) = @_;
my $c = chr($event->{keyval} & 0xff);
@@ -97,12 +93,19 @@ sub create_clist {
}
1;
});
+ $list->show;
$list->append($_) foreach @l;
+ $list->signal_connect(select_row => sub {
+ my ($w, $row) = @_;
+ ${$e->{val}} = $e->{list}[$curr = $row];
+ });
+
$list, sub {
+ my ($v) = @_;
eval {
- $select->(find_index { $_ eq ${$e->{val}} } @{$e->{list}})
+ $select->(find_index { $_ eq $v } @{$e->{list}});
};
};
}
@@ -156,7 +159,7 @@ sub create_ctree {
$tree->set_row_height($tree->style->font->ascent + $tree->style->font->descent + 1);
$tree, sub {
- my $node = $wleaves{${$e->{val}}} or return;
+ my $node = $wleaves{$_[0]} or return;
for (my $c = $node; $c; $c = $c->row->parent) {
$tree->expand($c);
@@ -209,8 +212,9 @@ sub create_list {
${$e->{val}} = $l->[$list->child_position($row)];
});
$list, sub {
+ my ($v) = @_;
eval {
- $select->(find_index { $_ eq ${$e->{val}} } @$l)
+ $select->(find_index { $_ eq $v } @$l);
};
};
}
@@ -335,13 +339,14 @@ sub ask_from_entries_refW {
};
my $advanced_button = [ _("Advanced"), sub { $set_advanced->(!$advanced) } ];
- $set_all->();
gtkadd($mainw->{window},
gtkpack(create_box_with_title($mainw, @{$common->{messages}}),
may_createScrolledWindow(@widgets_always > 8, create_packtable({}, map { [($_->{icon_w}, $_->{e}{label}, $_->{real_w})]} @widgets_always), 200, min(350, $::windowheight - 60)),
new Gtk::HSeparator,
$advanced_pack = create_packtable({}, map { [($_->{icon_w}, $_->{e}{label}, $_->{real_w})]} @widgets_advanced),
$mainw->create_okcancel($common->{ok}, $common->{cancel}, '', @$l2 ? $advanced_button : ())));
+ $mainw->sync; #- for $set_all below (mainly for the set of clist)
+ $set_all->();
$set_advanced->(0);
(@widgets ? $widgets[0]{w} : $mainw->{ok})->grab_focus();
diff --git a/perl-install/my_gtk.pm b/perl-install/my_gtk.pm
index 791a741f0..ac0dbb8d5 100644
--- a/perl-install/my_gtk.pm
+++ b/perl-install/my_gtk.pm
@@ -324,6 +324,7 @@ sub create_packtable($@) {
if (defined $_) {
ref $_ or $_ = new Gtk::Label($_);
$w->attach($_, $j, $j + 1, $i, $i + 1, 'fill', 'fill', 5, 0);
+# $w->attach_defaults($_, $j, $j + 1, $i, $i + 1);
$_->show;
}
} @$_;