Steven Kirk
27f103025a
Fix nullable errors.
4 years ago
Steven Kirk
124d318499
Handle unrealized focused element losing focus.
4 years ago
Steven Kirk
9f95bd9156
Recycle elements early when viewport is disjunct.
4 years ago
Steven Kirk
36444706c1
Added a playground page to virtualization demo.
For testing selection, collection changes and scroll into view etc.
4 years ago
Steven Kirk
e1b0d5e137
We can't realize items outside of our bounds.
`EffectiveViewportChanged` can result in a viewport that is larger than the panel bounds in cases where clipping is not enabled on the parent. Constrain the viewport to the size of the panel.
4 years ago
Steven Kirk
5919ca6acc
Modify VirtualizingStackPanel algorithm.
Try to get an "anchor element" during measure, which is an existing element in the viewport that we know the position of. Start realizing elements from this anchor element.
4 years ago
Steven Kirk
bc32c061e8
Added tests to detect scroll jumps.
4 years ago
Steven Kirk
54449850cc
Make thumb drag delta relative to parent.
Prevents the viewport jumping around when scrolling a virtualized list with differing sizes. Instead the thumb jumps around.
4 years ago
Steven Kirk
345fb7e1d6
Register anchor candidate in panel.
We need to register controls as anchor candidates in the panel instead of in `ItemsControl` because the candidate needs to be registered after arrange. Consider this scenario:
- In Measure:
- Container is realized and registered as an anchor candidate
- Container is unrealized and unregistered
- Container is recycled and registered, but it is still placed in the position from before it was recycled
- In Arrange:
- The container is placed in its new position
- The `ScrollContentPresenter` sees it's been moved and adjusts the viewport to anchor it
This is obviously incorrect, but was what was happening when `ItemsControl` was responsible for registering anchor candidates.
Instead of tracking which containers have already been registered, change the list of anchor candidates in `ScrollContentPresenter` to a `HashSet` so we can just register it multiple times.
4 years ago
Steven Kirk
35d70577f4
Added repro for #10367 to virtualization demo.
4 years ago
Steven Kirk
5e961ff7bf
Started rewriting VirtualizationDemo.
To give some more realistic examples of lists to test virtualization on. Started with a chatgpt-generated chat.
4 years ago
Steven Kirk
a08f4ac977
Moved the realized element list outside.
Class was nearly as big as `VirtualizingStackPanel` itself and getting a bit unwieldy.
4 years ago
Steven Kirk
6dc5eddfeb
Fix nullability issues.
4 years ago
Max Katz
2ea7d94ec0
Merge pull request #10816 from robloo/colorpicker-updates-6
ColorPicker Fixes
4 years ago
Max Katz
5225441c02
Merge pull request #10820 from Gillibald/fixes/moreTextProcessingFixes
Fix NRE for AvaloniaNativeTextInputMethod
4 years ago
Max Katz
f08f13e5ce
Merge branch 'master' into colorpicker-updates-6
4 years ago
Max Katz
c42aea87d1
Merge pull request #10822 from AvaloniaUI/fixes/10684-default-value-coerce
Allow coercing default property value.
4 years ago
Max Katz
f64aafede3
Merge pull request #10802 from AvaloniaUI/system_bar_color
Add SystemBarColor Attached Property to TopLevel
4 years ago
Max Katz
269d18e063
Merge pull request #10830 from ltetak/fix_drag_resize
DataGrid column resize near edge fix
4 years ago
Max Katz
daa0e5c7c1
Merge pull request #10832 from AvaloniaUI/fixes/10680-devtools-readonly-properties
DEvTools: bind read-only properties one-way.
4 years ago
Max Katz
e579a56ace
Merge pull request #10840 from Gillibald/fixes/getTextBoundsEndOfParagraph
[Text]Fix GetTextBounds
4 years ago
Max Katz
19f2865afb
Merge branch 'master' into fixes/moreTextProcessingFixes
4 years ago
Max Katz
ef24eb8606
Merge pull request #10824 from Enscape/feature/propertyobservable-convert-func
Added conversion option to `PropertyObservable`
4 years ago
Max Katz
7108484eaf
Merge pull request #10827 from AvaloniaUI/refactor/readonly-itemscontrol-items
Make ItemsControl.Items readonly.
4 years ago
Max Katz
1126361405
Merge pull request #10821 from Gillibald/fixes/selectableTextBlock
Fix SelectableTextBlock selection
4 years ago
Max Katz
3d6dce88e5
Merge pull request #10864 from AvaloniaUI/fixes/10814-dont-layout-invisible-controls
Don't layout invisible controls
4 years ago
Max Katz
293a55d66b
Merge pull request #10833 from AvaloniaUI/scrollviewer_sample
Merge scroll viewer samples
4 years ago
Max Katz
870ffbd13d
Merge branch 'master' into fixes/selectableTextBlock
4 years ago
Steven Kirk
6dd9106fe5
Don't layout invisible controls.
And fix unit tests that were relying on this behavior.
4 years ago
Steven Kirk
44639fbd65
Added failing layout test.
4 years ago
Max Katz
8d8b84d2ef
Merge pull request #10860 from AvaloniaUI/fixes/glyphruntests-leak
Stop GlyphRunTests leaking IPlatformRenderInterface.
4 years ago
Max Katz
88b3eaf562
Merge branch 'master' into fixes/glyphruntests-leak
4 years ago
Max Katz
0e24c1062c
Merge pull request #10842 from AvaloniaUI/fixes/do-not-use-ui-thread-objects-in-platform-render-interface
Don't use AvaloniaObject in IPlatformRenderInterface
4 years ago
Max Katz
afede23e75
Merge pull request #10858 from AvaloniaUI/fixes/inherited-property-change
Fix inherited property change notifications.
4 years ago
Steven Kirk
a28483252b
Make MaskedTextBox tests pass again.
They need a registered `IPlatformRenderInterface` and were only passing because `GlyphRunTests` was leaking one.
4 years ago
Steven Kirk
668fa942b7
Don't leak IPlatformRenderInterface.
4 years ago
Steven Kirk
683afe6e9f
Use correct newValue on inherited property change.
- `oldValue` was misnamed - it's the new value
- We calculated the new value and then didn't pass it to children for their property changed events: they were using the default value which may be wrong if the value is set further up the tree
4 years ago
Steven Kirk
cd5307aa8c
Added failing test.
4 years ago
Max Katz
9a4d1d2c09
Merge branch 'master' into fixes/do-not-use-ui-thread-objects-in-platform-render-interface
4 years ago
Tim
def3b74217
Merge branch 'master' into fixes/selectableTextBlock
4 years ago
Max Katz
660033c770
Merge pull request #10836 from AvaloniaUI/fixes/10626-menuitem-headertemplate
Make data templates work again with MenuItem.
4 years ago
Max Katz
e2534938a7
Merge branch 'master' into fixes/do-not-use-ui-thread-objects-in-platform-render-interface
4 years ago
Emmanuel Hansen
904be53ffa
merge scroll viewer samples
4 years ago
Nikita Tsukanov
6dfc2cadf4
Merge pull request #10826 from affederaffe/bump-tmds.dbus.sourcegenerator
Bump Tmds.DBus.SourceGenerator
4 years ago
Nikita Tsukanov
95121725bf
Merge branch 'master' into fixes/do-not-use-ui-thread-objects-in-platform-render-interface
4 years ago
Nikita Tsukanov
312f1250e2
Don't use AvaloniaObject in IPlatformRenderInterface
4 years ago
Benedikt Stebner
f432d6f0a9
Fix GetTextBounds for combinations of EndOfParargrap and embedded RTL text
4 years ago
affederaffe
6506049076
Merge branch 'master' into bump-tmds.dbus.sourcegenerator
4 years ago
Steven Kirk
3ecbb895d1
Merge pull request #10834 from Gillibald/imeFixes
[Windows ]Only bypass WM_CHAR if previous composition is not empty
4 years ago
Steven Kirk
b7a249107b
Make data templates work again with MenuItem.
- `MenuItem` is a `HeaderedSelectingItemsControl` not a `HeaderedItemsControl` so need to separate logic for that case when preparing items
- Added `HeaderTemplate` to `HeaderedSelectingItemsControl `
- Tweaked logic for selecting header templates: parent's `ItemTemplate` should be used if set (cross-checked with WPF)
- Update menu templates to bind to menu item's `HeaderTemplate`
Fixes #10626
Fixes #10718
4 years ago