2012/8/17 Simon Schampijer <si...@schampijer.de> > > After discussing with Gary I prepared this patch to change the > interaction with the Frame in the following manner: > > - you can reveal the Frame by going with the cursor in one of the > hot corners > > - you can hide the Frame by going with the cursor in one of the > hot corners (and the Frame is visible) > > - the Frame is not hidden on mouse out (leaving the Frame) > > - (as before) you can hide/reveal the Frame with the designated keys > > - the Frame is hidden when you switch between activities > (todo: hide as well when resume in the Palette is clicked) > > - the Frame is hidden when a zoom level is selected
As I suggested, maybe leave the frame open whle switching zoom views? > - (as before) you can use 'alt-tab' to cycle through the > running activities > > - drag & drop is currently not working, SL #3811 > > v2: fixed cycling through running activities Tested, works as expected. Another thing to think is the frame in relation with the Control Panel. I think the frame should be hidden when the control panel is opened. > Signed-off-by: Simon Schampijer <si...@laptop.org> > --- > src/jarabe/frame/activitiestray.py | 2 ++ > src/jarabe/frame/frame.py | 53 > ++++++++++---------------------------- > src/jarabe/frame/zoomtoolbar.py | 6 +++++ > src/jarabe/view/tabbinghandler.py | 2 +- > 4 files changed, 22 insertions(+), 41 deletions(-) > > diff --git a/src/jarabe/frame/activitiestray.py > b/src/jarabe/frame/activitiestray.py > index 9590bce..d386b3b 100644 > --- a/src/jarabe/frame/activitiestray.py > +++ b/src/jarabe/frame/activitiestray.py > @@ -287,6 +287,8 @@ class ActivitiesTray(HTray): > window = home_activity.get_window() > if window: > window.activate(gtk.get_current_event_time()) > + frame = jarabe.frame.get_view() > + frame.hide() > > def __remove_invite_cb(self, icon, invite): > self._invites.remove_invite(invite) > diff --git a/src/jarabe/frame/frame.py b/src/jarabe/frame/frame.py > index 7407e18..ee112a1 100644 > --- a/src/jarabe/frame/frame.py > +++ b/src/jarabe/frame/frame.py > @@ -57,29 +57,12 @@ class _Animation(animator.Animation): > class _MouseListener(object): > def __init__(self, frame): > self._frame = frame > - self._hide_sid = 0 > > def mouse_enter(self): > - self._show_frame() > - > - def mouse_leave(self): > - if self._frame.mode == Frame.MODE_MOUSE: > - self._hide_frame() > - > - def _show_frame(self): > - if self._hide_sid != 0: > - gobject.source_remove(self._hide_sid) > - self._frame.show(Frame.MODE_MOUSE) > - > - def _hide_frame_timeout_cb(self): > - self._frame.hide() > - return False > - > - def _hide_frame(self): > - if self._hide_sid != 0: > - gobject.source_remove(self._hide_sid) > - self._hide_sid = gobject.timeout_add( > - _FRAME_HIDING_DELAY, self._hide_frame_timeout_cb) > + if self._frame.visible: > + self._frame.hide() > + else: > + self._frame.show() > > > class _KeyListener(object): > @@ -88,23 +71,16 @@ class _KeyListener(object): > > def key_press(self): > if self._frame.visible: > - if self._frame.mode == Frame.MODE_KEYBOARD: > - self._frame.hide() > + self._frame.hide() > else: > - self._frame.show(Frame.MODE_KEYBOARD) > + self._frame.show() > > > class Frame(object): > - MODE_MOUSE = 0 > - MODE_KEYBOARD = 1 > - MODE_NON_INTERACTIVE = 2 > - > def __init__(self): > logging.debug('STARTUP: Loading the frame') > - self.mode = None > > self._palette_group = palettegroup.get_group('frame') > - self._palette_group.connect('popdown', > self._palette_group_popdown_cb) > > self._left_panel = None > self._right_panel = None > @@ -143,6 +119,9 @@ class Frame(object): > visible = property(is_visible, None) > > def hide(self): > + if not self.visible: > + return > + > if self._animator: > self._animator.stop() > > @@ -150,16 +129,12 @@ class Frame(object): > self._animator.add(_Animation(self, 0.0)) > self._animator.start() > > - self.mode = None > - > - def show(self, mode): > + def show(self): > if self.visible: > return > if self._animator: > self._animator.stop() > > - self.mode = mode > - > self._animator = animator.Animator(0.5) > self._animator.add(_Animation(self, 1.0)) > self._animator.start() > @@ -180,6 +155,7 @@ class Frame(object): > zoom_toolbar = ZoomToolbar() > panel.append(zoom_toolbar, expand=False) > zoom_toolbar.show() > + zoom_toolbar.connect('level-clicked', self._level_clicked_cb) > > activities_tray = ActivitiesTray() > panel.append(activities_tray) > @@ -208,7 +184,6 @@ class Frame(object): > def _create_left_panel(self): > panel = ClipboardPanelWindow(self, gtk.POS_LEFT) > > - self._connect_to_panel(panel) > panel.connect('drag-motion', self._drag_motion_cb) > panel.connect('drag-leave', self._drag_leave_cb) > > @@ -216,7 +191,6 @@ class Frame(object): > > def _create_panel(self, orientation): > panel = FrameWindow(orientation) > - self._connect_to_panel(panel) > > return panel > > @@ -230,9 +204,8 @@ class Frame(object): > if not panel.props.visible: > panel.show() > > - def _connect_to_panel(self, panel): > - panel.connect('enter-notify-event', self._enter_notify_cb) > - panel.connect('leave-notify-event', self._leave_notify_cb) > + def _level_clicked_cb(self, zoom_toolbar): > + self.hide() > > def _update_position(self): > screen_h = gtk.gdk.screen_height() > diff --git a/src/jarabe/frame/zoomtoolbar.py > b/src/jarabe/frame/zoomtoolbar.py > index c28fe1c..b71f4f3 100644 > --- a/src/jarabe/frame/zoomtoolbar.py > +++ b/src/jarabe/frame/zoomtoolbar.py > @@ -20,6 +20,7 @@ import logging > > import glib > import gtk > +import gobject > > from sugar.graphics import style > from sugar.graphics.palette import Palette > @@ -30,6 +31,10 @@ from jarabe.model import shell > > > class ZoomToolbar(gtk.Toolbar): > + __gsignals__ = { > + 'level-clicked': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, > + ([])) > + } > def __init__(self): > gtk.Toolbar.__init__(self) > > @@ -76,6 +81,7 @@ class ZoomToolbar(gtk.Toolbar): > return > > shell.get_model().set_zoom_level(level) > + self.emit('level-clicked') > > def __zoom_level_changed_cb(self, **kwargs): > self._set_zoom_level(kwargs['new_level']) > diff --git a/src/jarabe/view/tabbinghandler.py > b/src/jarabe/view/tabbinghandler.py > index 0889792..0a298cd 100644 > --- a/src/jarabe/view/tabbinghandler.py > +++ b/src/jarabe/view/tabbinghandler.py > @@ -58,7 +58,7 @@ class TabbingHandler(object): > > self._tabbing = False > else: > - self._frame.show(self._frame.MODE_NON_INTERACTIVE) > + self._frame.show() > > def __timeout_cb(self, event_time): > self._activate_current(event_time) > -- > 1.7.11.4 > > _______________________________________________ > Sugar-devel mailing list > Sugar-devel@lists.sugarlabs.org > http://lists.sugarlabs.org/listinfo/sugar-devel -- .. manuq .. _______________________________________________ Sugar-devel mailing list Sugar-devel@lists.sugarlabs.org http://lists.sugarlabs.org/listinfo/sugar-devel