diff --git a/doc/classes/GraphEdit.xml b/doc/classes/GraphEdit.xml index bd0ea02eeb00..86879ab77185 100644 --- a/doc/classes/GraphEdit.xml +++ b/doc/classes/GraphEdit.xml @@ -501,9 +501,6 @@ Color the connection line is interpolated to based on the activity value of a connection (see [method set_connection_activity]). - - Color which is blended with the connection line when the mouse is hovering over it. - Color of the rim around each connection line used for making intersecting lines more distinguishable. @@ -522,6 +519,9 @@ The outline color of the selection rectangle. + + Widen the line of the connection when the mouse is hovering over it by a percentage factor. A value of [code]0[/code] disables the highlight. A value of [code]100[/code] doubles the line width. + The horizontal range within which a port can be grabbed (inner side). diff --git a/editor/themes/editor_theme_manager.cpp b/editor/themes/editor_theme_manager.cpp index f4e4f85b5e4a..f1e296e06c2c 100644 --- a/editor/themes/editor_theme_manager.cpp +++ b/editor/themes/editor_theme_manager.cpp @@ -1556,7 +1556,7 @@ void EditorThemeManager::_populate_standard_styles(const Ref &p_the p_theme->set_color("selection_stroke", "GraphEdit", p_theme->get_color(SNAME("box_selection_stroke_color"), EditorStringName(Editor))); p_theme->set_color("activity", "GraphEdit", p_config.dark_theme ? Color(1, 1, 1) : Color(0, 0, 0)); - p_theme->set_color("connection_hover_tint_color", "GraphEdit", p_config.dark_theme ? Color(0, 0, 0, 0.3) : Color(1, 1, 1, 0.3)); + p_theme->set_constant("connection_hover_thickness", "GraphEdit", 80); p_theme->set_color("connection_valid_target_tint_color", "GraphEdit", p_config.dark_theme ? Color(1, 1, 1, 0.4) : Color(0, 0, 0, 0.4)); p_theme->set_color("connection_rim_color", "GraphEdit", p_config.tree_panel_style->get_bg_color()); diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp index bcf0f5bdc89f..a624ca66d932 100644 --- a/scene/gui/graph_edit.cpp +++ b/scene/gui/graph_edit.cpp @@ -1436,15 +1436,14 @@ void GraphEdit::_update_connections() { to_color = to_color.lerp(theme_cache.activity_color, c->activity); } - if (c == hovered_connection) { - from_color = from_color.blend(theme_cache.connection_hover_tint_color); - to_color = to_color.blend(theme_cache.connection_hover_tint_color); - } - // Update Line2D node. Ref line_gradient = memnew(Gradient); float line_width = _get_shader_line_width(); + if (c == hovered_connection) { + line_width *= 1.0f + ((float)theme_cache.connection_hover_thickness / 100.0f); + } + c->_cache.line->set_width(line_width); line_gradient->set_color(0, from_color); line_gradient->set_color(1, to_color); @@ -2816,7 +2815,7 @@ void GraphEdit::_bind_methods() { BIND_THEME_ITEM(Theme::DATA_TYPE_COLOR, GraphEdit, grid_minor); BIND_THEME_ITEM_CUSTOM(Theme::DATA_TYPE_COLOR, GraphEdit, activity_color, "activity"); - BIND_THEME_ITEM(Theme::DATA_TYPE_COLOR, GraphEdit, connection_hover_tint_color); + BIND_THEME_ITEM(Theme::DATA_TYPE_CONSTANT, GraphEdit, connection_hover_thickness); BIND_THEME_ITEM(Theme::DATA_TYPE_COLOR, GraphEdit, connection_valid_target_tint_color); BIND_THEME_ITEM(Theme::DATA_TYPE_COLOR, GraphEdit, connection_rim_color); BIND_THEME_ITEM(Theme::DATA_TYPE_COLOR, GraphEdit, selection_fill); diff --git a/scene/gui/graph_edit.h b/scene/gui/graph_edit.h index e39bbac13a10..34293212f052 100644 --- a/scene/gui/graph_edit.h +++ b/scene/gui/graph_edit.h @@ -273,7 +273,7 @@ class GraphEdit : public Control { Color grid_minor; Color activity_color; - Color connection_hover_tint_color; + int connection_hover_thickness; Color connection_valid_target_tint_color; Color connection_rim_color; diff --git a/scene/theme/default_theme.cpp b/scene/theme/default_theme.cpp index f7ba440faf71..b532757797f7 100644 --- a/scene/theme/default_theme.cpp +++ b/scene/theme/default_theme.cpp @@ -1252,7 +1252,7 @@ void fill_default_theme(Ref &theme, const Ref &default_font, const theme->set_color("selection_fill", "GraphEdit", Color(1, 1, 1, 0.3)); theme->set_color("selection_stroke", "GraphEdit", Color(1, 1, 1, 0.8)); theme->set_color("activity", "GraphEdit", Color(1, 1, 1)); - theme->set_color("connection_hover_tint_color", "GraphEdit", Color(0, 0, 0, 0.3)); + theme->set_constant("connection_hover_thickness", "GraphEdit", 80); theme->set_color("connection_valid_target_tint_color", "GraphEdit", Color(1, 1, 1, 0.4)); theme->set_color("connection_rim_color", "GraphEdit", style_normal_color);