Platform Wranglers Meeting Notes: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Created page with "== 2023 == === 13. September 2023 === * Introductions * Ways of working * Roundtable ** New versions/changes in the underlying platform? ** Current focus areas ** Known prob...")
 
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== 2023 ==
== Agenda ==
*Roundtable
**New versions/changes in the underlying platform?
**Current focus areas
**Known problem areas
**Features on the horizon
*Topics
**


=== 13. September 2023 ===
== 2024 ==


* Introductions
=== 21. November ===
* Ways of working
* Roundtable
* Roundtable
** New versions/changes in the underlying platform?
** Windows
** Current focus areas
*** Window decoration work finalized
** Known problem areas
*** ARM64EC
** Features on the horizon
**** Discussing how to use without marking every signal
** WASM
*** 64-bit support getting standardized
*** JSPI now has implementation in Firefox
** macOS/iOS
*** Support policy update
** Android
*** Android 15 passing in CI
*** Enabling NDK 27
** Wayland
*** Implemented frame-perfect resizing
*** Color management is being standardized
*** Session management
* Wheel events
** Teach X11 to not propagate bad pixel deltas
** Teach Qt to use pixel deltas more
 
=== 24. October 2024 ===
 
* Roundtable
** Windows
*** AppSDK not needed in Qt yet, but can be added to user projects
** Android
*** Jenny code generator making good progress
*** Android 15 almost significant in CI
*** Hardening for NPEs
*** Considering Gradle as a Qt build time dependency
** WAMS
*** Stablizing CI, using known good Chrome
*** Continued work on Asyncify2
*** Continued work on dynamic linking
** macOS
*** macOS 15 almost stable in CI
*** Continued work on AI integration for IM
** Wayland
*** Color space patch ready for review
* Topics
** Synchronous delivery
** QPlatformWindow::isActive()
 
=== 12. September 2024 ===
 
* Roundtable
** WASM
*** 6.8 doc updates
*** 6.9 continued work on dynamic linking, asynicfy
** Android
*** 6.8
**** Qt content ready
**** Last minute fixes to Android Studio plugin
**** Missing docs for Android classes
***** Working on tool generating Qt doc for Java classes
*** 6.9
**** Adopting Jenny code generator
**** Android 15 support
** macOS/iOS
*** 6.8 content ready
**** Missing docs
**** Working on getting macOS 15 into CI
** X11
*** 6.8 Content ready
**** Problems with CI
* Topic
** Provisioning cleanup
*** Deduplicating provisioning logic
 
=== 8. August 2024 ===
 
* Roundtable
** Windows
*** 6.8 looking good
*** ARM64EC still no progress
*** 6.9 features: customizable title bar
**** Might require MS App SDK (needed for other things)
** Android
*** Getting QML embedding for Java ready for release
*** 6.9: Aim to get support for Android 15 / NDK 27
**** Might also get backport to earlier Qt versions
***** (bigger discussion)
** macOS
*** Prepared to launch 6.8.0 with support for macOS 15
*** Investigating AI integration (Writing Tools, Genmoji)
** iOS
*** Prepared to launch 6.8.0 with support for macOS 18
*** Investigating AI integration (Writing Tools, Genmoji)
** Wayland
*** 6.8 good to go
*** Work going on in Wayland on HDR and color spaces
*** Improving subwindow support
 
=== 13. June 2024 ===
 
