Ticket #4403: swipe.patch

File swipe.patch, 3.3 KB (added by manuq, 11 years ago)

Patch.

  • src/jarabe/model/shell.py

    diff --git a/src/jarabe/model/shell.py b/src/jarabe/model/shell.py
    index 437ff90..b0ef267 100644
    a b class ShellModel(GObject.GObject): 
    351351    ZOOM_HOME = 2
    352352    ZOOM_ACTIVITY = 3
    353353
     354    _ZOOM_LEVELS = [ZOOM_MESH, ZOOM_GROUP, ZOOM_HOME, ZOOM_ACTIVITY]
     355
    354356    def __init__(self):
    355357        GObject.GObject.__init__(self)
    356358
    class ShellModel(GObject.GObject): 
    430432
    431433    zoom_level = property(_get_zoom_level)
    432434
     435    def _get_zoom_level_by_index(self, idx):
     436        # Use the modulo operator to iterate the list as a circular
     437        # list.
     438        return self._ZOOM_LEVELS[(idx) % len(self._ZOOM_LEVELS)]
     439
     440    def set_previous_zoom_level(self):
     441        new_level = self._get_zoom_level_by_index(self.zoom_level - 1)
     442        self.set_zoom_level(new_level)
     443
     444    def set_next_zoom_level(self):
     445        new_level = self._get_zoom_level_by_index(self.zoom_level + 1)
     446        self.set_zoom_level(new_level)
     447
    433448    def _get_activities_with_window(self):
    434449        ret = []
    435450        for i in self._activities:
  • src/jarabe/view/gesturehandler.py

    diff --git a/src/jarabe/view/gesturehandler.py b/src/jarabe/view/gesturehandler.py
    index 47b9f8f..a2ca9bd 100644
    a b  
    1414# along with this program; if not, write to the Free Software
    1515# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
    1616
     17import logging
     18
    1719from gi.repository import Gdk
    1820
    1921from gi.repository import SugarExt
    from gi.repository import SugarGestures 
    2123
    2224from sugar3.graphics import style
    2325
     26from jarabe.model import shell
     27
    2428_instance = None
    2529
    2630
     31
     32
    2733class GestureHandler(object):
    2834    '''Handling gestures to show/hide the frame
    2935
    class GestureHandler(object): 
    3642
    3743    def __init__(self, frame):
    3844        self._frame = frame
     45        self._shell_model = shell.get_model()
    3946
    4047        self._gesture_grabber = SugarExt.GestureGrabber()
    4148        self._controller = []
    class GestureHandler(object): 
    5259        for controller in self._controller:
    5360            self._gesture_grabber.remove(controller)
    5461
    55         self._track_gesture_for_area(SugarGestures.SwipeDirectionFlags.DOWN,
     62        self._track_gesture_for_area(SugarGestures.SwipeDirectionFlags.DOWN |
     63                                     SugarGestures.SwipeDirectionFlags.LEFT |
     64                                     SugarGestures.SwipeDirectionFlags.RIGHT,
    5665                                     0, 0, Gdk.Screen.width(),
    5766                                     style.GRID_CELL_SIZE)
    5867
    class GestureHandler(object): 
    6877        self._controller.append(swipe)
    6978
    7079    def __swipe_ended_cb(self, controller, event_direction):
    71         if self._frame.is_visible():
    72             self._frame.hide()
    73         else:
    74             self._frame.show()
     80        if event_direction == SugarGestures.SwipeDirection.DOWN:
     81            if self._frame.is_visible():
     82                self._frame.hide()
     83            else:
     84                self._frame.show()
     85
     86        elif event_direction == SugarGestures.SwipeDirection.LEFT:
     87            self._shell_model.set_previous_zoom_level()
     88
     89        elif event_direction == SugarGestures.SwipeDirection.RIGHT:
     90            self._shell_model.set_next_zoom_level()
     91
    7592
    7693
    7794def setup(frame):