diff options
author | Thierry Vignaud <tv@mandriva.org> | 2008-10-11 11:18:13 +0000 |
---|---|---|
committer | Thierry Vignaud <tv@mandriva.org> | 2008-10-11 11:18:13 +0000 |
commit | b0729c6d493e440cd9003f994cec9f5144957d2c (patch) | |
tree | 25e539bce78053f2092a0e86e1dddb0d96a26ddd | |
parent | ea09b6383c6468fb513d10f199168e8106d097a0 (diff) | |
download | drakx-b0729c6d493e440cd9003f994cec9f5144957d2c.tar drakx-b0729c6d493e440cd9003f994cec9f5144957d2c.tar.gz drakx-b0729c6d493e440cd9003f994cec9f5144957d2c.tar.bz2 drakx-b0729c6d493e440cd9003f994cec9f5144957d2c.tar.xz drakx-b0729c6d493e440cd9003f994cec9f5144957d2c.zip |
(enable_sync_flush,sync_flush) split them out of wait_messageW() so that
rpmdrake can get rid of some gray windows
-rw-r--r-- | perl-install/NEWS | 3 | ||||
-rw-r--r-- | perl-install/interactive/gtk.pm | 4 | ||||
-rw-r--r-- | perl-install/mygtk2.pm | 12 |
3 files changed, 17 insertions, 2 deletions
diff --git a/perl-install/NEWS b/perl-install/NEWS index f50168ccd..0ed09f69a 100644 --- a/perl-install/NEWS +++ b/perl-install/NEWS @@ -1,5 +1,8 @@ - handle new driver: o ide: tx4939ide +- libDrakX: + o share infrastructure so that rpmdrake can get rid of some gray + windows Version 11.67 - 2 October 2008 diff --git a/perl-install/interactive/gtk.pm b/perl-install/interactive/gtk.pm index 0a1cef4a2..2dea19599 100644 --- a/perl-install/interactive/gtk.pm +++ b/perl-install/interactive/gtk.pm @@ -912,9 +912,9 @@ sub wait_messageW { if_(ref($message_modifiable), 0, $message_modifiable), ]), ); - $Window->signal_connect(expose_event => sub { $Window->{displayed} = 1; 0 }); + mygtk2::enable_sync_flush($Window); $Window->{wait_messageW} = $to_modify; - mygtk2::sync($Window) while !$Window->{displayed}; + mygtk2::sync_flush($Window); $Window; } sub wait_message_nextW { diff --git a/perl-install/mygtk2.pm b/perl-install/mygtk2.pm index 3107510c9..2f70efe89 100644 --- a/perl-install/mygtk2.pm +++ b/perl-install/mygtk2.pm @@ -1413,6 +1413,18 @@ sub flush() { Gtk2->main_iteration while Gtk2->events_pending; } +sub enable_sync_flush { + my ($w) = @_; + $w->signal_connect(expose_event => sub { $w->{displayed} = 1; 0 }); +} + +sub sync_flush { + my ($w) = @_; + # hackish :-( + mygtk2::sync($w) while !$w->{displayed}; +} + + sub may_destroy { my ($w) = @_; return if !$w; |