diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-09-04 18:25:15 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@laptop.org> | 2012-09-07 09:14:26 (GMT) |
commit | 26021a17ec820314bbab976b441c1b296d3c9cc1 (patch) | |
tree | 4dd42ce8ae4f355fff680c3a58c52aa3dd4a64e5 /src | |
parent | fee568c07d4c7b73909455f9169b706d32816dd0 (diff) |
Use the new wm C module to share bundle_id and activity_id between Shell and Activities
The wm module in sugar-toolkit-gtk3 has been reimplemented
in C and made available through introspection. The same was
hard to achieve directly using the Gdk API.
Signed-off-by: Daniel Narvaez <dwnarvaez@gmail.com>
Acked-by: Simon Schampijer <simon@laptop.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/jarabe/journal/journalactivity.py | 8 | ||||
-rw-r--r-- | src/jarabe/model/shell.py | 10 | ||||
-rw-r--r-- | src/jarabe/view/launcher.py | 5 |
3 files changed, 13 insertions, 10 deletions
diff --git a/src/jarabe/journal/journalactivity.py b/src/jarabe/journal/journalactivity.py index 978188b..773ca88 100644 --- a/src/jarabe/journal/journalactivity.py +++ b/src/jarabe/journal/journalactivity.py @@ -31,7 +31,8 @@ from sugar3.graphics.alert import ErrorAlert from sugar3.bundle.bundle import ZipExtractException, RegistrationException from sugar3 import env from sugar3.activity import activityfactory -from sugar3 import wm +from gi.repository import SugarExt + from jarabe.model import bundleregistry from jarabe.journal.journaltoolbox import MainToolbox, DetailToolbox @@ -156,9 +157,10 @@ class JournalActivity(JournalWindow): self.remove_alert(alert) def __realize_cb(self, window): - wm.set_bundle_id(window.window, _BUNDLE_ID) + xid = window.window.get_xid() + SugarExt.wm_set_bundle_id(xid, _BUNDLE_ID) activity_id = activityfactory.create_activity_id() - wm.set_activity_id(window.window, str(activity_id)) + SugarExt.wm_set_activity_id(xid, str(activity_id)) self.disconnect(self._realized_sid) self._realized_sid = None diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py index b2c912b..8143699 100644 --- a/src/jarabe/model/shell.py +++ b/src/jarabe/model/shell.py @@ -25,9 +25,9 @@ from gi.repository import Gtk from gi.repository import Gdk import dbus -from sugar3 import wm from sugar3 import dispatch from sugar3.graphics.xocolor import XoColor +from gi.repository import SugarExt from jarabe.model.bundleregistry import get_registry @@ -208,7 +208,7 @@ class Activity(GObject.GObject): if not self._windows: return None else: - return wm.get_bundle_id(self._windows[0]) + return SugarExt.wm_get_bundle_id(self._windows[0].get_xid()) def is_journal(self): """Returns boolean if the activity is of type JournalActivity""" @@ -525,10 +525,11 @@ class ShellModel(GObject.GObject): if window.get_window_type() == Wnck.WindowType.NORMAL or \ window.get_window_type() == Wnck.WindowType.SPLASHSCREEN: home_activity = None + xid = window.get_xid() - activity_id = wm.get_activity_id(window) + activity_id = SugarExt.wm_get_activity_id(xid) - service_name = wm.get_bundle_id(window) + service_name = SugarExt.wm_get_bundle_id(xid) if service_name: registry = get_registry() activity_info = registry.get_bundle(service_name) @@ -538,7 +539,6 @@ class ShellModel(GObject.GObject): if activity_id: home_activity = self.get_activity_by_id(activity_id) - xid = window.get_xid() gdk_window = Gdk.window_foreign_new(xid) gdk_window.set_decorations(0) diff --git a/src/jarabe/view/launcher.py b/src/jarabe/view/launcher.py index 429bd72..8fa81b7 100644 --- a/src/jarabe/view/launcher.py +++ b/src/jarabe/view/launcher.py @@ -21,7 +21,7 @@ from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject -from sugar3 import wm +from gi.repository import SugarExt from sugar3.graphics import style from jarabe.model import shell @@ -93,7 +93,8 @@ class LaunchWindow(Gtk.Window): self.resize(Gdk.Screen.width(), Gdk.Screen.height()) def __realize_cb(self, widget): - wm.set_activity_id(widget.window, str(self._activity_id)) + SugarExt.wm_set_activity_id(widget.get_window().get_xid(), + str(self._activity_id)) def __size_changed_cb(self, screen): self._update_size() |