diff --git a/src/sugar/wm.py b/src/sugar/wm.py
index d813d94..f781844 100644
a
|
b
|
UNSTABLE. Used only internally by Activity and jarabe. |
20 | 20 | """ |
21 | 21 | |
22 | 22 | import gtk |
| 23 | import logging |
23 | 24 | |
| 25 | def _property_get_trapped(window, prop, prop_type): |
| 26 | gtk.gdk.error_trap_push() |
| 27 | |
| 28 | prop_info = window.property_get('_SUGAR_ACTIVITY_ID', 'STRING') |
| 29 | |
| 30 | # We just log a message |
| 31 | error = gtk.gdk.error_trap_pop() |
| 32 | if gtk.gdk.error_trap_pop(): |
| 33 | logging.debug('Recieved X Error (%i) while getting ' + \ |
| 34 | 'a property on a window' % error) |
| 35 | |
| 36 | return prop_info |
| 37 | |
| 38 | def _property_change_trapped(window, prop, prop_type, format, mode, data): |
| 39 | gtk.gdk.error_trap_push() |
| 40 | |
| 41 | window.property_change(prop, prop_type, format, mode, data) |
| 42 | |
| 43 | error = gtk.gdk.error_trap_pop() |
| 44 | if error: |
| 45 | logging.debug('Recieved X Error (%i) while setting ' + \ |
| 46 | 'a property on a window' % error) |
| 47 | raise RuntimeError('Recieved X Error (%i) while setting ' + \ |
| 48 | 'a property on a window' % error) |
| 49 | |
24 | 50 | |
25 | 51 | def get_activity_id(wnck_window): |
26 | 52 | window = gtk.gdk.window_foreign_new(wnck_window.get_xid()) |
27 | | prop_info = window.property_get('_SUGAR_ACTIVITY_ID', 'STRING') |
| 53 | prop_info = _property_get_trapped(window, '_SUGAR_ACTIVITY_ID', 'STRING') |
28 | 54 | if prop_info is None: |
29 | 55 | return None |
30 | 56 | else: |
… |
… |
def get_activity_id(wnck_window): |
33 | 59 | |
34 | 60 | def get_bundle_id(wnck_window): |
35 | 61 | window = gtk.gdk.window_foreign_new(wnck_window.get_xid()) |
36 | | prop_info = window.property_get('_SUGAR_BUNDLE_ID', 'STRING') |
| 62 | prop_info = _property_get_trapped(window, '_SUGAR_BUNDLE_ID', 'STRING') |
37 | 63 | if prop_info is None: |
38 | 64 | return None |
39 | 65 | else: |
… |
… |
def get_bundle_id(wnck_window): |
41 | 67 | |
42 | 68 | |
43 | 69 | def set_activity_id(window, activity_id): |
44 | | window.property_change('_SUGAR_ACTIVITY_ID', 'STRING', 8, |
45 | | gtk.gdk.PROP_MODE_REPLACE, activity_id) |
| 70 | _property_change_trapped(window, '_SUGAR_ACTIVITY_ID', 'STRING', 8, |
| 71 | gtk.gdk.PROP_MODE_REPLACE, activity_id) |
46 | 72 | |
47 | 73 | |
48 | 74 | def set_bundle_id(window, bundle_id): |
49 | | window.property_change('_SUGAR_BUNDLE_ID', 'STRING', 8, |
50 | | gtk.gdk.PROP_MODE_REPLACE, bundle_id) |
| 75 | _property_change_trapped(window, '_SUGAR_BUNDLE_ID', 'STRING', 8, |
| 76 | gtk.gdk.PROP_MODE_REPLACE, bundle_id) |
| 77 | |