From 65ca7b151dc27c708b60db1152cfbb62d2a87aac Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu@sugarlabs.org>
Date: Sun, 21 Jun 2009 12:36:52 +0200
Subject: [PATCH] Change window management stuff so Sugar can use a standard-compliants window manager
---
bin/sugar-emulator | 10 ----------
bin/sugar.in | 3 +--
src/jarabe/frame/framewindow.py | 2 +-
src/jarabe/model/shell.py | 6 ++++++
4 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/bin/sugar-emulator b/bin/sugar-emulator
index acd5976..3be59f0 100644
a
|
b
|
def _start_xephyr(dpi, dimensions, fullscreen): |
88 | 88 | tries -= 1 |
89 | 89 | time.sleep(0.1) |
90 | 90 | |
91 | | def _start_matchbox(): |
92 | | cmd = ['matchbox-window-manager'] |
93 | | |
94 | | cmd.extend(['-use_titlebar', 'no']) |
95 | | cmd.extend(['-theme', 'sugar']) |
96 | | |
97 | | gobject.spawn_async(cmd, flags=gobject.SPAWN_SEARCH_PATH) |
98 | | |
99 | 91 | def _setup_env(): |
100 | 92 | os.environ['SUGAR_EMULATOR'] = 'yes' |
101 | 93 | os.environ['GABBLE_LOGFILE'] = os.path.join( |
… |
… |
def main(): |
157 | 149 | if not args: |
158 | 150 | command.append('sugar') |
159 | 151 | else: |
160 | | _start_matchbox() |
161 | | |
162 | 152 | if args[0].endswith('.py'): |
163 | 153 | command.append('python') |
164 | 154 | |
diff --git a/bin/sugar.in b/bin/sugar.in
index 3c9b9b6..7b5ca25 100644
a
|
b
|
if [ -f ~/.sugar/debug ]; then |
16 | 16 | . ~/.sugar/debug |
17 | 17 | fi |
18 | 18 | |
19 | | matchbox-window-manager -use_titlebar no -theme sugar \ |
20 | | -kbdconfig @prefix@/share/sugar/data/kbdconfig & |
| 19 | metacity --no-force-fullscreen & |
21 | 20 | |
22 | 21 | exec sugar-session |
diff --git a/src/jarabe/frame/framewindow.py b/src/jarabe/frame/framewindow.py
index 02bb131..5cb1241 100644
a
|
b
|
class FrameWindow(gtk.Window): |
93 | 93 | self.resize(self.size, gtk.gdk.screen_height()) |
94 | 94 | |
95 | 95 | def _realize_cb(self, widget): |
96 | | self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG) |
| 96 | self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK) |
97 | 97 | self.window.set_accept_focus(False) |
98 | 98 | |
99 | 99 | def _enter_notify_cb(self, window, event): |
diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
index 709eb03..d7810ba 100644
a
|
b
|
class ShellModel(gobject.GObject): |
457 | 457 | if activity_id: |
458 | 458 | home_activity = self.get_activity_by_id(activity_id) |
459 | 459 | |
| 460 | xid = window.get_xid() |
| 461 | gdk_window = gtk.gdk.window_foreign_new(xid) |
| 462 | gdk_window.set_decorations(0) |
| 463 | |
| 464 | window.maximize() |
| 465 | |
460 | 466 | if not home_activity: |
461 | 467 | home_activity = Activity(activity_info, activity_id, window) |
462 | 468 | self._add_activity(home_activity) |