From 80343ae2d433f7cdddbb6ba80f35a9bd0ffe1966 Mon Sep 17 00:00:00 2001 From: Stephen Houston Date: Mon, 26 Oct 2020 23:20:52 -0500 Subject: [PATCH 1/5] Fix list to use dividers the same way tree/table do. --- widget/list.go | 86 ++++++++++++------- widget/testdata/list/list_initial.png | Bin 6996 -> 5724 bytes widget/testdata/list/list_item_removed.png | Bin 3132 -> 3128 bytes widget/testdata/list/list_new_data.png | Bin 4256 -> 3964 bytes widget/testdata/list/list_offset_changed.png | Bin 7206 -> 5849 bytes widget/testdata/list/list_resized.png | Bin 8036 -> 8979 bytes widget/testdata/list/list_small_list.png | Bin 3132 -> 3128 bytes widget/testdata/list/list_theme_changed.png | Bin 10388 -> 10387 bytes 8 files changed, 57 insertions(+), 29 deletions(-) diff --git a/widget/list.go b/widget/list.go index f156299b68..78bf46d388 100644 --- a/widget/list.go +++ b/widget/list.go @@ -13,6 +13,8 @@ import ( // ListItemID uniquely identifies an item within a list. type ListItemID = int +const listDividerHeight = 1 + // Declare conformity with Widget interface. var _ fyne.Widget = (*List)(nil) @@ -90,7 +92,7 @@ func (l *List) Select(id ListItemID) { if l.scroller == nil { return } - y := id * l.itemMin.Height + y := (id * l.itemMin.Height) + (id * listDividerHeight) if y < l.scroller.Offset.Y { l.scroller.Offset.Y = y } else if y+l.itemMin.Height > l.scroller.Offset.Y+l.scroller.Size().Height { @@ -179,7 +181,7 @@ func (l *listRenderer) Layout(size fyne.Size) { } // Relayout What Is Visible - no scroll change - initial layout or possibly from a resize. - l.visibleItemCount = int(math.Ceil(float64(l.scroller.size.Height) / float64(l.list.itemMin.Height))) + l.visibleItemCount = int(math.Ceil(float64(l.scroller.size.Height) / float64(l.list.itemMin.Height+listDividerHeight))) if l.visibleItemCount == 0 { return } @@ -193,8 +195,9 @@ func (l *listRenderer) Layout(size fyne.Size) { for i := len(l.children) + l.firstItemIndex; len(l.children) <= l.visibleItemCount && i < length; i++ { l.appendItem(i) } - l.layout.Objects = l.children - l.layout.Layout.Layout(l.layout.Objects, l.list.itemMin) + l.layout.Layout.(*listLayout).children = l.children + l.layout.Layout.Layout(l.children, l.list.itemMin) + l.layout.Objects = l.layout.Layout.(*listLayout).getObjects() l.lastItemIndex = l.firstItemIndex + len(l.children) - 1 i := l.firstItemIndex @@ -224,8 +227,9 @@ func (l *listRenderer) appendItem(id ListItemID) { item := l.getItem() l.children = append(l.children, item) l.setupListItem(item, id) - l.layout.Objects = l.children - l.layout.Layout.(*listLayout).appendedItem(l.layout.Objects) + l.layout.Layout.(*listLayout).children = l.children + l.layout.Layout.(*listLayout).appendedItem(l.children) + l.layout.Objects = l.layout.Layout.(*listLayout).getObjects() } func (l *listRenderer) getItem() fyne.CanvasObject { @@ -244,33 +248,32 @@ func (l *listRenderer) offsetChanged() { if l.previousOffsetY < l.list.offsetY { // Scrolling Down. l.scrollDown(offsetChange) - return - } else if l.previousOffsetY > l.list.offsetY { // Scrolling Up. l.scrollUp(offsetChange) - return } + l.layout.Layout.(*listLayout).updateDividers() } func (l *listRenderer) prependItem(id ListItemID) { item := l.getItem() l.children = append([]fyne.CanvasObject{item}, l.children...) l.setupListItem(item, id) - l.layout.Objects = l.children - l.layout.Layout.(*listLayout).prependedItem(l.layout.Objects) + l.layout.Layout.(*listLayout).children = l.children + l.layout.Layout.(*listLayout).prependedItem(l.children) + l.layout.Objects = l.layout.Layout.(*listLayout).getObjects() } func (l *listRenderer) scrollDown(offsetChange int) { itemChange := 0 - layoutEndY := l.children[len(l.children)-1].Position().Y + l.list.itemMin.Height + layoutEndY := l.children[len(l.children)-1].Position().Y + l.list.itemMin.Height + listDividerHeight scrollerEndY := l.scroller.Offset.Y + l.scroller.Size().Height if layoutEndY < scrollerEndY { - itemChange = int(math.Ceil(float64(scrollerEndY-layoutEndY) / float64(l.list.itemMin.Height))) - } else if offsetChange < l.list.itemMin.Height { + itemChange = int(math.Ceil(float64(scrollerEndY-layoutEndY) / float64(l.list.itemMin.Height+listDividerHeight))) + } else if offsetChange < l.list.itemMin.Height+listDividerHeight { return } else { - itemChange = int(math.Floor(float64(offsetChange) / float64(l.list.itemMin.Height))) + itemChange = int(math.Floor(float64(offsetChange) / float64(l.list.itemMin.Height+listDividerHeight))) } l.previousOffsetY = l.list.offsetY length := 0 @@ -293,11 +296,11 @@ func (l *listRenderer) scrollUp(offsetChange int) { itemChange := 0 layoutStartY := l.children[0].Position().Y if layoutStartY > l.scroller.Offset.Y { - itemChange = int(math.Ceil(float64(layoutStartY-l.scroller.Offset.Y) / float64(l.list.itemMin.Height))) - } else if offsetChange < l.list.itemMin.Height { + itemChange = int(math.Ceil(float64(layoutStartY-l.scroller.Offset.Y) / float64(l.list.itemMin.Height+listDividerHeight))) + } else if offsetChange < l.list.itemMin.Height+listDividerHeight { return } else { - itemChange = int(math.Floor(float64(offsetChange) / float64(l.list.itemMin.Height))) + itemChange = int(math.Floor(float64(offsetChange) / float64(l.list.itemMin.Height+listDividerHeight))) } l.previousOffsetY = l.list.offsetY for i := 0; i < itemChange && l.firstItemIndex != 0; i++ { @@ -340,7 +343,6 @@ type listItem struct { onTapped func() statusIndicator *canvas.Rectangle child fyne.CanvasObject - divider *Separator hovered, selected bool } @@ -359,9 +361,8 @@ func (li *listItem) CreateRenderer() fyne.WidgetRenderer { li.ExtendBaseWidget(li) li.statusIndicator = canvas.NewRectangle(theme.BackgroundColor()) - li.divider = NewSeparator() - objects := []fyne.CanvasObject{li.statusIndicator, li.child, li.divider} + objects := []fyne.CanvasObject{li.statusIndicator, li.child} return &listItemRenderer{widget.NewBaseRenderer(objects), li} } @@ -424,10 +425,6 @@ func (li *listItemRenderer) Layout(size fyne.Size) { li.item.child.Move(fyne.NewPos(theme.Padding()*2, theme.Padding())) li.item.child.Resize(fyne.NewSize(size.Width-theme.Padding()*3, size.Height-theme.Padding()*2)) - - li.item.divider.Move(fyne.NewPos(theme.Padding(), size.Height-1)) - s = fyne.NewSize(size.Width-theme.Padding()*2, 1) - li.item.divider.Resize(s) } func (li *listItemRenderer) Refresh() { @@ -446,6 +443,8 @@ var _ fyne.Layout = (*listLayout)(nil) type listLayout struct { list *List + dividers []fyne.CanvasObject + children []fyne.CanvasObject layoutEndY int } @@ -458,25 +457,32 @@ func (l *listLayout) Layout(objects []fyne.CanvasObject, size fyne.Size) { return } y := 0 - for _, child := range objects { + for _, child := range l.children { child.Move(fyne.NewPos(0, y)) - y += l.list.itemMin.Height + y += l.list.itemMin.Height + listDividerHeight child.Resize(fyne.NewSize(l.list.size.Width, l.list.itemMin.Height)) } l.layoutEndY = y + l.updateDividers() } func (l *listLayout) MinSize(objects []fyne.CanvasObject) fyne.Size { if f := l.list.Length; f != nil { return fyne.NewSize(l.list.itemMin.Width, - l.list.itemMin.Height*f()) + l.list.itemMin.Height*f()+(f()-1)*listDividerHeight) } return fyne.NewSize(0, 0) } +func (l *listLayout) getObjects() []fyne.CanvasObject { + objects := l.children + objects = append(objects, l.dividers...) + return objects +} + func (l *listLayout) appendedItem(objects []fyne.CanvasObject) { if len(objects) > 1 { - objects[len(objects)-1].Move(fyne.NewPos(0, objects[len(objects)-2].Position().Y+l.list.itemMin.Height)) + objects[len(objects)-1].Move(fyne.NewPos(0, objects[len(objects)-2].Position().Y+l.list.itemMin.Height+listDividerHeight)) } else { objects[len(objects)-1].Move(fyne.NewPos(0, 0)) } @@ -487,3 +493,25 @@ func (l *listLayout) prependedItem(objects []fyne.CanvasObject) { objects[0].Move(fyne.NewPos(0, objects[1].Position().Y-l.list.itemMin.Height)) objects[0].Resize(fyne.NewSize(l.list.size.Width, l.list.itemMin.Height)) } + +func (l *listLayout) updateDividers() { + if len(l.children) > 1 { + if len(l.dividers) > len(l.children) { + l.dividers = l.dividers[:len(l.children)] + } else { + for i := len(l.dividers); i < len(l.children); i++ { + l.dividers = append(l.dividers, NewSeparator()) + } + } + } else { + l.dividers = nil + } + for i, child := range l.children { + if i == 0 { + continue + } + l.dividers[i].Move(fyne.NewPos(theme.Padding(), child.Position().Y-listDividerHeight)) + l.dividers[i].Resize(fyne.NewSize(l.list.Size().Width-(theme.Padding()*2), listDividerHeight)) + l.dividers[i].Show() + } +} diff --git a/widget/testdata/list/list_initial.png b/widget/testdata/list/list_initial.png index a12d73811c349907230fef5f71e9f65c03b95df2..356b90c3dfda6721416e7dc39eb04c0843ede1c3 100644 GIT binary patch literal 5724 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 literal 6996 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 N@!(OrGF$)Te*u)IU|IkG literal 4256 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 V?p!=O0RHp92EAaeU#{zX`=4HMD+B-l diff --git a/widget/testdata/list/list_offset_changed.png b/widget/testdata/list/list_offset_changed.png index 4c2770b67b48e0362697a30544c657541a0bb1c0..2ad3a60709b438e244b2a85de6f6fe2ae171882f 100644 GIT binary patch literal 5849 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 D?*>5E literal 7206 zcmcIpc|4R0+wOEiNGh_|C`pmBQ)Esm*_Aze_GpGt$d(f=$dU?`ElG&6n;Cm#UlX#- z*v7t%eII-`o%4Rb-}{~K{qOy2cxL8V?)$p0>$X-wS_Py(En8*~2}peC>+P!|16VcO7lFt?fC@{a2RNtym7FT^0;%=j)EhYQL3Y zy*S46PSD=r`t;$W*x%LKKkB8(Q2at1P@$JB!kY}RFT1(9Z4E}!*4Hu6i5#M(WmGDXFwja_+<8wZ-?+)Ue`>1XLd9XmApS5V zuJiYn4hx++RngekXnsdmx4k`8Ke$&xM75DwFXu*DmSuHQj4ZyT(6wD0%~*Dh-l@W4 zrN=EMI{EDMvx-tQ5--b5TqJGEWhwu$Gm$0D4L z!?LBN<>$|z50a*yGO{m^w+fs%apipE_K0+;vWkkw9J#Xc1$%&=ZT3Enb8c=coZ>c4 zh{%YDi16^IPo79@WNa;E_+StZJv^R0dnQHA#^vQr_ZAoGr8d^qreLwdk#19+q9P(U zlUj#|hjn#yM5>-0JT@^lHa0m~zp0~=s5Qr&o|59ezIfI$C`u42H#<8kq@TXJzW%eV zjg_5!Ax`1u&6~GxcNKfCEFv!?YNhC<`uX`;i`~}H2vJFVrF5#N&<&rHQ|LBx9Pj#j ze0;p;@>IU-G?(SnjL){Gm6es9-5J_cVG@Z%5dZKeE%Wi{H*a)IOnTz4(giDuJN6dI zx=}=`$b*B`!QA==24nsG-&3@c;08Z@`0(V(J|Ush%bv?lqq2{zxK-5EnHU%t4jkaQ z=sdK!v67@2*L2JxN$uUq$a-0qi3g)iG42Z^7?zv|<3GyF%OC$vS3n@h$jBtOPds_@ z1pY)I5GgwLDAX}_cDL~#{C>J}UaOg!aq=6>(}T-u@O4H8h9^B2ZLZX4$KNa}F4o5y zE=877`GtkmPllZ{EAeXoqH9?dG`Fy@u{s!<@bM$1x452T@<(F*x9808D7TG_qTalb zxYwC!6Sv0fv-&NJ@5Vudd_x?=b7sVGlbPjdVpCI7q3iT}cgnsR)L$rt+9nRL$UmIr6&4mgckZ01=&hvI>Aupw)nJJmC^?I@)zu&l(Q@;6 zJRW~2s>0XTm(l?jVm0hI}pGc&p1cZW;gx z1IomFk1ZqEuRSUDJNE+85R3cp!Mx?;^>xPl)EUd_5NjKo5Drm``Jvju>d?@Tke{U_ zG_gQTTs&X(q^XI?v6U<8>cM4xW}El6wzk5;!d?q#Hr3V+XuKe$GQU2pE@s2mc#E5E za(!tsB_)NH5xKe88sUZPOaolUUwzKT#-^vMD_NwE)kDa8t&X)M+`W63??woTfJx9x z4R3R(RetU%;v;_HLdN~kCern&Ii6$3mVCOKV>maKCIxCi;D{n569!(u3g(_*-&5a@cqM;W0xNEYZRi<=uiaGCg>{QUR=F;)q07;5{8kUi77ZB0CWF-4h~28i8V4XFo?p-A(5rIxe`)R zKYM#)MVA2~LEO@mqkV~nnNr8I6x&!lEVq*21E){h00Z3!;TcHpyI@-Mkh+Qij^I~~ zc=+&Pa=X2Q!(`l}_3`iVSA(*Awm15a+f?xt!?D1lLOZZW>KYr9su4a79QAc|fdK)v zO-;QZ9|bOxO>xKzk@Yu%xm?!fhiMqu8lt2_JkX%jc-Y;*K_6A^)%z3X6aPq=?Z zGpUtxo9VNBo}qBt)5q`Zdk(+wOo&TL8WlP|yExuzghz80-!bns^bY1P=ic{qZ@)U_ zkG+00r$h|?;pM&8;|E{={EdvJf16kzc|p3Ms2%y^H#_=hhR6FrOwBX@{J$@`>)2Xg z!9#nAm%PtLwsrghQ_> zc=D~czB9{ z0?1@?0E+;O-TkS~tm)aAr4#7-eL=*6!ougzpI28^Irs5hFe!M@SK`egph3#Lt3A1r z>JAsEAz(8yGOnGht*;-9w6eC&YsRacL7t0%j1Y)P*)VlKH%b%vP>yt`C^ zdKyHO2a1|#Pc`$JyRM|u9k=aN7F=twuAJHV0YGN~6RAdT@SGH~LD zOd#5N44=8^O>#i&MFMyaM%j9~t+@-Whkg z9q07;mx21X7lJSc4aVruQH`hnfRMjna|lm!#GkmA{_hiFjE(>XLPJBhDTOmYYimyr z9z3`(+Kdph@>e@u=rm9cdLv9w42EyTj)^B#=R<3U`;Y`eZ0)-X?y zkI!%8x5*;+g`laJ_hJ>OcbOQXO@3iv>Bmp@qQBZ7Wj)7Nd4p|8yAI z?oaf+1x>s)ptJvWeUQiS-O@+UPlH83lT;RPb<@FW>2 z1Z+%9&ntda+5;Tlvn+3Lb8{CkiO~2H#V}+X=|pRLyQIAQBfz_GXT}H<#wd)83(5k! z4Nj7lhK9Z{Lyd)uJ6Vb1v}EIXc5nag2d0^J4-vU5P}c*AIB9=kAS)i_cnE*=ESlI0 z%{C?BOs@afbW5XB? zNOIx992#a@)lzy2JFrHhLqn_xMBJ-aVt2~-6*N99hC3uzpl13?5r+@Q>!s#LO?G4e zKNaHf(s=g>I*idA8AsKbLrHIHMLxYk(kmihOPJ+X`{8u!XH^*e2-6P!#DiQCcEET- zdTAoggX)}QoJBPX++(4A`mf_?#0`j1uQs+mdTxLRNA(uDFOIcDtaESvf?!96+4fjM=;}_kK`yOp=u8X_io4Gb<>uys{Q3IsoR_ zTNl+2k#Xco)RJKhswnwY5Pva!Gbvk0S8TgT6> zJ{9`?Z_e&rIQXB&UW9>+;}!f*s=q@pf4Bda2%O@oLM?$=fhAV>`N3l+)#FP{cetU2 zAgn1Eep*04Rz}7tt|SpyJ%9y2-1t`XYKqRt(2zvoiv}(-?qe0I&tnps?4hizTuu?y z_9I{)VvL}lLqkKr6!?J$jyvtSfZj+#ZjJ+H$H&JN(K)xFF`o$2;LX03moIKV`_md^ z9uD}@FtRdSx3DqiKoPZLFR&7rywx z_z@qr!8vH~!*7)+SOsb~XDD4cqfw3}0RaKZs;b&&SRX%r92*c6xc3~*ZU>F)BtIRE1d#60*fvz zY`J-P>S}7FVox`~$X}|egfWWIz`ITxZrRw|Pe21ioQIUqTEfh`0>DHnbj!%h6yfFl zBUwN~a`%jqysv97xlSefT+0dtoA-lZb#QP1lc1b+UV9fnaLer6+=UjE3=|ztkb=9dpJ7*`FFCn8apLGn z@Tg;BXCmvF-Vf~1`)L~zt|)fDkjM1jWAk5OO)mWKD;7~v(V3Es^r$Ezn6m0n#D%71 zf94&LI*MOfSpfnpb{?*S35k_+w{UdS#4}|a`vp4%g>sOz!NEbJOzp`AYM`D6KE5x z$FL!`wds61$#eou>?UA!1R)dylBjQP9#wFH7-|)$83x*RD9QZ&E)5##>3wdoBczZ+ zD)RI5<>lp3j}%y*?~d)%)IDzQDCih4hm$ImN=5e;DHr#4fMW%6bk3))&JCJ*FX{gA z$DhH$jqneoMfo*fuJ7KJu;tWbMyYA8T?@b-o0bMoP(qzorAV^Acmfy~N7r-YM?B#sv{IqNIX_ZjNm%b(raAmHQeM9I!x3}kUrr)ta!wl52t`Ln=XXAm9~=Wz{qb4t&yaaJU3CoGEo5p2^kt@K zq3H=dOLxKZhCRFOTT*`~23wa98&5TqrHCNh+|eN|CntCQd{d3^&LRRcJFFfnmk(1X zBvikeBxe2V7@?qGYip&{EXO8zP5|?(BSsoJIyx>cc{I`}clZ=LJ})mXI54og)W;{M zPs(r)l&}UvbOkSY+L?rl`CIA#E9O)L8o02qpsJ*_pNXm6J`dPrE6-cf#=US41*B81K-HFI5T5o9(>@NH*di0 z0^%Tl$g(c%YS=YL%a9rA>gvL3SlifW9kc{CEj>Mi+YNvO>S6@(0W?j3pWkKjCpJ0R zt~>Yc&OUAT+Tc|rZE9D8F$yJ&?+_CcJHo=kL@~*C9)=Jj|9M`Kfxf^Y$8_#4 zSDL@*GK6ff83%KUD+-3kB7L?-<9u+L>2Z$)=Mu~8rI>V0Ot3f45S(?ty|5M#5TNu< zOiV=R!{OMh=&ol3Y$W#8iL?Ed}x`#T^4x3#v0fFAOl)YQ~Cq)!uaCsjlu<4U_z zlau=ulTw;h<8ML$wDlY0@7z-N&YV3P;P3C`>KYOp+yjd?WHv@e7RA`tFIMi9`(dh9 z3dn&~5Y4`Q65X4_6x|dZ;hC>r+9$qz5!|fS*VXL-L27(2xz6l4KNO&sdKo<2J8@fx zi+MOXIgcNYefbh%=npM+Q2!{ygtFrHc7WIW(v+KLnqn_+v}z*9w^=BwNjic;f`Y3z zxbBUn>eqR*aRoo~`RX}Syt53juq3qD1-^K}a^wgO-E+ylEqRBcpUT!10;bp-P* zf5gbTLG;E%IVNt?0QRA)n=ir;D<#tlYKaH+gupF5JstgkTO(QqBEl@!>F&(TOe)nY zTqW`5nOs9uf-RfhXhw4KcjQYjO)?iRV%Xbgzoe#ytMG3tg{uHuEBl6MCy&P2K&uoJ z1`y^bl!=Z`MG`&8_x!>F|B--1+I?p0P1lJ$6dlNN7#JCwrDw-l_$a1{T3u7xb8YsL zD~ZkZ4Gj?S!Vd}skhW+f-M@d|b7LBxXNXNrb%2CKM{rmkm!0jgI2H!sWBoA5B9MH4 zU=3}vnYMPq%`*=!9dlcl8?3%^<%-@?uHiHQaqr%}RY9DC{r$XQN?zXHATX6a+3Rus zS}8*z22`8-tt3`T;LB3?!73)Ogne7f_yP}aP#4JS;AacNk_5H5t#f&E{zoAn0wsRN z+)ruWR&dn&=8%@1oekAcetlZ_cJ`CPN2QQ}!s-g_Ulq(fIyGgit<4v%0!z3Xgxv)N z1<}#b02OFH`~WdU#D{Je9f^kdzw_h*KP7OJ7e9XV>y^ zn>va-d-g13y~8CbZFUk#8ZiZrHa%2B3^E9r4iAIFBO~#!nzXKo|kEl=D4dy&uYBi-Mf=g?R(-+RP$iEy8x^gH}OQ&si3sEE{$Y=^(=>b|tF z3o|JtYO%AkKUF9j#X#Q@5)$(AT-@FBd42f%kAeZS61%O6Yn=kdo=4y*}g8P5J|F(oroC}SteUy zvXgz^vv1GaoX&mj`}f@E_j)~loTq=1nfcD=^Iop^bzSd*RF!Wq&>g4Sv112={7pG^ z_`7x>c2$LOXwuN_8l0z9W4-QBr= zbo(Fk-dh_kyVpkSz=CH)>xZ>CKKw9I8?5dOW`}gYHVq^AC!QID}> ziBeCAk#NbFadvWYLZjf-eY`v z<`@i<%JjE{8*x%z2WZOS4$l3R43(`T-x7$|MBBTJRZNk?%Cg*tzBeu7{e6Aj8w*;M+Mb@CuCA_jc6KlL^hw3VXU?42y?Zy@WMp9AS!^sH zsyhg4WlJcNTkk=j+nt1g-*nWDvx1^+`zP?^P#SwlkEG(>ik*RUPV`1!UthoS-@+=MqN%e{e6J|0U`PR`ECXtdXC#W8fi*-i_( zrO3xQIXSuJ#Xc)7z{>8NXU4H@!l~CfyVb!?Km9+!^TjwO?{kn0}IivzY>lZO6xw=S%~FU5vm*; zA6JP*>D<1(ureGcT#1j4E?t`*4kI%tA*U#b*zPUGEf1})Oyt29) z&LQ1BAjiSMaWe4puHCzzD-6Cc^gd4-pO~m+nO|J2Z)h;gw`?o(r;qcPD)d@goNRwT zzPd0zWZ1Hs5p~Mo1(E0hVR@^bGLx2(m#2YB(j@Tm^B+q}qhR#)_0fFj%oh3{rQef2 zeE5(|!3Z-p9(A(UX3X#N64;_NHrg+YQSR47vBsT4t!>WL@aN{{Rz+|~TYOK0An*wZ zH7<`j4`*DIkXUO{kw!{o7Z&QcCS+%S8>lTP%?l2u>+Sfhm!WrDX8q`=ct?9}vxeBN zY~w(3P_9{nb;FXci{r}NAav8QW5+}=qo!xIIosZB}aQLi$Vj-lZJ-f+O z9>B2Ha4fj_r(y+}EWd8pTPq_YlcO1${qyHffP|MXS)kvZD?p&xn3(R>e=;*Msg0E+ z`fP0q;Vc&?+Mti1#E`?gtTec%vnva>19@9tpPiX`9xCG`%2jp!-NsCBc}7M?%?tje zxw*zsM`)X^%?)^@ap=Z!e*}PO`b_TE+XPMa%eGfY$$ROK0s{C7Ie9FseF`5MEPJ&owb8Cqgv9xrHJI=FjU_j&6ty~lG z)3P#IWzkUHNXO)^nJMD5)a++w7gUFqq1SuY*?aQ`C!|r(NhnlmYU-uqVXklBY)($; zX=#_-c5!tM<_+%;Q$pNI(P+suJm&N4LgdY73W<7rnaRnA;*4iK=n&>H$gC^+_GRGnoelT5FmqlV>u7B~hYAQjK;yg8V|4shL7(d*ktE|K z?a*u)Uz!w+)Q*_=w6t15pGmq(@%0lmLi~qz+zD(U?f$!|22(KT&gOvR<;$%(H+G4f z=jWe(m*leS;=g0^QJ^e!NdC8ZsEVdxN=EG7uYrBECzX6<7sZ4LAU`Z3VrwKJA}2SO z*CFgX4aH=0s20b3Q zRHVyeFNV;-x@ltl52UDaI@u;8=F0JB)PU`D2ei)%)jL<%Kf*zV? zXDT`L4gNqfLO2*B^csJFYx{r)H`aJw`@)$2Z#URx02rZ{dnqPa=TL`t{V(r%as|nH z^Ur4{BOIKki=3ABz8~(E2f1F3p*)UR9Gm+%^ldpV63Q$ewT_^TVCcdAi4Heh82wQwTWtAt-DD&1d8|O$}l5p=HqM4jkP7w>BTI0>gzo|TN_JVE*!>|#tNKBYbrrOCe=fPyZXs`k(Ll_Y&Jq zm|1^S1S35?5n_HvSC@{SzNxWMIp(sASEA;2k)TkhHwg)h?BaROlkG!8Ls?l_OWhv) zC=}`S>xX?~X{=Bu#>m2q3_cznB~KT?=YM1g^75 zF|o0k1}I&a>XHx_Uv14cz7cV9(2KrphX!^<3v1}LK#h+WJ@KZ2xN$P++{m}5R*`+@$XiZp{!@FhuVH5UZmE8KZik@?)xuB0>A)Z z{!$29^l|IUWQ6N_z;%ygD(0&F*{=rk2e zOI>u@10@9~c6Uc05E*)fb0uq2{T{ikhp4fA!F$JfZh#C#@q1*T|8}#_0i~ch!15#} z#&YOUn>ZB)ygWS(JSN|_wrcmQ#~4E$nju$U&Raitfa?wxbOzQ8gmhqFph0SF;^%17 z(21lvh?5yojGw>ZGS5hVe-nJvz+md3i_xnSQL1PWF}pIq{dxhO z1nc!hmQ4Q>;H#4gH{x+e1fb(|e{DQICw&mIWgoK1J6&%tc zN;myoiGc-FtQio-sGD2>9Ly?$50ozN)4;O!U~**Rs~Z|bM_I*AQ45dgGVM*U47v&- zbU+ruwD$J)-oJl88jaS<&}%F8*+LWjoEa%5^^}2$i3z~QsHmth$D+}uBo35omP(wI z>B+ae)Fj~q^UWGg&Q31%`1mYMb@7vC%AjLvQOeP9mj}HJT2S;2GGq+Hs`{IO{{lHD2 zN4<9otdJ|xhUe6q_>VxENYF#~(^-s1M@NC5fGm?O%d_bzIeq%{D=GUzJt>DFC3sYj zT;Jf}5oTs#&*d4Yomx^yIf8l$O97VcjyC$VtGDZ-R>tRwimtIzQm)M(859*2O;mqi z-x?0Xud*1Q_RU<0uV-icuYu%RC-JvX2Mq{wrWW$9efT8Z-{$>4XVEq~t~l7)1qBD= z1@1mpNEBi@0H?LQcFlipMoa2zd@W81(UEgMM2}AejV^W^eF}^tCFOJxp9LUw{~dJr z@4u_2XvD|IFDxvulTJ_4rIKR^WRQfw%sftb-iC3PfglzYElzg0Y^*Numn`=gZq6Nx zkMfvk6~uRtQ>ihTn4GL*ff-|#`T$)6+^MnFH}4vCZqNtfBO|jtmaHpV zAwSO)25WJ`6*Vp={&=xx2b~J--WU9av2Y8qKL(c$IwK`zWn-y_mhmLd=EvHeo;a=f zmVCHVF20tfqsYm^(b3V?HY+#R!PeH++?!eD1Hir9C6K>|nj4-@yG0P6fS(CIwPn`u+z(n%k`GK7Nzpa3O z>qd%+06p}fn(Mhee>?0bCjZud+tg&}!SYNm=+#SN+41prf%?8}vG9jqkAfQND6kQg zx(~o7`@QlT9O|+rR#8zg?2c$`Y^)7wwo-a?HX^(;#u+GAJ;lWM);pz?^mIx4fqgw} zRS0TuES30Ps6>lc!GP8)x+y|Sqw-u&b#hI&LSWi75wtR2Nx0x0EJYZopZ^vk<^ZAcv$@I6Os$d7Y~b{u(yTl3>uPJVA5bfW z-bE`(B~D~hc-KLg#@E%*Gyo&lkgR{wMbZ%afAv;=1r)}PsSJ{phmO(zZ-f395&M%G z#DHq9sH_ZU6Rq#+f_m}k$+x=GK}tPy1&PZAF)Y3O!xw_h!_Utlcu(%$y}pI<7L`}x z*BqTR>Hio@mqHtxni^un%2_&!JzUJq%~e$o1yER%5o{MPTyUTHMC&j2S~h-!LTG_e zyYdG$0EmM>jMD42&=)#7IzC%#J*AtgqX9DqoH?7?gU`8hj4#@amJn`I0L98NJwR2OreXa$+Kzvm1$7ndhkAi#;& ze)uwqdlTD5sH9syxYDRMyp!q0hX_4mfSu`R?v+N%x zq{DDM&f(E^>_G=rYP-5FlicQGUcIugumD1Wjf$!q)yx)z2$WDvKn1F&(?9EE8~8( zXtOC4G3a9@abYPbDdWmeH_#{4mc0We4%i+62Us~t7CwNY|5H%zKj}Vly4ZlfKKbq2 zx5>%otyyB93dXxLXJS1tx(gzh5S zS_>V9{iYrKr)3Y*T{ANJ0iBkdxzqs73Y0c|eYT22OiT=-W?*0d7!Rb0kC(TOOpgD+ zXYr8w9xKwq_d8@V8BnH-UmN_%+5@Ay!c>Ab$A13#mkuuXNg81KHprFm32*gX|EK^9 ziq^#L1&fe@fx!!ywi{9-4FCw{fV_x zUBs%YDx0pN_v{4(tEy6l3}#x_V=0Jq5eE!u8PiA zMYh2lw2a5(fWq1S*bQGyj(;k7n_|`6#`fu2sZHEJ7J22 zu_ZavPzI#q@hJO&YBH8P6BJ;rZ-FU%s0fb&R~N?7=g*(xyjRJ;ew~L$nSXr^`Z4j{ zJGvuE5&@W;!Bp~Y+Jkzf-d@0qW?V5n)BqQP2M1rX{ouix7qlDFK!AhCb0B+=5R_>x z3*6(YW?zt@_sU>nqGF-p3nZY*|0l&Clut1MS`G^fAe2Ix@3)`Sa%` zoF_&=m*ILZ6a1-xsr2;n0#BixLnvDeZk~rfap=%j03zCxu0}A3fKCx_i&Y(jTKtBY zivo2DzXVqhdVyWiz4@=0d#}5inVA_H_5im6mtIazPOsRVQmgVw97M}EOpa}DMMVWc zGyQl6rY4Ga$nf0}S!A0%a5-25$m+Kkz`Noxb3jc489An=ruZUnuCK2%F)13 zt#H!Wt%2p$Ku>{P4V6Z88aEYSfpO+ff6Tyr^sI;1W4O*W0+}gDE?)IRVc~5pEdmAe z#v&UGJK>PqSOywj_N^aZe%W@X9{um;AP9_4JYdya>y1D3x76)V!1))^#mRMGa{V~ zq@J;{@ztwW-Q2`BZ#HcKlLgO*4G{L})9-0Ix75|ant_R94?G@(68Hhd zZfc@Dr4>2)umfX?S z{$SfHTXP~}aHAn>>g7&Y<6t^u4$FFkW`nbiL?XexrF{R6Kb+LQI+5GpXE_7woYm?x z5v2KgiLz0sZuZHa@`;U^z=z+ZR5P%NBvZzY8MxjBRRb@|TF75`?)~%I4fdkogJ42@ z2Wep&}PxX;yq-T#zm=GG@G*uGvDN;9}0br~&G5o}{m- zxmd;F(+SCRAtf7Eh3~fk-)nKaCDZE4H&{G^q=&^LJXDB}8D=DGcPm?g8TMmcLqn|O_~c|)bF<@QJF?f3&cAPad1cps zT}I~7vds}X|LY0g#uorwuw)bX2BuUptdE==94?+aXYO%Jpfc8Lv28yyLhkzY5^x{I zU)3)=KOvjI`lkmhl1UrZj&!-j^2K#cEw{{77x&R&U5R$)^=e}8?VGde{B!kwv| zExUXIDj%3DsO^c~-rk|1cP-;k?Xj>jd9H9)1Ix_J3}LaD8$E$?6_Ai1=I3jsYmP6t z!xHwwb4?A6m)N~|r`d^Bjpmm`H-wP!nuHFH-LRp74RPf#ENk%6KAQlV2RWp8B5&R^ zHXbg3m6BUu5cg0+9Dir#^2*BdsHp8l+3_&bZju`u!G*LwGBN^UjYHDi5x%?Z28Y`~ zB*Yawm%-s-7sw5C3@4|oYk0CIVQaOeblXFmXv+oA1h%C3f)5RT#FsAsI0kv<-#{k7 z)V8vBs;jFj(>L|=^1L7Eo?q{kcOnDpy_ZH!9Kus@HvjA%5Qtep!v>wYNTt%i8%~GF(2Nf08x1C z>l<-G?4AINuCA`Vy*-h(Gy+}FEmA(*uKeihw8n733g8v!-LqsUWvn>qvouGjk zScN_hB*1p8><02UdTlxzGyvRkb_EI+i^aZdg*6@s!*Q74YHHs=pGe>T@~pQ!aCl(A z6Pid?Qt>4m_}joqFePLNl;CN1u#!DILRtp<`Z!VX*4EaV1j_B(xBJ9Eb%cb3RG4`{ zauF)=N_mpLGu#LF;BYt?X!LY+AS~r1Y|eEwl086mXGTl?+{ba7KpE;ZMqaw4S7?79 z)+Lo@MDGoEND$muIZjFv2#i|7bq02EN9Ze1TZkojM0>X}tMuM90ztxIsCKr$Dr`&s z)-CKOBUJ*WQe`twH+^=HMcRpYzBhhG)9f4{ADH^EYs_o8QLZfI#(&`gX07H^z(n%-nC6}@ZgEMJ0TmgveI8k;jBk8 z;xo?WqT*jr%nu=?m3P-|vL}R|K2jJbS!BRYOS~9fo?+cs^`vv8c}?G;?VKMNk5y04H=mT|CKpgmNIko@jWc94{SGV-@$&) zOauOt<~7-++|QY;=EYk;5a*5l@aE3u;4KG^N{ik7`L3&GCpT7Y+?_|?a04H(rs_V@ zLa7@Y8*{<0#r2ur{p{THrn0i~dt=gK3*$yliN|YT;#+<>(e4e#q0FMjsw z^XKE?sphZ3ocu8C6{M%9r;xaVym1%S=Cqt8Cf9_#GOWeu%(|S(TEG}di;}g%eHhQR zZ%)zhrd|!T3H;$VYhHw3zgHYinYid^DaNZMN3!OXi{nzF@T>2^u-A~-Fwl&j#m`#db4b=D?xWbg0K0IGy{c`!y}eac_vJlT7bZ(eRDXmC2@2NL)e)jRzkdC?LsXMi zI$beKr8+t~zJC3hi@~O;scB+jqNAfz5?IjHWf5_9V0>IEzMh?p4SI4-!F+M52Z=<6 zg@!&z!yfgS8Ej~17^sP2FW}m`QLXL9;x1^=(&}o`!W(z3 z;DZVT&XxD2rIM18fity|=H})Ki8pJX9IUOa4O}JnscUFRUPuw<;nJKwF zKNh7$hax6KM<2cU^^Ih&o1^2%$NQ|D!Y9Nuc`8=Ma{3!*W@q>A-P_vQI^2->?pp2c z{=np;ww0DHHdqCy~DYm#>R38pNL-6 zxVE`#DP}QEH)_HE4t1#j|Lxni?Ck8^T=i*l!6J)E8~O~NR8AjW zR9|1e$RaPLhHd+Hl>nM|K!B#*1dN56>$f{oC!15X0^u5nUwcZuE~IMu!>5${E-DbG z`tXc`z_t4N`kd;#!`y7dgtKY83bOL@ii?X$vj-wB3W*k~dQR~3^M9r2dwF?@WD=l5 zPxXiTs~!f0!7YT#o0@j~_SRg#f$wmC-WEK<1LpwTx!V`@{IlXCp6x~8W5f`SX@&(F=x6}@@m z>gC1B#`bIY`}glT1eHF))_He%pwY|o9X0}XJUl!KiMfFcIzBMXteA!$is(Xv05`5n3;&dO@MbvIW zi?Q5nYU6*9Chb1@FRiWf%jrZwa}5m*EUL%J*7l-_NwI5xC57^k5gNvWyRL4-E}b*rolyc6O?qIPo+-ewf-33Ky z>(s`TJo7Lq(fRSmfQgx9ox#Cd`&Eq7Nlx>D_p@>`1ZsqoRP%fZzlP6G^;o{Tr16~{ z-q$eOk^drxR8W|{e20Z!&F}l(bH8&K|3A^&BVGEPw!S`_F2xOLaQelTamzKSy>~M2 zW}f~h_WSclF6@@wA>@tQ3CO#fDVUQR(U!Z{R_4PVJzA#CHp8U9Qu*!WsqQ%ZXlthK znKPe;+;nwyOVapH5Rd|WxJjJ-u3ft_diMJ7Cm?-@NC7+8>-yT-tlV7gD!uR9(UvJ_ z%a^=|H;Xq4Q!wfS7_rmcaSq+QXF|v`;pBVUn1AQmhpJaWv2P?GRcer@?%-t7;Cd*S z@ck(E-!JTeIYX0uFKH1HCP7GCV4&$(2 zTzqY9EiX5hjh$T!Sa^20`Lbvm3tUf(mFxvQJr$2JV|RCVZSAV3hcCD1nk(8j@LRv< z7Qcs+8Q{kv9UZrEaF868DyuoQXw%XB)uv$Hd=>~e$%1@n9WL&+xGNkT=|`@#8C zP&v-9(J?$B!Ss z92O8fOh7KzAg@?iwHMf=!dGsG}!WH%ersNAxVSCFB$h-wJ9adwAj8ocoWunHjf|)w-*2+g#XJP=D?2 zIH>>nD2Ux{F59#&t^Q^0aWW%Y(3a8MDQtKDrNn~T|1389fj_5Ag?-149UL5!o$nkj zU%re+qb)4DYGWj`IGyfrVTWoze%z;^Fau~PWttC28UP$8nd+y2>c+tfzX&%)!&ROj zB6D(bw6(RX!$5kaosAgl!)pbTctgmV-%|<;3*Y<9O7yAK9D=HAp#b8?1_uX+hIj-7 zd?3Jp{V{U@)+{i9&?sVfL z0(M45Mu1x)CtP0$Xj(C6U5ZBi6=2OG4a2REc0cTwPt=-E*_D zd{(5hM`82OQDnsN0T1W1Z0r4i0si37`&adzgXuiSb|HwVa{t`(KLxND>L2^DzV*g~ zZa&Zkpk{~W6q(Lb9IWu#_l886sn%e83N^5YiKxcU;v5}pf@`|e_>$(k!6ge z2bG}c#@_hlI;n#6^z;$0K>mY&02Z`u3jxV^=+ey#gMMTkwf+L7|G$8B_3G7Y*V3ny zFJ~I%Wo5n8%wNZ4ML9XS#Pe~FAMdkn-M{6k1Q+(Y-v9>K8MsR3t)e|ZY!lkj!C_dJ zbg+SqiAqgPO(G&9KYsj(h=_=nv+2bLGPGyW>x12dCU zH2%6EVpd*(=sDdhLtk#apw$Dyw-0PW5If(PPs&-=bu1_I!nQS~Xplh&_&2qjgT^bO zR>e3uIeQ*z%zh?ztaoWku|?z1^SAHbfjr-{XAdy5jI=Z~^Zvbi{C3cx`&&8QVlccZ zo}%GoIz8f7(u}1}IGK$v2$xqTU?;7p*xKAIcjSovAwy5FdSYTP8XfX~Ih1iekuo}Z zIHndH9TyLe^3@M_U~I;I_6ew|*kUqdm-zRlWGSmMzhyUf_qjBBy;^H9bLl{AnjDFh zF(P-v?&E5Z!1hd_OYL|*^&v%9vownt)*95^rt zek`v{-0){xL9O?e`(hId04Jd3VAt}ml;&HP--bmFTxm^x@Ot#o9!bY3$@_56&A7ar z94Wh-Kx&4Dh5`ZtK|w)Mh+OZ<;*L3WJ-Y|YcerMQEh+V!{53pT-3J7YQKEuQng1+Y zJ{(Tn`ir;9Ask3o*sFOJZSkP>mysqWB$$hpxlwWYhlbYH7}IAY9Mn`1RnKp5;X+h+ z_}t^Jus{ym^J z7U7&9IxGBFLqkK`=}DU;HlZzv8t}Q!H*YF6$0I<2{8TWhKCHX{74EHb7}~Ohoq`cN ztj@FXFKF$bXlq6Zh6$V(uW4_omrGaCjr1DjldulPmoB~anYHh62Ky}DrrW>)qQ$Oz z0a{n0w_8`YW_fm)F(ArtZ0xzQA8t_?OH%fn_^ReLC9LKdKAmjG&Ae~Yt6vUD7(Gu& zNohK0W9R$6zMtI{?y{4X{CVO_k zq8_4P{?J~37x%v_E=~r+35y624dV&8_2cT6R$-Ws&U;(ft#6OM`uf$Z*h0hg+lL1a z9#~>g$tt&kM_jkEL$BpgQt9>zii&s!-Iw?kjy`?*G>t|(nu|Hvjp!idnA+SPJ@|6) zJB9KEqL(L6c2{^sUIgm8)qPAw#iuHmBgeF$skYWJ04wzV5%UTVL zjdfM{``%NlZDG=kB?93I7ICpJ5D(!QbR{x8Tv*}SHVP*14sJ4yf|-WFf%K^q>|RDj z#)Lf>)HX;Mb}_qHS^AJubLnIm4g`Wtz_L!NqS7TM<6)@agH~5p3t(C)M2?>}rt*T) zHHE~WAf1yZKRBfN!&Vo9cNhn|3*ZZuhxiq;Ci})`*KgeL8E#4jVU_vn6}rSUdjyov$o%7Kqn(D-k<(45`*7l!5q%+aY!-bXh71=#(A z;aS&w2R|3s;1d!Onzb0}$B&zqy#@acASRqguZ8`y3LDEJ)Q!Fj@xE=>1{ zRy~RQvF<158%5OJYa;i$^p<6jH9UTqnTaxKmgK}69s*`vT^fjj)Xd+{Z>iTb7_8$XxC8k;JGC`o(c$;+TmSmUC z-F_Yr>p&#=*&jK>f1IV)Z`|`!^u8Dg!fPV z$}^SBH^u3{GK05Ib@Ltw`oBd)oJ1rKTQ%X)9vk1uVhFxF+S;seuKSdgi*Y!!XS0tX z|Db6op+Mn-?JM({{Z6C#si~EYjEn$JM~P^388gBH2*^YwG+8uY$rkXFQvLMlQ^=>i zeSOC}7ZqTQ_4%+QQlVW9fOY1yA^%H#h<9qbybmRHvD*{kn@wAHym|L7ruN!T2gMe&UsCen z9~}X&2n*)v=Jv&@7*f<1FTUkrdlg80>o+5ajjg=~z6_QSEI;JAXLRMcpj)*Rj747i zgFsi(-qhF}?QmfDW3R1TWcs}VEayPvo2}10+I9?te z=!40XE0dFxd6%*d1-z`VZxrkatEi{|sSLo;&3R3XiG$84D9e*-WFz>j^KWr^=CCi2 zApRY;@Daci=mjAzE-`CqS=q>lh}iFb=?{UAqe96GAiC1i2VvFA;3KtO0K*1 z7M?M{BZMzsE`ejj;c(&MJHY*FH1|Os2+c#lgDp zoJC)7_K5DM+nPzx>OG_RMGEh1{)caZ_`{)rfm!J$*6@Z{DN~W#8tW0N)*oJ!z}UjV b!eB%qZ|yDFN9}^A=PY_UMrZO*U%mHV+x@c( diff --git a/widget/testdata/list/list_small_list.png b/widget/testdata/list/list_small_list.png index b9316c4866e1fe468563d8ee6c9747841595f972..212ab1d9e75dc589886004119b80edad188d2ef7 100644 GIT binary patch delta 1892 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 Date: Tue, 27 Oct 2020 09:20:45 -0500 Subject: [PATCH 2/5] Fix prepend calculation --- widget/list.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widget/list.go b/widget/list.go index 78bf46d388..f4c616282b 100644 --- a/widget/list.go +++ b/widget/list.go @@ -490,7 +490,7 @@ func (l *listLayout) appendedItem(objects []fyne.CanvasObject) { } func (l *listLayout) prependedItem(objects []fyne.CanvasObject) { - objects[0].Move(fyne.NewPos(0, objects[1].Position().Y-l.list.itemMin.Height)) + objects[0].Move(fyne.NewPos(0, objects[1].Position().Y-l.list.itemMin.Height-listDividerHeight)) objects[0].Resize(fyne.NewSize(l.list.size.Width, l.list.itemMin.Height)) } From 294cf128ae97bd7da3288452eacea9ab3bc9cc79 Mon Sep 17 00:00:00 2001 From: Stephen M Houston Date: Tue, 27 Oct 2020 09:25:20 -0500 Subject: [PATCH 3/5] Update widget/list.go Co-authored-by: Andy Williams --- widget/list.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widget/list.go b/widget/list.go index f4c616282b..aeffca3fa8 100644 --- a/widget/list.go +++ b/widget/list.go @@ -469,7 +469,7 @@ func (l *listLayout) Layout(objects []fyne.CanvasObject, size fyne.Size) { func (l *listLayout) MinSize(objects []fyne.CanvasObject) fyne.Size { if f := l.list.Length; f != nil { return fyne.NewSize(l.list.itemMin.Width, - l.list.itemMin.Height*f()+(f()-1)*listDividerHeight) + (l.list.itemMin.Height+listDividerHeight)*f()-listDividerHeight } return fyne.NewSize(0, 0) } From 88fe4c41afa7990ce6e61144cf4b29a5e5e8004b Mon Sep 17 00:00:00 2001 From: Stephen Houston Date: Tue, 27 Oct 2020 09:29:08 -0500 Subject: [PATCH 4/5] Fix syntax error on github commit --- widget/list.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widget/list.go b/widget/list.go index aeffca3fa8..c77c5f9bce 100644 --- a/widget/list.go +++ b/widget/list.go @@ -469,7 +469,7 @@ func (l *listLayout) Layout(objects []fyne.CanvasObject, size fyne.Size) { func (l *listLayout) MinSize(objects []fyne.CanvasObject) fyne.Size { if f := l.list.Length; f != nil { return fyne.NewSize(l.list.itemMin.Width, - (l.list.itemMin.Height+listDividerHeight)*f()-listDividerHeight + (l.list.itemMin.Height+listDividerHeight)*f()-listDividerHeight) } return fyne.NewSize(0, 0) } From 93e734bb09fd90999c2459a6b89f90b1fed06c9c Mon Sep 17 00:00:00 2001 From: Stephen Houston Date: Tue, 27 Oct 2020 09:50:52 -0500 Subject: [PATCH 5/5] Use proper selection indicator height --- widget/list.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/widget/list.go b/widget/list.go index c77c5f9bce..3ef376bf35 100644 --- a/widget/list.go +++ b/widget/list.go @@ -419,7 +419,7 @@ func (li *listItemRenderer) MinSize() (size fyne.Size) { // Layout the components of the listItem widget. func (li *listItemRenderer) Layout(size fyne.Size) { li.item.statusIndicator.Move(fyne.NewPos(0, 0)) - s := fyne.NewSize(theme.Padding(), size.Height-1) + s := fyne.NewSize(theme.Padding(), size.Height) li.item.statusIndicator.SetMinSize(s) li.item.statusIndicator.Resize(s)