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

[mhc:02233] Re: gemcal on gtk2



西山和広です。

>>> Sat, 09 Dec 2006 09:02:22 +0900 (JST) の刻に
>>> tats@xxxxxxxxxxxxxx(Tatsuya Kinoshita) 氏曰く
> 
> gemcalのgtk2対応について、Debianパッケージのmhc 0.25.1+20050120-2
> 以降に当たっているパッチを添付します。
> 
> 手元では概ね動作しているものの、closeボタンを押して終了する際に、
> 下記のようにsegfaultになってしまいます。
> 
> ----
> $ gemcal
> /usr/lib/ruby/1.8/mhc-gtk.rb:699:in `exit': exit
>          from /usr/lib/ruby/1.8/mhc-gtk.rb:699:in `initialize'
>          from /usr/bin/gemcal:566:in `call'
>          from /usr/bin/gemcal:566:in `destroy'
>          from /usr/bin/gemcal:566:in `initialize'
>          from /usr/bin/gemcal:694:in `call'
>          from /usr/bin/gemcal:694:in `main'
>          from /usr/bin/gemcal:694
> /usr/lib/ruby/1.8/glib2.rb:45:in `exit': exit
>          from /usr/lib/ruby/1.8/glib2.rb:45:in `exit_application'
>          from /usr/lib/ruby/1.8/mhc-gtk.rb:699:in `destroy'
>          from /usr/bin/gemcal:566:in `initialize'
>          from /usr/bin/gemcal:694:in `call'
>          from /usr/bin/gemcal:694:in `main'
>          from /usr/bin/gemcal:694
> /usr/lib/ruby/1.8/glib2.rb:45: [BUG] Segmentation fault
> ruby 1.8.5 (2006-08-25) [i486-linux]
> 
> Aborted
> ----

これはexitをGtk.main_quitにするとどうでしょうか?

とりあえず手元でcloseボタンを試した時に再現していたのは
直りました。

--- lib/mhc-gtk.rb~	2006-12-11 16:27:10.000000000 +0900
+++ lib/mhc-gtk.rb	2006-12-11 16:33:34.000000000 +0900
@@ -696,7 +696,7 @@
     super(Gtk::Window::TOPLEVEL)
     signal_connect('destroy'){
       print "GtkToplevel destroyed\n" if $DEBUG
-      exit  if active_other_windows == 0
+      Gtk.main_quit  if active_other_windows == 0
     }
   end
 
@@ -725,14 +725,14 @@
 
   def hide
     print "GtkToplevel hide\n" if $DEBUG
-    exit  if active_other_windows == 0
+    Gtk.main_quit  if active_other_windows == 0
     push_position
     super
   end
 
   def hide_all
     print "GtkToplevel hide_all\n" if $DEBUG
-    exit  if active_other_windows == 0
+    Gtk.main_quit  if active_other_windows == 0
     push_position
     super
   end
@@ -757,7 +757,7 @@
 
     y = Gtk::Button .new('OK')
     y .flags |= CAN_DEFAULT
-    y .signal_connect('clicked'){exit}
+    y .signal_connect('clicked'){Gtk.main_quit}
     hbx .pack_start(y, true, true, 0)
 
     n = Gtk::Button .new('Cancel')



-- 
|ZnZ(ゼット エヌ ゼット)
|西山和広(Kazuhiro NISHIYAMA)