summaryrefslogtreecommitdiffstats
path: root/ibus/object.py
diff options
context:
space:
mode:
authorHuang Peng <shawn.p.huang@gmail.com>2009-02-05 10:39:56 +0800
committerHuang Peng <shawn.p.huang@gmail.com>2009-02-05 10:39:56 +0800
commitaedad1ea0a7fef604aa27f4b58433fd8f2ece29e (patch)
treeffcb531d8474bde18b90341bcd4eb639edd74525 /ibus/object.py
parent41ad46305a88637dd99f00a2d2a3f455505d357b (diff)
downloadibus-aedad1ea0a7fef604aa27f4b58433fd8f2ece29e.tar.gz
ibus-aedad1ea0a7fef604aa27f4b58433fd8f2ece29e.tar.xz
ibus-aedad1ea0a7fef604aa27f4b58433fd8f2ece29e.zip
re-implement ibus in c language.
Diffstat (limited to 'ibus/object.py')
-rw-r--r--ibus/object.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/ibus/object.py b/ibus/object.py
index ca2b380..b00e47a 100644
--- a/ibus/object.py
+++ b/ibus/object.py
@@ -28,21 +28,30 @@ import gobject
class Object(gobject.GObject):
__gsignals__ = {
'destroy' : (
- gobject.SIGNAL_RUN_FIRST,
+ gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
())
}
def __init__(self):
super(Object, self).__init__()
- self._destroyed = False
+ self.__destroyed = False
+ self.__handlers = []
def destroy(self):
- if not self._destroyed:
+ if not self.__destroyed:
self.emit("destroy")
- self._destroyed = True
+ self.__destroyed = True
def do_destroy(self):
- pass
+ self.__disconnect_all()
+
+ def connect(self, signal_name, handler, *args):
+ id = super(Object, self).connect(signal_name, handler, *args)
+ self.__handlers.append(id)
+
+ def __disconnect_all(self):
+ map(self.disconnect, self.__handlers)
+ self.__handlers = []
gobject.type_register(Object)