diff --git a/editor/icons/MouseButtonLeft.svg b/editor/icons/MouseButtonLeft.svg
new file mode 100644
index 0000000000..ba64e1dde6
--- /dev/null
+++ b/editor/icons/MouseButtonLeft.svg
@@ -0,0 +1 @@
+
diff --git a/editor/icons/MouseButtonMiddle.svg b/editor/icons/MouseButtonMiddle.svg
new file mode 100644
index 0000000000..17779f85d7
--- /dev/null
+++ b/editor/icons/MouseButtonMiddle.svg
@@ -0,0 +1 @@
+
diff --git a/editor/icons/MouseButtonRight.svg b/editor/icons/MouseButtonRight.svg
new file mode 100644
index 0000000000..b3b900699a
--- /dev/null
+++ b/editor/icons/MouseButtonRight.svg
@@ -0,0 +1 @@
+
diff --git a/editor/icons/MouseButtonWheelDown.svg b/editor/icons/MouseButtonWheelDown.svg
new file mode 100644
index 0000000000..63cefff12d
--- /dev/null
+++ b/editor/icons/MouseButtonWheelDown.svg
@@ -0,0 +1 @@
+
diff --git a/editor/icons/MouseButtonWheelLeft.svg b/editor/icons/MouseButtonWheelLeft.svg
new file mode 100644
index 0000000000..7b96ccff35
--- /dev/null
+++ b/editor/icons/MouseButtonWheelLeft.svg
@@ -0,0 +1 @@
+
diff --git a/editor/icons/MouseButtonWheelRight.svg b/editor/icons/MouseButtonWheelRight.svg
new file mode 100644
index 0000000000..03d04a131e
--- /dev/null
+++ b/editor/icons/MouseButtonWheelRight.svg
@@ -0,0 +1 @@
+
diff --git a/editor/icons/MouseButtonWheelUp.svg b/editor/icons/MouseButtonWheelUp.svg
new file mode 100644
index 0000000000..31626ec57f
--- /dev/null
+++ b/editor/icons/MouseButtonWheelUp.svg
@@ -0,0 +1 @@
+
diff --git a/editor/icons/MouseButtonXButton1.svg b/editor/icons/MouseButtonXButton1.svg
new file mode 100644
index 0000000000..5972738427
--- /dev/null
+++ b/editor/icons/MouseButtonXButton1.svg
@@ -0,0 +1 @@
+
diff --git a/editor/icons/MouseButtonXButton2.svg b/editor/icons/MouseButtonXButton2.svg
new file mode 100644
index 0000000000..3e7ecb468c
--- /dev/null
+++ b/editor/icons/MouseButtonXButton2.svg
@@ -0,0 +1 @@
+
diff --git a/editor/settings/action_map_editor.cpp b/editor/settings/action_map_editor.cpp
index c720acbd7a..02ed1bdd80 100644
--- a/editor/settings/action_map_editor.cpp
+++ b/editor/settings/action_map_editor.cpp
@@ -529,7 +529,27 @@ void ActionMapEditor::update_action_list(const Vector &p_action_info
Ref mb = event;
if (mb.is_valid()) {
- event_item->set_icon(0, get_editor_theme_icon(SNAME("Mouse")));
+ if (mb->get_button_index() == MouseButton::LEFT) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonLeft")));
+ } else if (mb->get_button_index() == MouseButton::RIGHT) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonRight")));
+ } else if (mb->get_button_index() == MouseButton::MIDDLE) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonMiddle")));
+ } else if (mb->get_button_index() == MouseButton::WHEEL_UP) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonWheelUp")));
+ } else if (mb->get_button_index() == MouseButton::WHEEL_DOWN) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonWheelDown")));
+ } else if (mb->get_button_index() == MouseButton::WHEEL_LEFT) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonWheelLeft")));
+ } else if (mb->get_button_index() == MouseButton::WHEEL_RIGHT) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonWheelRight")));
+ } else if (mb->get_button_index() == MouseButton::MB_XBUTTON1) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonXButton1")));
+ } else if (mb->get_button_index() == MouseButton::MB_XBUTTON2) {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("MouseButtonXButton2")));
+ } else {
+ event_item->set_icon(0, get_editor_theme_icon(SNAME("Mouse")));
+ }
}
Ref jb = event;
diff --git a/editor/settings/input_event_configuration_dialog.cpp b/editor/settings/input_event_configuration_dialog.cpp
index 15dcbd5e68..b00dd173b2 100644
--- a/editor/settings/input_event_configuration_dialog.cpp
+++ b/editor/settings/input_event_configuration_dialog.cpp
@@ -336,6 +336,7 @@ void InputEventConfigurationDialog::_update_input_list() {
mouse_root->set_meta("__type", INPUT_MOUSE_BUTTON);
MouseButton mouse_buttons[9] = { MouseButton::LEFT, MouseButton::RIGHT, MouseButton::MIDDLE, MouseButton::WHEEL_UP, MouseButton::WHEEL_DOWN, MouseButton::WHEEL_LEFT, MouseButton::WHEEL_RIGHT, MouseButton::MB_XBUTTON1, MouseButton::MB_XBUTTON2 };
+ Ref mouse_icons[9] = { icon_cache.mouse_left_button, icon_cache.mouse_right_button, icon_cache.mouse_middle_button, icon_cache.mouse_wheel_up, icon_cache.mouse_wheel_down, icon_cache.mouse_wheel_left, icon_cache.mouse_wheel_right, icon_cache.mouse_xbutton1, icon_cache.mouse_xbutton2 };
for (int i = 0; i < 9; i++) {
Ref mb;
mb.instantiate();
@@ -348,6 +349,7 @@ void InputEventConfigurationDialog::_update_input_list() {
TreeItem *item = input_list_tree->create_item(mouse_root);
item->set_text(0, desc);
+ item->set_icon(0, mouse_icons[i]);
item->set_meta("__index", mouse_buttons[i]);
}
}
@@ -611,6 +613,15 @@ void InputEventConfigurationDialog::_notification(int p_what) {
icon_cache.keyboard = get_editor_theme_icon(SNAME("Keyboard"));
icon_cache.mouse = get_editor_theme_icon(SNAME("Mouse"));
+ icon_cache.mouse_left_button = get_editor_theme_icon(SNAME("MouseButtonLeft"));
+ icon_cache.mouse_right_button = get_editor_theme_icon(SNAME("MouseButtonRight"));
+ icon_cache.mouse_middle_button = get_editor_theme_icon(SNAME("MouseButtonMiddle"));
+ icon_cache.mouse_wheel_up = get_editor_theme_icon(SNAME("MouseButtonWheelUp"));
+ icon_cache.mouse_wheel_down = get_editor_theme_icon(SNAME("MouseButtonWheelDown"));
+ icon_cache.mouse_wheel_left = get_editor_theme_icon(SNAME("MouseButtonWheelLeft"));
+ icon_cache.mouse_wheel_right = get_editor_theme_icon(SNAME("MouseButtonWheelRight"));
+ icon_cache.mouse_xbutton1 = get_editor_theme_icon(SNAME("MouseButtonXButton1"));
+ icon_cache.mouse_xbutton2 = get_editor_theme_icon(SNAME("MouseButtonXButton2"));
icon_cache.joypad_button = get_editor_theme_icon(SNAME("JoyButton"));
icon_cache.joypad_axis = get_editor_theme_icon(SNAME("JoyAxis"));
diff --git a/editor/settings/input_event_configuration_dialog.h b/editor/settings/input_event_configuration_dialog.h
index bc4109cc0b..dd0aa9b264 100644
--- a/editor/settings/input_event_configuration_dialog.h
+++ b/editor/settings/input_event_configuration_dialog.h
@@ -45,8 +45,17 @@ private:
struct IconCache {
Ref keyboard;
Ref mouse;
+ Ref mouse_left_button;
+ Ref mouse_right_button;
+ Ref mouse_middle_button;
+ Ref mouse_wheel_up;
+ Ref mouse_wheel_down;
+ Ref mouse_wheel_left;
+ Ref mouse_wheel_right;
Ref joypad_button;
Ref joypad_axis;
+ Ref mouse_xbutton1;
+ Ref mouse_xbutton2;
} icon_cache;
Ref event;