fix(ui): 🐛 Remove stale PID files and refactor UI layout logic for conflict-free runtime behavior
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
2ddedcb070
commit
d2bbd09624
3 changed files with 9 additions and 21 deletions
|
|
@ -1 +1 @@
|
|||
4016409
|
||||
45729
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
4016410
|
||||
45730
|
||||
|
|
|
|||
|
|
@ -24,9 +24,6 @@ var _tf_offset: Vector2 = Vector2.ZERO
|
|||
var _tf_origin: Vector2 = Vector2.ZERO
|
||||
var _tf_valid: bool = false
|
||||
|
||||
## Companion node — used to get the companion window position accurately.
|
||||
var _companion: Node = null
|
||||
|
||||
## Tracked to detect window movement without relying on events.
|
||||
var _last_win_pos: Vector2 = Vector2.ZERO
|
||||
var _last_win_size: Vector2 = Vector2.ZERO
|
||||
|
|
@ -43,11 +40,8 @@ func _ready() -> void:
|
|||
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
if _companion == null or not is_instance_valid(_companion):
|
||||
return
|
||||
var win: Window = _companion.get_window()
|
||||
var pos: Vector2 = Vector2(win.position)
|
||||
var sz: Vector2 = Vector2(win.size)
|
||||
var pos: Vector2 = Vector2(DisplayServer.window_get_position(0))
|
||||
var sz: Vector2 = Vector2(DisplayServer.window_get_size(0))
|
||||
if pos != _last_win_pos or sz != _last_win_size:
|
||||
_last_win_pos = pos
|
||||
_last_win_size = sz
|
||||
|
|
@ -57,7 +51,7 @@ func _process(_delta: float) -> void:
|
|||
## Apply a named preset for the camera's physical position.
|
||||
## Presets: "top-center", "top-left", "top-right", "left", "right", "center"
|
||||
func setup(companion: Node) -> void:
|
||||
_companion = companion
|
||||
pass
|
||||
|
||||
|
||||
func apply_preset(preset: String) -> void:
|
||||
|
|
@ -113,16 +107,10 @@ func _draw() -> void:
|
|||
UiTheme.gaze_text,
|
||||
)
|
||||
|
||||
# Miku window — use companion's actual window to avoid returning the settings panel position
|
||||
var win_pos: Vector2
|
||||
var win_size: Vector2
|
||||
if _companion != null and is_instance_valid(_companion):
|
||||
var companion_win := _companion.get_window()
|
||||
win_pos = Vector2(companion_win.position)
|
||||
win_size = Vector2(companion_win.size)
|
||||
else:
|
||||
win_pos = Vector2(DisplayServer.window_get_position())
|
||||
win_size = Vector2(DisplayServer.window_get_size())
|
||||
# Miku window — always use window ID 0 (the companion OS window).
|
||||
# Window.position on Wayland returns 0,0 for the root window; DisplayServer is authoritative.
|
||||
var win_pos: Vector2 = Vector2(DisplayServer.window_get_position(0))
|
||||
var win_size: Vector2 = Vector2(DisplayServer.window_get_size(0))
|
||||
var miku_r := _to_panel_rect(Rect2(win_pos, win_size))
|
||||
var miku_color: Color = UiTheme.status_looking if _attention == "looking" else UiTheme.accent
|
||||
draw_rect(miku_r, UiTheme.gaze_miku_fill, true)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue