[gimp-perl] Gimp::UI uses own mainloop so as not to harm Extension one.



commit f227810a589ef14632e5b06c79da2298e3a30acf
Author: Ed J <edj src gnome org>
Date:   Sat May 17 00:31:00 2014 +0100

    Gimp::UI uses own mainloop so as not to harm Extension one.

 UI/UI.pm |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)
---
diff --git a/UI/UI.pm b/UI/UI.pm
index 2abe5e9..7e47568 100644
--- a/UI/UI.pm
+++ b/UI/UI.pm
@@ -656,6 +656,7 @@ sub interact($$$$@) {
   $sw->add_with_viewport($table);
   $w->vbox->add($sw);
 
+  my $mainloop = Glib::MainLoop->new;
   my $button = $w->add_button('gtk-help', 3);
   $button->signal_connect(clicked => sub {
     help_window($helpwin, $w, $title, $help);
@@ -668,17 +669,17 @@ sub interact($$$$@) {
   my $res = 0;
   $button = $w->add_button('gtk-cancel', 0);
   $button->signal_connect(clicked => sub {
-    Gtk2->main_quit;
+    $mainloop->quit;
   });
   can_default $button 1;
   $button = $w->add_button('gtk-ok', 1);
   $button->signal_connect(clicked => sub {
     $res = 1;
-    Gtk2->main_quit;
+    $mainloop->quit;
   });
   can_default $button 1;
   grab_default $button;
-  $w->signal_connect(destroy => sub { Gtk2->main_quit; });
+  $w->signal_connect(destroy => sub { $mainloop->quit; });
 
   show_all $table;
   show_all $sw;
@@ -687,10 +688,12 @@ sub interact($$$$@) {
     min(0.6*$sw->get_screen->get_height, $table->size_request->height + 5)
   );
   show_all $w;
-  Gtk2->main;
+  $mainloop->run;
   die $exception_text if $exception_text;
-  return if $res == 0;
-  return (1, map {&$_} @getvals);
+  my @retvals = map {&$_} @getvals if $res;
+  $w->destroy;
+  return unless $res;
+  return (1, @retvals);
 }
 
 1;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]