Right-align compact header menus

This commit is contained in:
Joe Julian
2026-04-10 19:23:13 -07:00
parent 54f13d352c
commit 56a0711860
3 changed files with 22 additions and 8 deletions
+2 -2
View File
@@ -489,10 +489,10 @@ type ui struct {
deleteGroupPath []string deleteGroupPath []string
apiPolicyGroupScope bool apiPolicyGroupScope bool
apiTokenSecret string apiTokenSecret string
phoneSyncMenuAnchor image.Point
phoneMainMenuAnchor image.Point
phoneSyncMenuOrigin image.Point phoneSyncMenuOrigin image.Point
phoneMainMenuOrigin image.Point phoneMainMenuOrigin image.Point
phoneSyncMenuSize image.Point
phoneMainMenuSize image.Point
phoneSyncMenuCall op.CallOp phoneSyncMenuCall op.CallOp
phoneMainMenuCall op.CallOp phoneMainMenuCall op.CallOp
phoneSyncMenuVisible bool phoneSyncMenuVisible bool
+2
View File
@@ -593,6 +593,8 @@ func (u *ui) layout(gtx layout.Context) layout.Dimensions {
u.phoneMainMenuVisible = false u.phoneMainMenuVisible = false
u.phoneSyncMenuOrigin = image.Point{} u.phoneSyncMenuOrigin = image.Point{}
u.phoneMainMenuOrigin = image.Point{} u.phoneMainMenuOrigin = image.Point{}
u.phoneSyncMenuSize = image.Point{}
u.phoneMainMenuSize = image.Point{}
u.phoneSyncMenuCall = op.CallOp{} u.phoneSyncMenuCall = op.CallOp{}
u.phoneMainMenuCall = op.CallOp{} u.phoneMainMenuCall = op.CallOp{}
u.syncHostedAPI() u.syncHostedAPI()
+18 -6
View File
@@ -55,19 +55,19 @@ func (u *ui) headerActions(gtx layout.Context) layout.Dimensions {
} }
if u.syncMenuOpen { if u.syncMenuOpen {
u.phoneSyncMenuVisible = true u.phoneSyncMenuVisible = true
u.phoneSyncMenuAnchor = cluster.Metrics.SyncAnchor().Point()
u.maybeLogHeaderMenuToggle("sync-visible", true) u.maybeLogHeaderMenuToggle("sync-visible", true)
placement, menuCall := compactSurface.Place(gtx, cluster.Metrics.SyncAnchor(), u.syncMenu) placement, menuCall := compactSurface.Place(gtx, cluster.Metrics.SyncAnchor(), u.syncMenu)
u.phoneSyncMenuOrigin = placement.Origin u.phoneSyncMenuOrigin = placement.Origin
u.phoneSyncMenuSize = placement.Size
u.phoneSyncMenuCall = menuCall u.phoneSyncMenuCall = menuCall
u.maybeLogHeaderMenuPlacement("sync-phone", compactSurface, placement) u.maybeLogHeaderMenuPlacement("sync-phone", compactSurface, placement)
} }
if u.mainMenuOpen { if u.mainMenuOpen {
u.phoneMainMenuVisible = true u.phoneMainMenuVisible = true
u.phoneMainMenuAnchor = cluster.Metrics.MainAnchor().Point()
u.maybeLogHeaderMenuToggle("main-visible", true) u.maybeLogHeaderMenuToggle("main-visible", true)
placement, menuCall := compactSurface.Place(gtx, cluster.Metrics.MainAnchor(), u.mainMenu) placement, menuCall := compactSurface.Place(gtx, cluster.Metrics.MainAnchor(), u.mainMenu)
u.phoneMainMenuOrigin = placement.Origin u.phoneMainMenuOrigin = placement.Origin
u.phoneMainMenuSize = placement.Size
u.phoneMainMenuCall = menuCall u.phoneMainMenuCall = menuCall
u.maybeLogHeaderMenuPlacement("main-phone", compactSurface, placement) u.maybeLogHeaderMenuPlacement("main-phone", compactSurface, placement)
} }
@@ -204,13 +204,25 @@ func (u *ui) phoneHeaderMenus(gtx layout.Context) layout.Dimensions {
} }
if u.syncMenuVisibleOnPhone() { if u.syncMenuVisibleOnPhone() {
stack := op.Offset(u.phoneSyncMenuOrigin).Push(gtx.Ops) stack := op.Offset(image.Pt(u.frameInsetPx, u.phoneSyncMenuOrigin.Y)).Push(gtx.Ops)
u.phoneSyncMenuCall.Add(gtx.Ops) menuGTX := gtx
menuGTX.Constraints.Min = image.Point{}
menuGTX.Constraints.Max.X = max(0, gtx.Constraints.Max.X-(u.frameInsetPx*2))
layout.E.Layout(menuGTX, func(gtx layout.Context) layout.Dimensions {
u.phoneSyncMenuCall.Add(gtx.Ops)
return layout.Dimensions{Size: u.phoneSyncMenuSize}
})
stack.Pop() stack.Pop()
} }
if u.mainMenuVisibleOnPhone() { if u.mainMenuVisibleOnPhone() {
stack := op.Offset(u.phoneMainMenuOrigin).Push(gtx.Ops) stack := op.Offset(image.Pt(u.frameInsetPx, u.phoneMainMenuOrigin.Y)).Push(gtx.Ops)
u.phoneMainMenuCall.Add(gtx.Ops) menuGTX := gtx
menuGTX.Constraints.Min = image.Point{}
menuGTX.Constraints.Max.X = max(0, gtx.Constraints.Max.X-(u.frameInsetPx*2))
layout.E.Layout(menuGTX, func(gtx layout.Context) layout.Dimensions {
u.phoneMainMenuCall.Add(gtx.Ops)
return layout.Dimensions{Size: u.phoneMainMenuSize}
})
stack.Pop() stack.Pop()
} }
return layout.Dimensions{Size: gtx.Constraints.Max} return layout.Dimensions{Size: gtx.Constraints.Max}