Platform Wranglers Meeting Notes: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
(→2023) |
||
Line 10: | Line 10: | ||
*Topics | *Topics | ||
**QApplication without exec() | **QApplication without exec() | ||
**Relative window stacking | |||
===13. September 2023=== | ===13. September 2023=== | ||
*Introductions | *Introductions | ||
** Tor Arne - macOS,iOS,QPA | **Tor Arne - macOS,iOS,QPA | ||
** Morten - WASM | **Morten - WASM | ||
** Oliver - Windows | **Oliver - Windows | ||
** Liang - X11 | **Liang - X11 | ||
** Assam - Android | **Assam - Android | ||
** David - Wayand | **David - Wayand | ||
*Ways of working | *Ways of working | ||
** Monthly meeting | **Monthly meeting | ||
** Desktop/mobile platforms | **Desktop/mobile platforms | ||
*Roundtable | *Roundtable | ||
** iOS | **iOS | ||
*** iOS 17 end of September | ***iOS 17 end of September | ||
**** Things mostly work as before | ****Things mostly work as before | ||
*** Moving to FFMpeg for Qt Multimedia | ***Moving to FFMpeg for Qt Multimedia | ||
*** Technical debt in window management, modern iOS has more advanced window/screen management | ***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) | ***Exposing safe area margins properly as public Qt Quick API (anchors, etc) | ||
** macOS | **macOS | ||
*** macOS Sonoma end of September | ***macOS Sonoma end of September | ||
**** No major changes, doing nightly builds, weeding out issues | ****No major changes, doing nightly builds, weeding out issues | ||
**** One regression in Xcode 15, causing build failures with qmake | ****One regression in Xcode 15, causing build failures with qmake | ||
***** https://codereview.qt-project.org/c/qt/qtbase/+/503172 | *****https://codereview.qt-project.org/c/qt/qtbase/+/503172 | ||
*** Key/text input, complex text, shortcut handling | ***Key/text input, complex text, shortcut handling | ||
*** Modern window look, blurred/effect windows, etc | ***Modern window look, blurred/effect windows, etc | ||
** WASM | **WASM | ||
*** Emscripten is the SDK | ***Emscripten is the SDK | ||
**** Follows Chrome release model (4-6 weeks) | ****Follows Chrome release model (4-6 weeks) | ||
**** No versions are “more stable” than others | ****No versions are “more stable” than others | ||
**** Upgrade close to feature freeze to get latest fixes | ****Upgrade close to feature freeze to get latest fixes | ||
*** 32-bit platform (one of our few) | ***32-bit platform (one of our few) | ||
*** Has a no-thread build option | ***Has a no-thread build option | ||
*** Uses static linking | ***Uses static linking | ||
*** WASM64 is coming, looking at that | ***WASM64 is coming, looking at that | ||
*** Dynamic linking is in the works | ***Dynamic linking is in the works | ||
*** Major challenge is web platform is async, but Qt expects synchronous APIs | ***Major challenge is web platform is async, but Qt expects synchronous APIs | ||
*** Complex text difficult | ***Complex text difficult | ||
*** Accessibility difficult | ***Accessibility difficult | ||
** X11 | **X11 | ||
*** Not much underlying changes on X11 | ***Not much underlying changes on X11 | ||
**** Ubuntu 22.04 in CI | ****Ubuntu 22.04 in CI | ||
**** Updating RedHat and OpenSuse | ****Updating RedHat and OpenSuse | ||
*** Increased requests for more XDG support | ***Increased requests for more XDG support | ||
**** Use XDG services more, file dialogs, drag and drop, etc | ****Use XDG services more, file dialogs, drag and drop, etc | ||
**** Harald Sitter (?) knows about KDE drag and drop | ****Harald Sitter (?) knows about KDE drag and drop | ||
** Windows | **Windows | ||
*** New OS updates every 6 months | ***New OS updates every 6 months | ||
**** But usually no new major features | ****But usually no new major features | ||
**** CI updates, doesn’t change much | ****CI updates, doesn’t change much | ||
*** Focus areas | ***Focus areas | ||
**** Finalising Windows 11 style for widgets | ****Finalising Windows 11 style for widgets | ||
**** Modern look of apps | ****Modern look of apps | ||
***** Window decorations | *****Window decorations | ||
**** Windows on ARM | ****Windows on ARM | ||
*** Problem areas | ***Problem areas | ||
**** Windows on ARM, hard to virtualise in CI | ****Windows on ARM, hard to virtualise in CI | ||
** Android | **Android | ||
*** Android 14 coming up | ***Android 14 coming up | ||
**** Been tested in CI | ****Been tested in CI | ||
**** Some new permissions we need to deal with | ****Some new permissions we need to deal with | ||
***** Storage permissions deprecated | *****Storage permissions deprecated | ||
*** Bumped minimum from Android 6 to Android 8 | ***Bumped minimum from Android 6 to Android 8 | ||
*** Focus areas | ***Focus areas | ||
**** Safe area margins for short edges | ****Safe area margins for short edges | ||
**** Refactoring QPA plugin | ****Refactoring QPA plugin | ||
***** Modernize | *****Modernize | ||
***** Remove layers | *****Remove layers | ||
***** Make more maintainable | *****Make more maintainable | ||
**** Generator for JNI APIs | ****Generator for JNI APIs | ||
***** Making it easier to invoke Android APIs | *****Making it easier to invoke Android APIs | ||
** Wayland | **Wayland | ||
*** A set of generated wire protocols | ***A set of generated wire protocols | ||
**** Some core protocols, fairly stable, can be expected everywhere (all compositors/servers) | ****Some core protocols, fairly stable, can be expected everywhere (all compositors/servers) | ||
**** Standard body maintains additional extension protocols | ****Standard body maintains additional extension protocols | ||
***** Some more essential, eg XDG shell | *****Some more essential, eg XDG shell | ||
***** Some more esoteric, for car manufacturers etc | *****Some more esoteric, for car manufacturers etc | ||
*** Some DEs use Wayland nowadays, but also with XWayland for X11 support | ***Some DEs use Wayland nowadays, but also with XWayland for X11 support | ||
**** Gnome | ****Gnome | ||
**** Plasma (KDE), switching soon | ****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 | ***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 | ***Focus areas | ||
**** Fractional scaling | ****Fractional scaling | ||
**** Support for clients outliving crashing compositors | ****Support for clients outliving crashing compositors | ||
**** Support for minimised windows | ****Support for minimised windows | ||
*** Problem areas | ***Problem areas | ||
**** Popups | ****Popups | ||
***** Windows don’t know their own screen positions | *****Windows don’t know their own screen positions | ||
***** Can not control screen positions | *****Can not control screen positions | ||
***** Popups need to declare intent about where to be placed | *****Popups need to declare intent about where to be placed | ||
***** Possible solutions | *****Possible solutions | ||
****** Turn window geometry into hints to Wayland | ******Turn window geometry into hints to Wayland | ||
****** Expose placement-intent-based API as public Qt API | ******Expose placement-intent-based API as public Qt API | ||
******* https://codereview.qt-project.org/c/qt/qtbase/+/491545 | *******https://codereview.qt-project.org/c/qt/qtbase/+/491545 | ||
**** Qt Quick threaded render out of sync with window resize | ****Qt Quick threaded render out of sync with window resize | ||
***** Needs graphics team attention | *****Needs graphics team attention | ||
**** QWindow setGeometry not emitting geometryChanged | ****QWindow setGeometry not emitting geometryChanged | ||
***** We wait until GeometryChangeEvent | *****We wait until GeometryChangeEvent | ||
**** QWidget updates not going through QWindow::requestUpdate | ****QWidget updates not going through QWindow::requestUpdate | ||
*Topics | *Topics | ||
**Keyboard input and shortcut handling | **Keyboard input and shortcut handling | ||
*** Investigated at https://bugreports.qt.io/browse/QTBUG-116873 | ***Investigated at https://bugreports.qt.io/browse/QTBUG-116873 | ||
**Custom window decorations | **Custom window decorations | ||
*** Frameless windows on Windows not usable for the use-cases people have | ***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 | ****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 | ****Olli to write up summary in JIRA task |
Revision as of 12:25, 11 October 2023
2023
Next
- Roundtable
- New versions/changes in the underlying platform?
- Current focus areas
- Known problem areas
- Features on the horizon
- Topics
- QApplication without exec()
- Relative window stacking
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)
- iOS 17 end of September
- 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
- Key/text input, complex text, shortcut handling
- Modern window look, blurred/effect windows, etc
- macOS Sonoma end of September
- 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
- Emscripten is the SDK
- 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
- Not much underlying changes on X11
- 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
- New OS updates every 6 months
- 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
- Android 14 coming up
- 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
- 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
- Popups
- A set of generated wire protocols
- iOS
- 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
- Frameless windows on Windows not usable for the use-cases people have
- Keyboard input and shortcut handling