Platform Wranglers Meeting Notes: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
mNo edit summary
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)
    • 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