From 6702b248463bc6d33332cc96be4309f4f4fc5037 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Sun, 27 Jan 2002 13:37:15 +0000 Subject: strange protection against ensure_focus generating a "focus" event causing a dead-loop (reminder: ensure_focus helps ensuring a widget is focused) --- perl-install/my_gtk.pm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/perl-install/my_gtk.pm b/perl-install/my_gtk.pm index 8bbd6a7a8..312d903f2 100644 --- a/perl-install/my_gtk.pm +++ b/perl-install/my_gtk.pm @@ -840,7 +840,12 @@ sub _create_window($$) { $w->signal_connect(delete_event => sub { $w->destroy; die 'wizcancel' }); $w->set_uposition(@{$my_gtk::force_position || $o->{force_position}}) if $my_gtk::force_position || $o->{force_position}; - $w->signal_connect(focus => sub { Gtk->idle_add(sub { $w->ensure_focus($_[0]); 0 }, $_[1]) }) if $w->can('ensure_focus'); + my $focusing; + $w->signal_connect(focus => sub { + return 1 if $focusing; + $focusing = 1; + Gtk->idle_add(sub { $w->ensure_focus($_[0]); $focusing = 0; 0 }, $_[1]); + }) if $w->can('ensure_focus'); if ($::o->{mouse}{unsafe}) { $w->set_events("pointer_motion_mask"); -- cgit v1.2.1