Ticket #737: 0001-Remove-key-handlers-for-rotation-and-brightness-chan.patch
File 0001-Remove-key-handlers-for-rotation-and-brightness-chan.patch, 6.8 KB (added by tomeu, 14 years ago) |
---|
-
src/jarabe/model/screen.py
From d1944e61be72d2231a4518a88ed2020be4a35a89 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso <tomeu@sugarlabs.org> Date: Tue, 18 Aug 2009 11:05:31 +0200 Subject: [PATCH] Remove key handlers for rotation and brightness change for the XO. #737 olpc-kbdshim handles them directly. --- src/jarabe/model/screen.py | 21 ----------- src/jarabe/view/keyhandler.py | 76 ----------------------------------------- 2 files changed, 0 insertions(+), 97 deletions(-) diff --git a/src/jarabe/model/screen.py b/src/jarabe/model/screen.py index 87dc370..4403c1c 100644
a b _HARDWARE_MANAGER_INTERFACE = 'org.freedesktop.ohm.Keystore' 22 22 _HARDWARE_MANAGER_SERVICE = 'org.freedesktop.ohm' 23 23 _HARDWARE_MANAGER_OBJECT_PATH = '/org/freedesktop/ohm/Keystore' 24 24 25 COLOR_MODE = 026 B_AND_W_MODE = 127 28 25 _ohm_service = None 29 26 30 27 def _get_ohm(): … … def set_dcon_freeze(frozen): 44 41 except dbus.DBusException: 45 42 logging.error('Cannot unfreeze the DCON') 46 43 47 def set_display_mode(mode):48 try:49 _get_ohm().SetKey("display.dcon_mode", mode)50 except dbus.DBusException:51 logging.error('Cannot change DCON mode')52 53 def set_display_brightness(level):54 try:55 _get_ohm().SetKey("backlight.hardware_brightness", level)56 except dbus.DBusException:57 logging.error('Cannot set display brightness')58 59 def get_display_brightness():60 try:61 return _get_ohm().GetKey("backlight.hardware_brightness")62 except dbus.DBusException:63 logging.error('Cannot get display brightness')64 return 0 -
src/jarabe/view/keyhandler.py
diff --git a/src/jarabe/view/keyhandler.py b/src/jarabe/view/keyhandler.py index 5634ef4..0505c52 100644
a b import gtk 28 28 29 29 from sugar._sugarext import KeyGrabber 30 30 31 from jarabe.model import screen32 31 from jarabe.model import sound 33 32 from jarabe.model import shell 34 33 from jarabe.model import session … … from jarabe.model.shell import ShellModel 37 36 from jarabe import config 38 37 from jarabe.journal import journalactivity 39 38 40 _BRIGHTNESS_STEP = 241 39 _VOLUME_STEP = sound.VOLUME_STEP 42 _BRIGHTNESS_MAX = 1543 40 _VOLUME_MAX = 100 44 41 _TABBING_MODIFIER = gtk.gdk.MOD1_MASK 45 42 … … _actions_table = { 48 45 'F2' : 'zoom_group', 49 46 'F3' : 'zoom_home', 50 47 'F4' : 'zoom_activity', 51 'F9' : 'brightness_down',52 'F10' : 'brightness_up',53 '<alt>F9' : 'brightness_min',54 '<alt>F10' : 'brightness_max',55 48 'XF86AudioMute' : 'volume_mute', 56 49 'F11' : 'volume_down', 57 50 'XF86AudioLowerVolume' : 'volume_down', … … _actions_table = { 60 53 '<alt>F11' : 'volume_min', 61 54 '<alt>F12' : 'volume_max', 62 55 '0x93' : 'frame', 63 '0xEB' : 'rotate',64 56 '<alt>Tab' : 'next_window', 65 57 '<alt><shift>Tab' : 'previous_window', 66 58 '<alt>Escape' : 'close_window', … … _actions_table = { 70 62 '<alt><shift>q' : 'quit_emulator', 71 63 'XF86Search' : 'open_search', 72 64 '<alt><shift>o' : 'open_search', 73 '<alt><shift>r' : 'rotate',74 65 '<alt><shift>s' : 'say_text', 75 66 } 76 67 … … SPEECH_DBUS_INTERFACE = 'org.laptop.Speech' 81 72 class KeyHandler(object): 82 73 def __init__(self, frame): 83 74 self._frame = frame 84 self._screen_rotation = 085 75 self._key_pressed = None 86 76 self._keycode_pressed = 0 87 77 self._keystate_pressed = 0 … … class KeyHandler(object): 134 124 sound.set_volume(volume) 135 125 sound.set_muted(volume == 0) 136 126 137 def _change_brightness(self, step=None, value=None):138 if step is not None:139 level = screen.get_display_brightness() + step140 elif value is not None:141 level = value142 143 level = min(max(0, level), _BRIGHTNESS_MAX)144 145 screen.set_display_brightness(level)146 if level == 0:147 screen.set_display_mode(screen.B_AND_W_MODE)148 else:149 screen.set_display_mode(screen.COLOR_MODE)150 151 127 def _get_speech_proxy(self): 152 128 if self._speech_proxy is None: 153 129 bus = dbus.SessionBus() … … class KeyHandler(object): 195 171 def handle_zoom_activity(self, event_time): 196 172 shell.get_model().zoom_level = ShellModel.ZOOM_ACTIVITY 197 173 198 def handle_brightness_max(self, event_time):199 self._change_brightness(value=_BRIGHTNESS_MAX)200 201 def handle_brightness_min(self, event_time):202 self._change_brightness(value=0)203 204 174 def handle_volume_max(self, event_time): 205 175 self._change_volume(value=_VOLUME_MAX) 206 176 207 177 def handle_volume_min(self, event_time): 208 178 self._change_volume(value=0) 209 179 210 def handle_brightness_up(self, event_time):211 self._change_brightness(step=_BRIGHTNESS_STEP)212 213 def handle_brightness_down(self, event_time):214 self._change_brightness(step=-_BRIGHTNESS_STEP)215 216 180 def handle_volume_mute(self, event_time): 217 181 if sound.get_muted() is True: 218 182 sound.set_muted(False) … … class KeyHandler(object): 228 192 def handle_frame(self, event_time): 229 193 self._frame.notify_key_press() 230 194 231 def handle_rotate(self, event_time):232 """233 Handles rotation of the display (using xrandr) and of the d-pad.234 235 Notes: default mappings for keypad on MP236 KP_Up 80237 KP_Right 85238 KP_Down 88239 KP_Left 83240 """241 242 states = [ 'normal', 'left', 'inverted', 'right']243 keycodes = (80, 85, 88, 83, 80, 85, 88, 83)244 keysyms = ("KP_Up", "KP_Right", "KP_Down", "KP_Left")245 246 self._screen_rotation -= 1247 self._screen_rotation %= 4248 249 actual_keycodes = keycodes[self._screen_rotation:self._screen_rotation250 + 4]251 # code_pairs now contains a mapping of keycode -> keysym in the current252 # orientation253 code_pairs = zip(actual_keycodes, keysyms)254 255 # Using the mappings in code_pairs, we dynamically build up an xmodmap256 # command to rotate the dpad keys.257 argv = ['xmodmap']258 for arg in [('-e', 'keycode %i = %s' % p) for p in code_pairs]:259 argv.extend(arg)260 261 # If either the xmodmap or xrandr command fails, check_call will fail262 # with CalledProcessError, which we raise.263 try:264 subprocess.check_call(argv)265 subprocess.check_call(['xrandr', '-o',266 states[self._screen_rotation]])267 except OSError, e:268 if e.errno != errno.EINTR:269 raise270 271 195 def handle_quit_emulator(self, event_time): 272 196 session.get_session_manager().shutdown() 273 197