Steven Kirk
d5fc004df0
Prevent reentrancy in ExecuteInitialLayoutPass.
Fixes #3550 .
6 years ago
Dariusz Komosinski
5ee8b01808
Fix typo.
6 years ago
Dariusz Komosinski
2b05319b6b
Remove unnecessary allocations from the layout loop.
6 years ago
Dariusz Komosinski
5814bd7163
Remove direct logging functions.
7 years ago
Dariusz Komosinski
01a404836e
Reduce allocations caused by logging.
7 years ago
Andrey Kunchev
6d7d051f3e
extract layoutqueue to separate file
7 years ago
Andrey Kunchev
b97b3c5935
make internal stored Info a strcut to optimize memory (pr note)
7 years ago
Andrey Kunchev
8c07461323
LayoutManager InfinityLoop protection and safety improvements
7 years ago
Miha Markič
0a38876590
Spellchecks all projects except for Base, Controls, Samples and Testing
8 years ago
Steven Kirk
64ed0761c7
Rename Dispatcher invoke methods.
`InvokeAsync` -> `Post`
`InvokeTaskAsync` -> `InvokeAsync`
8 years ago
Nikita Tsukanov
70c24908a9
Various fixes for GTK and DeferredRenderer support
9 years ago
Dan Walmsley
71dff48a7a
add fix for null reference exception when arranging.
added comments explaining the conditions that the bug occurs in.
(cherry picked from commit fa1f5bc8f9 )
9 years ago
Nikita Tsukanov
abf866cf61
Fixes to get it working again after merge
9 years ago
Steven Kirk
ab30fd343b
Handle no previous measure/arrange.
This shouldn't happen, but if it does, don't crash.
9 years ago
Steven Kirk
40c342989b
Assert control invalidation behavior.
Controls not attached to the visual tree should not notify the `LayoutManager` that they have had their layout invalidated. Similarly when added to the visual tree their parents and themselves should have their layout invalidated.
9 years ago
Steven Kirk
18f9e2840d
Explain the algoithm a bit.
9 years ago
Steven Kirk
a1d46a7784
Use a stack instead of HashSet.
Controls that are already invalid will not invalidate themselves again to with the `LayoutManager`, so we don't need to worry about duplicates.
9 years ago
Steven Kirk
f97ebe961b
Fixed some stupid mistakes in algorithm.
9 years ago
Steven Kirk
ac3ca7ca29
Make LayoutManager pass new tests.
9 years ago
Nikita Tsukanov
09c9d7b7d5
Layout integration seems to be working now
9 years ago
Nikita Tsukanov
00fbc5cea7
Use (0, 0) as default for non-existing PreviousMeasure
9 years ago
Nikita Tsukanov
eb6bfd3de8
Moved layout manager from service locator to ILayoutRoot
9 years ago
Steven Kirk
7067fa0146
Cross-axis scrolling for virtualized lists.
There are still a few bugs around scrollbar behavior, and maybe Grid. To
see them, add a long item in the middle of VirtualizationTest's items,
resize the window to require a scrollbar and scroll up and down.
10 years ago
Steven Kirk
8ed3a7bc7c
Fix copy/paste error in LayoutManager.
Fixes test previously added.
10 years ago
Steven Kirk
8e6976a0da
Tweak measure/arrange algorithm.
To ensure that parent controls are measured/arranged before children.
10 years ago
Steven Kirk
5be41985c3
Renamed Perspex -> Avalonia
10 years ago
Steven Kirk
ea6b1d4cfd
Starting removing hard dependency on Serilog.
Instead log through a static Logger, and provide a Serilog consumer for
this.
10 years ago
Michael Mayfield
645d76c725
Improve rendering when resizing
10 years ago
Steven Kirk
5489487131
Make LayoutManager global.
Also made a few other changes along the way:
- Add MaxClientSize to ILayoutRoot
- Store IRenderRoot in Visual and use that to calculate
IsAttachedToVisualTree
- Make Affects* methods take multiple properties
10 years ago
Steven Kirk
b310ead6a1
Removed 'distance' argument to LayoutManager.
No longer needed.
10 years ago
Steven Kirk
0e2cee8810
Overhauled layout system.
From lessons learnt from porting moonlight's Grid tests. Instead of
making a child invalidate its parents directly, send a message from the
child to the parent when its DesiredSize changes. LayoutManager also
needed rewriting to allow this.
10 years ago
Steven Kirk
4fa3c98ca3
Detach styles when control removed from visual tree.
10 years ago
Steven Kirk
b72f08354a
Handle detached controls in layout pass.
Controls can still be queued for layout after they've been removed from
the visual tree.
11 years ago
Steven Kirk
1b745ab62c
Removed NGenerics.
Closes #7 .
11 years ago
Nikita Tsukanov
3cd3579475
"field can be readonly"
11 years ago
Nikita Tsukanov
01e2c90bc5
Removed this.
11 years ago
Steven Kirk
145411020b
Ran .net core code formatter.
11 years ago
Steven Kirk
6151aef188
Removed file headers.
11 years ago
Steven Kirk
6167bacf54
Moved to more standard filesystem layout.
Based on https://gist.github.com/davidfowl/ed7564297c61fe9ab814 and https://github.com/fsprojects/ProjectScaffold
11 years ago
Steven Kirk
09e581abc9
Documentation.
11 years ago
Steven Kirk
aa147f0423
More stylecoping.
11 years ago
Steven Kirk
2763e59adb
Use serilog for logging.
11 years ago
Steven Kirk
deba950eb2
Make sure a render takes place after layout.
11 years ago
Steven Kirk
a267e1c070
DesiredSize doesn't need to be null.
11 years ago
Steven Kirk
3ef01d954d
Don't perform layout on removed controls.
Ensure the control is still a member of the visual tree before
attempting to measure/arrange it.
11 years ago
Steven Kirk
2084edafb4
Fix dev tools hack.
This fixes the problem hacked around in
41fe7e28aa . In the end the problem wasn't
ScrollViewer, it was that the correct size wasn't being passed to
Window.Arrange.
11 years ago
Steven Kirk
06bf45ace3
Initial implementation of dropdown.
The popup appears in the wrong place, has placeholder content and steals
the main window focus, but it appears!
11 years ago
Steven Kirk
9a994e582c
Moved VisualTree extensions into own namespace.
So that they don't pollute the whole Perspex namespace - you now need to
"opt-in" to the visual tree.
11 years ago
Steven Kirk
462d40156a
Fix another problem in layout.
If an arrange pass causes measure invalidate, exit the arrange pass and
re-run the measure pass.
11 years ago
Steven Kirk
43e1e3c168
Fixed final layout problem i'm aware of.
(Currently!)
11 years ago