diff options
-rw-r--r-- | perl-install/Xconfigurator.pm | 1 | ||||
-rw-r--r-- | perl-install/install2.pm | 10 | ||||
-rw-r--r-- | perl-install/install_gtk.pm | 15 | ||||
-rw-r--r-- | perl-install/install_steps_gtk.pm | 8 | ||||
-rw-r--r-- | perl-install/my_gtk.pm | 5 |
5 files changed, 25 insertions, 14 deletions
diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm index df1e47ad7..eb3186fcb 100644 --- a/perl-install/Xconfigurator.pm +++ b/perl-install/Xconfigurator.pm @@ -470,6 +470,7 @@ sub testFinalConfig($;$$) { Gtk->timeout_add(1000, sub { $text->set(_("Leaving in %d seconds", $time)); $time-- or Gtk->main_quit; + 1; }); exit (interactive_gtk->new->ask_yesorno('', [ _("Is this the correct setting?"), $text ], 0) ? 0 : 222); diff --git a/perl-install/install2.pm b/perl-install/install2.pm index 90e711388..342255535 100644 --- a/perl-install/install2.pm +++ b/perl-install/install2.pm @@ -43,7 +43,7 @@ my (%installSteps, @orderedInstallSteps); selectLanguage => [ __("Choose your language"), 1, 1, '' ], selectInstallClass => [ __("Select installation class"), 1, 1, '' ], setupSCSI => [ __("Hard drive detection"), 1, 0, '' ], - selectMouse => [ __("Configure mouse"), 1, 1, '$::beginner', "selectInstallClass" ], + selectMouse => [ __("Configure mouse"), 1, 1, '', "selectInstallClass" ], selectKeyboard => [ __("Choose your keyboard"), 1, 1, '', "selectInstallClass" ], miscellaneous => [ __("Miscellaneous"), 1, 1, '$::beginner' ], doPartitionDisks => [ __("Setup filesystems"), 1, 0, '$o->{lnx4win}', "selectInstallClass" ], @@ -273,7 +273,6 @@ sub selectInstallClass { sub doPartitionDisks { $::live and return; $o->{steps}{formatPartitions}{done} = 0; - $o->{steps}{doPartitionDisks}{done} = 0; $o->doPartitionDisksBefore; $o->doPartitionDisks; $o->doPartitionDisksAfter; @@ -664,7 +663,12 @@ sub main { while ($@) { local $_ = $@; $o->kill_action; - /^setstep (.*)/ and $o->{step} = $1, $clicked = 1, redo MAIN; + if (/^setstep (.*)/) { + $o->{step} = $1; + $o->{steps}{$1}{done} = 0; + $clicked = 1; + redo MAIN; + } /^theme_changed$/ and redo MAIN; unless (/^already displayed/ || /^ask_from_list cancel/) { eval { $o->errorInStep($_) }; diff --git a/perl-install/install_gtk.pm b/perl-install/install_gtk.pm index 7f1717f54..40daf8447 100644 --- a/perl-install/install_gtk.pm +++ b/perl-install/install_gtk.pm @@ -367,13 +367,14 @@ END sub test_mouse { my ($mouse) = @_; - my $w = my_gtk->new(''); + my $w = my_gtk->new; my ($width, $height, $offset) = (210, 300, 25); - my ($bw, $bh) = ($width / 3, $height * 2 / 5); + my ($bw, $bh) = ($width / 3, $height / 3); gtkadd($w->{window}, gtkpack(new Gtk::VBox(0,0), my $darea = gtkset_usize(new Gtk::DrawingArea, $width+1, $height+1), + '', create_okcancel($w, '', '', "edge"), ), ); @@ -408,8 +409,11 @@ sub test_mouse { my $w = $font->string_width($t); $darea->window->draw_string($font, $darea->style->fg_gc('normal'), ($width - $w) / 2, $y, $t); }; + my $default_time = 10; + my $time = $default_time; $darea->signal_connect(button_press_event => sub { my $b = $_[1]{button}; + $time = $default_time; $b >= 4 ? $paintWheel->($b == 4 ? -1 : 1) : $paintButton->($b - 1, 1); @@ -422,10 +426,13 @@ sub test_mouse { $darea->set_events([ 'button_press_mask', 'button_release_mask' ]); $w->sync; # HACK - $draw_rect->(0, 1, [ 0, 0, $width, $height]); + $draw_rect->(1, 0, [ 0, 0, $width, $height]); $draw_text->(_("Please test the mouse"), 2 * $bh - 20); - $draw_text->(_("Move your wheel"), 2 * $bh) if $mouse->{XMOUSETYPE} eq 'IMPS/2'; + $draw_text->(_("Move your wheel!"), 2 * $bh + 10) if $mouse->{XMOUSETYPE} eq 'IMPS/2'; $paintButton->($_, 0) foreach 0..2; + $w->{cancel}->grab_focus; + my $timeout = Gtk->timeout_add(1000, sub { if ($time-- == 0) { undef $w->{retval}; Gtk->main_quit } 1 }); + my $b = before_leaving { Gtk->timeout_remove($timeout) }; $w->main; } diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index 42e017f81..5254cffa6 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -192,11 +192,9 @@ sub selectMouse { eval { commands::modprobe("serial") } if $o->{mouse}{device} =~ /ttyS/; $set->($o->{mouse}) unless $::testing; - - install_gtk::test_mouse($o->{mouse}) and return; - - $set->(\%old); - goto &selectMouse; + } + if ($old{FULLNAME} ne $o->{mouse}{FULLNAME}) { + install_gtk::test_mouse($o->{mouse}) or goto &selectMouse; } } diff --git a/perl-install/my_gtk.pm b/perl-install/my_gtk.pm index 2d9c65a2a..e59a1404c 100644 --- a/perl-install/my_gtk.pm +++ b/perl-install/my_gtk.pm @@ -45,7 +45,8 @@ sub new { sub main($;$) { my ($o, $f) = @_; gtkset_mousecursor_normal(); - my $idle = Gtk->timeout_add(1000, sub { gtkset_mousecursor_normal() }); + my $timeout = Gtk->timeout_add(1000, sub { log::l("gtkset_mousecursor_normal"); gtkset_mousecursor_normal(); 1 }); + my $b = before_leaving { Gtk->timeout_remove($timeout) }; $o->show; do { @@ -240,7 +241,7 @@ sub create_okcancel { $ok ||= $::isWizard ? _("Next ->") : _("Ok"); my $b1 = gtksignal_connect($w->{ok} = new Gtk::Button($ok), "clicked" => $w->{ok_clicked} || sub { $w->{retval} = 1; Gtk->main_quit }); - my $b2 = !$one && gtksignal_connect(new Gtk::Button($cancel || _("Cancel")), "clicked" => $w->{cancel_clicked} || sub { $w->{retval} = 0; Gtk->main_quit }); + my $b2 = !$one && gtksignal_connect($w->{cancel} = new Gtk::Button($cancel || _("Cancel")), "clicked" => $w->{cancel_clicked} || sub { undef $w->{retval}; Gtk->main_quit }); my @l = grep { $_ } $::isStandalone ? ($b2, $b1) : ($b1, $b2); $_->can_default($::isStandalone) foreach @l; |