* Roundtable
** WASM
*** Improvements to 64-bit builds (Chrome only so far) (https://webassembly.org/features/)
** Android
*** Bumped minimum version to Android 9
*** Some improvements to QML embedding via Gradle plugin
*** Moving Android builds on macOS to ARM, possible Android ARM testing as well
** iOS
*** iOS 18 beta released
*** Device control for iOS devices improvement in Xcode 16
** macOS
*** macOS 15 beta released, tested and working well. Next step CI
*** New features related to generative emojis and AI text tooling, via IM
** Windows
*** Frameless window improvements in review
*** ARM64 EC, function pointer address is broken
*** Modernizing backends for Bluetooth
*** Removed legacy mouse handling
** X11
*** No updates
** Wayland
*** Web engine issue with DPR picked up from screen instead of window
* Topics
** Toolchain upgrades for older branches
*** All platforms have "frozen" toolchains per release
** Platform testing
*** Need system level integration to e.g. test Aero snapping on Windows
*** WASM and KDE uses selenium
 
=== 16. April 2024 ===
 
* Roundtable
** WASM
*** About to upgrade Emscripten SDK
**** Comes with fix for not exporting everything to JS from dynamic libraries
*** Continued work on dynamic linking, including Qt Quick (QML plugins)
*** Investigating local file access APIs
**** File engine backend, might be opportunities for co-work with iOS work for sandboxed apps down the line
** Android
*** Raising minimum version to Android 9
*** Still work ongoing for QML embedding into Android apps
*** Java/C++ code generator might not make it for 6.8
** Windows
*** Keeping an eye on what's happening on Windows on ARM
*** Investigating compile time solution for mixing arm64 and x86_64 (ARM64EC)
** macOS
*** Continued move to Tart VMs
*** Resize patch, possible input to other platforms
*** WWDC in June for new versions
** iOS
*** Window management improvements
*** Still investigating full top level window support
** visionOS
*** Support for the platform in dev as tech preview, including immersive spaces
** Wayland
*** Lots of work going on upstream on input methods
**** AP: Need to discuss how this matches Qt's expectations
*** Investigating synchronous expose
*** Investigating resizing issues
** X11
*** Ubuntu 22.04 in CI now (ARM only, x86_64 still needs work)
* PM update
** rPI 5 new reference platform
** Ubuntu 24.04 and Debian 12
** "Supported" platform brainstorming
** Cycber security act
* Topics
** Safe area margins https://bugreports.qt.io/browse/QTBUG-125345
 
=== 11. April 2024 ===
 
* Roundtable
** WASM
*** Adding Qt positioning and sensors backend
** Windows
*** Working on bordered window fixes
*** 6.8: Discussions around MSCS2019. First 20222
*** Looking into CI for Windows on ARM
** X11
*** Support for GCC12
*** Working on upgrading our distros in CI
** macOS
*** Pushing minimum versions
** iOS
*** Pushing minimum versions
*** Modernizing window management
** Android
*** Bumping to Android 10 for 6.8
*** QML embedding APIs released, with Android studio plugin
*** Planning C++->java codegen
** Wayland
*** No major changes upstream
*** 6.8:
**** Refactoring winID
* Other topics
** Screen rotation
*** Qt 5 -> Qt6 bahvior change in QScreen::orientation()
** Fancy window backgrounds
*** https://bugreports.qt.io/browse/QTBUG-124282
 
=== 14. March 2024 ===
 
* Roundtable
** WASM
*** Dynamic linking main priority going forward
*** Investigating differences between WebGL and OpenGL
** Android
*** QML embedding content in place
** macOS
*** Updating support for macOS 14 / Xcode 15 in stable branches
*** Improving testing via Tart VMs
** iOS
*** Updating support for iOS 17 / Xcode 15 in stable branches
** X11
*** Investigating build issues on Linux ARM
**** https://bugreports.qt.io/browse/QTBUG-123153
** Wayland
*** Some issues in input methods
*** Next KDE 6.1 likely use 6.7
** Windows
*** Adding support for manifest files
* Other topics
** Platform support granularity discussion
*** https://codereview.qt-project.org/c/qt/qtdoc/+/542499
 
=== 8. February 2024 ===
 
* Roundtable
** WASM
*** Working on upgrading emscripten SDK for 6.7
*** Investigating how to handle older hardware without good WebGL support
** Android
*** Embedding of Qt into native apps landed (mostly)
*** Bumping Android 6 to 8 in dev
** macOS
*** Bumping minimum to 12 or 13 for dev
** iOS
*** Workarounds for iOS 17 in creator taking shape
*** Started investigating improved window management
** X11
*** Investigating updating CI distributions we use to test
** Wayland
*** New protocol in work for modal windows, matches Qt
*** GTK rewriting their a11y on top of AccessKit or using similar protocol
**** https://gnome.pages.gitlab.gnome.org/at-spi2-core/devel-docs/new-protocol.html
*** Might require changes on the Qt side if AT-SPI is no longer an option
* Topics
** AccessKit
*** Cross platform a11y layer with backends for AT-SPI/Cocoa/Windows
*** Potential replacement for our custom a11y backends on each platform
*** Missing backends for iOS/Android/Web
 
=== 11. January 2024 ===
 
* Roundtable
** WASM
*** Considering using C++ coruitines for the internal plumbing
** Windows
*** Considering moving off COM and using winrt for plumbing
** XCB
*** Plan to statically link in xcb-cursor into Qt to solve deployment issues
** Wayland
*** Some work on client side decorations and possible generic solution
*** Might need new QWSI API for updating cursor position after move
** Android
*** NDK 26 in Qt 6.7
*** Working on QML in native Android apps
*** Considering bumping minimum version from Android 8 to 10
** macOS
*** Work on improving save dialogs
*** Might support making child windows fullscreen (videos e.g.)
** iOS
*** iOS 17 devices supported in 6.7, but workarounds for Qt Creator
* KDE
** RC1 out
** Testing building for WASM, everything was very easy, good experience!
 
==2023==
 
=== 21. December 2023 ===
*Roundtable
**New versions/changes in the underlying platform?
***macOS, iOS:
****nothing new
****continued collaboration with Apple
***Windows:
****nothing new
****maybe win12 next year, we should be prepared
*****Out of the box experience with Qt apps
*****Features that can/should be supported
***x11:
****Customer bug about menu handling
****Mouse grabbing behavior different across platforms
*****might need some coordination
***Wayland:
****Not much activity upstream
****One big issue in 6.7 (application crash)
*****Fix is available, but needs help to make it through CI
***Android
****Problems getting the latest NDK into qt5.git
*****Feature freeze exception
*****"Getting there"
****Android code generator work
****CI fixes for Androidtestrunner
*Topics
 
=== 16. November 2023 ===
 
* Roundtable
** Windows
*** Trying to get ARM VMs for our CI
*** Windows 12 on the horizon, no details yet, but no likely major changes
*** Finishing up Windows 11 style
*** Improvements to high-DPI
** X11
*** Gnome and KDE moving to Wayland
** WASM
*** Updating to WebGL 2 (GLES 3)
** Android
*** Android 14 in CI, now supported for 6.7
*** Some issues with emulator in CI
*** QPA refactoring making good progress
*** Child window support in review
*** JNI improvements by Volker merged
** macOS
*** macOS 14 significant in CI now
** iOS
*** iOS 17 issues due to libmobiledevice no longer being supported
** Wayland
*** Discussion around behavior when window minimum size is larger than available  size (tiling window manager e.g.)
**** Killing app in response is not a good behavior
* Topics
* Topics
** Keyboard input and shortcut handling
** Window states for child windows
** Custom window decorations
*** Always use NoWindowState
** Internal platform window handle changes
*** Only on XCB, exposed as winId
*** on macOS and Wayland, changes, but not exposed as winId
** Synchronous mouse/touch
*** Many platforms already do this
 
===12. October 2023===
 
*Roundtable
** X11
*** Looking into a11y improvements
**** Object creation and destruction not supported in Qt
***** Needed for testing tools. Unclear if Squish needs it
** Android
*** Android 14 released
**** Problems getting into CI
*** QPA refactoring getting into shape
*** Improvements to JNI APIs
** macOS
*** Sonoma (macOS 14) released
*** Problems with Xcode 15's new linker not providing default linker paths
**** Breaks qmake in all Qt versions. Patch submitted.
** iOS
*** iOS 17 released
*** New protocol for device management (deploying, running)
**** Breaks Qt Creator integration.
** Wayland
*** New discussions about windows being able to absolutely position
**** Clients want positioning, compositors don’t
*** XDG session, tying window to tag/id for restoring
**** Not clear if useful as cross platform API, but can be QWaylandWindow API
*** Synchronizing window flushes during resizing
**** Similar issues on other platforms
**** Need to figure out which parts are Wayland quirks and which parts are Qt
*** Window capturing is actually possible on Wayland via pipewire
** WASM
*** 64 bit mode getting traction and fixes
*** Improvements to locale integration
*Topics
** Version support
*** Android range of versions, testing min and max
*** macOS, support 3-4 latest version, test full range in CI
*** WASM, latest browser needed.
**** Runtime check features between browsers
**** EM SDK locked per Qt release
*** Wayland
**** Every protocol individually versioned
**** Supporting both desktop compositors and embedded compositors
***** Mutter, Plasma, Qt Compositor
*** X11
**** Rely on XCB
***** Must verify that distros have any new XCB libraries we depend on
** Application startup / lifecycle
*** Event loop might already be running
**** WASM
**** iOS
**** Plugins
*** Need some kind of callback based API
**** One for startup
**** One for shutdown
*** Should QApp be created automatically for the user?
*** Can no longer create windows and other things on the stack
*** If we move to a new paradigm it should replace the main one
**** Ie the user shouldn’t need to provide both
*** Requires updating of QtC templates, examples, etc
*** Effort should be compared against fixing the main case for the platforms where this is an issue
**** E.g. running main on secondary thread on WASM
 
===13. September 2023===
 
*Introductions
**Tor Arne - macOS,iOS,QPA
**Morten - WASM
**Oliver - Windows
**Liang - X11
**Assam - Android
**David - Wayand
*Ways of working
**Monthly meeting
**Desktop/mobile platforms
*Roundtable
**iOS
***iOS 17 end of September
****Things mostly work as before
***Moving to FFMpeg for Qt Multimedia
***Technical debt in window management, modern iOS has more advanced window/screen management
***Exposing safe area margins properly as public Qt Quick API (anchors, etc)
**macOS
***macOS Sonoma end of September
****No major changes, doing nightly builds, weeding out issues
****One regression in Xcode 15, causing build failures with qmake
*****https://codereview.qt-project.org/c/qt/qtbase/+/503172
***Key/text input, complex text, shortcut handling
***Modern window look, blurred/effect windows, etc
**WASM
***Emscripten is the SDK
****Follows Chrome release model (4-6 weeks)
****No versions are “more stable” than others
****Upgrade close to feature freeze to get latest fixes
***32-bit platform (one of our few)
***Has a no-thread build option
***Uses static linking
***WASM64 is coming, looking at that
***Dynamic linking is in the works
***Major challenge is web platform is async, but Qt expects synchronous APIs
***Complex text difficult
***Accessibility difficult
**X11
***Not much underlying changes on X11
****Ubuntu 22.04 in CI
****Updating RedHat and OpenSuse
***Increased requests for more XDG support
****Use XDG services more, file dialogs, drag and drop, etc
****Harald Sitter (?) knows about KDE drag and drop
**Windows
***New OS updates every 6 months
****But usually no new major features
****CI updates, doesn’t change much
***Focus areas
****Finalising Windows 11 style for widgets
****Modern look of apps
*****Window decorations
****Windows on ARM
***Problem areas
****Windows on ARM, hard to virtualise in CI
**Android
***Android 14 coming up
****Been tested in CI
****Some new permissions we need to deal with
*****Storage permissions deprecated
***Bumped minimum from Android 6 to Android 8
***Focus areas
****Safe area margins for short edges
****Refactoring QPA plugin
*****Modernize
*****Remove layers
*****Make more maintainable
****Generator for JNI APIs
*****Making it easier to invoke Android APIs
**Wayland
***A set of generated wire protocols
****Some core protocols, fairly stable, can be expected everywhere (all compositors/servers)
****Standard body maintains additional extension protocols
*****Some more essential, eg XDG shell
*****Some more esoteric, for car manufacturers etc
***Some DEs use Wayland nowadays, but also with XWayland for X11 support
****Gnome
****Plasma (KDE), switching soon
***Deadline for Qt adopting a protocol is in practice when a big bistro adopts a DE version that has support for the protocol
***Focus areas
****Fractional scaling
****Support for clients outliving crashing compositors
****Support for minimised windows
***Problem areas
****Popups
*****Windows don’t know their own screen positions
*****Can not control screen positions
*****Popups need to declare intent about where to be placed
*****Possible solutions
******Turn window geometry into hints to Wayland
******Expose placement-intent-based API as public Qt API
*******https://codereview.qt-project.org/c/qt/qtbase/+/491545
****Qt Quick threaded render out of sync with window resize
*****Needs graphics team attention
****QWindow setGeometry not emitting geometryChanged
*****We wait until GeometryChangeEvent
****QWidget updates not going through QWindow::requestUpdate
*Topics
**Keyboard input and shortcut handling
***Investigated at https://bugreports.qt.io/browse/QTBUG-116873
**Custom window decorations
***Frameless windows on Windows not usable for the use-cases people have
****Need to figure out if it's a Windows bug fix, or a missing feature in QWindow
****Olli to write up summary in JIRA task

Latest revision as of 10:43, 21 November 2024

Agenda

  • Roundtable
    • New versions/changes in the underlying platform?
    • Current focus areas
    • Known problem areas
    • Features on the horizon
  • Topics

2024

21. November

  • Roundtable
    • Windows
      • Window decoration work finalized
      • ARM64EC
        • Discussing how to use without marking every signal
    • WASM
      • 64-bit support getting standardized
      • JSPI now has implementation in Firefox
    • macOS/iOS
      • Support policy update
    • Android
      • Android 15 passing in CI
      • Enabling NDK 27
    • Wayland
      • Implemented frame-perfect resizing
      • Color management is being standardized
      • Session management
  • Wheel events
    • Teach X11 to not propagate bad pixel deltas
    • Teach Qt to use pixel deltas more

24. October 2024

  • Roundtable
    • Windows
      • AppSDK not needed in Qt yet, but can be added to user projects
    • Android
      • Jenny code generator making good progress
      • Android 15 almost significant in CI
      • Hardening for NPEs
      • Considering Gradle as a Qt build time dependency
    • WAMS
      • Stablizing CI, using known good Chrome
      • Continued work on Asyncify2
      • Continued work on dynamic linking
    • macOS
      • macOS 15 almost stable in CI
      • Continued work on AI integration for IM
    • Wayland
      • Color space patch ready for review
  • Topics
    • Synchronous delivery
    • QPlatformWindow::isActive()

12. September 2024

  • Roundtable
    • WASM
      • 6.8 doc updates
      • 6.9 continued work on dynamic linking, asynicfy
    • Android
      • 6.8
        • Qt content ready
        • Last minute fixes to Android Studio plugin
        • Missing docs for Android classes
          • Working on tool generating Qt doc for Java classes
      • 6.9
        • Adopting Jenny code generator
        • Android 15 support
    • macOS/iOS
      • 6.8 content ready
        • Missing docs
        • Working on getting macOS 15 into CI
    • X11
      • 6.8 Content ready
        • Problems with CI
  • Topic
    • Provisioning cleanup
      • Deduplicating provisioning logic

8. August 2024

  • Roundtable
    • Windows
      • 6.8 looking good
      • ARM64EC still no progress
      • 6.9 features: customizable title bar
        • Might require MS App SDK (needed for other things)
    • Android
      • Getting QML embedding for Java ready for release
      • 6.9: Aim to get support for Android 15 / NDK 27
        • Might also get backport to earlier Qt versions
          • (bigger discussion)
    • macOS
      • Prepared to launch 6.8.0 with support for macOS 15
      • Investigating AI integration (Writing Tools, Genmoji)
    • iOS
      • Prepared to launch 6.8.0 with support for macOS 18
      • Investigating AI integration (Writing Tools, Genmoji)
    • Wayland
      • 6.8 good to go
      • Work going on in Wayland on HDR and color spaces
      • Improving subwindow support

13. June 2024

  • Roundtable
    • WASM
    • Android
      • Bumped minimum version to Android 9
      • Some improvements to QML embedding via Gradle plugin
      • Moving Android builds on macOS to ARM, possible Android ARM testing as well
    • iOS
      • iOS 18 beta released
      • Device control for iOS devices improvement in Xcode 16
    • macOS
      • macOS 15 beta released, tested and working well. Next step CI
      • New features related to generative emojis and AI text tooling, via IM
    • Windows
      • Frameless window improvements in review
      • ARM64 EC, function pointer address is broken
      • Modernizing backends for Bluetooth
      • Removed legacy mouse handling
    • X11
      • No updates
    • Wayland
      • Web engine issue with DPR picked up from screen instead of window
  • Topics
    • Toolchain upgrades for older branches
      • All platforms have "frozen" toolchains per release
    • Platform testing
      • Need system level integration to e.g. test Aero snapping on Windows
      • WASM and KDE uses selenium

16. April 2024

  • Roundtable
    • WASM
      • About to upgrade Emscripten SDK
        • Comes with fix for not exporting everything to JS from dynamic libraries
      • Continued work on dynamic linking, including Qt Quick (QML plugins)
      • Investigating local file access APIs
        • File engine backend, might be opportunities for co-work with iOS work for sandboxed apps down the line
    • Android
      • Raising minimum version to Android 9
      • Still work ongoing for QML embedding into Android apps
      • Java/C++ code generator might not make it for 6.8
    • Windows
      • Keeping an eye on what's happening on Windows on ARM
      • Investigating compile time solution for mixing arm64 and x86_64 (ARM64EC)
    • macOS
      • Continued move to Tart VMs
      • Resize patch, possible input to other platforms
      • WWDC in June for new versions
    • iOS
      • Window management improvements
      • Still investigating full top level window support
    • visionOS
      • Support for the platform in dev as tech preview, including immersive spaces
    • Wayland
      • Lots of work going on upstream on input methods
        • AP: Need to discuss how this matches Qt's expectations
      • Investigating synchronous expose
      • Investigating resizing issues
    • X11
      • Ubuntu 22.04 in CI now (ARM only, x86_64 still needs work)
  • PM update
    • rPI 5 new reference platform
    • Ubuntu 24.04 and Debian 12
    • "Supported" platform brainstorming
    • Cycber security act
  • Topics

11. April 2024

  • Roundtable
    • WASM
      • Adding Qt positioning and sensors backend
    • Windows
      • Working on bordered window fixes
      • 6.8: Discussions around MSCS2019. First 20222
      • Looking into CI for Windows on ARM
    • X11
      • Support for GCC12
      • Working on upgrading our distros in CI
    • macOS
      • Pushing minimum versions
    • iOS
      • Pushing minimum versions
      • Modernizing window management
    • Android
      • Bumping to Android 10 for 6.8
      • QML embedding APIs released, with Android studio plugin
      • Planning C++->java codegen
    • Wayland
      • No major changes upstream
      • 6.8:
        • Refactoring winID
  • Other topics

14. March 2024

  • Roundtable
    • WASM
      • Dynamic linking main priority going forward
      • Investigating differences between WebGL and OpenGL
    • Android
      • QML embedding content in place
    • macOS
      • Updating support for macOS 14 / Xcode 15 in stable branches
      • Improving testing via Tart VMs
    • iOS
      • Updating support for iOS 17 / Xcode 15 in stable branches
    • X11
    • Wayland
      • Some issues in input methods
      • Next KDE 6.1 likely use 6.7
    • Windows
      • Adding support for manifest files
  • Other topics

8. February 2024

  • Roundtable
    • WASM
      • Working on upgrading emscripten SDK for 6.7
      • Investigating how to handle older hardware without good WebGL support
    • Android
      • Embedding of Qt into native apps landed (mostly)
      • Bumping Android 6 to 8 in dev
    • macOS
      • Bumping minimum to 12 or 13 for dev
    • iOS
      • Workarounds for iOS 17 in creator taking shape
      • Started investigating improved window management
    • X11
      • Investigating updating CI distributions we use to test
    • Wayland
  • Topics
    • AccessKit
      • Cross platform a11y layer with backends for AT-SPI/Cocoa/Windows
      • Potential replacement for our custom a11y backends on each platform
      • Missing backends for iOS/Android/Web

11. January 2024

  • Roundtable
    • WASM
      • Considering using C++ coruitines for the internal plumbing
    • Windows
      • Considering moving off COM and using winrt for plumbing
    • XCB
      • Plan to statically link in xcb-cursor into Qt to solve deployment issues
    • Wayland
      • Some work on client side decorations and possible generic solution
      • Might need new QWSI API for updating cursor position after move
    • Android
      • NDK 26 in Qt 6.7
      • Working on QML in native Android apps
      • Considering bumping minimum version from Android 8 to 10
    • macOS
      • Work on improving save dialogs
      • Might support making child windows fullscreen (videos e.g.)
    • iOS
      • iOS 17 devices supported in 6.7, but workarounds for Qt Creator
  • KDE
    • RC1 out
    • Testing building for WASM, everything was very easy, good experience!

2023

21. December 2023

  • Roundtable
    • New versions/changes in the underlying platform?
      • macOS, iOS:
        • nothing new
        • continued collaboration with Apple
      • Windows:
        • nothing new
        • maybe win12 next year, we should be prepared
          • Out of the box experience with Qt apps
          • Features that can/should be supported
      • x11:
        • Customer bug about menu handling
        • Mouse grabbing behavior different across platforms
          • might need some coordination
      • Wayland:
        • Not much activity upstream
        • One big issue in 6.7 (application crash)
          • Fix is available, but needs help to make it through CI
      • Android
        • Problems getting the latest NDK into qt5.git
          • Feature freeze exception
          • "Getting there"
        • Android code generator work
        • CI fixes for Androidtestrunner
  • Topics

16. November 2023

  • Roundtable
    • Windows
      • Trying to get ARM VMs for our CI
      • Windows 12 on the horizon, no details yet, but no likely major changes
      • Finishing up Windows 11 style
      • Improvements to high-DPI
    • X11
      • Gnome and KDE moving to Wayland
    • WASM
      • Updating to WebGL 2 (GLES 3)
    • Android
      • Android 14 in CI, now supported for 6.7
      • Some issues with emulator in CI
      • QPA refactoring making good progress
      • Child window support in review
      • JNI improvements by Volker merged
    • macOS
      • macOS 14 significant in CI now
    • iOS
      • iOS 17 issues due to libmobiledevice no longer being supported
    • Wayland
      • Discussion around behavior when window minimum size is larger than available size (tiling window manager e.g.)
        • Killing app in response is not a good behavior
  • Topics
    • Window states for child windows
      • Always use NoWindowState
    • Internal platform window handle changes
      • Only on XCB, exposed as winId
      • on macOS and Wayland, changes, but not exposed as winId
    • Synchronous mouse/touch
      • Many platforms already do this

12. October 2023

  • Roundtable
    • X11
      • Looking into a11y improvements
        • Object creation and destruction not supported in Qt
          • Needed for testing tools. Unclear if Squish needs it
    • Android
      • Android 14 released
        • Problems getting into CI
      • QPA refactoring getting into shape
      • Improvements to JNI APIs
    • macOS
      • Sonoma (macOS 14) released
      • Problems with Xcode 15's new linker not providing default linker paths
        • Breaks qmake in all Qt versions. Patch submitted.
    • iOS
      • iOS 17 released
      • New protocol for device management (deploying, running)
        • Breaks Qt Creator integration.
    • Wayland
      • New discussions about windows being able to absolutely position
        • Clients want positioning, compositors don’t
      • XDG session, tying window to tag/id for restoring
        • Not clear if useful as cross platform API, but can be QWaylandWindow API
      • Synchronizing window flushes during resizing
        • Similar issues on other platforms
        • Need to figure out which parts are Wayland quirks and which parts are Qt
      • Window capturing is actually possible on Wayland via pipewire
    • WASM
      • 64 bit mode getting traction and fixes
      • Improvements to locale integration
  • Topics
    • Version support
      • Android range of versions, testing min and max
      • macOS, support 3-4 latest version, test full range in CI
      • WASM, latest browser needed.
        • Runtime check features between browsers
        • EM SDK locked per Qt release
      • Wayland
        • Every protocol individually versioned
        • Supporting both desktop compositors and embedded compositors
          • Mutter, Plasma, Qt Compositor
      • X11
        • Rely on XCB
          • Must verify that distros have any new XCB libraries we depend on
    • Application startup / lifecycle
      • Event loop might already be running
        • WASM
        • iOS
        • Plugins
      • Need some kind of callback based API
        • One for startup
        • One for shutdown
      • Should QApp be created automatically for the user?
      • Can no longer create windows and other things on the stack
      • If we move to a new paradigm it should replace the main one
        • Ie the user shouldn’t need to provide both
      • Requires updating of QtC templates, examples, etc
      • Effort should be compared against fixing the main case for the platforms where this is an issue
        • E.g. running main on secondary thread on WASM

13. September 2023

  • Introductions
    • Tor Arne - macOS,iOS,QPA
    • Morten - WASM
    • Oliver - Windows
    • Liang - X11
    • Assam - Android
    • David - Wayand
  • Ways of working
    • Monthly meeting
    • Desktop/mobile platforms
  • Roundtable
    • iOS
      • iOS 17 end of September
        • Things mostly work as before
      • Moving to FFMpeg for Qt Multimedia
      • Technical debt in window management, modern iOS has more advanced window/screen management
      • Exposing safe area margins properly as public Qt Quick API (anchors, etc)
    • macOS
      • macOS Sonoma end of September
      • Key/text input, complex text, shortcut handling
      • Modern window look, blurred/effect windows, etc
    • WASM
      • Emscripten is the SDK
        • Follows Chrome release model (4-6 weeks)
        • No versions are “more stable” than others
        • Upgrade close to feature freeze to get latest fixes
      • 32-bit platform (one of our few)
      • Has a no-thread build option
      • Uses static linking
      • WASM64 is coming, looking at that
      • Dynamic linking is in the works
      • Major challenge is web platform is async, but Qt expects synchronous APIs
      • Complex text difficult
      • Accessibility difficult
    • X11
      • Not much underlying changes on X11
        • Ubuntu 22.04 in CI
        • Updating RedHat and OpenSuse
      • Increased requests for more XDG support
        • Use XDG services more, file dialogs, drag and drop, etc
        • Harald Sitter (?) knows about KDE drag and drop
    • Windows
      • New OS updates every 6 months
        • But usually no new major features
        • CI updates, doesn’t change much
      • Focus areas
        • Finalising Windows 11 style for widgets
        • Modern look of apps
          • Window decorations
        • Windows on ARM
      • Problem areas
        • Windows on ARM, hard to virtualise in CI
    • Android
      • Android 14 coming up
        • Been tested in CI
        • Some new permissions we need to deal with
          • Storage permissions deprecated
      • Bumped minimum from Android 6 to Android 8
      • Focus areas
        • Safe area margins for short edges
        • Refactoring QPA plugin
          • Modernize
          • Remove layers
          • Make more maintainable
        • Generator for JNI APIs
          • Making it easier to invoke Android APIs
    • Wayland
      • A set of generated wire protocols
        • Some core protocols, fairly stable, can be expected everywhere (all compositors/servers)
        • Standard body maintains additional extension protocols
          • Some more essential, eg XDG shell
          • Some more esoteric, for car manufacturers etc
      • Some DEs use Wayland nowadays, but also with XWayland for X11 support
        • Gnome
        • Plasma (KDE), switching soon
      • Deadline for Qt adopting a protocol is in practice when a big bistro adopts a DE version that has support for the protocol
      • Focus areas
        • Fractional scaling
        • Support for clients outliving crashing compositors
        • Support for minimised windows
      • Problem areas
        • Popups
          • Windows don’t know their own screen positions
          • Can not control screen positions
          • Popups need to declare intent about where to be placed
          • Possible solutions
        • Qt Quick threaded render out of sync with window resize
          • Needs graphics team attention
        • QWindow setGeometry not emitting geometryChanged
          • We wait until GeometryChangeEvent
        • QWidget updates not going through QWindow::requestUpdate
  • Topics
    • Keyboard input and shortcut handling
    • Custom window decorations
      • Frameless windows on Windows not usable for the use-cases people have
        • Need to figure out if it's a Windows bug fix, or a missing feature in QWindow
        • Olli to write up summary in JIRA task