Author: noelgrandin
Date: Wed May  5 11:25:50 2010
New Revision: 941254

URL: http://svn.apache.org/viewvc?rev=941254&view=rev
Log:
PIVOT-381 Handle Home and End keys in TextArea, as in TextInput

Modified:
    pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java

Modified: pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java
URL: 
http://svn.apache.org/viewvc/pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java?rev=941254&r1=941253&r2=941254&view=diff
==============================================================================
--- pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java (original)
+++ pivot/trunk/wtk/src/org/apache/pivot/wtk/skin/TextAreaSkin.java Wed May  5 
11:25:50 2010
@@ -2227,6 +2227,28 @@ public class TextAreaSkin extends Compon
 
                     consumed = true;
                 }
+            } else if (keyCode == Keyboard.KeyCode.HOME) {
+                // Move the caret to the beginning of the text
+                if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)) {
+                    textArea.setSelection(0, textArea.getSelectionStart());
+                } else {
+                    textArea.setSelection(0, 0);
+                }
+                scrollCharacterToVisible(0);
+
+                consumed = true;
+            } else if (keyCode == Keyboard.KeyCode.END) {
+                // Move the caret to the end of the text
+                if (Keyboard.isPressed(Keyboard.Modifier.SHIFT)) {
+                    int selectionStart = textArea.getSelectionStart();
+                    textArea.setSelection(selectionStart, 
textArea.getCharacterCount()
+                        - selectionStart);
+                } else {
+                    textArea.setSelection(textArea.getCharacterCount() - 1, 0);
+                }
+                scrollCharacterToVisible(textArea.getCharacterCount() - 1);
+
+                consumed = true;
             } else {
                 consumed = super.keyPressed(component, keyCode, keyLocation);
             }


Reply via email to