parent
084ce221d7
commit
517518ae9a
|
@ -2021,7 +2021,17 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
|
||||||
scancode_handled=false;
|
scancode_handled=false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifdef APPLE_STYLE_KEYS
|
#ifndef APPLE_STYLE_KEYS
|
||||||
|
if (k.mod.command) {
|
||||||
|
_scroll_lines_up();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (k.mod.command && k.mod.alt) {
|
||||||
|
_scroll_lines_up();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (k.mod.command)
|
if (k.mod.command)
|
||||||
cursor_set_line(0);
|
cursor_set_line(0);
|
||||||
else
|
else
|
||||||
|
@ -2048,7 +2058,17 @@ void TextEdit::_input_event(const InputEvent& p_input_event) {
|
||||||
scancode_handled=false;
|
scancode_handled=false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifdef APPLE_STYLE_KEYS
|
#ifndef APPLE_STYLE_KEYS
|
||||||
|
if (k.mod.command) {
|
||||||
|
_scroll_lines_down();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
if (k.mod.command && k.mod.alt) {
|
||||||
|
_scroll_lines_down();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (k.mod.command)
|
if (k.mod.command)
|
||||||
cursor_set_line(text.size()-1);
|
cursor_set_line(text.size()-1);
|
||||||
else
|
else
|
||||||
|
@ -2462,6 +2482,36 @@ void TextEdit::_post_shift_selection() {
|
||||||
selection.selecting_text=true;
|
selection.selecting_text=true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TextEdit::_scroll_lines_up() {
|
||||||
|
// adjust the vertical scroll
|
||||||
|
if (get_v_scroll() > 0) {
|
||||||
|
set_v_scroll(get_v_scroll() - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// adjust the cursor
|
||||||
|
if (cursor_get_line() >= (get_visible_rows() + get_v_scroll()) && !selection.active) {
|
||||||
|
cursor_set_line((get_visible_rows() + get_v_scroll()) - 1, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TextEdit::_scroll_lines_down() {
|
||||||
|
// calculate the maximum vertical scroll position
|
||||||
|
int max_v_scroll = get_line_count() - 1;
|
||||||
|
if (!scroll_past_end_of_file_enabled) {
|
||||||
|
max_v_scroll -= get_visible_rows() - 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// adjust the vertical scroll
|
||||||
|
if (get_v_scroll() < max_v_scroll) {
|
||||||
|
set_v_scroll(get_v_scroll() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// adjust the cursor
|
||||||
|
if ((cursor_get_line()) <= get_v_scroll() - 1 && !selection.active) {
|
||||||
|
cursor_set_line(get_v_scroll(), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**** TEXT EDIT CORE API ****/
|
/**** TEXT EDIT CORE API ****/
|
||||||
|
|
||||||
void TextEdit::_base_insert_text(int p_line, int p_char,const String& p_text,int &r_end_line,int &r_end_column) {
|
void TextEdit::_base_insert_text(int p_line, int p_char,const String& p_text,int &r_end_line,int &r_end_column) {
|
||||||
|
|
|
@ -258,6 +258,9 @@ class TextEdit : public Control {
|
||||||
void _pre_shift_selection();
|
void _pre_shift_selection();
|
||||||
void _post_shift_selection();
|
void _post_shift_selection();
|
||||||
|
|
||||||
|
void _scroll_lines_up();
|
||||||
|
void _scroll_lines_down();
|
||||||
|
|
||||||
// void mouse_motion(const Point& p_pos, const Point& p_rel, int p_button_mask);
|
// void mouse_motion(const Point& p_pos, const Point& p_rel, int p_button_mask);
|
||||||
Size2 get_minimum_size();
|
Size2 get_minimum_size();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue