From ab14eadcd9b6efe1f9736f162d1dbb0ffe606a75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Mon, 5 Oct 2026 13:02:54 -0400 Subject: [PATCH] Forms: review r2 fixes --- color_picker.go | 12 ++-- color_picker_test.go | 18 +++++- file_drop_zone.go | 5 +- form.go | 19 +++++- form_test.go | 56 ++++++++++++++++++ input_group.go | 22 +++++-- input_group_test.go | 33 +++++++++++ pin_input.go | 8 ++- pin_input_test.go | 20 +++++++ rating.go | 16 ++--- rating_test.go | 19 +++++- tags_input.go | 49 ++++++++------- tags_input_test.go | 20 +++++++ .../snapshots/darwin/color_picker-dark.png | Bin 26892 -> 27643 bytes .../snapshots/darwin/color_picker-light.png | Bin 26868 -> 28005 bytes testdata/snapshots/darwin/rating-dark.png | Bin 11275 -> 6311 bytes testdata/snapshots/darwin/rating-light.png | Bin 11156 -> 6228 bytes testdata/snapshots/darwin/transfer-dark.png | Bin 15519 -> 15500 bytes testdata/snapshots/darwin/transfer-light.png | Bin 15126 -> 15190 bytes transfer.go | 6 +- transfer_test.go | 13 ++++ 21 files changed, 267 insertions(+), 49 deletions(-) diff --git a/color_picker.go b/color_picker.go index de993b6..1264351 100644 --- a/color_picker.go +++ b/color_picker.go @@ -91,13 +91,13 @@ func ColorPicker(c *ui.Context, color *ui.Color, opts ColorPickerOptions) ColorP st.sync(*color) } } - if opts.Disabled { + if trigger.IsDisabled() { st.open = false } else if trigger.Clicked() { st.open = !st.open } border := k.ControlBorder - if trigger.Hovered() && !opts.Disabled { + if trigger.Hovered() { border = k.ControlBorder.Mix(k.Text, 0.25) trigger.Background(k.SurfaceHover) } @@ -160,7 +160,7 @@ func ColorPicker(c *ui.Context, color *ui.Color, opts ColorPickerOptions) ColorP } }) }) - if st.wasOpen && !st.open && !opts.Disabled { + if st.wasOpen && !st.open && !trigger.IsDisabled() { trigger.Focus() } st.wasOpen = st.open @@ -212,10 +212,12 @@ func colorPickerSquare(c *ui.Context, st *colorPickerState, set func(colorPicker // colorPickerSlider is a channel slider from 0 to hi over the track track paints. func colorPickerSlider(c *ui.Context, v *float64, hi float64, name string, track func(p *ui.Painter, r ui.Rect)) *ui.Element { k := Tokens(c) - const knob = 10 - s := ui.SliderBase(c, v, 0, hi).Height(18).PaddingX(knob / 2).FocusRing(false).Label(name) + const knob, look = 10, 18 + s := ui.SliderBase(c, v, 0, hi).Height(theme.MinHitSize).PaddingX(knob / 2).FocusRing(false).Label(name) frac := float32(*v / hi) s.Draw(func(p *ui.Painter, r ui.Rect) { + // The hit area is taller than the drawn slider, which sits in its middle. + r = ui.Rect{X: r.X, Y: r.Y + (r.H-look)/2, W: r.W, H: look} bar := ui.Rect{X: r.X, Y: r.Y + 3, W: r.W, H: r.H - 6} p.Clip(bar, theme.ControlRadius, func() { track(p, bar) }) p.Stroke(bar, k.Border, theme.ControlRadius, theme.BorderWidth) diff --git a/color_picker_test.go b/color_picker_test.go index 1b5e3d0..2a85958 100644 --- a/color_picker_test.go +++ b/color_picker_test.go @@ -4,6 +4,8 @@ import ( "testing" "github.com/egoist/mygo/ui" + + "mujicaui/theme" ) func colorPickerTester(col *ui.Color, opts ColorPickerOptions, changes *int) *ui.Tester { @@ -111,7 +113,7 @@ func TestColorPickerDisabledAndParse(t *testing.T) { func TestColorPickerSnapshot(t *testing.T) { a, b := ui.Hex("#7D2034"), ui.Hex("#355E8099") - snapshot(t, "color_picker", 340, 520, func(c *ui.Context) { + snapshot(t, "color_picker", 340, 560, func(c *ui.Context) { ui.Column(c).Padding(20).Gap(12).AlignItems(ui.Start).Children(func() { ColorPicker(c, &b, ColorPickerOptions{Disabled: true}) p := ColorPicker(c, &a, ColorPickerOptions{}) @@ -157,3 +159,17 @@ func TestColorPickerSwatchHitArea(t *testing.T) { t.Fatalf("swatch %v", r) } } + +func TestColorPickerSliderHitAreaCompact(t *testing.T) { + col := ui.Hex("#7D2034") + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{Density: theme.Compact}) + ColorPicker(c, &col, ColorPickerOptions{Label: "Accent"}) + }, 400, 560) + _ = tt.Click("Accent") + for _, name := range []string{"Hue", "Opacity"} { + if r, ok := tt.Find(name); !ok || r.H < 28 { + t.Fatalf("%s slider %v", name, r) + } + } +} diff --git a/file_drop_zone.go b/file_drop_zone.go index 1f0a979..5420580 100644 --- a/file_drop_zone.go +++ b/file_drop_zone.go @@ -152,11 +152,12 @@ func FileDropZone(c *ui.Context, files *[]DroppedFile, opts FileDropZoneOptions) col.Children(func() { zone := ui.Column(c).AlignItems(ui.Center).Justify(ui.Center).Gap(d.Unit() * 2).MinHeight(140).Padding(d.Unit() * 5). Radius(theme.CardRadius).Disabled(opts.Disabled) - if dropped := zone.DroppedFiles(); dropped != nil && !opts.Disabled { + disabled := zone.IsDisabled() + if dropped := zone.DroppedFiles(); dropped != nil && !disabled { slog.Debug("mujica: file drop zone dropped", "count", len(dropped)) take(dropped) } - over := zone.FileDragOver() && !opts.Disabled + over := zone.FileDragOver() && !disabled bg, border := k.Surface, k.ControlBorder if over { bg, border = k.Selection, k.AccentText diff --git a/form.go b/form.go index bb89323..acee219 100644 --- a/form.go +++ b/form.go @@ -35,6 +35,7 @@ type formFieldState struct { pending bool hasAsync bool check func() string + refresh func() startAsync func() } @@ -196,6 +197,12 @@ func formStartSubmit(st *FormState) { // formSettle finishes a waiting submit once no check is pending; it reports success. func formSettle(c *ui.Context, st *FormState) bool { + // Current values only: later edits and cross-field rules count. + for _, name := range st.order { + f := st.fields[name] + f.refresh() + f.err = f.check() + } first, pending := "", false for _, name := range st.order { if st.Error(name) != "" && first == "" { @@ -244,11 +251,10 @@ func FormItem[T any](f *FormScope, name string, value *T, opts FormItemOptions[T panic("mujica: FormItem " + name + " registered twice") } st.order = append(st.order, name) - snap := fmt.Sprintf("%#v", *value) fs := st.fields[name] if fs == nil { st.seq++ - fs = &formFieldState{snapshot: snap, version: st.seq} + fs = &formFieldState{snapshot: fmt.Sprintf("%#v", *value), version: st.seq} st.fields[name] = fs } fs.hasAsync = opts.Async != nil @@ -268,12 +274,18 @@ func FormItem[T any](f *FormScope, name string, value *T, opts FormItemOptions[T opts.Async(*value, fs.version) } } - if snap != fs.snapshot { + // refresh gives an edited value a new version; it runs after the control took its input. + fs.refresh = func() { + snap := fmt.Sprintf("%#v", *value) + if snap == fs.snapshot { + return + } st.seq++ fs.snapshot, fs.version, fs.pending, fs.asyncErr = snap, st.seq, false, "" if fs.touched || st.tried { fs.err = fs.check() } + c.Invalidate() } initial := opts.Initial st.resets = append(st.resets, func() { *value = initial }) @@ -286,6 +298,7 @@ func FormItem[T any](f *FormScope, name string, value *T, opts FormItemOptions[T ctrl = control() return ctrl }) + fs.refresh() focused := ctrl.FocusWithin() if fs.focused && !focused { fs.touched = true diff --git a/form_test.go b/form_test.go index afe5ddc..0e895ba 100644 --- a/form_test.go +++ b/form_test.go @@ -262,3 +262,59 @@ func TestFormSnapshot(t *testing.T) { }) }) } + +// Text typed in the frame the check passes gets its own check before submitting. +func TestFormInputAfterAsyncPassIsRechecked(t *testing.T) { + p := &formProbe{name: "Uika", tags: []string{"x"}, email: "good@x", useAsync: true} + tt := ui.NewTester(p.run, 600, 500) + _ = tt.Click("Email") + p.st.Submit() + tt.Frame() + if len(p.asyncCalls) != 1 { + t.Fatalf("calls %v", p.asyncCalls) + } + p.st.Resolve("email", p.asyncCalls[0], "") + tt.Type("bad") + if p.submits != 0 || len(p.asyncValues) != 2 || p.asyncValues[1] != "good@xbad" { + t.Fatalf("submits %d checked %q", p.submits, p.asyncValues) + } +} + +// A cross-field rule sees the other field's latest value when the submit settles. +func TestFormCrossFieldRuleAtSettle(t *testing.T) { + var st FormState + user, pw, confirm := "uika", "a", "a" + var version uint64 + submits := 0 + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + res := Form(c, &st, FormOptions{}, func(f *FormScope) { + FormItem(f, "user", &user, FormItemOptions[string]{Label: "User", Async: func(_ string, v uint64) { version = v }}, func() *ui.Element { + return InputGroup(c, &user, InputGroupOptions{}).Input + }) + FormItem(f, "pw", &pw, FormItemOptions[string]{Label: "Password"}, func() *ui.Element { + return InputGroup(c, &pw, InputGroupOptions{}).Input + }) + FormItem(f, "confirm", &confirm, FormItemOptions[string]{Label: "Confirm", Validate: func(v string) string { + if v != pw { + return "Passwords differ." + } + return "" + }}, func() *ui.Element { + return InputGroup(c, &confirm, InputGroupOptions{}).Input + }) + }) + if res.Submitted() { + submits++ + } + }, 600, 500) + _ = tt.Click("Submit") + pw = "b" + tt.Frame() + st.Resolve("user", version, "") + tt.Frame() + tt.Frame() + if submits != 0 || !tt.HasText("Passwords differ.") { + t.Fatalf("mismatched pair submitted: %d", submits) + } +} diff --git a/input_group.go b/input_group.go index 8f0b136..4ec5f31 100644 --- a/input_group.go +++ b/input_group.go @@ -41,13 +41,14 @@ type InputGroupParts struct { Input *ui.Element // Clicked is the index in Buttons of the button clicked, or -1. Clicked int + locked bool } // Changed reports whether the user edited the value this frame. -func (p InputGroupParts) Changed() bool { return p.Input.Changed() } +func (p InputGroupParts) Changed() bool { return !p.locked && p.Input.Changed() } // Submitted reports whether Enter was pressed in the input. -func (p InputGroupParts) Submitted() bool { return p.Input.Submitted() } +func (p InputGroupParts) Submitted() bool { return !p.locked && p.Input.Submitted() } // InputGroup joins an input, fixed text and buttons, each its own Tab stop, in one border. func InputGroup(c *ui.Context, value *string, opts InputGroupOptions) InputGroupParts { @@ -91,7 +92,7 @@ func InputGroup(c *ui.Context, value *string, opts InputGroupOptions) InputGroup } button := func(i int) { b := opts.Buttons[i] - bb := ui.ButtonBase(c).Padding(0, d.Unit()*3).Gap(d.Unit() * 2).MinWidth(d.ControlHeight()). + bb := ui.ButtonBase(c).MinHeight(theme.MinHitSize).Padding(0, d.Unit()*3).Gap(d.Unit() * 2).MinWidth(d.ControlHeight()). Disabled(b.Disabled).TextColor(k.AccentText).Label(b.Label) segment(bb) internal.Ring(bb, k.Focus, theme.ControlRadius) @@ -133,7 +134,8 @@ func InputGroup(c *ui.Context, value *string, opts InputGroupOptions) InputGroup // As wide as MyGo makes a text input. parts.Input = ui.Text(c, *value).SingleLine().Selectable().Focusable().FocusRing(false).Grow(1).Width(200).MinWidth(0) } else { - parts.Input = ui.TextInputBase(c, value).FocusRing(false).Grow(1).MinWidth(0).Placeholder(opts.Placeholder) + parts.locked = box.IsDisabled() + parts.Input = inputGroupEditor(c, box, value, parts.locked).FocusRing(false).Grow(1).MinWidth(0).Placeholder(opts.Placeholder) } if opts.Label != "" { parts.Input.Label(opts.Label) @@ -169,3 +171,15 @@ func InputGroup(c *ui.Context, value *string, opts InputGroupOptions) InputGroup }) return parts } + +// inputGroupEditor builds the input; a disabled one edits a copy, so queued input cannot reach value. +func inputGroupEditor(c *ui.Context, box *ui.Element, value *string, locked bool) *ui.Element { + if !locked { + return ui.TextInputBase(c, value) + } + shown := ui.Local(box, "locked", func() string { return *value }) + *shown = *value + in := ui.TextInputBase(c, shown) + *shown = *value + return in +} diff --git a/input_group_test.go b/input_group_test.go index bcdd4e1..34a7e3e 100644 --- a/input_group_test.go +++ b/input_group_test.go @@ -6,6 +6,7 @@ import ( "github.com/egoist/mygo/ui" "mujicaui/icons" + "mujicaui/theme" ) func TestInputGroupTypingAndButtons(t *testing.T) { @@ -108,3 +109,35 @@ func TestInputGroupSnapshot(t *testing.T) { }) }) } + +// Input queued while focused must not edit a group disabled since. +func TestInputGroupDisabledAfterFocus(t *testing.T) { + value, disabled, changes := "abc", false, 0 + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + ui.Column(c).Disabled(disabled).Children(func() { + if InputGroup(c, &value, InputGroupOptions{Label: "Code"}).Changed() { + changes++ + } + }) + }, 400, 100) + _ = tt.Click("Code") + disabled = true + tt.Type("zz") + tt.Key(0, ui.KeyBackspace) + tt.Frame() + if value != "abc" || changes != 0 { + t.Fatalf("value %q changes %d", value, changes) + } +} + +func TestInputGroupHitAreasCompact(t *testing.T) { + value := "" + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{Density: theme.Compact}) + InputGroup(c, &value, InputGroupOptions{Label: "Query", Buttons: []InputGroupButton{{Label: "Clear", Icon: icons.Must("x"), IconOnly: true}}}) + }, 400, 100) + if r, ok := tt.Find("Clear"); !ok || r.W < 28 || r.H < 28 { + t.Fatalf("button %v", r) + } +} diff --git a/pin_input.go b/pin_input.go index 6dc4f9d..00cc6eb 100644 --- a/pin_input.go +++ b/pin_input.go @@ -86,6 +86,10 @@ func PinInput(c *ui.Context, value *string, opts PinInputOptions) PinInputParts slog.Debug("mujica: pin input completed", "length", n) } } + disabled := e.IsDisabled() + if disabled { + st.queue, st.compose = st.queue[:0], "" + } for _, ev := range st.queue { switch { case ev.paste: @@ -97,9 +101,7 @@ func PinInput(c *ui.Context, value *string, opts PinInputOptions) PinInputParts } } st.queue = st.queue[:0] - if opts.Disabled { - st.compose = "" - } else { + if !disabled { e.Focusable().FocusRing(false).HandleInput(func(ev ui.InputEvent) bool { switch { case ev.Kind == ui.InputText: diff --git a/pin_input_test.go b/pin_input_test.go index 07bcf9f..9fc79f5 100644 --- a/pin_input_test.go +++ b/pin_input_test.go @@ -102,3 +102,23 @@ func TestPinInputSnapshot(t *testing.T) { }) }) } + +func TestPinInputDisabledAfterFocus(t *testing.T) { + p := &pinInputProbe{value: "12"} + opts := PinInputOptions{Label: "Code"} + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + r := PinInput(c, &p.value, opts) + if r.Changed() { + p.changes++ + } + }, 480, 120) + tt.Key(0, ui.KeyTab) + opts.Disabled = true + tt.Type("3") + tt.Key(0, ui.KeyBackspace) + tt.Frame() + if p.value != "12" || p.changes != 0 { + t.Fatalf("value %q changes %d", p.value, p.changes) + } +} diff --git a/rating.go b/rating.go index ccf7942..f0110f9 100644 --- a/rating.go +++ b/rating.go @@ -48,6 +48,8 @@ func Rating(c *ui.Context, value *float64, opts RatingOptions) RatingParts { } k := Tokens(c) size := Density(c).ControlHeight() * 0.6 + // Each star sits centered in a hit area of at least the minimum size. + hit := max(size, theme.MinHitSize) label := opts.Label if label == "" { label = msg(c, "rating.label") @@ -64,10 +66,10 @@ func Rating(c *ui.Context, value *float64, opts RatingOptions) RatingParts { e := ui.Row(c).AlignItems(ui.Center).Gap(Density(c).Unit() * 2).Shrink(0) parts.Element = e e.Label(label) - interactive := !opts.ReadOnly && !opts.Disabled - if opts.Disabled { - e.Disabled(true) - } else { + e.Disabled(opts.Disabled) + disabled := e.IsDisabled() + interactive := !opts.ReadOnly && !disabled + if !disabled { e.Focusable() internal.Ring(e, k.Focus, theme.ControlRadius) } @@ -85,10 +87,10 @@ func Rating(c *ui.Context, value *float64, opts RatingOptions) RatingParts { } } e.Children(func() { - stars := ui.Box(c).Size(size*float32(n), size).Shrink(0) + stars := ui.Box(c).Size(hit*float32(n), hit).Shrink(0) shown, fill := *value, k.AccentText if interactive { - at := func(x float32) float64 { return math.Ceil(float64(x/size)/step-1e-9) * step } + at := func(x float32) float64 { return math.Ceil(float64(x/hit)/step-1e-9) * step } if _, _, ok := stars.Dragged(); ok { x, _, _ := stars.PointerPosition() set(at(x)) @@ -99,7 +101,7 @@ func Rating(c *ui.Context, value *float64, opts RatingOptions) RatingParts { } stars.Draw(func(p *ui.Painter, r ui.Rect) { for i := range n { - cell := ui.Rect{X: r.X + float32(i)*size, Y: r.Y, W: size, H: size} + cell := ui.Rect{X: r.X + float32(i)*hit + (hit-size)/2, Y: r.Y + (hit-size)/2, W: size, H: size} path := ratingStar(cell) p.StrokePath(path, 1.25, k.ControlBorder) part := float32(math.Max(0, math.Min(1, shown-float64(i)))) diff --git a/rating_test.go b/rating_test.go index b814fc2..c48634e 100644 --- a/rating_test.go +++ b/rating_test.go @@ -4,6 +4,8 @@ import ( "testing" "github.com/egoist/mygo/ui" + + "mujicaui/theme" ) func ratingTester(v *float64, opts RatingOptions, changes *int) *ui.Tester { @@ -48,7 +50,7 @@ func TestRatingKeyboardSteps(t *testing.T) { func TestRatingPointer(t *testing.T) { v, n := 0.0, 0 tt := ratingTester(&v, RatingOptions{Step: 0.5, Label: "Taste"}, &n) - size := float32(36) * 0.6 + size := theme.MinHitSize // The left half of the third star. tt.ClickAt(10+2*size+size*0.25, 10+size/2) if v != 2.5 || n != 1 { @@ -100,3 +102,18 @@ func TestRatingSnapshot(t *testing.T) { }) }) } + +func TestRatingHitAreaCompact(t *testing.T) { + v := 2.0 + var r RatingParts + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{Density: theme.Compact}) + ui.Column(c).AlignItems(ui.Start).Children(func() { + r = Rating(c, &v, RatingOptions{}) + }) + }, 300, 100) + tt.Frame() + if b := r.Element.Bounds(); b.W < 5*28 || b.H < 28 { + t.Fatalf("stars %v", b) + } +} diff --git a/tags_input.go b/tags_input.go index 424e876..3f9afc6 100644 --- a/tags_input.go +++ b/tags_input.go @@ -89,9 +89,10 @@ func TagsInput(c *ui.Context, tags *[]string, opts TagsInputOptions) TagsInputPa parts.changed, st.err = true, "" slog.Debug("mujica: tags input removed", "count", len(*tags)) } + disabled := opts.Disabled || outer.IsDisabled() if st.backspace { st.backspace = false - if len(*tags) > 0 && st.query == "" { + if !disabled && len(*tags) > 0 && st.query == "" { remove(len(*tags) - 1) } } @@ -117,14 +118,15 @@ func TagsInput(c *ui.Context, tags *[]string, opts TagsInputOptions) TagsInputPa }) } // The input keeps its identity whatever chips come before it. - ui.Box(c).Key("input").Grow(1).MinWidth(d.Unit() * 24).Children(func() { - in := ui.TextInputBase(c, &st.query).FocusRing(false).FillWidth().Placeholder(opts.Placeholder) + holder := ui.Box(c).Key("input").Grow(1).MinWidth(d.Unit() * 24) + holder.Children(func() { + in := inputGroupEditor(c, holder, &st.query, disabled).FocusRing(false).FillWidth().Placeholder(opts.Placeholder) parts.Input = in if opts.Label != "" { in.Label(opts.Label) } in.HandleInput(func(ev ui.InputEvent) bool { - if ev.Kind == ui.InputKeyDown && ev.Mods == 0 && ev.Key == ui.KeyBackspace && st.query == "" { + if !disabled && ev.Kind == ui.InputKeyDown && ev.Mods == 0 && ev.Key == ui.KeyBackspace && st.query == "" { st.backspace = true return true } @@ -137,22 +139,8 @@ func TagsInput(c *ui.Context, tags *[]string, opts TagsInputOptions) TagsInputPa } }) in := parts.Input - if in.Changed() { - st.err = "" - } - if strings.ContainsAny(st.query, seps) { - pieces := strings.FieldsFunc(st.query+"\x00", func(r rune) bool { return strings.ContainsRune(seps, r) }) - last := strings.TrimSuffix(pieces[len(pieces)-1], "\x00") - var kept []string - for _, p := range pieces[:len(pieces)-1] { - if !add(p) { - kept = append(kept, strings.TrimSpace(p)) - } - } - st.query = strings.Join(append(kept, last), string([]rune(seps)[0])) - } - if in.Submitted() && add(st.query) { - st.query = "" + if !disabled { + tagsInputCommit(st, in, seps, add) } if box.Clicked() { in.Focus() @@ -174,3 +162,24 @@ func TagsInput(c *ui.Context, tags *[]string, opts TagsInputOptions) TagsInputPa }) return parts } + +// tagsInputCommit adds the text before each separator, and all of it on Enter. +func tagsInputCommit(st *tagsInputState, in *ui.Element, seps string, add func(string) bool) { + if in.Changed() { + st.err = "" + } + if strings.ContainsAny(st.query, seps) { + pieces := strings.FieldsFunc(st.query+"\x00", func(r rune) bool { return strings.ContainsRune(seps, r) }) + last := strings.TrimSuffix(pieces[len(pieces)-1], "\x00") + var kept []string + for _, p := range pieces[:len(pieces)-1] { + if !add(p) { + kept = append(kept, strings.TrimSpace(p)) + } + } + st.query = strings.Join(append(kept, last), string([]rune(seps)[0])) + } + if in.Submitted() && add(st.query) { + st.query = "" + } +} diff --git a/tags_input_test.go b/tags_input_test.go index da8aeb3..fb1be8d 100644 --- a/tags_input_test.go +++ b/tags_input_test.go @@ -124,3 +124,23 @@ func TestTagsInputRemoveHitArea(t *testing.T) { t.Fatalf("remove button %v", r) } } + +func TestTagsInputDisabledAfterFocus(t *testing.T) { + tags, n := []string{"rose"}, 0 + opts := TagsInputOptions{Label: "Tags"} + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{}) + if TagsInput(c, &tags, opts).Changed() { + n++ + } + }, 520, 200) + _ = tt.Click("Tags") + opts.Disabled = true + tt.Key(0, ui.KeyBackspace) + tt.Type("ivy,") + tt.Key(0, ui.KeyEnter) + tt.Frame() + if !slices.Equal(tags, []string{"rose"}) || n != 0 { + t.Fatalf("tags %q changes %d", tags, n) + } +} diff --git a/testdata/snapshots/darwin/color_picker-dark.png b/testdata/snapshots/darwin/color_picker-dark.png index 00f3d75c8af5c5f17052552c54d104eafb63dd38..db1b53194918ad3ec1649b6b9388f04ad26b91de 100644 GIT binary patch delta 9976 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 EFPr0xs{jB1 delta 9356 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 MQ<1HdHu?O&0IxM;?f?J) delta 8653 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 literal 11275 zcmeIYQ%*V?C})l_6LP>E4tU|=xh<)k!VU|?;b{R#ja^olhl5e);w zG$Su1uH~I`l8d6HrJDsl_iNIvBY=~xBT{paz~RZDq>rNh@R@^kk>e zIcAxx^z`@Rsk@SDD6vKQyb73>7>^)VDvXJdI*J~Sni8OgSg)<_*TuVk*;8-M_mrV)X4f#HK8g~5bD4uSugi zpEx#x$ZMt1*83C2e+vyV*`x#%Iao~Rn*@-NuvW73);d@ujjfQ7upZBpv1IT#_AzA8 zUf;2<=yB_p_eP8wWaYn}v%P&%f&Fir@sS}GZ*%2q;|ss3i&S? zNP*P6kE@;jF=g~wzE0~>Q~gxK(7yqN^wLq;df|>l_~c`&LD}tGUqq1n{>RJ~?k@B% zyGh-!2;x)RUCf`*R#~MSocN-^uY^s;u(vlo~#xQ2Qqve#DP* z8>A)A$Rk^ zMXu^4pGw`@+1^~<)CE$_7NWZO-OvF0R&S{tYPiR{Trm0dh=Be+=)%Q7gPE|}*ccm! z$6<#SACMuXU%X>mY|Eo`O)VNQIpTCd1>VX+~2+J;-Q_6=g~y5m!IsbGV}Q~9XY9b)#^mX3gYC0Q~dl!OJ;6; zVlzWr!Vz6NhqhouA% z->_+0&h2^?DeQ1LdTcaA)%}SR$dOaanlvEIq;hop=gibh8RYO*rWhh{B)Ex9es*^J zcGxB-y=aQM_N(VH(lH zCrPkG!km5El_rs<3Xkt>>r?$_)vWJBiWw4>q$>uf9v=Iek{O9zWV=`32V(Wp(0Z7GPRT$bj!hbBc(uMV?v)wwdNgCDsKKSo zgO;$9{3#EDR9s#OVq;Lr#0ObA1sC1Oq-5*Om7Tq~Z{XZL)xMh(NXR*J#~{Ex9~)Oy ze0+(mndjNDR$?#|%9p3KY}R8YtdwGY@_(P6$NUmV_L)(ym6DIrbo6sjm9wpq!Vi-s z2lrF$op8sv;D7EX_W)u^On2yZV`W96OIwN;^Dc~nHUT@Az`5#r2g|*kv~Wp z-`X!2prLj-)H_`~%bDOi;a%I`@0eYRG|S1dcWDwr1AvVL&v9lVVa!#Z$^tmXsB?5( z0fL5$F?Wh}86FkYCjR4FE;Q7Idi2<_;ci@ItX*YC)?Jbt?ZB~5Dc1LSs;;^-oVl<|6}{dsts$pZ0A z=5!-af@(hL{-;ZCTaV`41$%@1^@sW3z99iCk0ywt^3r8O5(38+Dn-zwJCkh|PbLde zik(ahBVX@%Z(Ry45u*!^d;1Bhw7RBNozYr=M;wcFEJOv*Z_$A#Y?x-}`r1ahXJMtq z;(Tj8uv+pX@)vHNmgXijM7Z*~<3q&95to4wN!fFIZoZ&jqT0V*#7%m5L_a@6@8HBt zb=WKS%wLX36q*jqNZU-BRDEmxE=ANCD4o<{a(WBGsYqB3%{ubOSN8u%>W*nU@FTd}~WrgwAJ zR7Q8gVb-*SY0L)#paSmG@UT8DTrM;9tUiT6><7s4yaWUlYfLgzQmH?Lh!T>H2^9tR zI0ULB_M8)K1aA0);P9R8frpQ|`NxSEZZ z^L1|gi~cOvEUs#XQQuu6uEnQ}9ji2L2!4L2DaF8#&u5KZtDTU)``4Tl`DKtJV&|4k zQaS_)akXIo4cUYiuSfr56`_HHD`HWmB(8Fc+ibSMn;^hHf(H_N`}FcWH|+0 zT!OS0>=oG3RTY)fM=e1Lk;(-UVn5J<)M+{2nr?W~)>}x}LY1>tm=? zv=`=%Fd}{@Qbw9jk3>b3Sw{vEN*u%nm;}|G!}uw}`v%;`Ehl-vLaBf(0Mj!BK3^ay z5$yF3GvT1uG;&GMZz?J;^JkQ1@rXl%66I)3W^^<+aOU^8wPJSrtaCCxNpTE#H&u7x z-&{c5-h)@DYgp3%&fe`!{d2H##F zviiq`Pv^zd)N*#eHSeOuwV<*3^KX^>``tS>$a+{5M0lH(QB2 zwuYvkMD#e8k=$a6W~qz4GJZ4-P>LvV4E~D>?vKUNH2mfSOpZ(={HUzX9ohNLwj-4H z)c+kdrpRC!LIqol`S+y1&a|zn{Y+@q@Ub&Zb$8^|-}6LxweWCe^_U}Tj0(2?m>1j* z+fk+S)u_LE^(0fK_)_QkG`w|jxNe%(<|jX9X6?E2`zf!@M8@gzHKckEiYe{BKCtm0lUjn3haJT5s^@9EI%Q2SR`b%Km9n=>}c=!cI>R8EFTm9gU|iMF9!w6 zFJEXj<>J*aF#!PL>63VL5@nnyQ}sWz{0!>qR!vP74jWfq*Y%TOGhwk++zsfVa-o}v zmJVV7)?>p=MgnQgovC!qtlYiEd^PU0a*a5Q_{CuCbVGbiG@K|o`6!)m1pIuVjhPyi zxCAPB;E#`}CeCby!5hnk(Xr^+*&NcnHuTNb!!M%?M+&T3jh?olyMfyX$Xr)XC#sXR z25(qCZHBC12Oh4H#g6>Usl7xR@hflin`)hvviJ3?8MN;`dZYg6y1eYaZ)bCr`}f7o zQ9D*mS>9=%|PxyzlE?HHBLnsj623G>`k)RKM0defOwcPEl_8I{$k7 zwOb@bE_BY_BQ8fWT1SS5r{!m^BMAqw^10&@D`701e5t+i{^E+gnKq)1cHoXSLD~Ds zsS)2da*2bEtkFs5rLmfy237OhX&Iwg$C|}O!U+E!dfA_k_J$tTj)*#?oCIQB`}^2} z?jd<^u-3%&uj^fFAjMV*6>~X0actjZt)gE#?#y72&y&g&oZ|8 zb^03mSS;NKKe<=o5{uQ|27Z3K7~7aK5z*(hC$g30bB^MG*a3r;MPP?f?uSbJ*l_Z* zMW?b)p&9@F(nO^x9(sDLbAQ#G2xy{zii4a zuxUy|cH`SWw05ABkvyt@+dxY+%2cy3Z!xJ(7~5o0*^~l+vcZSLUU5x#6@@EjPp5ac zVU*(wtdd_H9bWmY(P&tL>Y6^~HJB^$M_fl?{sCw_T>-^bdaBuvt+D}Yyt}2Dj1Zg8 z@oUG&6zTWDxYYd#MqM|1HIp7l@OM9_KB8|JGt)kVXEu|wu=O_=-&kuJxQ}t2JMwun zq54T4%^op+I|?YtDRGE141tiq;F)WR30L zl41yT{g0kMWFtqmbUd%b>IS?XxBT9!=c!^e%y027V|48#koh~`)U(`vr^~lnZ(V`A zu+Osoy8;`kHPiltrlIZEZFq>lqC9j$yImT3!5A57Us%db-%emeDIESst*&h9eglOk3a*8_Fo=+IZ=tjhb<59T0Hr@6>>l5xIyKVP2GQ|N6cjM`f^3A(nJk7xz zNZHIZR0wdXP4bFcOeP_$CM(xXCeLfLe$I-jc9W-$iu}w(2c>H1sWAF-0882lazR&8 z=ekbky9kme+ZAQ5e2&ivMg!oOpO2~LRLmyTgVLUBm|E_;f)2D)9dxc zxnxyQ%~4w3uciFfpq57V_YXPQZW)GQoJQkg$8#Qt4ztaO+E;x}c7bW%YTj_ON`;KD zyi`5rGMUm;g}g4Loi(>3$`I zw6@v;9t($KpaVY;__P5Z!^dTs*jSD73}|*t4tXBK3g42V+ZDDCcJLwIniZAYcL_=l zaD7Z`WnaHly89dzx^hA1XeIS5@7{b>jo;=A{4SMn`45u!2+?!WPz^XH`BqU$H=dsV zdc;5CCCN>Ey6*TjAy+_|U+#JMK3|7nMsi#9F~dYvKjUH&(0hr6hDjXP+})l9wpM(U z;K*nDcj*C4QxV#SeOA2>3<%I}`uxEK@kOO)^6XZrZH-LJs8phKq+nVO0j^w(at{UA zy1Ig%<~9hE>vPsdWbjnm76zNKv48RCUpO_eZtTpSXdCIoz(#cas39INMTvd+z;9?A z@D?Y_jUm&lTb&Z1yMuzX3fnWg@Ae?X+VgJc<#mO_vU7E$sEA04xdhuS_ILLSf%bS! zFq-7W`ulS&2w6b5uYgI+v-j{CLrDcwRX>?5F)G}UC$`_(RZr=v$3f?{f-`dESaojR z`M9&&4ZJ7Y?3`6EDEWa9RaW8yVQ###%2LXwj}c~Z8iNJJq=e81fqKlPN*Y>;&l7K- zun``^s4^CMpby592^X@I~62tuA$vv|CAzsiFtZC%FD#nt>; z4)30_@arz)7$rXE#Zq(UiqB@W>}^|9fM+gkH>czU}9nlHeVZ1|Gwdz z_A}1;`vcLiyp)h@C5?c!7_f~gKCm=>60AtlD zncK_<$vWA>t9|Kqi>eyFJGu`l!K-v~H(l5L*_YCtL+Rum+_|rsFCVzdC3qf2NspV0 z8UAPMZ|~g$+;e<0%|vL#;P^Hn6S|}iBY*bzzj{3()=ab4hrdge!mro})r?CWxl;;aoky zq12li2VERwDh|(!(fe=Nx9F6r4bwRAq>Nglcw4^w3bORS@7peC`#Jr$CgF5!l11?y5}=+fzbv7IF$S!y7w zaDd zL*f{yExD5sqjf^ZZpEH!a+Ec~m|34k(41d3L7X)%NtkNYd?6NfhZH@JzzT&GKMIPD zAjRv0ow@Z-EFbf?f?hA!Z*eO)kIvVp7MFPErUkk7j}FMDD)7^2+qd^uYK-!^UXmjR z_WZZ1u{28C&R14bYt;j9mdfX5w$r@sh3f+}-F-`l z9bTRa3fQxOh`+ zs}8T%!?uuN5>>5?1+M@XcSjF>tGaIJs|xWA|1aJK>V2 zA3TP*Ouek+gW*IC+1Cf5iH*BJfsQ*5`X5FeB5H<-3wmF_@YpG{CUI7D{<3Vq1}&RgOuRd z18c);@=aCb_-NeV6%U$aLO%KAoF971!eK~Tp`jb)^qz`uSWLb+ zd>MJr`k{e##7{AXeHaRwte<*YSs&ou3E_^aMIGlb>^9C`$hkbgFjqd-cqSv~Mfi zd&**IsTOv9yBbE*CB#Vm!~RlilZPJJ|9-j9f)YA}6#vq>%0iNbMaJ)xSFh2{@B0)K zkRlH1xyj(&zVwc;hKWx@#{`7>%E)$%ee#0LX~w(vvHR~gh~6V`MuPwG1#bRnGbmQ4 z9m~4*duvEA7W$pr++vIz4y`O_uEFqBmd@6AF^iRdjJshd{r#Wo}_Au%t4; z|6*A5-LLs&!ku~Ej(B}eucN)Qb$14GbNG}?^5f~H=Y*fzX;`Q?nJXh?dbnEo7B#xH zBZ#m1777o4E!mCz{hXUWVu)jxZMjnAw-lNwuQVOo;l;$5ug#Y|VPWQXDzGFG>Nt8p z_Ati#Ew+J~jg2M0s!HT~x9gUwP_DITh)X9z=OHyU%v{|~eyZGAg}RlDBWFwPk74kU zGZLWQ?xTn?pZkHi%zO(z@f?zqLFy!Q$A&qc#g<;T-+u1lzM1-XJlQNix8$>h z9KwaA~Pzmn2XZf@&l9!Rx0`@u&dM21mKrkcBC{dJ+Vm!#8dJ*C0kgB=hH(W>$L z&!sGoj^QDX`aY|;6!nHmS9X$2>5gmL!ZX*bKe(BNC$eF8ReA)r7q&MEg|zbOcGxTd zPs*0q?{Ts3NaB^w0s|HYMb!Vf;wZpo!m|5AsFpcOexHgsXq2-Z3Z|fz)#{yCTv${+ zHf_y)Yn`w<=J;)Hggz7@mCf^9Q55m1VvJ+E=&pSzrDjiOLC5UU!svG~ZqalN>MuWTNaZXsRus*YF)+}&lTNPlv@Cu%2j?b<( zX!@rii{;^qWCw|HZD<<#wK1m`X_mBxoKQ(Hg+8rp9@ z{Ffgynqte-Lz68V2bZn6YsAKUQ1@qM214< z%h>n#6X)^_=*Kux{a)C97j<*fZG=lZ-D9`&o=9ox^Ps>h;oP%~gg_=;`VgwtwkmsA z7YC)6yfjKc5ci8S^7?z@EiQt1ezUPJaK$KLtvyp*a*1BDb{;+J^K5NNRpBq@wzXml z-~*9!kC{gsCBXOnrrgF$*f^yUL?y?0o}%pA6cLx)BbgfyUKeuPX;Q_+L2!MT8L0O7 z76hD>e35GQwoo2l0Vk;ImMG?f3a1l4lXre|pLrVbdp07cXw!9ET~*TzTsUnhppO&a zs8qOp99|kZY>vM^wUjCjvg~YdzL+TUP!;kfiiM|vXdVV}^789a>_E5F7So|k(`Ha(q_DTWla^5J zzKX-O8p~(AGxX)QuvMv!d%4l* z>x`6;Xc|=T*gWfOqIl)jZ~fD?G6y>xk&K3#vem=8?#nHz*$Zz*3*tfQ+<-8ZgxWE+ z#LDDJ)uocg)4K>#*z>u8JE$Le`}692=K*zef$|4RDt9$HX1R7<)LBf1)bP8OAr_hS ztbvSEqUok-hHYbt`{hLizrR`Xxsf15Kl)>)@Nc=O#k-@lb&`^M&1K!bOBCw}+VZgd zb}Z-PbsppSZiNE-`-6M6p#(7e>5=435=Xbl zPqK9QxEygZ9ZRFoDh!_vGv7RMoIfG>1Zc2!W)Of9*|yW>Yhl+WihqX`#;3xauB&mD zofZtkW6NMu%~ zwspO+6QWq)v@GOT8XDw;s>l*Vn_-D34(x3L7y02tpqgKS)s57NO&puB!>ybQ2JVTX zhRuLnoPjXtJ?}Z9O4FY(7HsX7>A;#YU{NoCgxnu}HBlKG>k5aZDl0iHNBINsH+E>^ zE$MsbeX*r5*pJw$oRQxB;nklf5^V1JlbJA=bqiJGoN^Si4=|%=e1?H2Ic-aii)s2( zlyoG6$+IQrgp^vby_kEsJqy^fpjteAKp&?fdq^MC>#}k2pjD($sX@oUFxHP^EJqY4lMN@!jeo18;xq_J@se8&pR`h4 zGU~@8yh0OGQ}*Ey$G+rKF;-j;myyKISXfw+y-OT6t*WGB8j`jV5W5qn!!>T7&t_ak zKws1y?Y2c3A|+1%TRK+!%5>)|syme9gX%fzI@_O&s2l4WY&Za0fP}0%POK(+t(x46oACNEjGXkG>|?1t*>;999c!#~yga`4h1-!kZB1g2TDd|f zyo{*LQsZ44PYi`P^MCFj@j~}Z1K?J+j29?1l z*)~>R3*@S(0^{UC-yksvY6t%%MH6)we-y+_)YK7Y=Owy5K)Y-N5q*OU9iJQUiXbKy ze&OBo#FpE$cy;OS$-@g$*X=RCw-XGx~ zr&G<2k)UdDn(9|3P_?!zuHHy5%1az;RoOda&8eG4jE!)3K!$FnKgtIOMWrf$OQLqt zr=(GMx>Bur1CwxRkYv)0y1K4;$?UY(R~6E(Rhh><+dobe&H6frH`<8p>R){y_2|O7 zC-it6S~|U5-opbX3Ua@=ccCL07$zc1CW7;g*PFzOnWyboJVAEeq+l)=D%{-W4k7zC zty+klL;S<)QHAB-7AJzp@uMRWpf4wp&Hcm6^r4=sS)N>Pz6nI1X0x`2{tmf6H$W0? za#TzQ(NbGSO^22=y3_Z-!loCLE;o}k1VJDp`<*rE?oq}&R^NSj37;{6Ol>BRMedVy zftaVZIUxCbN{+RwNF~aF}sV4@i`xg{?`l7Na=$tn(5| zmg*OC-_-PmCKF$^hyG&!Ct3boKI9<%500T@axTl-u&Y0Xf9n6yOM>oOPvoN--EaAK z+uQv~=7!2nr#3QVCXL!PE2#UA9!+!tH%7e5x)M!tzd0@fN00G~J2N4=#jwNZA5;sR z$?VrWqLPKVb<4OnGe4+`5h|oXc+aLX{V$`Dl zg#QKK+|>=j$eN8It|pWu$)Z*93y&*S9Mqt%$uSAz5=7BU`aFgg7v7U4*2W?NjcFsFY94Xh> zSg#;mfldgsSm$fWa48jlFz$#5J~DAKZs5}N!zj*$JyRT~YrIm9=2yEhoC_#tAOv%< zQd?&ys$%*fh+lmfSyuR@P^^tlkbcnUj(__Ef1SZ@XU_3a32BW409>rnmI>3T-gM*t zR;iH2$)SSXE#@*U7#u)qN&${p1aqvQGk(Dc{e~{RrMJ@`3ra9*quxRzZ>=s@s6>nC zM@N8Eez{{#lIEOcNJCvRBo3kXXg7PFi?mU_RaL6_LVRBCT*binr)V0kEhd7}&TMpv zZpW=o?(eVJ5gO{)@uhVO1))0#bPa2VgVZ=w`QN;(;*xvWnKxbQL1K>iZPQ z!t*&Ek58plNTg)}lqmlYO;PLR zS^!|d?pt@{cP#`(UX35r56=m6zFbFoVXo9;8URAaR6yhBkFUr>`ASkTnK>r_Nvg0-rftg5gOwVUYQHVKM*z?*GFMe4Dl~L&7w@ U#Gf1h|Jh4kT1Bcx!Zh^%0Cx;A)c^nh diff --git a/testdata/snapshots/darwin/rating-light.png b/testdata/snapshots/darwin/rating-light.png index cf87bd9ead2df62cdd90df92f3570cb6eb17e0a8..45171fee5e52e79719969535927bc7ddc3c999b2 100644 GIT binary patch literal 6228 zcmdT}_fr#0x29MSktQH$=v6>E7$W7B7JBcYh%{*mB$QA^>AiQti}Ws?gr>9r5h5TE z=}kh%(5qaW`w!fo?tI_O&dzgo&g{-UXV0@|cB6E)!4JqElM@jUJy26s(kCJ!eshB> z$VhH_s_zO>L_~~F)RbNt`sQxWxadOc|J?nJ=VE{KR*ft)R3e$-g~c<4f_-8A%0DsQ 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 literal 11156 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 delta 6883 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 diff --git a/testdata/snapshots/darwin/transfer-light.png b/testdata/snapshots/darwin/transfer-light.png index 1030c960a64135c4376f6239b4f382bb09e12f34..11a1ac3f12c19aab43ed6878df896be5dfbb8bc7 100644 GIT binary patch literal 15190 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 0 && checked == enabled - box := ui.CheckboxBase(c, &all).Label(fmt.Sprintf(msg(c, "transfer.all"), title)).Disabled(enabled == 0) + box := ui.CheckboxBase(c, &all).Size(theme.MinHitSize, theme.MinHitSize).Justify(ui.Center).Label(fmt.Sprintf(msg(c, "transfer.all"), title)).Disabled(enabled == 0) transferMark(c, box, all, checked > 0 && !all) box.Description(transferPartial(c, checked, enabled)) if box.Changed() { @@ -184,7 +184,7 @@ func transferPanel(c *ui.Context, st *transferState, side int, title string, ite for _, it := range shown { on := st.checked[it.ID] ui.Box(c).Key(it.ID).Children(func() { - cb := ui.CheckboxBase(c, &on).Gap(d.Unit()*2).MinHeight(d.ControlHeight()-d.Unit()).Padding(0, d.Unit()*2). + cb := ui.CheckboxBase(c, &on).Gap(d.Unit()*2).MinHeight(max(d.ControlHeight()-d.Unit(), theme.MinHitSize)).Padding(0, d.Unit()*2). Radius(theme.ControlRadius).FillWidth().Disabled(it.Disabled) if cb.Changed() { st.checked[it.ID] = on diff --git a/transfer_test.go b/transfer_test.go index 427d4d2..13e1d69 100644 --- a/transfer_test.go +++ b/transfer_test.go @@ -5,6 +5,8 @@ import ( "testing" "github.com/egoist/mygo/ui" + + "mujicaui/theme" ) var transferCast = []TransferItem{ @@ -116,3 +118,14 @@ func TestTransferPartialDescription(t *testing.T) { t.Fatalf("descriptions %q", got) } } + +func TestTransferSelectAllHitAreaCompact(t *testing.T) { + target := []string{} + tt := ui.NewTester(func(c *ui.Context) { + Use(c, Settings{Density: theme.Compact}) + Transfer(c, &target, transferCast, TransferOptions{}) + }, 640, 420) + if r, ok := tt.Find("Select all in Available"); !ok || r.W < 28 || r.H < 28 { + t.Fatalf("select all %v", r) + } +}