* feat: Add API for fetching window Z-order
* Addressed PR comments
* Improve X11Window::ZOrder implementation to avoid traversing windows that are not required to compute z-order
* Move zOrder API from Window to IWindowingPlatform
* Revert "Addressed PR comments"
This reverts commit 691541adf6.
* Rename
* Missing methods
* Move GetWindowsZOrder from IWindowingPlatform to IWindowImpl
* Cleanup
* Move SortWindowsByZOrder to Window class as a static method
* Implement zOrder for HeadlessWindowImpl
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Add .NET 8 target to packable projects
* Update test projects
* Update sample projects to target .NET 8
* Update main Avalonia package to target .NET 8 as well
* Remove MSBuildEnableWorkloadResolver hack and some minor change
* Use net8.0 in nuke build as well
* Pin 8.0.0 SDK
* Adjust API validation
* Pin a valid version
* Remove net461 target from Avalonia package
* Remove unused net6.0 target from Avalonia.Designer.HostApp
* Adjust API diff
* Update ControlCatalog.Android.csproj
* Remove MSBuildEnableWorkloadResolver
* Fix Browser issues on .NET 8
* Fix .NET 8 error
* Fix merge conflicts
* Replace explicit TFMs in .csproj files with a centralized registry
* Fix merge conflict
* Fix AvsLegacyWindowsTargetFrameworks and add hacks for the tests
* Update XCode project CommandLineArgument
---------
Co-authored-by: Nikita Tsukanov <keks9n@gmail.com>
* Implement MacOS.IsTemplateIcon attached property on TrayIcon
* Use MacOS.IsTemplateIcon in the ControlCatalog
* Rename MacOS to MacOSProperties
* Extract IsTemplateIcon to ITrayIconWithIsTemplateImpl
* Add an event so that users can detect when an Application icon is clicked.
* refactor to use Lifetime apis.
* use ActivationKind instead of reason to be consistent with other xaml platforms
* implement macos raise url events.
* add docs.
* add apis to programatically Activate and Deactivate the application.
This allows the dock icon to be kept in sync so its menu options there say "Hide" / "Show" correctly.
* fix api naming.
* Add Browser IActivatableApplicationLifetime impl
* Implement IActivatableApplicationLifetime on Android
* Add IActivatableApplicationLifetime iOS implementation
* Adjust android impl a little
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* [Mac] Check for space key when keyDown isn't consumed
* [Mac] Make sure no text input event is send when a modifier is pressed
* [Mac] Refactor keyDown handling
* Move ignoreUserInput
* Handle keyDown for doCommandSelector
* Implement macOS clipboard formats mapping
* Mark DataFormats unstable instead of obsolete (removes warnings in our code base)
* Support non-text data formats in macOS drag source
* Implement SetStrings for IAvnClipboard to support files properly
* Add comments to a confusing part of code
* Update src/Avalonia.Base/Input/DataFormats.cs
---------
Co-authored-by: Jumar Macato <16554748+jmacato@users.noreply.github.com>
Co-authored-by: Dan Walmsley <dan@walms.co.uk>
* Introduce IFilePickerFileTypes to have more control over file types in the native backend
* Update samples page for dialogs
* Rename to IAvnFilePickerFileTypes
* WIP
* Fix disabled popup
* Explicitly dispose AvnString and AvnStringArray + GetNSArrayOfStringsAndRelease
* Fix potential crash
---------
Co-authored-by: Jumar Macato <16554748+jmacato@users.noreply.github.com>
* Physical key handling for Windows
* Physical key handling for macOS
* Physical key handling for X11
* Physical keys: cleanup unused keys
* Key symbols: ensure consistent behavior between platforms
* Fix dead key symbol for Windows
* Physical key handling for browser
* Physical keys: use new overloads where possible
* Key symbol for VNC
* Physical key handling in previewer
* Key symbol for forwarded X11 IME key
* Key symbol for Android
* Obsolete old RawKeyEventArgs ctor
* Fix key symbols for macOS with modifiers
* Adjust PhysicalKey members naming
* Use explicit std::hash for AvnKey/AvnPhysicalKey
Should hopefully satisfy the older compiler on the CI server
* Headless: added KeyPressQwerty
---------
Co-authored-by: Dan Walmsley <dan@walms.co.uk>
Co-authored-by: Steven Kirk <grokys@users.noreply.github.com>
Previously, even though the zoom button was disabled the user could still double-click on the title bar to zoom the window. Prevent that by returning the appropriate value from `NSWindow windowShouldZoom` and move the `CanZoom` logic into a central place for use by this method and `UpdateStyle`.