From 1eaa5eca65c9bdf7f10f44de8e5995b7539af332 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 23 Jun 2006 12:23:44 -0400 Subject: [PATCH 1/4] Make share button insensitive for the everyone tab --- shell/PresenceWindow.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/shell/PresenceWindow.py b/shell/PresenceWindow.py index fb6d517d..60753d14 100644 --- a/shell/PresenceWindow.py +++ b/shell/PresenceWindow.py @@ -50,6 +50,8 @@ class PresenceWindow(gtk.Window): else: self._share_button.set_sensitive(True) self._activity.connect('shared', lambda w: self._share_button.set_sensitive(False)) + else: + self._share_button.set_sensitive(False) def _setup_ui(self): vbox = gtk.VBox(False, 6) From 5fa4d3426e7f786b327a25d9f4de83ac8394303b Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 23 Jun 2006 12:29:16 -0400 Subject: [PATCH 2/4] Reenable old sliding in, it just feel less trembling and it's not buggy. We need to test on the olpc, old code is still there obviously. --- shell/WindowManager.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/shell/WindowManager.py b/shell/WindowManager.py index 765b2bef..7fa5dcde 100644 --- a/shell/WindowManager.py +++ b/shell/WindowManager.py @@ -6,12 +6,12 @@ import gobject SM_SPACE_PROPORTIONAL = 0 SM_STEP = 1 -SLIDING_TIMEOUT = 50 -SLIDING_MODE = SM_SPACE_PROPORTIONAL +#SLIDING_TIMEOUT = 50 +#SLIDING_MODE = SM_SPACE_PROPORTIONAL -#SLIDING_TIMEOUT = 10 -#SLIDING_MODE = SM_STEP -#SLIDING_STEP = 0.05 +SLIDING_TIMEOUT = 10 +SLIDING_MODE = SM_STEP +SLIDING_STEP = 0.05 class WindowManager: __managers_list = [] From a929dc0b4655eb2fe0c88b437314b80848e16749 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 23 Jun 2006 12:49:57 -0400 Subject: [PATCH 3/4] Fix up focus handling some --- shell/shell.py | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/shell/shell.py b/shell/shell.py index 5d9e9aed..a5dc0b72 100755 --- a/shell/shell.py +++ b/shell/shell.py @@ -33,6 +33,8 @@ class ActivityHostSignalHelper(gobject.GObject): class ActivityHost(dbus.service.Object): def __init__(self, activity_container, activity_name, default_type, activity_id = None): + self.peer_service = None + self.activity_name = activity_name self.ellipsize_tab = False self._shared = False @@ -99,6 +101,13 @@ class ActivityHost(dbus.service.Object): def _create_chat(self): self._activity_chat = ActivityChat(self) + def got_focus(self): + if self.peer_service != None: + self.peer_service.got_focus() + + def lost_focus(self): + self.peer_service.lost_focus() + def get_chat(self): return self._activity_chat @@ -365,12 +374,6 @@ class ActivityContainer(dbus.service.Object): def show(self): self.window.show() - def __focus_reply_cb(self): - pass - - def __focus_error_cb(self, error): - pass - def set_current_activity(self, activity): self.current_activity = activity self._presence_window.set_activity(activity) @@ -388,23 +391,12 @@ class ActivityContainer(dbus.service.Object): new_activity = notebook.get_nth_page(page_number).get_data("sugar-activity") if self.current_activity != None: - if self.has_activity(self.current_activity): - self.current_activity.peer_service.lost_focus(reply_handler = self.__focus_reply_cb, error_handler = self.__focus_error_cb) + self.current_activity.lost_focus() - #if self.has_activity(new_activity): self.set_current_activity(new_activity) if self.current_activity != None: - if self.has_activity(self.current_activity): - self.current_activity.peer_service.got_focus(reply_handler = self.__focus_reply_cb, error_handler = self.__focus_error_cb) - - - def has_activity(self, activity_to_check_for): - for owner, activity in self.activities[:]: - if activity_to_check_for == activity: - return True - return False - + self.current_activity.got_focus() def name_owner_changed(self, service_name, old_service_name, new_service_name): #print "in name_owner_changed: svc=%s oldsvc=%s newsvc=%s"%(service_name, old_service_name, new_service_name) From b6b50ff285220609be1dbbb3350447af07cee411 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 23 Jun 2006 13:09:58 -0400 Subject: [PATCH 4/4] Make the console a slide-in window. Change keybinding to Ctrl-Down --- shell/WindowManager.py | 9 +++++++++ shell/shell.py | 23 +++++++++-------------- shell/sugar | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/shell/WindowManager.py b/shell/WindowManager.py index 7fa5dcde..61d1d0c4 100644 --- a/shell/WindowManager.py +++ b/shell/WindowManager.py @@ -48,6 +48,12 @@ class WindowManager: if wm._position == WindowManager.TOP: manager = wm + if event.keyval == gtk.keysyms.Down and \ + event.state & gtk.gdk.CONTROL_MASK: + for wm in WindowManager.__managers_list: + if wm._position == WindowManager.BOTTOM: + manager = wm + if manager and manager._window.get_property('visible'): manager.slide_window_out() elif manager: @@ -87,6 +93,9 @@ class WindowManager: elif self._position is WindowManager.TOP: self._x = int((screen_width - width) / 2) self._y = - int((1.0 - self._sliding_pos) * height) + elif self._position is WindowManager.BOTTOM: + self._x = int((screen_width - width) / 2) + self._y = screen_height - int(self._sliding_pos * height) self._real_width = width self._real_height = height diff --git a/shell/shell.py b/shell/shell.py index a5dc0b72..b5514788 100755 --- a/shell/shell.py +++ b/shell/shell.py @@ -458,26 +458,23 @@ class ConsoleLogger(dbus.service.Object): self._window = gtk.Window() self._window.set_title("Console") - self._window.set_default_size(640, 480) + self._window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DOCK) + self._window.set_decorated(False) + self._window.set_skip_taskbar_hint(True) self._window.connect("delete_event", lambda w, e: w.hide_on_delete()) - + self._nb = gtk.Notebook() self._window.add(self._nb) self._nb.show() self._consoles = {} - def set_parent_window(self, window): - window.connect("key-press-event", self.__key_press_event_cb) - self._window.connect("key-press-event", self.__key_press_event_cb) + console_wm = WindowManager(self._window) - def __key_press_event_cb(self, window, event): - if event.keyval == gtk.keysyms.d and \ - event.state & gtk.gdk.CONTROL_MASK: - if self._window.get_property('visible'): - self._window.hide() - else: - self._window.show() + console_wm.set_width(0.7, WindowManager.SCREEN_RELATIVE) + console_wm.set_height(0.9, WindowManager.SCREEN_RELATIVE) + console_wm.set_position(WindowManager.BOTTOM) + console_wm.manage() def _create_console(self, application): sw = gtk.ScrolledWindow() @@ -535,8 +532,6 @@ class Shell(gobject.GObject): wm.show() wm.manage() - console.set_parent_window(activity_container.window) - def __activity_container_destroy_cb(self, activity_container): self.emit('close') diff --git a/shell/sugar b/shell/sugar index 60391bee..a4fd0239 100755 --- a/shell/sugar +++ b/shell/sugar @@ -69,7 +69,7 @@ else: add_to_python_path(os.path.join(sugar.env.get_data_dir(), 'shell')) print 'Running the installed sugar...' -print 'Redirecting output to the console, press ctrl+d to open it.' +print 'Redirecting output to the console, press Ctrl+Down to open it.' from session.session import Session