mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00
Minor tweaks/polish to the navigation controls to prevent interference:
- Reduce controls size - Enable opacity on hover to increase visibility
This commit is contained in:
parent
01574a566f
commit
f1e6ecd3b5
2 changed files with 17 additions and 2 deletions
|
@ -82,6 +82,9 @@ void ViewportNavigationControl::_notification(int p_what) {
|
|||
if (!is_connected("mouse_exited", this, "_on_mouse_exited")) {
|
||||
connect("mouse_exited", this, "_on_mouse_exited");
|
||||
}
|
||||
if (!is_connected("mouse_entered", this, "_on_mouse_entered")) {
|
||||
connect("mouse_entered", this, "_on_mouse_entered");
|
||||
}
|
||||
}
|
||||
|
||||
if (p_what == NOTIFICATION_DRAW && viewport != nullptr) {
|
||||
|
@ -99,7 +102,7 @@ void ViewportNavigationControl::_draw() {
|
|||
float radius = get_size().x / 2.0;
|
||||
|
||||
const bool focused = focused_index != -1;
|
||||
draw_circle(center, radius, Color(0.5, 0.5, 0.5, focused ? 0.25 : 0.05));
|
||||
draw_circle(center, radius, Color(0.5, 0.5, 0.5, focused || hovered ? 0.35 : 0.15));
|
||||
|
||||
const Color c = focused ? Color(0.9, 0.9, 0.9, 0.9) : Color(0.5, 0.5, 0.5, 0.25);
|
||||
|
||||
|
@ -110,6 +113,9 @@ void ViewportNavigationControl::_draw() {
|
|||
}
|
||||
|
||||
void ViewportNavigationControl::_process_click(int p_index, Vector2 p_position, bool p_pressed) {
|
||||
hovered = false;
|
||||
update();
|
||||
|
||||
if (focused_index != -1 && focused_index != p_index) {
|
||||
return;
|
||||
}
|
||||
|
@ -220,7 +226,13 @@ void ViewportNavigationControl::_update_navigation() {
|
|||
}
|
||||
}
|
||||
|
||||
void ViewportNavigationControl::_on_mouse_entered() {
|
||||
hovered = true;
|
||||
update();
|
||||
}
|
||||
|
||||
void ViewportNavigationControl::_on_mouse_exited() {
|
||||
hovered = false;
|
||||
update();
|
||||
}
|
||||
|
||||
|
@ -234,6 +246,7 @@ void ViewportNavigationControl::set_viewport(SpatialEditorViewport *p_viewport)
|
|||
|
||||
void ViewportNavigationControl::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("_gui_input"), &ViewportNavigationControl::_gui_input);
|
||||
ClassDB::bind_method(D_METHOD("_on_mouse_entered"), &ViewportNavigationControl::_on_mouse_entered);
|
||||
ClassDB::bind_method(D_METHOD("_on_mouse_exited"), &ViewportNavigationControl::_on_mouse_exited);
|
||||
}
|
||||
|
||||
|
@ -4427,7 +4440,7 @@ SpatialEditorViewport::SpatialEditorViewport(SpatialEditor *p_spatial_editor, Ed
|
|||
top_right_vbox->set_anchors_and_margins_preset(PRESET_TOP_RIGHT, PRESET_MODE_MINSIZE, 2.0 * EDSCALE);
|
||||
top_right_vbox->set_h_grow_direction(GROW_DIRECTION_BEGIN);
|
||||
|
||||
const int navigation_control_size = 200;
|
||||
const int navigation_control_size = 150;
|
||||
|
||||
position_control = memnew(ViewportNavigationControl);
|
||||
position_control->set_navigation_mode(SpatialEditorViewport::NAVIGATION_MOVE);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue