-
Notifications
You must be signed in to change notification settings - Fork 434
Native desktop windows #5556
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
shai-almog
wants to merge
262
commits into
master
Choose a base branch
from
feat-desktop-windows
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+32,834
−1,333
Open
Native desktop windows #5556
Changes from all commits
Commits
Show all changes
262 commits
Select commit
Hold shift + click to select a range
baa8e22
Linux: implement the window manager
shai-almog 367e12e
macNative: implement the Catalyst window manager
shai-almog e4694af
Add the windowed screenshot suite
shai-almog 5307d4b
Document desktop windows in the developer guide
shai-almog a264719
JavaSE: cover the per-canvas graphics resolution
shai-almog 43a7798
macNative: fix three real defects in the Catalyst window layer
shai-almog 28f8e10
Windows/Linux: fix defects found by compiling the native sources
shai-almog a9d54e0
macNative: implement window capture, and turn multi-window off by def…
shai-almog aa9bd7b
Correct the Catalyst orientation claim, and probe readiness by capturing
shai-almog 1a2b320
Signal when a window has painted, and wait for it before capturing
shai-almog aa954cf
Record the Mac Catalyst verification result
shai-almog a776c4b
macNative: enable multi-window whenever Mac Catalyst is built
shai-almog 5c168e8
Make a window come up at the size it asked for, and painted
shai-almog 0403a60
Move the desktop windows guide snippets into the compiled demo sources
shai-almog ceca91e
macNative: recycle window scenes instead of destroying them
shai-almog 338ee1a
Add the license header to the new guide snippet fixtures
shai-almog 0ccdb37
Address the review of the desktop window work
shai-almog c9907fc
Cover the review fixes with tests
shai-almog 13311a9
Document the difference between a close listener and Disposed
shai-almog 1670ca0
macNative: keep the window raster matched to the window
shai-almog bea352c
Address the second review round
shai-almog c7832a8
Address the third review round
shai-almog bc45217
Address the fourth review round
shai-almog fc3370c
Address the fifth review round
shai-almog 259c862
Address the sixth review round
shai-almog a128cc7
Address the seventh review round
shai-almog d20d070
Address the eighth review round
shai-almog c6b4990
Seed the native Windows window screenshot baselines
shai-almog aac8cba
Seed the native Linux window screenshot baselines
shai-almog 47e0aa0
Satisfy the PMD gate for the desktop window work
shai-almog 5acc488
Address the ninth review round
shai-almog f495477
macNative: do not lay a window out at a recycled scene's old size
shai-almog 75ef76f
Keep the JavaSE port compiling at source 1.7
shai-almog 9ac7ddd
Let the framework decide which windows are natively blocked
shai-almog 34e0cb0
Bring the desktop windows guide up to date with the implementation
shai-almog b35b8bd
Report multi-window as skipped, not passed, where windows do not exist
shai-almog b7998b5
Paint a window over its whole surface, not the platform's stale size
shai-almog 7383c44
Address the tenth review round
shai-almog aa3804f
Address the eleventh review round
shai-almog 3636bd2
Address the twelfth review round
shai-almog 047ce9e
Address the thirteenth review round
shai-almog e3bc655
Address the fourteenth review round
shai-almog cdd22a6
Address the fifteenth review round
shai-almog e54ef34
Address the sixteenth review round, and fix the Mac Catalyst build
shai-almog ba22f3e
Fix the GTK main-window buffer race, and the seventeenth review round
shai-almog f887d05
Stop a secondary Java SE canvas resizing the main surface
shai-almog bf6b675
Address the nineteenth review round
shai-almog da91e38
Address the twentieth review round
shai-almog 11caf5c
Address the twenty-first review round
shai-almog 6d88fca
Address the twenty-second review round
shai-almog f4f17c3
Add the missing copyright header to LinuxGenericPeer
shai-almog e287676
Address the twenty-third review round
shai-almog d60f7ba
Address the twenty-fourth review round
shai-almog 8455642
Set the Linux browser's window slot before it is used
shai-almog e7c3392
Drop a pointless null guard in the browser create path
shai-almog 0ac9cfc
Address the twenty-fifth review round
shai-almog 5178ab7
Address the twenty-sixth review round
shai-almog bdded62
Address the twenty-seventh review round
shai-almog c742375
Address the twenty-eighth review round
shai-almog 952656a
Address the twenty-ninth review round
shai-almog 227e454
Address the thirtieth review round, and close some audited gaps
shai-almog 56966f6
Address the thirty-first review round
shai-almog e38b87d
Address the thirty-second review round
shai-almog 2dae938
Address the thirty-third review round
shai-almog a548633
Address the thirty-fourth review round, and fix a PMD violation
shai-almog 1655610
Implement the Window animation-lock contract, and fix Checkstyle
shai-almog f0bee02
Address the thirty-sixth review round
shai-almog b2f98c5
Record a pointer press before dispatching it, and close two audited gaps
shai-almog 591a275
Implement the Catalyst window controls it can express, document the rest
shai-almog eca52f5
Capture Catalyst pointer metadata, and release the Java SE gesture li…
shai-almog c2d7719
Address the fortieth review round
shai-almog 0bfa9fd
Address the forty-first review round
shai-almog 3ee10ea
Cancel pending input on every path that takes a window out of reach
shai-almog 5707f6d
Cancel held input on focus loss, and reject input queued before a hide
shai-almog 2a56bbf
Make native text editing work in windows on every desktop port
shai-almog 14b81ab
Route the Catalyst native editor to its window, and fix one-shot timers
shai-almog 0a9b553
Scale native peers for their own window's monitor
shai-almog 5150bff
Keep pointer metadata with its packet, and fix two scale conversions
shai-almog 588b2e0
Read Linux desktop windows back for real captures
shai-almog 98f7259
Document what Window.capture() returns per platform
shai-almog 7782fd1
Register animations through the top level, not the form
shai-almog 08241f6
Explain at the call site why the Catalyst present copy stays
shai-almog f3915b3
Fix the guards around the migrated animation registrations
shai-almog 7633e98
Reuse the coalesced drag's snapshot slot, and fix InfiniteProgress
shai-almog c04bb2c
Migrate the indirect form lookups the first sweep missed
shai-almog d059a79
Accept "readback" in the developer guide
shai-almog 23ab118
Finish the getComponentForm sweep, and say where it stops
shai-almog de19aa6
Finish the local-variable form lookups
shai-almog c0a407b
Let text editing and peer pollers reach the port from a window
shai-almog 8342617
Size the pointer metadata ring for both stacks, and make window comma…
shai-almog f3f0fe9
Dispatch window menu commands through the window, and keep MCP off it
shai-almog 2c738b4
Stop double-animating in a window, and fix two more dead paths
shai-almog d9bb05b
Scope GTK modality to the owner, and check modality on the EDT
shai-almog 965e2bb
Resolve JavaSE hit tests and editor focus from the canvas's own window
shai-almog e52eef5
Include the work area in the JavaSE monitor fingerprint
shai-almog 47b0a0a
Route window text selection, button commands and emblem geometry corr…
shai-almog 032ac61
Make toolbars, tabs, charts and selection scrolling work in a window
shai-almog bb63690
Keep secondary canvas resizes off the main surface
shai-almog c048191
Add the Mac Catalyst window goldens, and release the editor before te…
shai-almog 6b5b66a
Add the missing licence header to UIManagerLargeTextScaleTest
shai-almog 2b7fa9d
Complete the Mac Catalyst window goldens
shai-almog 5068d80
Keep asking Catalyst for a window's geometry until it lands
shai-almog 1582939
Converge Catalyst window geometry, and demand the size that was asked…
shai-almog 35e4971
Measure Catalyst geometry against the right view, and rebalance the s…
shai-almog 0608d58
Settle Catalyst window geometry before correcting it
shai-almog 5d32086
Merge remote-tracking branch 'origin/master' into feat-desktop-windows
shai-almog 6166944
Update to master, and fix three Catalyst and title defects from review
shai-almog 96e792d
Re-assert a window's size while waiting, and fix three review findings
shai-almog 15e1aa2
Keep a window's title when a toolbar is installed
shai-almog f3d7fad
Stop a dispatched packet's metadata from clobbering what a port stages
shai-almog db9dd19
Carry the Catalyst position flag, persist early moves, freeze at the …
shai-almog 33184bb
Merge remote-tracking branch 'origin/master' into feat-desktop-windows
shai-almog cd34a65
Record real window-test statuses instead of not-run placeholders
shai-almog ffae129
Route pull-to-refresh, list commands and the search bar through the t…
shai-almog 58760b3
Merge remote-tracking branch 'origin/master' into feat-desktop-windows
shai-almog bab62fe
Route toolbar side menus and JavaSE peer hit tests through the owning…
shai-almog 1eac36a
Assert the gesture listener by identity, not by a VM-global count
shai-almog 42688f0
Apply JavaSE window bounds before returning, and identify the canvas'…
shai-almog e5ad1c9
Invalidate the cached monitor when a window is moved
shai-almog e6c6150
Stop swallowing Win32 system keys, report real geometry, filter topol…
shai-almog a23ee14
Show an InteractionDialog on the window that asked for it
shai-almog f7ba295
Snapshot bounds before the peer is destroyed, size side menus to thei…
shai-almog 6aa3338
Open a component popup in that component's window
shai-almog 4c4326c
Keep a minimized window modal, and orient popups by their host
shai-almog bc7db89
Let a Picker work in a window, and inspect the canvas's own top level
shai-almog 6f17f29
Make a picker in a window editable, dismissable and traversable
shai-almog 3357775
Block Catalyst input under a modal, and show validation popups in the…
shai-almog b9fe219
Fix a Catalyst title use-after-free, the pre-scene origin, and emblem…
shai-almog 14becd0
Write the Catalyst pending state under the slot lock
shai-almog d41fb91
Document InteractionDialog as window-aware instead of unsupported
shai-almog 47d0308
Move the new guide snippets into tagged fixtures
shai-almog b45736f
Retain Catalyst scenes across dispatch, and stop leaking the reopened…
shai-almog 684cbc1
Ignore failed monitor samples, and notice windows hidden with their o…
shai-almog b7dd06d
Retain the focus window, and report main-window bounds from every nat…
shai-almog 6268dfe
Read Catalyst geometry on the main queue, and notice Win32 owner-driv…
shai-almog 62273ca
Lock the Catalyst monitor read, and stop chrome changes reporting a m…
shai-almog 10da3fc
Take Catalyst monitor answers on the main queue, and marshal geometry…
shai-almog 0ca7189
Make window visibility non-droppable, and finish two of my own half-f…
shai-almog ae5ec0f
Marshal the location read, recurse the owned tree, traverse within th…
shai-almog 4aa1b63
Stop losing queued resizes, and return a real snapshot from Catalyst …
shai-almog e527a61
Allocate window ids atomically, and correct what the guide promises a…
shai-almog 3528acc
Convert native editor bounds to the owning canvas's scale
shai-almog 029d614
Filter held-input timers by modality, report Catalyst minimize, drop …
shai-almog 3a67e4e
Put Catalyst peers in their own window, and rehome an editor started …
shai-almog f6be48f
Replay Catalyst peers at scene adoption, and scale editors by their w…
shai-almog 261b493
Replace the pending-peer queue, lock the editing slot, filter stale g…
shai-almog dc99f52
Coalesce window resizes, skip lightweight peers, cascade owner visibi…
shai-almog 64dc18f
Keep Catalyst window focus out of the application lifecycle
shai-almog 918c7e0
Keep owner-hidden bookkeeping honest on Catalyst
shai-almog 2e100fe
Keep the main Catalyst scene out of global backgrounding
shai-almog bfd542a
Keep an owned Catalyst window hidden while its owner is away
shai-almog dd8dd6a
Restore a hidden owner instead of leaving its window pending
shai-almog 17885fe
Restore an explicitly hidden owner through its own lifecycle
shai-almog 3806c83
Restore a minimized owner too, and notify owners before descendants
shai-almog fe0f77e
Release a disposed JavaSE window's canvas graphics
shai-almog 7b0c8cc
Clear the iconic state when showing a minimized window
shai-almog 13d803d
Route Windows and Linux peers to their owning window
shai-almog 53a0515
Add the missing copyright headers to two Windows port files
shai-almog c095b39
Drop a Catalyst slot whose scene activation failed
shai-almog 64d6fcf
Guard Catalyst activation failures by generation, and retry on show
shai-almog d239c6d
Release modality when a Catalyst scene activation fails
shai-almog 19d18c5
Blit a JavaSE window's raster with that window's scale
shai-almog afcc487
Reposition the JavaSE editor when its window changes monitor scale
shai-almog 5d39450
Reposition the TextCompatMode editor on a scale change too
shai-almog bb923ec
Make the JavaSE hide synchronous, as show already was
shai-almog 47ea5e7
Clear the Catalyst peer on activation failure, and document ComboBox
shai-almog c9b04d7
Stop built-ins throwing inside a Window, and correct two guide claims
shai-almog 10f2b8b
Separate owner-hidden from minimized on Win32, and serialize the Cata…
shai-almog 197b19b
Don't report a hidden Linux window as shown when its owner de-iconifies
shai-almog 67f11e4
Track a Catalyst scene request from the moment it is made
shai-almog ab36503
Recompute JavaSE peer bounds when the owning scale changes
shai-almog c469048
Give Window the paint guard and elevation redirect Form already had
shai-almog 80f5212
Delegate the rest of the scroll settings to the window's content pane
shai-almog c5ec425
Take the safe area from the enclosing window, not the main surface
shai-almog cd97658
Attach a window's native peers to its layered pane
shai-almog 5126a16
Carry the failed Catalyst request token into Java
shai-almog b6c72e0
Give a window's content pane the Form defaults it was missing
shai-almog 4072c7c
Delegate every content-pane operation a Form delegates
shai-almog 24a28a6
Hold the WebKit view across a reparent, and clear stale JavaSE ownership
shai-almog 2066077
Hold the Linux widget across teardown as well as reparent
shai-almog c401763
Let hosted Linux peers outlive the window that hosted them
shai-almog 29c2864
Detach Windows peers before destroying their host window
shai-almog 7f5a0bf
Drop a wheel gesture whose window was hidden during dispatch
shai-almog 064d672
Take a failed Catalyst owner's windows down with it
shai-almog ade2e25
Match a Catalyst scene to the request that asked for it
shai-almog 6a20198
Release a failed owner's modal children, and park stale Catalyst scenes
shai-almog aedc92e
Re-add a Linux browser whose slot number was reused
shai-almog 0f6bf06
Remove CI artifacts committed by mistake
shai-almog 3098245
Stop the JavaSE monitor poller when the port is torn down
shai-almog d889f6c
Cascade Linux window hides to the windows they own
shai-almog b3ae9f9
Use the lightweight picker inside a window
shai-almog 1219510
Reject a simulator capture whose device screen has not painted
shai-almog 2979f36
Revert the unpainted-screen guard: it broke the Windows tooling run
shai-almog ec71f68
Document every Catalyst system sheet, not just sharing
shai-almog b20ccbd
Keep window lifecycle events out of the lossy native rings
shai-almog 9a06d78
Compare every Monitor property, not just index and bounds
shai-almog d6f6c6e
Make a plain FAB work in a window, as the guide already claimed
shai-almog 1957d05
Repaint every top level when an image finishes decoding
shai-almog 1194190
Emit the Catalyst scene manifest whenever windows are enabled
shai-almog 96181de
Never evict one window's transition to make room for another's
shai-almog 0a8f5c5
Never let a visibility change overwrite a queued close request
shai-almog c3fd7c2
Coalesce onto the newest queued transition, not the first found
shai-almog 143f010
Stop a lifecycle event being dropped when the queue holds only lifecy…
shai-almog 4f869e6
Tell the Linux window manager about visibility the platform changed i…
shai-almog bc98e38
Give windowHideNotify back its documentation
shai-almog aa519fd
Clip a native text editor to its own window, not to the main surface
shai-almog 052aa92
Scope a popup's inferred host, and stop a missing window manager spin…
shai-almog b45b752
Add the CN.isMultiWindowSupported() shorthand the guide already docum…
shai-almog 68e5458
Paint the window background when redrawing it under an overlay
shai-almog 818792b
Keep a key repeat with its original window, and stop restore() revivi…
shai-almog 6b30f2c
Ask for a new window when the platform refuses a window's size
shai-almog c141c0a
Check the values in a custom scene manifest, not just the key names
shai-almog 8d01c0b
Report Hidden from dispose() only when it actually takes a window off…
shai-almog 4536f80
Keep releases and focus changes when the native event queue overflows
shai-almog 019bea3
Never drop the newest protected event, and leave a failed child for i…
shai-almog 92990dc
Read a plist boolean as an element, not as a spelling
shai-almog 459b58c
Deregister a switch animation from the top level that registered it
shai-almog d66b5ad
Add the copyright header SwitchTest was missing
shai-almog fd0f36e
Treat the scene manifest as a declared key, not as any mention of its…
shai-almog 479345a
Skip past a whole comment when reading a plist value, not just its op…
shai-almog 73866aa
Refuse a second main scene off Catalyst, and read the window role pas…
shai-almog 862e4a3
Give up a termination before a lifecycle event when the queue cannot …
shai-almog de7460d
Apply an activation failure in the turn that validated it
shai-almog 4340a81
Filter drag activation for window pointers, and share one live-text p…
shai-almog 4a56c7a
Protect terminations in the framework's queue too, and keep the last …
shai-almog ed147fc
Apply the termination reserve to every path that fills the input stack
shai-almog c8e9004
Arm key timers only for a press that was accepted, and remember Image…
shai-almog 3017bc9
Record the zoom host at every registration, and arm no long press for…
shai-almog 567f037
Capture the registration host for the chart animations, finishing the…
shai-almog 414903a
Simplify the drag threshold's final return for PMD
shai-almog 7df8a63
Bind the scene delegate check to its key, not to where the name appears
shai-almog 84b933c
Bound the window role by a declared key, not by the words SceneSessio…
shai-almog 5eba8f5
Capture the registration host for the toolbar and caret animations
shai-almog a329fee
Parse plist key elements, and let Desktop answer before Display is in…
shai-almog 962db47
Bound a scene role by its own array, not by what the next key is called
shai-almog eb4ca86
Match plist elements rather than literal tags
shai-almog 78e6d90
Coalesce main-surface resizes, start monitor watching after init, cap…
shai-almog 1ad4aca
Ask the manifest's own dictionary, not the whole injected fragment
shai-almog 519efc3
Reuse the spinner animation, and skip commented tags when bounding a …
shai-almog 540a283
Track drag activation per window rather than once for all of them
shai-almog be0898d
Bind a dialog timeout once the host it is shown on is known
shai-almog 7e42e53
Merge remote-tracking branch 'origin/master' into feat-desktop-windows
shai-almog a2f952b
Build the JavaSE window manager once, even under a race
shai-almog 10f6272
Scroll Linux windows with a touchpad, not just a wheel
shai-almog c1e1a76
Honour the outer-bounds contract on Linux and Mac Catalyst
shai-almog 8c852f5
Track the pressed selection per window
shai-almog 1c7a7cd
Capture the real Windows window raster instead of repainting it
shai-almog 1c5ee65
Free the Catalyst window raster instead of waiting for a finalizer
shai-almog 9f01f76
Give back a window's drag slot when it is disposed mid-press
shai-almog d5dc9c1
Match plist container tags structurally when scanning nesting
shai-almog File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.