# HG changeset patch # User souliane # Date 1394827213 -3600 # Node ID ec6f7581b453fef63eeb08d8fdc7e7f914d5d0a4 # Parent d7e78cb78dfcfd2092c5a3d543e6d696d7235bd3 browser_side: microblogs edition: + makes a new line, finishes the edition diff -r d7e78cb78dfc -r ec6f7581b453 browser_side/base_panels.py --- a/browser_side/base_panels.py Thu Mar 13 16:05:35 2014 +0100 +++ b/browser_side/base_panels.py Fri Mar 14 21:00:13 2014 +0100 @@ -29,7 +29,7 @@ from pyjamas.ui.StackPanel import StackPanel from pyjamas.ui.TextArea import TextArea from pyjamas.ui.Event import BUTTON_LEFT, BUTTON_MIDDLE, BUTTON_RIGHT -from pyjamas.ui.KeyboardListener import KEY_ENTER, KEY_ESCAPE, KeyboardHandler +from pyjamas.ui.KeyboardListener import KEY_ENTER, KEY_ESCAPE, KEY_SHIFT, KeyboardHandler from pyjamas.ui.FocusListener import FocusHandler from pyjamas.ui.ClickListener import ClickHandler from pyjamas import DOM @@ -456,6 +456,7 @@ self.__enhance_display = enhance_display self.__listen_focus = single_line if listen_focus is None else listen_focus self.__listen_click = listen_click + self.__shift_down = False if self.__listen_focus: FocusHandler.__init__(self) if self.__listen_click: @@ -504,16 +505,20 @@ def onKeyDown(self, sender, keycode, modifiers): for listener in self.edit_listeners: listener(self.textarea, keycode) - - def onKeyPress(self, sender, keycode, modifiers): if not self.__single_line: return - # XXX: it seems that pyjamas never catches the escape key + if keycode == KEY_SHIFT or self.__shift_down: # allow input a new line with + + self.__shift_down = True + return if keycode in (KEY_ENTER, KEY_ESCAPE): # finish the edition self.textarea.setFocus(False) if not self.__listen_focus: self.edit(False) + def onKeyUp(self, sender, keycode, modifiers): + if keycode == KEY_SHIFT: + self.__shift_down = False + def onLostFocus(self, sender): """Finish the edition when focus is lost""" if self.__listen_focus: @@ -577,4 +582,6 @@ SimpleTextEditor.edit(self, edit, abort, sync) def setFocus(self, focus): + if focus: + self.textarea.setCursorPos(len(self.textarea.getText())) self.textarea.setFocus(focus)