Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-09-04 18:25:15 (GMT)
committer Simon Schampijer <simon@laptop.org>2012-09-07 09:14:26 (GMT)
commit26021a17ec820314bbab976b441c1b296d3c9cc1 (patch)
tree4dd42ce8ae4f355fff680c3a58c52aa3dd4a64e5 /src
parentfee568c07d4c7b73909455f9169b706d32816dd0 (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.py8
-rw-r--r--src/jarabe/model/shell.py10
-rw-r--r--src/jarabe/view/launcher.py5
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()