Skip to content

Commit 4e6c03b

Browse files
committed
Support single-window mode
1 parent 9d13f4b commit 4e6c03b

64 files changed

Lines changed: 204 additions & 200 deletions

File tree

Some content is hidden

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

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
@@ -817,7 +817,7 @@ func do_edit(node, edit_window_scene : PackedScene, tab : String = "") -> void:
817817
mm_globals.main_window.add_dialog(edit_window)
818818
edit_window.set_model_data(get_shader_model_for_edit())
819819
edit_window.node_changed.connect(node.update_shader_generator)
820-
edit_window.get_window().content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
820+
edit_window.get_window().content_scale_factor = mm_globals.ui_scale_factor()
821821
edit_window.get_window().min_size = Vector2(950, 450) * edit_window.get_window().content_scale_factor
822822
edit_window.hide()
823823
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: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@ const DEFAULT_CONFIG : Dictionary = {
5858
ui_use_native_file_dialogs = true,
5959
win_tablet_driver = 0,
6060
dialog_dim_background = true,
61-
node_minimize_button = true,
62-
node_close_button = true,
61+
node_minimize_button = false,
62+
node_close_button = false,
63+
ui_single_window_mode = false,
6364
}
6465

6566

@@ -180,8 +181,7 @@ func popup_menu(menu : PopupMenu, parent : Control):
180181
var zoom_fac = 1.0
181182
if parent is GraphNode:
182183
zoom_fac *= mm_globals.main_window.get_current_graph_edit().zoom
183-
184-
var content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
184+
var content_scale_factor : float = mm_globals.ui_scale_factor()
185185
menu.popup(Rect2(parent.get_local_mouse_position()*content_scale_factor*zoom_fac + parent.get_screen_position(), Vector2(0, 0)))
186186

187187
func set_tip_text(tip : String, timeout : float = 0.0, priority: int = 0):
@@ -228,3 +228,8 @@ func get_node_title_from_gen(generator : MMGenBase) -> String:
228228
var gnode : GraphNode = graph.get_node(node_path)
229229
return gnode.title.to_snake_case()
230230
return "unnamed"
231+
232+
func ui_scale_factor() -> float:
233+
if get_tree().root.gui_embed_subwindows:
234+
return 1.0
235+
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
@@ -136,7 +136,6 @@ func _ready() -> void:
136136
get_window().borderless = false
137137
get_window().transparent = false
138138
get_window().grab_focus()
139-
get_window().gui_embed_subwindows = false
140139

141140
get_window().close_requested.connect(self.on_close_requested)
142141

@@ -342,6 +341,9 @@ func on_config_changed() -> void:
342341
if c.has_method("update"):
343342
c.update()
344343

344+
if not get_window().gui_embed_subwindows:
345+
get_window().gui_embed_subwindows = mm_globals.get_config("ui_single_window_mode")
346+
345347
func get_panel(panel_name : String) -> Control:
346348
return layout.get_panel(panel_name)
347349

@@ -1052,7 +1054,7 @@ func edit_save_selection() -> void:
10521054

10531055
func edit_preferences() -> void:
10541056
var dialog = load("res://material_maker/windows/preferences/preferences.tscn").instantiate()
1055-
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
1057+
dialog.content_scale_factor = mm_globals.ui_scale_factor()
10561058
dialog.edit_preferences(mm_globals.config)
10571059

10581060
func edit_align_start() -> void:
@@ -1150,7 +1152,7 @@ func add_selection_to_library(index: int, should_ask_item_name: bool = true, upd
11501152
current_item_name = library.get_selected_item_name()
11511153
if should_ask_item_name:
11521154
var dialog = preload("res://material_maker/windows/line_dialog/line_dialog.tscn").instantiate()
1153-
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
1155+
dialog.content_scale_factor = mm_globals.ui_scale_factor()
11541156
dialog.min_size = Vector2(250, 90) * dialog.content_scale_factor
11551157
add_child(dialog)
11561158
var status = await dialog.enter_text("New library element", "Select a name for the new library element", current_item_name)
@@ -1177,7 +1179,7 @@ func create_menu_add_brush_to_library(menu : MMMenuManager.MenuBase) -> void:
11771179

11781180
func add_brush_to_library(index) -> void:
11791181
var dialog = preload("res://material_maker/windows/line_dialog/line_dialog.tscn").instantiate()
1180-
dialog.content_scale_factor = mm_globals.main_window.get_window().content_scale_factor
1182+
dialog.content_scale_factor = mm_globals.ui_scale_factor()
11811183
dialog.min_size = Vector2(250, 90) * dialog.content_scale_factor
11821184
add_child(dialog)
11831185
var status = await dialog.enter_text("New library element", "Select a name for the new library element", brushes.get_selected_item_name())
@@ -1389,7 +1391,7 @@ func generate_graph_screenshot():
13891391
graph_edit.zoom = 1
13901392
await get_tree().process_frame
13911393
var graph_edit_rect = graph_edit.get_global_rect()
1392-
var scale_factor : float = get_window().content_scale_factor
1394+
var scale_factor : float = mm_globals.ui_scale_factor()
13931395
graph_edit_rect = Rect2(graph_edit_rect.position+Vector2(15, 80), graph_edit_rect.size-Vector2(25, 90))
13941396
graph_edit_rect = Rect2(scale_factor*graph_edit_rect.position, scale_factor*graph_edit_rect.size)
13951397
var graph_rect = null

material_maker/nodes/base.gd

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

material_maker/nodes/comment/comment.gd

Lines changed: 2 additions & 5 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 : float = 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 : float = 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
@@ -232,16 +232,13 @@ func _on_raise_request():
232232
get_parent().move_child(self, i)
233233
break
234234

235-
236235
func _context_menu_about_to_popup(context_menu : PopupMenu) -> void:
237236
context_menu.position = get_screen_transform() * get_local_mouse_position()
238237

239-
240238
func _on_title_edit_ready() -> void:
241239
%TitleEdit.get_menu().about_to_popup.connect(
242240
_context_menu_about_to_popup.bind(%TitleEdit.get_menu()))
243241

244-
245242
func _on_text_ready() -> void:
246243
%Text.get_menu().about_to_popup.connect(
247244
_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)