On 14.09.2009 09:53, Yuki KODAMA wrote:
> On Mon, Sep 14, 2009 at 16:37, Adrian Buehlmann <adr...@cadifra.com> wrote:
>> On 14.09.2009 06:59, Yuki KODAMA wrote:
>>> Hi,
>>>
>>> When I open Taskbar setting dialog from context menu of tray icon,
>>> it doesn't open the dialog and I got these errors in "thgtaskbar.exe.log" 
>>> file:
>>>
>>> C:\Program Files\TortoiseHg\library.zip\tortoisehg\hgtk\gtklib.py:48:
>>> GtkWarning: gtkwidget.c:4247: widget `GtkWindow' has no activatable
>>> signal "thg-close" without arguments
>>> C:\Program Files\TortoiseHg\library.zip\tortoisehg\hgtk\gtklib.py:51:
>>> GtkWarning: gtkwidget.c:4247: widget `GtkWindow' has no activatable
>>> signal "thg-exit" without arguments
>>> C:\Program Files\TortoiseHg\library.zip\tortoisehg\hgtk\gtklib.py:54:
>>> GtkWarning: gtkwidget.c:4247: widget `GtkWindow' has no activatable
>>> signal "thg-refresh" without arguments
>>> C:\Program Files\TortoiseHg\library.zip\tortoisehg\hgtk\gtklib.py:57:
>>> GtkWarning: gtkwidget.c:4247: widget `GtkWindow' has no activatable
>>> signal "thg-accept" without arguments
>>> Exception in thread Thread-3:
>>> Traceback (most recent call last):
>>>   File "threading.pyo", line 486, in __bootstrap_inner
>>>   File "threading.pyo", line 446, in run
>>>   File "thgtaskbar.py", line 175, in launch
>>>   File "tortoisehg\hgtk\taskbarui.pyo", line 26, in __init__
>>>   File "tortoisehg\hgtk\gtklib.pyo", line 60, in set_tortoise_keys
>>> TypeError: <TaskBarUI object at 0x1332be8 (GtkWindow at 0x198f008)>:
>>> unknown signal name: thg-close
>>>
>> It seems this was first introduced by:
>>
>> changeset:   3985:db36d1f7e96a
>> user:        Steve Borho <st...@borho.org>
>> date:        Sun Sep 13 10:57:06 2009 -0500
>> summary:     hggtk, thgutil: move Python packages under tortoisehg
>>
>> from default branch.
>>
>> 0.8.X should be unaffected.
> 
> Yup. IMHO, it causes by gtklib.set_tortoise_keys() method calling.
> "set_tortoise_keys" method sets some TortoiseHg's signals, but it failed.
> This means "taskbarui" dialog doesn't have "thg-close" signal.
> Therefore, it also means "taskbarui" dialog isn't called via "hgtk.py".
> You know "hgtk.py" has registration codes of TortoiseHg's signals
> (thg-close, thg-exit, etc) at begin of file.
> 

Funny that there was no traceback before db36d1f7e96a.
The following patch seems to fix it for me:

diff --git a/thgtaskbar.py b/thgtaskbar.py
--- a/thgtaskbar.py
+++ b/thgtaskbar.py
@@ -8,6 +8,8 @@ import time
 import threading
 import cStringIO
 import Queue
+import gtk
+import gobject

 from win32api import *
 from win32gui import *
@@ -37,6 +39,11 @@ if hasattr(sys, "frozen"):

 APP_TITLE = _('TortoiseHg RPC server')

+# Add TortoiseHg signals, hooked to key accelerators in gtklib
+for sig in ('thg-exit', 'thg-close', 'thg-refresh', 'thg-accept'):
+    gobject.signal_new(sig, gtk.Window,
+            gobject.SIGNAL_ACTION, gobject.TYPE_NONE, ())
+
 SHOWLOG_CMD = 1023
 EXIT_CMD = 1025

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Tortoisehg-develop mailing list
Tortoisehg-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop

Reply via email to