https://bugs.kde.org/show_bug.cgi?id=517966
Bug ID: 517966
Summary: Kirigami.PageRow forward button does not reactivate
the partially visible trailing page in 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 190886
--> https://bugs.kde.org/attachment.cgi?id=190886&action=edit
Reproduction, tested with qml6 6.10.2.
Versions
- Qt 6.10.2
- Kirigami 6.24.0
Steps to Reproduce
1. Run the attached standalone repro forward_button_repro.qml.
2. Start from the initial 2-page PageRow.
3. Click an item on the second page so that a third page is pushed and
remains partially visible.
4. Click Kirigami Back to move focus away from the trailing page.
5. Click Kirigami Forward.
Actual Results
- The forward button does nothing.
- The trailing page remains only partially visible / not fully activated.
Expected Results
- The forward button should reactivate the trailing page and bring it fully
into focus.
- This should behave the same way as directly clicking the visible trailing
page.
Workaround
I had to vendor the relevant Kirigami page-stack code and change forward
navigation to prefer activating the trailing visible page directly instead of
relying only on goForward() / currentIndex. Workaround code:
qml/stack/private/globaltoolbar/NavigationButtons.qml:
onClicked: {
const trailingVisibleItem = root.pageStack.trailingVisibleItem;
const trailingVisibleIndex = trailingVisibleItem?.KL.ColumnView.index ??
-1;
if (trailingVisibleIndex > root.pageStack.currentIndex) {
root.pageStack.currentIndex = trailingVisibleIndex;
} else {
root.pageStack.currentIndex = root.page.KL.ColumnView.index;
root.pageStack.goForward();
}
}
Additional Information
- Direct pointer interaction with the partially visible trailing page works
correctly.
- In other words, Kirigami already has a working activation path for that
page, but the forward-button path does not behave equivalently.
- This suggests the issue is in PageRow / toolbar forward navigation rather
than in the pushed page’s content.
- The attached repro includes an application-side workaround for a separate
Kirigami.PageRow bug already reported as bug 517963
(https://bugs.kde.org/show_bug.cgi?id=517963). That first bug affects initial
activation of a newly pushed third page: after pageStack.push(...), the
trailing page may appear only partially activated or partially brought into
view unless the app forcibly nudges currentIndex/focus. This workaround is
included here only so the initial third-page activation bug does not mask the
forward-navigation bug being reported.
--
You are receiving this mail because:
You are watching all bug changes.