diff options
Diffstat (limited to 'scene/gui')
| -rw-r--r-- | scene/gui/check_button.cpp | 13 | ||||
| -rw-r--r-- | scene/gui/popup_menu.cpp | 2 | ||||
| -rw-r--r-- | scene/gui/text_edit.cpp | 60 |
3 files changed, 32 insertions, 43 deletions
diff --git a/scene/gui/check_button.cpp b/scene/gui/check_button.cpp index 35e3119473..a2d0f388c4 100644 --- a/scene/gui/check_button.cpp +++ b/scene/gui/check_button.cpp @@ -34,13 +34,15 @@ #include "servers/visual_server.h" Size2 CheckButton::get_icon_size() const { - Ref<Texture> on = Control::get_icon("on"); - Ref<Texture> off = Control::get_icon("off"); + + Ref<Texture> on = Control::get_icon(is_disabled() ? "on_disabled" : "on"); + Ref<Texture> off = Control::get_icon(is_disabled() ? "off_disabled" : "off"); Size2 tex_size = Size2(0, 0); if (!on.is_null()) tex_size = Size2(on->get_width(), on->get_height()); if (!off.is_null()) tex_size = Size2(MAX(tex_size.width, off->get_width()), MAX(tex_size.height, off->get_height())); + return tex_size; } @@ -49,9 +51,8 @@ Size2 CheckButton::get_minimum_size() const { Size2 minsize = Button::get_minimum_size(); Size2 tex_size = get_icon_size(); minsize.width += tex_size.width; - if (get_text().length() > 0) { + if (get_text().length() > 0) minsize.width += get_constant("hseparation"); - } Ref<StyleBox> sb = get_stylebox("normal"); minsize.height = MAX(minsize.height, tex_size.height + sb->get_margin(MARGIN_TOP) + sb->get_margin(MARGIN_BOTTOM)); @@ -67,8 +68,8 @@ void CheckButton::_notification(int p_what) { RID ci = get_canvas_item(); - Ref<Texture> on = Control::get_icon("on"); - Ref<Texture> off = Control::get_icon("off"); + Ref<Texture> on = Control::get_icon(is_disabled() ? "on_disabled" : "on"); + Ref<Texture> off = Control::get_icon(is_disabled() ? "off_disabled" : "off"); Ref<StyleBox> sb = get_stylebox("normal"); Vector2 ofs; diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index e77ee8c744..5df18cece6 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -449,7 +449,7 @@ void PopupMenu::_notification(int p_what) { for (int i = 0; i < items.size(); i++) { if (!items[i].icon.is_null()) - icon_ofs = MAX(items[i].icon->get_size().height, icon_ofs); + icon_ofs = MAX(items[i].icon->get_size().width, icon_ofs); if (items[i].checkable_type) has_check = true; diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 9ab30b1976..ec714dc8a3 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -2275,6 +2275,30 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { k->set_command(true); k->set_shift(false); } +#ifdef APPLE_STYLE_KEYS + if (k->get_control() && !k->get_shift() && !k->get_alt() && !k->get_command()) { + uint32_t move_cursor_key = KEY_UNKNOWN; + switch (k->get_scancode()) { + case KEY_F: { + move_cursor_key = KEY_RIGHT; + } break; + case KEY_B: { + move_cursor_key = KEY_LEFT; + } break; + case KEY_P: { + move_cursor_key = KEY_UP; + } break; + case KEY_N: { + move_cursor_key = KEY_DOWN; + } break; + } + + if (move_cursor_key != KEY_UNKNOWN) { + k->set_scancode(move_cursor_key); + k->set_control(false); + } + } +#endif _reset_caret_blink_timer(); @@ -2596,15 +2620,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } FALLTHROUGH; } -#ifdef APPLE_STYLE_KEYS - case KEY_B: { - if (!k->get_control()) { - scancode_handled = false; - break; - } - FALLTHROUGH; - } -#endif case KEY_LEFT: { if (k->get_shift()) @@ -2681,15 +2696,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } FALLTHROUGH; } -#ifdef APPLE_STYLE_KEYS - case KEY_F: { - if (!k->get_control()) { - scancode_handled = false; - break; - } - FALLTHROUGH; - } -#endif case KEY_RIGHT: { if (k->get_shift()) @@ -2751,15 +2757,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } FALLTHROUGH; } -#ifdef APPLE_STYLE_KEYS - case KEY_P: { - if (!k->get_control()) { - scancode_handled = false; - break; - } - FALLTHROUGH; - } -#endif case KEY_UP: { if (k->get_alt()) { @@ -2813,15 +2810,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } FALLTHROUGH; } -#ifdef APPLE_STYLE_KEYS - case KEY_N: { - if (!k->get_control()) { - scancode_handled = false; - break; - } - FALLTHROUGH; - } -#endif case KEY_DOWN: { if (k->get_alt()) { |