From 196c5c2d5da7c3a9bdea36f4aae2aae5e28f0c05 Mon Sep 17 00:00:00 2001 From: Manolis Papadeas <35376950+OverloadedOrama@users.noreply.github.com> Date: Tue, 15 Feb 2022 01:42:20 +0200 Subject: [PATCH] Make the second canvas a separate panel and have it hidden by default --- assets/layouts/default.tres | 63 +++++++++++++-------- assets/layouts/tallscreen.tres | 28 +++++----- src/Autoload/Global.gd | 4 +- src/UI/Canvas/CameraMovement.gd | 2 +- src/UI/TopMenuContainer.gd | 29 +++++----- src/UI/UI.tscn | 99 ++++++++++++++++++--------------- 6 files changed, 128 insertions(+), 97 deletions(-) diff --git a/assets/layouts/default.tres b/assets/layouts/default.tres index 4edd3a39c..8e523c585 100644 --- a/assets/layouts/default.tres +++ b/assets/layouts/default.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" load_steps=19 format=2] +[gd_resource type="Resource" load_steps=21 format=2] [ext_resource path="res://addons/dockable_container/layout_panel.gd" type="Script" id=1] [ext_resource path="res://addons/dockable_container/layout_split.gd" type="Script" id=2] @@ -16,6 +16,20 @@ script = ExtResource( 1 ) names = PoolStringArray( "Main Canvas" ) current_tab = 0 +[sub_resource type="Resource" id=28] +resource_name = "Tabs" +script = ExtResource( 1 ) +names = PoolStringArray( "Second Canvas" ) +current_tab = 0 + +[sub_resource type="Resource" id=29] +resource_name = "Split" +script = ExtResource( 2 ) +direction = 0 +percent = 0.980952 +first = SubResource( 8 ) +second = SubResource( 28 ) + [sub_resource type="Resource" id=9] resource_name = "Tabs" script = ExtResource( 1 ) @@ -26,8 +40,8 @@ current_tab = 0 resource_name = "Split" script = ExtResource( 2 ) direction = 1 -percent = 0.882812 -first = SubResource( 8 ) +percent = 0.90625 +first = SubResource( 29 ) second = SubResource( 9 ) [sub_resource type="Resource" id=11] @@ -36,47 +50,39 @@ script = ExtResource( 1 ) names = PoolStringArray( "Canvas Preview" ) current_tab = 0 -[sub_resource type="Resource" id=23] +[sub_resource type="Resource" id=20] resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Color Pickers" ) current_tab = 0 -[sub_resource type="Resource" id=24] +[sub_resource type="Resource" id=21] resource_name = "Split" script = ExtResource( 2 ) direction = 1 -percent = 0.0 +percent = 0.911765 first = SubResource( 11 ) -second = SubResource( 23 ) +second = SubResource( 20 ) -[sub_resource type="Resource" id=25] +[sub_resource type="Resource" id=22] resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Left Tool Options" ) current_tab = 0 -[sub_resource type="Resource" id=26] +[sub_resource type="Resource" id=23] resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Right Tool Options" ) current_tab = 0 -[sub_resource type="Resource" id=27] +[sub_resource type="Resource" id=24] resource_name = "Split" script = ExtResource( 2 ) direction = 0 percent = 0.5 -first = SubResource( 25 ) -second = SubResource( 26 ) - -[sub_resource type="Resource" id=21] -resource_name = "Split" -script = ExtResource( 2 ) -direction = 1 -percent = 0.182692 -first = SubResource( 24 ) -second = SubResource( 27 ) +first = SubResource( 22 ) +second = SubResource( 23 ) [sub_resource type="Resource" id=13] resource_name = "Tabs" @@ -84,19 +90,27 @@ script = ExtResource( 1 ) names = PoolStringArray( "Palette Panel" ) current_tab = 0 +[sub_resource type="Resource" id=14] +resource_name = "Split" +script = ExtResource( 2 ) +direction = 1 +percent = 0.754808 +first = SubResource( 24 ) +second = SubResource( 13 ) + [sub_resource type="Resource" id=15] resource_name = "Split" script = ExtResource( 2 ) direction = 1 -percent = 1.0 +percent = 0.332031 first = SubResource( 21 ) -second = SubResource( 13 ) +second = SubResource( 14 ) [sub_resource type="Resource" id=16] resource_name = "Split" script = ExtResource( 2 ) direction = 0 -percent = 0.972488 +percent = 0.962785 first = SubResource( 10 ) second = SubResource( 15 ) @@ -104,7 +118,7 @@ second = SubResource( 15 ) resource_name = "Split" script = ExtResource( 2 ) direction = 0 -percent = 0.00695249 +percent = 0.0134804 first = SubResource( 1 ) second = SubResource( 16 ) @@ -113,4 +127,5 @@ resource_name = "Layout" script = ExtResource( 3 ) root = SubResource( 5 ) hidden_tabs = { +"Second Canvas": true } diff --git a/assets/layouts/tallscreen.tres b/assets/layouts/tallscreen.tres index 36e9f8c9d..818924e21 100644 --- a/assets/layouts/tallscreen.tres +++ b/assets/layouts/tallscreen.tres @@ -1,29 +1,37 @@ -[gd_resource type="Resource" load_steps=19 format=2] +[gd_resource type="Resource" load_steps=21 format=2] [ext_resource path="res://addons/dockable_container/layout_panel.gd" type="Script" id=1] [ext_resource path="res://addons/dockable_container/layout.gd" type="Script" id=2] [ext_resource path="res://addons/dockable_container/layout_split.gd" type="Script" id=3] [sub_resource type="Resource" id=8] -resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Main Canvas" ) current_tab = 0 +[sub_resource type="Resource" id=23] +script = ExtResource( 1 ) +names = PoolStringArray( "Second Canvas" ) +current_tab = 0 + +[sub_resource type="Resource" id=24] +script = ExtResource( 3 ) +direction = 0 +percent = 0.9875 +first = SubResource( 8 ) +second = SubResource( 23 ) + [sub_resource type="Resource" id=9] -resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Tools" ) current_tab = 0 [sub_resource type="Resource" id=10] -resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Left Tool Options" ) current_tab = 0 [sub_resource type="Resource" id=11] -resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Right Tool Options" ) current_tab = 0 @@ -37,19 +45,16 @@ first = SubResource( 10 ) second = SubResource( 11 ) [sub_resource type="Resource" id=13] -resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Color Pickers" ) current_tab = 0 [sub_resource type="Resource" id=14] -resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Canvas Preview" ) current_tab = 0 [sub_resource type="Resource" id=15] -resource_name = "Split" script = ExtResource( 3 ) direction = 1 percent = 0.5 @@ -57,7 +62,6 @@ first = SubResource( 13 ) second = SubResource( 14 ) [sub_resource type="Resource" id=16] -resource_name = "Tabs" script = ExtResource( 1 ) names = PoolStringArray( "Palette Panel" ) current_tab = 0 @@ -85,7 +89,6 @@ names = PoolStringArray( "Animation Timeline" ) current_tab = 0 [sub_resource type="Resource" id=20] -resource_name = "Split" script = ExtResource( 3 ) direction = 1 percent = 0.8125 @@ -93,7 +96,6 @@ first = SubResource( 18 ) second = SubResource( 19 ) [sub_resource type="Resource" id=21] -resource_name = "Split" script = ExtResource( 3 ) direction = 0 percent = 0.0 @@ -101,11 +103,10 @@ first = SubResource( 9 ) second = SubResource( 20 ) [sub_resource type="Resource" id=22] -resource_name = "Split" script = ExtResource( 3 ) direction = 1 percent = 0.5 -first = SubResource( 8 ) +first = SubResource( 24 ) second = SubResource( 21 ) [resource] @@ -113,4 +114,5 @@ resource_name = "Layout" script = ExtResource( 2 ) root = SubResource( 22 ) hidden_tabs = { +"Second Canvas": true } diff --git a/src/Autoload/Global.gd b/src/Autoload/Global.gd index 4950da9ad..d37aee30a 100644 --- a/src/Autoload/Global.gd +++ b/src/Autoload/Global.gd @@ -112,14 +112,14 @@ onready var right_cursor: Sprite = control.find_node("RightCursor") onready var canvas: Canvas = control.find_node("Canvas") onready var tabs: Tabs = control.find_node("Tabs") onready var main_viewport: ViewportContainer = control.find_node("ViewportContainer") -onready var second_viewport: ViewportContainer = control.find_node("ViewportContainer2") +onready var second_viewport: ViewportContainer = control.find_node("Second Canvas") onready var main_canvas_container: Container = control.find_node("Main Canvas") onready var canvas_preview_container: Container = control.find_node("Canvas Preview") onready var small_preview_viewport: ViewportContainer = canvas_preview_container.find_node( "PreviewViewportContainer" ) onready var camera: Camera2D = main_viewport.find_node("Camera2D") -onready var camera2: Camera2D = control.find_node("Camera2D2") +onready var camera2: Camera2D = second_viewport.find_node("Camera2D2") onready var camera_preview: Camera2D = control.find_node("CameraPreview") onready var cameras := [camera, camera2, camera_preview] onready var horizontal_ruler: BaseButton = control.find_node("HorizontalRuler") diff --git a/src/UI/Canvas/CameraMovement.gd b/src/UI/Canvas/CameraMovement.gd index 29116d470..70f31bfb1 100644 --- a/src/UI/Canvas/CameraMovement.gd +++ b/src/UI/Canvas/CameraMovement.gd @@ -345,7 +345,7 @@ func fit_to_frame(size: Vector2) -> void: var h_ratio := viewport_container.rect_size.x / size.x var v_ratio := viewport_container.rect_size.y / size.y var ratio := min(h_ratio, v_ratio) - if ratio == 0: + if ratio == 0 or !viewport_container.visible: ratio = 0.1 # Set it to a non-zero value just in case # If the ratio is 0, it means that the viewport container is hidden # in that case, use the other viewport to get the ratio diff --git a/src/UI/TopMenuContainer.gd b/src/UI/TopMenuContainer.gd index e095a990b..bb84f0ffb 100644 --- a/src/UI/TopMenuContainer.gd +++ b/src/UI/TopMenuContainer.gd @@ -58,6 +58,7 @@ onready var image_menu_button: MenuButton = find_node("ImageMenu") onready var select_menu_button: MenuButton = find_node("SelectMenu") onready var help_menu_button: MenuButton = find_node("HelpMenu") +onready var ui: Container = Global.control.find_node("DockableContainer") onready var new_image_dialog: ConfirmationDialog = Global.control.find_node("CreateNewImage") onready var window_opacity_dialog: AcceptDialog = Global.control.find_node("WindowOpacityDialog") onready var tile_mode_submenu := PopupMenu.new() @@ -205,7 +206,8 @@ func _setup_panels_submenu(item: String) -> void: panels_submenu.hide_on_checkable_item_selection = false for element in ui_elements: panels_submenu.add_check_item(element.name) - panels_submenu.set_item_checked(ui_elements.find(element), true) + var is_hidden: bool = ui.is_control_hidden(element) + panels_submenu.set_item_checked(ui_elements.find(element), !is_hidden) panels_submenu.connect("id_pressed", self, "_panels_submenu_id_pressed") view_menu.add_child(panels_submenu) @@ -429,8 +431,8 @@ func view_menu_id_pressed(id: int) -> void: ViewMenuId.SHOW_GUIDES: _toggle_show_guides() ViewMenuId.EDIT_MODE: - Global.control.ui.tabs_visible = !Global.control.ui.tabs_visible - view_menu.set_item_checked(ViewMenuId.EDIT_MODE, Global.control.ui.tabs_visible) + ui.tabs_visible = !ui.tabs_visible + view_menu.set_item_checked(ViewMenuId.EDIT_MODE, ui.tabs_visible) ViewMenuId.ZEN_MODE: _toggle_zen_mode() ViewMenuId.FULLSCREEN_MODE: @@ -452,7 +454,7 @@ func _panels_submenu_id_pressed(id: int) -> void: if zen_mode: return var element_visible = panels_submenu.is_item_checked(id) - Global.control.ui.set_control_hidden(ui_elements[id], element_visible) + ui.set_control_hidden(ui_elements[id], element_visible) panels_submenu.set_item_checked(id, !element_visible) @@ -466,12 +468,13 @@ func _layouts_submenu_id_pressed(id: int) -> void: func set_layout(id: int) -> void: # Clone is needed so that the premade layouts do not get modified - Global.control.ui.layout = layouts[id][1].clone() + ui.layout = layouts[id][1].clone() for i in layouts.size(): layouts_submenu.set_item_checked(i, i == id) for i in ui_elements.size(): - panels_submenu.set_item_checked(i, true) + var is_hidden: bool = ui.is_control_hidden(ui_elements[i]) + panels_submenu.set_item_checked(i, !is_hidden) Global.control.find_node("TabsContainer").visible = true zen_mode = false @@ -532,13 +535,13 @@ func _toggle_show_guides() -> void: func _toggle_zen_mode() -> void: - Global.control.ui.set_control_hidden(Global.animation_timeline, !zen_mode) - Global.control.ui.set_control_hidden(Global.tool_panel, !zen_mode) - Global.control.ui.set_control_hidden(Global.canvas_preview_container, !zen_mode) - Global.control.ui.set_control_hidden(Global.color_pickers, !zen_mode) - Global.control.ui.set_control_hidden(Global.left_tool_options_scroll, !zen_mode) - Global.control.ui.set_control_hidden(Global.right_tool_options_scroll, !zen_mode) - Global.control.ui.set_control_hidden(Global.palette_panel, !zen_mode) + ui.set_control_hidden(Global.animation_timeline, !zen_mode) + ui.set_control_hidden(Global.tool_panel, !zen_mode) + ui.set_control_hidden(Global.canvas_preview_container, !zen_mode) + ui.set_control_hidden(Global.color_pickers, !zen_mode) + ui.set_control_hidden(Global.left_tool_options_scroll, !zen_mode) + ui.set_control_hidden(Global.right_tool_options_scroll, !zen_mode) + ui.set_control_hidden(Global.palette_panel, !zen_mode) Global.control.find_node("TabsContainer").visible = zen_mode zen_mode = !zen_mode view_menu.set_item_checked(ViewMenuId.ZEN_MODE, zen_mode) diff --git a/src/UI/UI.tscn b/src/UI/UI.tscn index fc7b77566..aaf3f04ab 100644 --- a/src/UI/UI.tscn +++ b/src/UI/UI.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=42 format=2] +[gd_scene load_steps=44 format=2] [ext_resource path="res://src/UI/Tools.tscn" type="PackedScene" id=1] [ext_resource path="res://src/UI/Canvas/CanvasPreview.tscn" type="PackedScene" id=2] @@ -41,6 +41,20 @@ script = ExtResource( 36 ) names = PoolStringArray( "Main Canvas" ) current_tab = 0 +[sub_resource type="Resource" id=28] +resource_name = "Tabs" +script = ExtResource( 36 ) +names = PoolStringArray( "Second Canvas" ) +current_tab = 0 + +[sub_resource type="Resource" id=29] +resource_name = "Split" +script = ExtResource( 27 ) +direction = 0 +percent = 0.980952 +first = SubResource( 8 ) +second = SubResource( 28 ) + [sub_resource type="Resource" id=9] resource_name = "Tabs" script = ExtResource( 36 ) @@ -52,7 +66,7 @@ resource_name = "Split" script = ExtResource( 27 ) direction = 1 percent = 0.90625 -first = SubResource( 8 ) +first = SubResource( 29 ) second = SubResource( 9 ) [sub_resource type="Resource" id=11] @@ -129,15 +143,16 @@ second = SubResource( 15 ) resource_name = "Split" script = ExtResource( 27 ) direction = 0 -percent = 0.0 +percent = 0.0134804 first = SubResource( 1 ) second = SubResource( 16 ) -[sub_resource type="Resource" id=25] +[sub_resource type="Resource" id=30] resource_name = "Layout" script = ExtResource( 14 ) root = SubResource( 5 ) hidden_tabs = { +"Second Canvas": true } [sub_resource type="ShaderMaterial" id=2] @@ -188,16 +203,16 @@ __meta__ = { "_edit_use_anchors_": false } tabs_visible = false -layout = SubResource( 25 ) +layout = SubResource( 30 ) [node name="Tools" parent="DockableContainer" instance=ExtResource( 1 )] margin_left = 4.0 margin_top = 8.0 -margin_right = -1234.0 +margin_right = -1240.0 margin_bottom = -4.0 [node name="Main Canvas" type="VBoxContainer" parent="DockableContainer"] -margin_left = 66.0 +margin_left = 60.0 margin_top = 8.0 margin_right = 938.0 margin_bottom = 532.0 @@ -206,13 +221,13 @@ size_flags_vertical = 3 custom_constants/separation = 0 [node name="TabsContainer" type="PanelContainer" parent="DockableContainer/Main Canvas"] -margin_right = 872.0 +margin_right = 878.0 margin_bottom = 38.0 [node name="Tabs" type="Tabs" parent="DockableContainer/Main Canvas/TabsContainer"] margin_left = 7.0 margin_top = 7.0 -margin_right = 865.0 +margin_right = 871.0 margin_bottom = 31.0 tab_align = 0 tab_close_display_policy = 2 @@ -221,7 +236,7 @@ script = ExtResource( 3 ) [node name="HorizontalRuler" type="Button" parent="DockableContainer/Main Canvas"] margin_top = 38.0 -margin_right = 872.0 +margin_right = 878.0 margin_bottom = 58.0 rect_min_size = Vector2( 0, 16 ) focus_mode = 0 @@ -229,21 +244,15 @@ mouse_default_cursor_shape = 14 action_mode = 0 script = ExtResource( 6 ) -[node name="HSplitContainer" type="HSplitContainer" parent="DockableContainer/Main Canvas"] +[node name="ViewportandVerticalRuler" type="HBoxContainer" parent="DockableContainer/Main Canvas"] margin_top = 58.0 -margin_right = 872.0 +margin_right = 878.0 margin_bottom = 524.0 -size_flags_vertical = 3 -custom_constants/autohide = 0 - -[node name="ViewportandVerticalRuler" type="HBoxContainer" parent="DockableContainer/Main Canvas/HSplitContainer"] -margin_right = 860.0 -margin_bottom = 466.0 size_flags_horizontal = 3 size_flags_vertical = 3 custom_constants/separation = 0 -[node name="VerticalRuler" type="Button" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler"] +[node name="VerticalRuler" type="Button" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler"] margin_right = 16.0 margin_bottom = 466.0 rect_min_size = Vector2( 16, 0 ) @@ -254,9 +263,9 @@ size_flags_vertical = 3 action_mode = 0 script = ExtResource( 4 ) -[node name="ViewportContainer" type="ViewportContainer" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler"] +[node name="ViewportContainer" type="ViewportContainer" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler"] margin_left = 16.0 -margin_right = 860.0 +margin_right = 878.0 margin_bottom = 466.0 focus_mode = 2 mouse_default_cursor_shape = 3 @@ -265,55 +274,57 @@ size_flags_vertical = 3 stretch = true script = ExtResource( 23 ) -[node name="Viewport" type="Viewport" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer"] -size = Vector2( 844, 466 ) +[node name="Viewport" type="Viewport" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer"] +size = Vector2( 862, 466 ) handle_input_locally = false usage = 0 render_target_update_mode = 3 -[node name="TransparentChecker" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport" instance=ExtResource( 5 )] +[node name="TransparentChecker" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport" instance=ExtResource( 5 )] material = SubResource( 2 ) -[node name="Canvas" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport" instance=ExtResource( 19 )] +[node name="Canvas" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport" instance=ExtResource( 19 )] -[node name="Camera2D" type="Camera2D" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport"] +[node name="Camera2D" type="Camera2D" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport"] current = true zoom = Vector2( 0.15, 0.15 ) script = ExtResource( 7 ) -[node name="CanvasLayer" type="CanvasLayer" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport"] +[node name="CanvasLayer" type="CanvasLayer" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport"] -[node name="GreyscaleVision" type="ColorRect" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer/Viewport/CanvasLayer"] +[node name="GreyscaleVision" type="ColorRect" parent="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer/Viewport/CanvasLayer"] material = SubResource( 27 ) margin_right = 40.0 margin_bottom = 40.0 mouse_filter = 2 -[node name="ViewportContainer2" type="ViewportContainer" parent="DockableContainer/Main Canvas/HSplitContainer"] -margin_left = 872.0 -margin_right = 872.0 -margin_bottom = 466.0 +[node name="Second Canvas" type="ViewportContainer" parent="DockableContainer"] +visible = false +margin_left = 1274.0 +margin_top = 8.0 +margin_right = 1276.0 +margin_bottom = 350.0 size_flags_vertical = 3 stretch = true script = ExtResource( 23 ) -[node name="Viewport" type="Viewport" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2"] -size = Vector2( 0, 466 ) +[node name="Viewport" type="Viewport" parent="DockableContainer/Second Canvas"] +size = Vector2( 2, 342 ) handle_input_locally = false -render_target_update_mode = 3 +render_target_update_mode = 0 -[node name="TransparentChecker" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2/Viewport" instance=ExtResource( 5 )] +[node name="TransparentChecker" parent="DockableContainer/Second Canvas/Viewport" instance=ExtResource( 5 )] material = SubResource( 3 ) -[node name="CanvasPreview" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2/Viewport" instance=ExtResource( 2 )] +[node name="CanvasPreview" parent="DockableContainer/Second Canvas/Viewport" instance=ExtResource( 2 )] -[node name="Camera2D2" type="Camera2D" parent="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2/Viewport"] +[node name="Camera2D2" type="Camera2D" parent="DockableContainer/Second Canvas/Viewport"] current = true zoom = Vector2( 0.15, 0.15 ) script = ExtResource( 7 ) [node name="Animation Timeline" parent="DockableContainer" instance=ExtResource( 18 )] -margin_left = 66.0 +margin_left = 60.0 margin_top = 556.0 margin_right = 938.0 margin_bottom = 716.0 @@ -369,8 +380,8 @@ margin_bottom = 716.0 [connection signal="tab_close" from="DockableContainer/Main Canvas/TabsContainer/Tabs" to="DockableContainer/Main Canvas/TabsContainer/Tabs" method="_on_Tabs_tab_close"] [connection signal="mouse_entered" from="DockableContainer/Main Canvas/HorizontalRuler" to="DockableContainer/Main Canvas/HorizontalRuler" method="_on_HorizontalRuler_mouse_entered"] [connection signal="pressed" from="DockableContainer/Main Canvas/HorizontalRuler" to="DockableContainer/Main Canvas/HorizontalRuler" method="_on_HorizontalRuler_pressed"] -[connection signal="pressed" from="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/VerticalRuler" to="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/VerticalRuler" method="_on_VerticalRuler_pressed"] -[connection signal="mouse_entered" from="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer" to="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer" method="_on_ViewportContainer_mouse_entered"] -[connection signal="mouse_exited" from="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer" to="DockableContainer/Main Canvas/HSplitContainer/ViewportandVerticalRuler/ViewportContainer" method="_on_ViewportContainer_mouse_exited"] -[connection signal="mouse_entered" from="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2" to="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2" method="_on_ViewportContainer_mouse_entered"] -[connection signal="mouse_exited" from="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2" to="DockableContainer/Main Canvas/HSplitContainer/ViewportContainer2" method="_on_ViewportContainer_mouse_exited"] +[connection signal="pressed" from="DockableContainer/Main Canvas/ViewportandVerticalRuler/VerticalRuler" to="DockableContainer/Main Canvas/ViewportandVerticalRuler/VerticalRuler" method="_on_VerticalRuler_pressed"] +[connection signal="mouse_entered" from="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer" to="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer" method="_on_ViewportContainer_mouse_entered"] +[connection signal="mouse_exited" from="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer" to="DockableContainer/Main Canvas/ViewportandVerticalRuler/ViewportContainer" method="_on_ViewportContainer_mouse_exited"] +[connection signal="mouse_entered" from="DockableContainer/Second Canvas" to="DockableContainer/Second Canvas" method="_on_ViewportContainer_mouse_entered"] +[connection signal="mouse_exited" from="DockableContainer/Second Canvas" to="DockableContainer/Second Canvas" method="_on_ViewportContainer_mouse_exited"]