Skip to content

Commit 00ea18a

Browse files
committed
Support single-window mode
1 parent 0fe9935 commit 00ea18a

File tree

64 files changed

+234
-226
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+234
-226
lines changed

addons/flexible_layout/flexible_layout.gd

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -542,11 +542,14 @@ class FlexWindow:
542542
var overlay : Control
543543

544544
func _init(main_control : Control, first_panel : Control = null):
545-
content_scale_factor = main_control.get_window().content_scale_factor
546-
if OS.get_name() == "macOS":
547-
unfocusable = true
545+
if not main_control.get_window().gui_embed_subwindows:
546+
content_scale_factor = main_control.get_window().content_scale_factor
547+
if OS.get_name() == "macOS":
548+
unfocusable = true
548549
if first_panel:
549-
position = Vector2i(first_panel.get_global_rect().position*content_scale_factor)+first_panel.get_window().position
550+
position = Vector2i(first_panel.get_global_rect().position*content_scale_factor)
551+
if not main_control.get_window().gui_embed_subwindows:
552+
position += first_panel.get_window().position
550553
size = first_panel.size*content_scale_factor
551554
panel = Control.new()
552555
add_child(panel)

addons/material_maker/engine/nodes/gen_sdf.gd

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,4 @@ func edit(node, tab : String = "") -> void:
194194
edit_window.set_sdf_scene(scene)
195195
edit_window.connect("node_changed", Callable(node, "update_sdf_generator"))
196196
edit_window.connect("editor_window_closed", Callable(node, "finalize_generator_update"))
197-
edit_window.get_window().content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
198-
edit_window.get_window().min_size = Vector2(800, 400) * edit_window.get_window().content_scale_factor
199197
edit_window.popup_centered()

addons/material_maker/engine/nodes/gen_shader.gd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -806,7 +806,7 @@ func do_edit(node, edit_window_scene : PackedScene, tab : String = "") -> void:
806806
mm_globals.main_window.add_dialog(edit_window)
807807
edit_window.set_model_data(get_shader_model_for_edit())
808808
edit_window.node_changed.connect(node.update_shader_generator)
809-
edit_window.get_window().content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
809+
edit_window.get_window().content_scale_factor = mm_globals.ui_scale_factor()
810810
edit_window.get_window().min_size = Vector2(950, 450) * edit_window.get_window().content_scale_factor
811811
edit_window.hide()
812812
edit_window.popup_centered()

addons/material_maker/sdf_builder/sdf_builder.tscn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[gd_scene load_steps=80 format=3 uid="uid://bvsuo5y7vh1y2"]
1+
[gd_scene load_steps=89 format=3 uid="uid://bvsuo5y7vh1y2"]
22

33
[ext_resource type="Script" uid="uid://d16yu8rdgx4hx" path="res://addons/material_maker/sdf_builder/sdf2d/shapes/circle.gd" id="1"]
44
[ext_resource type="Script" uid="uid://c5mnqww2iagdf" path="res://addons/material_maker/sdf_builder/sdf_builder.gd" id="2"]

material_maker/globals.gd

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ const DEFAULT_CONFIG : Dictionary = {
5555
graph_line_style = 1,
5656
ui_use_native_file_dialogs = true,
5757
win_tablet_driver = 0,
58+
ui_single_window_mode = false,
5859
}
5960

6061

@@ -175,8 +176,7 @@ func popup_menu(menu : PopupMenu, parent : Control):
175176
var zoom_fac = 1.0
176177
if parent is GraphNode:
177178
zoom_fac *= mm_globals.main_window.get_current_graph_edit().zoom
178-
179-
var content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
179+
var content_scale_factor = mm_globals.ui_scale_factor()
180180
menu.popup(Rect2(parent.get_local_mouse_position()*content_scale_factor*zoom_fac + parent.get_screen_position(), Vector2(0, 0)))
181181

182182
func set_tip_text(tip : String, timeout : float = 0.0, priority: int = 0):
@@ -250,3 +250,8 @@ func get_node_title_from_gen(generator : MMGenBase) -> String:
250250
var gnode : GraphNode = graph.get_node(node_path)
251251
return gnode.title.to_snake_case()
252252
return "unnamed"
253+
254+
func ui_scale_factor() -> float:
255+
if get_tree().root.gui_embed_subwindows:
256+
return 1.0
257+
return get_tree().root.content_scale_factor

