Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/model/shell.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jarabe/model/shell.py')
-rw-r--r--src/jarabe/model/shell.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
index ef2268d..8693e26 100644
--- a/src/jarabe/model/shell.py
+++ b/src/jarabe/model/shell.py
@@ -17,6 +17,7 @@
import logging
import time
+import subprocess
import gconf
import wnck
@@ -322,6 +323,8 @@ class ShellModel(gobject.GObject):
self._screen.connect('window-closed', self._window_closed_cb)
self._screen.connect('active-window-changed',
self._active_window_changed_cb)
+ self._screen.connect('window-manager-changed',
+ self.__window_manager_changed_cb)
self.zoom_level_changed = dispatch.Signal()
@@ -591,6 +594,22 @@ class ShellModel(gobject.GObject):
self.notify_launch_failed(activity_id)
return False
+ def __window_manager_changed_cb(self, screen):
+ wm_name = screen.get_window_manager_name()
+ if wm_name is not None:
+ logging.debug('Setup %s wm', wm_name)
+ self._setup_wm()
+
+ def _setup_wm(self):
+ # have to reset cursor(metacity sets it on startup)
+ if subprocess.call('xsetroot -cursor_name left_ptr', shell=True):
+ logging.warning('Can not reset cursor')
+
+ if subprocess.call('metacity-message disable-keybindings',
+ shell=True):
+ logging.warning('Can not disable metacity keybindings')
+
+
_model = None
def get_model():