diff options
Diffstat (limited to 'src/jarabe/model/shell.py')
-rw-r--r-- | src/jarabe/model/shell.py | 19 |
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(): |