diff options
author | Simon Schampijer <simon@laptop.org> | 2012-10-15 10:40:46 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@laptop.org> | 2012-10-15 18:52:09 (GMT) |
commit | 9692027facae07a93dd529eb9c1f9b16a5a90b46 (patch) | |
tree | df9d26ef3c719450574f0d9adb1bcd3ab8281403 /src/jarabe/view/cursortracker.py | |
parent | 44135190c7ece15f1198142df7f4549cde7b3b44 (diff) |
Cursor tracker: only display the cursor in mouse/trackpad mode, SL #4021
We only display the cursor in mouse/trackpad mode, hence when
a mouse motion is detected or a button press event. When a
touch begin event is received the cursor will be hidden.
We only track the incoming events when a touchscreen device
is available.
Signed-off-by: Simon Schampijer <simon@laptop.org>
Acked-by: Manuel QuiƱones <manuq@laptop.org>
Diffstat (limited to 'src/jarabe/view/cursortracker.py')
-rw-r--r-- | src/jarabe/view/cursortracker.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/jarabe/view/cursortracker.py b/src/jarabe/view/cursortracker.py new file mode 100644 index 0000000..e14ca48 --- /dev/null +++ b/src/jarabe/view/cursortracker.py @@ -0,0 +1,54 @@ +# Copyright (C) 2012 One Laptop Per Child +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +import logging + +from gi.repository import Gdk + +from gi.repository import SugarExt + +_instance = None + + +def setup(): + '''Cursor tracker: only display the cursor in mouse/trackpad mode + + We only display the cursor in mouse/trackpad mode, hence when + a mouse motion is detected or a button press event. When a + touch begin event is received the cursor will be hidden. + + We only track the incoming events when a touchscreen device + is available. + + ''' + global _instance + + if _instance: + del _instance + + display = Gdk.Display.get_default() + device_manager = display.get_device_manager() + devices = device_manager.list_devices(Gdk.DeviceType.SLAVE) + for device in devices: + if device.get_source() == Gdk.InputSource.TOUCHSCREEN: + logging.debug('Cursor Tracker: found touchscreen, ' \ + 'will track input.') + _instance = SugarExt.CursorTracker() + break + + if not _instance: + logging.debug('Cursor Tracker: no touchscreen available, ' \ + 'will not track input.') |