the card is the window's size through the whole pull
Two fixes to the same seam. columnLayout was still gated on missionControlOpen, so a peek raised a panel whose contents were invisible — the same line that had been left behind once before, with its own comment saying so. The card scaled 0.6 -> 1.0 while pose runs 1.0 -> 0.6 against the same progress, so at the handoff the window was at 0.6 of the glass and the card arrived near full-bleed. Same curve now, and the 26/12 inset is gone: scale is the inset, and stacking both squashed the aspect because the bottom label margin has no counterpart at the top.
This commit is contained in:
parent
452acea0ad
commit
72171accec
2 changed files with 21 additions and 16 deletions
|
|
@ -311,7 +311,7 @@ Scope {
|
|||
// landed and this was left behind, so the second-stage pill swipe
|
||||
// raised a panel whose entire contents were invisible — the cards
|
||||
// were built, instantiated, and never shown.
|
||||
visible: GlobalStates.overviewOpen || GlobalStates.missionControlOpen
|
||||
visible: GlobalStates.overviewOpen || overviewScope.missionShown
|
||||
anchors {
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
top: parent.top
|
||||
|
|
|
|||
|
|
@ -208,26 +208,31 @@ Item {
|
|||
return Math.max(0, Math.min(1, (root.progress - start) / (1 - start)));
|
||||
}
|
||||
opacity: zoneCard.share
|
||||
// Starts at the scale the rail's `pose` had already reached (0.6 at
|
||||
// the multitasking detent) and finishes at 1, so the card takes over
|
||||
// the motion at the size the real window had got to rather than
|
||||
// popping into a different one.
|
||||
scale: 0.6 + 0.4 * zoneCard.share
|
||||
// The card is the window's size, at every point in the pull.
|
||||
//
|
||||
// This read `0.6 + 0.4 * share`, which grows as the window shrinks:
|
||||
// `pose` runs 1.0 -> 0.6 against the same progress, so at the handoff
|
||||
// the window was at 0.6 of the glass and the card arrived near
|
||||
// full-bleed. Two sizes for one object, which is the pop.
|
||||
//
|
||||
// Same curve as the rail's pose (`1.0 - 0.4 * progress`), so the
|
||||
// card and the real window are the same rectangle throughout and the
|
||||
// swap is invisible. It rests at 0.6 because that is where the pose
|
||||
// ends — nothing settles to a different size afterwards.
|
||||
scale: 1.0 - 0.4 * root.progress
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
// Room for the zone label; the sides and top are not inset.
|
||||
anchors.bottomMargin: 34
|
||||
// Inset, so a card is a card and not the screen again.
|
||||
// The scale above is the inset now.
|
||||
//
|
||||
// Full-bleed reads as "you are looking at that app" rather
|
||||
// than "here are the places you can go", and it leaves no gap
|
||||
// for the neighbouring zones to show through — which is the
|
||||
// only thing on screen saying there ARE neighbours. The
|
||||
// delegate stays the list's full width so snapping still lands
|
||||
// one card per swipe; only the drawn card is smaller.
|
||||
anchors.leftMargin: 26
|
||||
anchors.rightMargin: 26
|
||||
anchors.topMargin: 12
|
||||
// 26/12 of hard margin on top of a 0.6 scale insets the card
|
||||
// twice, and the second one is what stopped it lining up with
|
||||
// the window — it also squashed the aspect, since the bottom
|
||||
// label margin has no counterpart at the top. A card at 0.6 of
|
||||
// the glass already leaves both neighbours showing, which is the
|
||||
// only thing the inset was ever for.
|
||||
radius: 18
|
||||
color: Appearance.colors.colLayer1
|
||||
// The zone you are on is named by its frame rather than by
|
||||
|
|
|
|||
Loading…
Reference in a new issue