https://bugs.kde.org/show_bug.cgi?id=517963

            Bug ID: 517963
           Summary: Kirigami.PageRow can leave a newly pushed third page
                    only partially activated/visible on desktop
                    multi-column layouts
    Classification: Frameworks and Libraries
           Product: frameworks-kirigami
      Version First 6.24.0
       Reported In:
          Platform: Arch Linux
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: Not decided

Created attachment 190885
  --> https://bugs.kde.org/attachment.cgi?id=190885&action=edit
Reproduction, tested with qml6 6.10.2.

Summary

  On desktop multi-column layouts, pushing a new trailing page into
`Kirigami.PageRow` does not always fully activate or fully bring that page into
view on the first interaction.

  Environment

  - Qt 6.10.2 / Kirigami 6.24.0
  - Desktop layout
  - Reproduced with `Kirigami.ApplicationWindow` + `Kirigami.PageRow`

  Observed behavior

  Starting from a `PageRow` with two visible pages:

  1. Interact with content on the second page.
  2. That interaction calls `pageStack.push(...)` to add a third page.
  3. The third page appears, but is often only partially visible / not fully
activated.
  4. Interacting with that trailing page again usually completes activation and
brings it fully into focus.

  Expected behavior

  After `pageStack.push(...)` adds the new trailing page, that page should
become fully active and fully brought into view immediately, without requiring
a second interaction.

  Why I think this is a Kirigami bug

  This appears to be in the `PageRow` / `ColumnView` activation path rather
than in page-specific content:

  - the issue occurs after `Kirigami.PageRow.push(...)`
  - the pushed page exists and is visible
  - a subsequent direct interaction with the partially visible trailing page
succeeds in activating it
  - the problem is therefore not that the page is invalid, but that the initial
push/activation path does not reliably finish the transition

  Workaround currently needed

  In app code, I had to do all of the following after `pageStack.push(...)`:

  - temporarily set `pageStack.currentIndex` away from the last page and then
back again
  - repeat that in `Qt.callLater(...)`
  - call `forceActiveFocus()` on the pushed page
  - repeat that in `Qt.callLater(...)`

  That workaround makes the first interaction behave correctly, but it appears
to compensate for a `PageRow` activation issue rather than solving it at the
framework level.

  Repro

  I attached a standalone reproduction.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to