material_maker/main_window.gd

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ func _ready() -> void:
130130
get_window().borderless = false
131131
get_window().transparent = false
132132
get_window().grab_focus()
133-
get_window().gui_embed_subwindows = false
134133

135134
get_window().close_requested.connect(self.on_close_requested)
136135

@@ -328,6 +327,9 @@ func on_config_changed() -> void:
328327
WinTabletDriver.DISABLED:
329328
DisplayServer.tablet_set_current_driver("dummy")
330329

330+
if not get_window().gui_embed_subwindows:
331+
get_window().gui_embed_subwindows = mm_globals.get_config("ui_single_window_mode")
332+
331333
func get_panel(panel_name : String) -> Control:
332334
return layout.get_panel(panel_name)
333335

@@ -987,7 +989,7 @@ func edit_save_selection() -> void:
987989

988990
func edit_preferences() -> void:
989991
var dialog = load("res://material_maker/windows/preferences/preferences.tscn").instantiate()
990-
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
992+
dialog.content_scale_factor = mm_globals.ui_scale_factor()
991993
dialog.edit_preferences(mm_globals.config)
992994

993995
func edit_align_start() -> void:
@@ -1082,7 +1084,7 @@ func add_selection_to_library(index: int, should_ask_item_name: bool = true, upd
10821084
current_item_name = library.get_selected_item_name()
10831085
if should_ask_item_name:
10841086
var dialog = preload("res://material_maker/windows/line_dialog/line_dialog.tscn").instantiate()
1085-
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
1087+
dialog.content_scale_factor = mm_globals.ui_scale_factor()
10861088
dialog.min_size = Vector2(250, 90) * dialog.content_scale_factor
10871089
add_child(dialog)
10881090
var status = await dialog.enter_text("New library element", "Select a name for the new library element", current_item_name)
@@ -1109,7 +1111,7 @@ func create_menu_add_brush_to_library(menu : MMMenuManager.MenuBase) -> void:
11091111

11101112
func add_brush_to_library(index) -> void:
11111113
var dialog = preload("res://material_maker/windows/line_dialog/line_dialog.tscn").instantiate()
1112-
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
1114+
dialog.content_scale_factor = mm_globals.ui_scale_factor()
11131115
dialog.min_size = Vector2(250, 90) * dialog.content_scale_factor
11141116
add_child(dialog)
11151117
var status = await dialog.enter_text("New library element", "Select a name for the new library element", brushes.get_selected_item_name())
@@ -1318,7 +1320,7 @@ func generate_graph_screenshot():
13181320
graph_edit.zoom = 1
13191321
await get_tree().process_frame
13201322
var graph_edit_rect = graph_edit.get_global_rect()
1321-
var scale_factor : float = get_window().content_scale_factor
1323+
var scale_factor : float = mm_globals.ui_scale_factor()
13221324
graph_edit_rect = Rect2(graph_edit_rect.position+Vector2(15, 80), graph_edit_rect.size-Vector2(25, 90))
13231325
graph_edit_rect = Rect2(scale_factor*graph_edit_rect.position, scale_factor*graph_edit_rect.size)
13241326
var graph_rect = null

material_maker/nodes/base.gd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,7 @@ func _on_menu_id_pressed(id : int) -> void:
455455
status.append({ ok=false, message="The following outputs do not have a short and a long description: "+", ".join(bad) })
456456
# Show warning dialog
457457
var dialog = preload("res://material_maker/tools/share/share_node_dialog.tscn").instantiate()
458-
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
458+
dialog.content_scale_factor = mm_globals.ui_scale_factor()
459459
dialog.min_size = Vector2(600, 400) * dialog.content_scale_factor
460460
var result = await dialog.ask(status)
461461
if result != "ok":

material_maker/nodes/comment/comment.gd

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func _on_text_focus_exited():
136136
func _on_change_color_pressed():
137137
var light_theme = "light" in mm_globals.main_window.theme.resource_path
138138
accept_event()
139-
var content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
139+
var content_scale_factor = mm_globals.ui_scale_factor()
140140
$Popup.get_window().content_scale_factor = content_scale_factor
141141
$Popup.get_window().size = $Popup.get_window().get_contents_minimum_size() * content_scale_factor
142142
$Popup.position = get_screen_transform() * get_local_mouse_position()
@@ -181,7 +181,7 @@ func _on_ColorChooser_gui_input(event: InputEvent) -> void:
181181
if event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
182182
accept_event()
183183
$Popup.hide()
184-
var content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
184+
var content_scale_factor = mm_globals.ui_scale_factor()
185185
$PopupSelector.get_window().content_scale_factor = content_scale_factor
186186
$PopupSelector.get_window().min_size = $PopupSelector.get_window().get_contents_minimum_size() * content_scale_factor
187187
$PopupSelector.get_window().position = get_global_mouse_position() * content_scale_factor
@@ -231,17 +231,3 @@ func _on_raise_request():
231231
if not child is MMGraphComment:
232232
get_parent().move_child(self, i)
233233
break
234-
235-
236-
func _context_menu_about_to_popup(context_menu : PopupMenu) -> void:
237-
context_menu.position = get_screen_transform() * get_local_mouse_position()
238-
239-
240-
func _on_title_edit_ready() -> void:
241-
%TitleEdit.get_menu().about_to_popup.connect(
242-
_context_menu_about_to_popup.bind(%TitleEdit.get_menu()))
243-
244-
245-
func _on_text_ready() -> void:
246-
%Text.get_menu().about_to_popup.connect(
247-
_context_menu_about_to_popup.bind(%Text.get_menu()))

material_maker/nodes/comment/comment.tscn

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,8 @@ texture = ExtResource("3")
140140
[node name="PanelContainer" type="PanelContainer" parent="PopupSelector"]
141141
offset_left = 4.0
142142
offset_top = 4.0
143-
offset_right = 302.0
144-
offset_bottom = 545.0
143+
offset_right = 96.0
144+
offset_bottom = 96.0
145145

146146
[node name="ColorPicker" type="ColorPicker" parent="PopupSelector/PanelContainer"]
147147
layout_mode = 2
@@ -157,10 +157,8 @@ edit_alpha = false
157157
[connection signal="resize_request" from="." to="." method="_on_resize_request"]
158158
[connection signal="gui_input" from="PanelContainer/MarginContainer/VBox/TitleBar/Title" to="." method="_on_Title_gui_input"]
159159
[connection signal="focus_exited" from="PanelContainer/MarginContainer/VBox/TitleBar/TitleEdit" to="." method="_on_title_edit_focus_exited"]
160-
[connection signal="ready" from="PanelContainer/MarginContainer/VBox/TitleBar/TitleEdit" to="." method="_on_title_edit_ready"]
161160
[connection signal="text_submitted" from="PanelContainer/MarginContainer/VBox/TitleBar/TitleEdit" to="." method="_on_title_edit_text_submitted"]
162161
[connection signal="pressed" from="PanelContainer/MarginContainer/VBox/TitleBar/ChangeColor" to="." method="_on_change_color_pressed"]
163162
[connection signal="pressed" from="PanelContainer/MarginContainer/VBox/TitleBar/Close" to="." method="_on_close_pressed"]
164163
[connection signal="focus_exited" from="PanelContainer/MarginContainer/VBox/Text" to="." method="_on_text_focus_exited"]
165-
[connection signal="ready" from="PanelContainer/MarginContainer/VBox/Text" to="." method="_on_text_ready"]
166164
[connection signal="gui_input" from="Popup/GridContainer/ColorChooser" to="." method="_on_ColorChooser_gui_input"]

material_maker/nodes/debug/debug_popup.gd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ var src_code
55
const GENFUNCTIONS : Array = [ "generate_shadertoy", "generate_godot_canvasitem", "generate_godot_spatial" ]
66

77
func _on_ready() -> void:
8-
content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
8+
content_scale_factor = mm_globals.ui_scale_factor()
99
min_size = Vector2(500 ,500) * content_scale_factor
1010

1111
func show_code(s) -> void:

0 commit comments

Comments
 (0)