2008-05-28 Mark Doffman <mark.doffman@codethink.co.uk>
[platform/core/uifw/at-spi2-atk.git] / pyatspi / event.py
index fef76aa..4c581bd 100644 (file)
@@ -140,8 +140,11 @@ class Event(object):
     # store the event source and increase the reference count since event 
     # sources are borrowed references; the AccessibleMixin automatically
     # decrements it later
+    try:
+      event.source.ref()
+    except AttributeError:
+      pass
     self.source = event.source
-    self.source.ref()
 
     # process any_data in a at-spi version independent manner
     details = event.any_data.value()
@@ -165,6 +168,11 @@ class Event(object):
       self.any_data.ref()
     except AttributeError:
       pass
+    try:
+      # if we received a host application, be sure to increment the ref count
+      self.host_application.ref()
+    except AttributeError:
+      pass
 
   def __str__(self):
     '''
@@ -220,7 +228,7 @@ class EventType(str):
     self.detail = None
     
     # split type according to delimiters
-    split = self.value.split(':')
+    split = self.value.split(':', 3)
     # loop over all the components
     for i in xrange(len(split)):
       # store values of attributes in this object