summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/check_button.cpp13
-rw-r--r--scene/gui/popup_menu.cpp2
-rw-r--r--scene/gui/text_edit.cpp60
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()) {