Upgrade MyGo to v0.5.5
Elements are now pass-scoped value handles: tests that read bounds after a frame bind a ui.Handle. pixel tells frames apart by the build pass's root, since the Tester clock no longer moves on its own. Fix the regressions the upgrade brought: - Clipboard reads in input handlers go through c.Services(). - MyGo notes an overlay's opener after building it, so AutoFocus inside lost it; pixel.AutoFocus focuses through a Handle, and archtest bans the raw call. Dialogs hand the focus back again. - Elements around a press stay hovered: Tooltip tells a press-given focus by focus arriving under the pointer. - The web host moves the Tester clock with real time, at most 500 ms a call, and gives components the real clock. The gallery's source index also accepts CRLF checkouts. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
1f3d38110e
commit
03e1f91706
532 files changed
+828
-735
No files matched your search
+3
-3
@@ -15,7 +15,7 @@ type PinInputOptions struct {
|
||||
}
|
||||
|
||||
type PinInputResult struct {
|
||||
Element *ui.Element
|
||||
Element ui.Element
|
||||
// Complete reports the last box filled.
|
||||
Changed, Complete bool
|
||||
}
|
||||
@@ -34,7 +34,7 @@ const pinBox, pinGap = 12, 4
|
||||
func PinInput(c *ui.Context, text string, value *string, o PinInputOptions) PinInputResult {
|
||||
k := pixel.K(c)
|
||||
n := pixel.Or("PinInput Length", o.Length, 4)
|
||||
shell, base, st := pixel.Shell(c, func() *ui.Element {
|
||||
shell, base, st := pixel.Shell(c, func() ui.Element {
|
||||
return ui.Box(c).Focusable().Role(ui.RoleTextField).Label(text).Description(*value).Disabled(o.Disabled)
|
||||
})
|
||||
p := ui.Local(base, pinKey{}, func() pin { return pin{} })
|
||||
@@ -60,7 +60,7 @@ func PinInput(c *ui.Context, text string, value *string, o PinInputOptions) PinI
|
||||
put(ev.Text)
|
||||
// Browsers paste by command, native hosts by Cmd+V.
|
||||
case ev.Kind == ui.InputCommand && ev.Text == "paste", ev.Kind == ui.InputKeyDown && ev.Key == ui.KeyV && ev.Mods == ui.Cmd:
|
||||
put(c.ReadClipboard())
|
||||
put(c.Services().ReadClipboard())
|
||||
case ev.Kind == ui.InputKeyDown && ev.Key == ui.KeyBackspace && ev.Mods == 0:
|
||||
if len(*value) > 0 {
|
||||
*value, *changed = (*value)[:len(*value)-1], true
|
||||
|
||||
Reference in new issue
Block a user