summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/Xconfig/resolution_and_depth.pm17
1 files changed, 5 insertions, 12 deletions
diff --git a/perl-install/Xconfig/resolution_and_depth.pm b/perl-install/Xconfig/resolution_and_depth.pm
index 16c2f9acc..3a2f9631c 100644
--- a/perl-install/Xconfig/resolution_and_depth.pm
+++ b/perl-install/Xconfig/resolution_and_depth.pm
@@ -226,7 +226,7 @@ sub choose_gtk {
%h;
};
- my ($depth_combo, $x_res_combo);
+ my ($depth_combo, $x_res_combo) = (Gtk2::OptionMenu->new, Gtk2::OptionMenu->new);
my $pix_colors = Gtk2::Image->new;
my $set_chosen_Depth_image = sub {
@@ -253,6 +253,7 @@ sub choose_gtk {
}
my $image = $monitor_images_x_res{$chosen_x_res} or internal_error("no image for resolution $chosen_x_res");
$pixmap_mo->set_from_file($image);
+ $x_res_combo->entry->set_text($chosen_x_res . "x" . $chosen_y_res);
};
$set_chosen_x_res->($chosen_x_res, $chosen_y_res);
@@ -266,21 +267,17 @@ sub choose_gtk {
$pixmap_mo,
gtkpack2(new Gtk2::HBox(0,0),
create_packtable({ col_spacings => 5, row_spacings => 5 },
- [ $x_res_combo = new Gtk2::Combo, new Gtk2::Label("") ],
- [ $depth_combo = new Gtk2::Combo, gtkadd(gtkset_shadow_type(new Gtk2::Frame, 'etched_out'), $pix_colors) ],
+ [ $x_res_combo, new Gtk2::Label("") ],
+ [ $depth_combo, gtkadd(gtkset_shadow_type(new Gtk2::Frame, 'etched_out'), $pix_colors) ],
),
),
),
),
0, gtkadd($W->create_okcancel(N("Ok"), N("Cancel"), '', if_($help_sub, [ N("Help"), $help_sub, 1 ]))),
));
- $depth_combo->disable_activate;
- $depth_combo->set_use_arrows_always(1);
- $depth_combo->entry->set_editable(0);
$depth_combo->set_popdown_strings(map { translate($depth2text{$_}) } ikeys %depth2x_res);
$depth_combo->entry->set_size_request(220, -1);
$depth_combo->entry->signal_connect(changed => sub {
- $depth_combo->entry->get_text eq '' and return; #- FIXME temporarily workaround gtk suckiness (set_text generates two 'change' signals, one when removing the whole, one for inserting the replacement..)
my %txt2depth = reverse %depth2text;
my $s = $depth_combo->entry->get_text;
$chosen_Depth = $txt2depth{untranslate($s, keys %txt2depth)};
@@ -290,22 +287,18 @@ sub choose_gtk {
$set_chosen_x_res->(max(@{$depth2x_res{$chosen_Depth}}));
}
});
- $x_res_combo->disable_activate;
- $x_res_combo->set_use_arrows_always(1);
- $x_res_combo->entry->set_editable(0);
$x_res_combo->set_popdown_strings(uniq map { "$_->{X}x$_->{Y}" } sort { $a->{X} <=> $b->{X} } @resolutions);
$x_res_combo->entry->signal_connect(changed => sub {
- $x_res_combo->entry->get_text eq '' and return; #- FIXME temporarily workaround gtk suckiness (set_text generates two 'change' signals, one when removing the whole, one for inserting the replacement..)
$set_chosen_x_res->($1, $2) if $x_res_combo->entry->get_text =~ /(\d+)x(\d+)/;
if (!member($chosen_Depth, @{$x_res2depth{$chosen_x_res}})) {
$set_chosen_Depth->(max(@{$x_res2depth{$chosen_x_res}}));
}
});
+ $set_chosen_x_res->($chosen_x_res);
$set_chosen_Depth->($chosen_Depth);
$W->{ok}->grab_focus;
- $x_res_combo->entry->set_text($chosen_x_res . "x" . $chosen_y_res);
$W->main or return;
find { $_->{X} == $chosen_x_res &&