+ DrawGadget(gi, DG_PRESSED, gi->direct_draw);
+ }
+ else if (key == KSYM_Home && cursor_x > 0)
+ {
+ setTextAreaCursorPosition(gi, gi->textarea.cursor_position - cursor_x);
+
+ DrawGadget(gi, DG_PRESSED, gi->direct_draw);
+ }
+ else if (key == KSYM_End && cursor_pos < text_length)
+ {
+ int last_cursor_pos = cursor_pos;
+
+ while (gi->textarea.value[cursor_pos] != '\0' &&
+ gi->textarea.value[cursor_pos] != '\n')
+ cursor_pos++;
+
+ setTextAreaCursorPosition(gi, gi->textarea.cursor_position + cursor_pos -
+ last_cursor_pos);
+