Menu ▾ ▴

#256 Add native fullscreen and resilient window recovery controls

open
nobody
6 days ago
2026-08-28
Anonymous
No

Originally created by: kristofferR

Problem

Chatpane has maximize/zoom and an element-level Fullscreen API fallback, but no first-class native fullscreen action. Where a WebView's Fullscreen API is absent or incomplete, video fullscreen is simulated inside the existing decorated window.

Chatpane's Reload menu action is also page eval based, so it cannot recover a blank/error document with no working JavaScript context.

Goal

Provide native fullscreen and native recovery actions while keeping Chatpane a Messenger client rather than reintroducing browser-history shortcuts.

Scope

  • Add F11 native fullscreen on Windows and Linux.
  • Add the standard Full Screen item on macOS.
  • Synchronize native fullscreen state with document.fullscreenElement and the standard/WebKit fullscreenchange events only where the platform WebView needs a bridge.
  • Do not move or reparent React-owned media elements. Preserve the original DOM and playback state.
  • Escape and external native exit must update both window and page state.
  • Change Reload to a native WebView reload operation.
  • Add a Messenger Home recovery action that natively navigates to the configured Messenger URL and works from an error page.
  • Keep Cmd/Ctrl+[ and ] assigned to conversation navigation as decided in [#18]. Browser Back/Forward shortcuts remain out of scope.

Verification

  • F11/menu fullscreen enter and exit on all platforms.
  • Messenger video fullscreen, Escape, native title-bar exit, window recreation, and multiple windows.
  • Reload and Home from a normal Messenger page, offline/error page, and auth/checkpoint page.
  • No fullscreen-state leak after a video or window is destroyed.

Ref [#18].

Related

Tickets: #18
Tickets: #261
Tickets: #264
Tickets: #277

Discussion


Log in to post a comment.