Skip to content

feat(ui): share the main window logic - #234

Merged
JumpLink merged 3 commits into
mainfrom
feat/shared-main-window
Oct 13, 2026
Merged

JumpLink merged 3 commits into
mainfrom
feat/shared-main-window

Conversation

@JumpLink

Copy link
Copy Markdown
Owner

Stacked on #233 (gjsify 0.63.0).

  • MainWindowController in @learn6502/ui: the GNOME main window's navigation, run/step/assemble flow, files and unsaved-changes handling, layout mounting. Services (files, settings, clipboard, notifier, help, share) are injected.
  • WindowBehaviour: gjsify 0.63 window members on all platforms (is-active auto-pause, close-request guard, notify::focus-widget on desktop layouts).
  • Suffix files: window-focus.android.ts (NS refuses the focus notify), window-size{,.android,.web}.ts (NS maximized is constant, unmaximize throws; the browser owns its size).
  • GNOME uses the controller; Android and web attach WindowBehaviour to their shells. Their own shells (MainController, web MainWindow) are not yet replaced by the controller.
  • Android back button is not mapped to close-request yet.
  • Menu-from-model is the next PR.

@JumpLink
JumpLink changed the base branch from chore/gjsify-0.63 to main October 13, 2026 08:42
Move the GNOME main window's logic into ui as MainWindowController.
The platform injects file, settings, clipboard, notification, help
and share services; the GNOME window keeps the template and keys.

WindowBehaviour uses the gjsify 0.63 window members on all three
platforms: is-active pauses a running program, close-request is
guarded, notify::focus-widget follows the focus inside the window.
Suffix files skip what NativeScript refuses (focus-widget notify,
window size persistence) and what the browser owns (window size).
Android and web attach the behaviour to their own shells.
The workflows still installed 0.51.1 while the workspace is on 0.63.0.
Both platforms now build their main window on the shared
MainWindowController through a MainWindowShell of their own
and inject files, clipboard, notifier and share services.

The unsaved-changes close guard stays unwired on both: the
Android back button and Adw.Window on the web emit no
close-request in gjsify yet.
@JumpLink
JumpLink force-pushed the feat/shared-main-window branch from d3853e6 to 99fe79d Compare October 13, 2026 09:28
@JumpLink
JumpLink marked this pull request as ready for review October 13, 2026 09:30
@JumpLink
JumpLink merged commit 86ff93b into main Oct 13, 2026
3 checks passed
@JumpLink
JumpLink deleted the feat/shared-main-window branch October 13, 2026 09:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant