Commit Graph

19 Commits

Author SHA1 Message Date
Evan Simkowitz
eea57af80b
Fix Cmd-W to close focused node (#273)
Fixes the in-memory focused node stack so it can be used to find the currently-focused node. This is necessary for `closeFocusedNode` to work.  Also fixes `validateFocusedNode` so it will set the first node to be focused if no focused node is available. Also cleans up leafOrder update pattern.
2024-08-26 12:32:28 -07:00
Evan Simkowitz
164afeeb66
Unified node model to pass data from layout to blocks (#259)
This adds a new NodeModel, which can be passed from the TileLayout to
contained blocks. It contains all the layout data that the block should
care about, including focus status, whether a drag operation is
underway, whether the node is magnified, etc.

This also adds a focus stack for the layout, which will let the focus
switch to the last-focused node when the currently-focused one is
closed.

This also addresses a regression in the resize handles that caused them
to be offset from the cursor when dragged.

---------

Co-authored-by: sawka <mike.sawka@gmail.com>
2024-08-26 11:56:00 -07:00
Evan Simkowitz
d5140129cd
Fix block numbering and switching with arrow keys (#258) 2024-08-21 17:43:11 -07:00
Evan Simkowitz
23261a7a98
Add flag for specifying a new node as magnified on insert (#253) 2024-08-20 20:14:14 -07:00
Evan Simkowitz
bd4bf93d4a
Update copyright indicators on a bunch of files (#255) 2024-08-20 17:01:29 -07:00
Evan Simkowitz
319d84d0b5
remove layout Dimensions declaration in favor of global 2024-08-19 14:33:44 -07:00
Evan Simkowitz
6df50a5790
use one multiply instead of two divide for minnodesize calc 2024-08-17 00:15:03 -07:00
Evan Simkowitz
c8d32c1668
set min resize size for nodes 2024-08-17 00:13:55 -07:00
Evan Simkowitz
7a1a3a2bea
fix addl props nullref 2024-08-16 17:59:53 -07:00
Evan Simkowitz
d73bcb82ea
fix last-magnified node logic 2024-08-16 12:21:44 -07:00
Evan Simkowitz
b0a09db4d1
Fix Cmd:W to delete block (#238) 2024-08-16 11:40:10 -07:00
Evan Simkowitz
c187059c8f
Fix flicker when dragging a node through a node gap (#231)
This simplifies the rect calculations by making the gap between pixels
into a padding applied directly to the leaf nodes. This means the gaps
won't be present in the overlay layer, so when dragging a node around it
is always over an OverlayNode and the pendingAction won't be unset.

Also simplifies onDrop handling
2024-08-15 14:53:13 -07:00
Evan Simkowitz
9fa11ff838
Fix tab switching issues with layout model (#230) 2024-08-15 13:45:45 -07:00
Evan Simkowitz
fc7bb7eaca
Clean up and document the layout model code (#229) 2024-08-15 12:24:06 -07:00
Evan Simkowitz
3c9b3423a9
update type defs 2024-08-14 19:43:25 -07:00
Evan Simkowitz
15cd0b2477
fix resize handle drag offset 2024-08-14 19:37:47 -07:00
Evan Simkowitz
a95f60469a
rename vars 2024-08-14 19:27:32 -07:00
Evan Simkowitz
fb1c3ac85f
update var name 2024-08-14 19:09:22 -07:00
Evan Simkowitz
e85b0d205e
New layout model (#210)
This PR is a large refactoring of the layout code to move as much of the
layout state logic as possible into a unified model class, with atoms
and derived atoms to notify the display logic of changes. It also fixes
some latent bugs in the node resize code, significantly speeds up
response times for resizing and dragging, and sets us up to fully
replace the React-DnD library in the future.
2024-08-14 18:40:41 -07:00