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

[mhc:00233] Re: signal delete_event on Mhc::DayBook



はじめまして。

On Thu, 25 Nov 1999 17:12:38 +0900,
	Yasushi Shoji <yashi@xxxxxxxxx> said:

> mhc ruby版を始めて試してみただけなので MLには参加していません。
> が、bug(?)を見付けたので一応、投げておきます。
> すでに潰されている bugでしたら読みながしてください。

どうもありがとうございます。もともと、月表示側のボタンを押す度に
新しい DayBook Window を開くようになってたのですが、今の仕様にし
たり戻したりしているうちにおかしくなってたようです。

> *** mhc-gtk.rb~ Wed Nov 10 04:43:39 1999
> --- mhc-gtk.rb  Thu Nov 25 03:01:32 1999
> ***************
> *** 661,666 ****
> --- 661,667 ----
>         print "GtkToplevel destroyed\n" if $DEBUG
>         exit  if active_other_windows == 0
>       }
> +     signal_connect('delete_event'){ hide; true; }
>     end
>   
>     def destroyed?

僕の所では、このパッチだけではなおらないようです。
MhcDayBook::VISUAL が signal_connect
を奪ってしまって変な所に向けちゃってるからなんですが。
下のでうまくいきました。

実はこのへんの作法がよく分かっていないので、もし御存知なら、ポイ
ンタだけでも教えていただけると助かるのですが、新しい Widget を作っ
てそれに新しい名前の signal を追加したり、signal をルーティング
するときの作法というのは、どうするのが普通なのでしょうか。

## 今は、SignalConduit とかいうのを作って無理矢理やってます。
--
nom


--- gemcal	1999/10/07 10:09:06	1.1.1.1
+++ gemcal	1999/11/25 10:28:16
@@ -407,7 +407,13 @@
     def set_date(date)         ; @vbx .set_date(date)         ; end
     def date                   ; @vbx .date                   ; end
     def set_style(*arg)        ; @vbx .set_style(*arg)        ; end
-    def signal_connect(sig, &p); @vbx .signal_connect(sig, &p); end
+    def signal_connect(sig, &p)
+      if sig == 'delete_event'
+	super
+      else
+	@vbx .signal_connect(sig, &p)
+      end
+    end
   end
 
   def initialize(date, db, x = nil, y = nil)

--- mhc-gtk.rb	1999/11/10 09:43:39	1.2
+++ mhc-gtk.rb	1999/11/25 10:28:33
@@ -3,7 +3,7 @@
@@ -661,6 +661,7 @@
       print "GtkToplevel destroyed\n" if $DEBUG
       exit  if active_other_windows == 0
     }
+    signal_connect('delete_event'){hide; true}
   end
 
   def destroyed?