Skip to content

Instantly share code, notes, and snippets.

@passivestar
Last active October 1, 2024 13:37
Show Gist options
  • Save passivestar/fc4ccd5a499c19906c89bfea85d66f5f to your computer and use it in GitHub Desktop.
Save passivestar/fc4ccd5a499c19906c89bfea85d66f5f to your computer and use it in GitHub Desktop.

Revisions

  1. passivestar revised this gist Jul 8, 2024. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion window_position.gd
    Original file line number Diff line number Diff line change
    @@ -27,7 +27,7 @@ func _process(_delta: float) -> void:
    if not Engine.is_editor_hint():
    return

    var main_screen = EditorInterface.get_editor_main_screen()
    var main_screen := EditorInterface.get_editor_main_screen()
    var window_position := Vector2(get_window().position)
    var scale := EditorInterface.get_editor_scale()
    viewport_position = window_position + main_screen.get_screen_transform().origin + main_screen_position_offset * scale
  2. passivestar created this gist Jul 8, 2024.
    34 changes: 34 additions & 0 deletions window_position.gd
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,34 @@
    @tool
    extends Node

    @export_storage var viewport_position: Vector2
    @export_storage var viewport_size: Vector2i

    @export var main_screen_position_offset := Vector2(0, -18)
    @export var main_screen_size_offset := Vector2i(0, -32)

    func _enter_tree() -> void:
    if not Engine.is_editor_hint():
    return

    ProjectSettings.set_setting("display/window/size/borderless", true)
    ProjectSettings.set_setting("display/window/size/always_on_top", true)
    ProjectSettings.save()

    func _ready() -> void:
    if Engine.is_editor_hint():
    return

    var window := get_window()
    window.position = viewport_position
    window.size = viewport_size

    func _process(_delta: float) -> void:
    if not Engine.is_editor_hint():
    return

    var main_screen = EditorInterface.get_editor_main_screen()
    var window_position := Vector2(get_window().position)
    var scale := EditorInterface.get_editor_scale()
    viewport_position = window_position + main_screen.get_screen_transform().origin + main_screen_position_offset * scale
    viewport_size = Vector2i(main_screen.size) + Vector2i(main_screen_size_offset * scale)