From ae3e375f34225e0b08a0d09cb1dd044d27f4b0a8 Mon Sep 17 00:00:00 2001 From: Balakrishna Prasad Ganne Date: Mon, 11 Jan 2021 19:47:25 +0530 Subject: [PATCH 1/6] Extra test to cover issue 1737 New test TestEntry_CursorColumn_Wrap2 to address the bug (1737)[https://github.com/fyne-io/fyne/issues/1737] --- widget/entry_test.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/widget/entry_test.go b/widget/entry_test.go index 49bc1a34e3..16d3d8504d 100644 --- a/widget/entry_test.go +++ b/widget/entry_test.go @@ -109,6 +109,22 @@ func TestEntry_CursorColumn_Wrap(t *testing.T) { assert.Equal(t, 1, entry.CursorColumn) } +func TestEntry_CursorColumn_Wrap2(t *testing.T) { + entry := widget.NewMultiLineEntry() + entry.Wrapping = fyne.TextWrapWord + entry.Resize(fyne.NewSize(64, 64)) + entry.SetText("1234") + entry.CursorColumn = 3 + test.Type(entry, "a") + test.Type(entry, "b") + test.Type(entry, "c") + assert.Equal(t, 1, entry.CursorColumn) + assert.Equal(t, 1, entry.CursorRow) + w := test.NewWindow(entry) + w.Resize(fyne.NewSize(70, 70)) + test.AssertImageMatches(t, "dummyfile.png", w.Canvas().Capture()) +} + func TestEntry_CursorPasswordRevealer(t *testing.T) { pr := widget.NewPasswordEntry().ActionItem.(desktop.Cursorable) assert.Equal(t, desktop.DefaultCursor, pr.Cursor()) From 2848a6025f9a797b889ec688a23e92da3670071e Mon Sep 17 00:00:00 2001 From: Balakrishna Prasad Ganne Date: Mon, 11 Jan 2021 19:50:15 +0530 Subject: [PATCH 2/6] Image file for visual verification of the test Image file as an input to verify TestEntry_CursorColumn_Wrap2 --- widget/testdata/dummyfile.png | Bin 0 -> 1461 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 widget/testdata/dummyfile.png diff --git a/widget/testdata/dummyfile.png b/widget/testdata/dummyfile.png new file mode 100644 index 0000000000000000000000000000000000000000..d040e75750a313281c7b5c44aedd198c6c6c5f0d GIT binary patch literal 1461 zcmV;m1xosfP) zQ`wxdwx9*kGY7Ka6b34z2)z)!vaR3r!=kjtV%wG41I;-h)^jx3QoBfgSIL_v>GRv0 zynEgUG8hct_d;3f1jI*Hk^-`l6p)pqfUG11WF;veD@g%aNeav@C4wN19zD8f(W2Qr zM3_>2eZAZ5HX4oG!KS9BD_5>eO-)TsPTFj?Wy_W^<2s%0?Af!Elan5gXJlk#_wL<4 zeSSqnh1qPzFifDuH$ePD&1Q3Zdpiun+`pn$t37%0q|4o_+lPjRxZ|&0y)v0h>2#Vo?d|Qo zeEG6QqlrW!M~)ofhBY=eZrHGaRe~UB_3G6N7Ayz`gYVzJ=RPx=%`RQKbk(X=A3l6| z`}S?IltxEK@87>4i^Y`6!grPRVX^@LC=`l<7==Qi(P+G0FLSEX=>`S{GMP*wk*KV! zbi3U>Jw0r2YaW`W34(a=;DNS~9>v3Kv@!NEcPN@A{f z8#iv;v13PfcQ@DY)~#EEgM)g#-sN&dqfur&l}a%_0D!5fDF8raWhHx;%jHTYlK=p} z-+%Y+-K|@<3Q9x3^6+B}27}FJvs$fBpFU*=|ICA7*xI#gj~_p-*XylTD*!;HQnj_U z84L!MN`;~*^J%en1%pBM`1R}8+qZ8Ql!-XAR99Em-`{Vy+wa`D^ZnICBJuFy!{OoK zZQHgfl}ZFb91cfqZSBR27x(Yq-`d(*5MNeS#vVfu#C)Ip5n+~eI^Cs9m+W@?$jHbK z!cY`dDwVlhjwH#ds;Z8Tj(6|g0RXD2s|zBvTJ6i1FPY;tYu3DZ^F~lUvz?`ynwo)u zfqVDv`ThR7e^|M4C5obLZEaOmRSJb-{`~n34Gm_qd3=04m&?&K4FJ&V^#FhsD^^%6 zmRv5!edeJbh^8{n_Dh~!{Mt}uR5Jh9LKZStlRCrapQ)dloUnn zi6aP7QBg5HJ^k_H$FE<%axbAMx@5_cXf*n-p9%y)YPC8Ri=|R2p+8z&rIIkWDsfSe zm88JTl|CJK^y$DOQIin|d6uMrtRw|QQ?ghr6B856PNB4jvtMd#Y&4ln<>lqyZ_$4} z!e&XM(X3y;o+L>ahS@=tN_FbgscYA+6(PNuz;~7~3_Ek?OhZFMJRZj|Y;0_-GxYbR zuCA_$iHRpqo)j@nA@EhAD5|EWrlqAN5D3hhH*ev>g`maAG{crJUrtdJv;Ub3@KS83(FhzK8Z!Z(GZr!@(=H?3*E-+oi62kYz>+9=-AgHIO2SE@3 zfYa%GRN~D46Jfmv7>3nqbs~|VX`0zAl@I-|nCZ;~VFghplL>`FMN38;V^pk^-`l6!@mbo11NWK5(n&-*A>>B`F}+cv3)Ck^+AP00960eXa3ywXEGC P00000NkvXXu0mjfF^JQu literal 0 HcmV?d00001 From 646bc1ab8fba8e6147aee69da3490de3d4d16e68 Mon Sep 17 00:00:00 2001 From: Balakrishna Prasad Ganne Date: Mon, 11 Jan 2021 19:53:40 +0530 Subject: [PATCH 3/6] Addresses the bug 1737 Added an extra if condition to address the edge case --- widget/entry.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/widget/entry.go b/widget/entry.go index 826f6e91ca..3e8614030f 100644 --- a/widget/entry.go +++ b/widget/entry.go @@ -820,6 +820,9 @@ func (e *Entry) rowColFromTextPos(pos int) (row int, col int) { row++ } col = pos - b[0] + if e.Wrapping != fyne.TextWrapOff && b[0] == pos && col == 0 && pos != 0 { + row++ + } } else { break } From 777630168191de358ff4c1395da4b04a3dbc517d Mon Sep 17 00:00:00 2001 From: Balakrishna Prasad Ganne Date: Tue, 12 Jan 2021 09:15:11 +0530 Subject: [PATCH 4/6] Modified test image name to be a sensible one --- widget/entry_test.go | 2 +- .../wrap_multi_line_cursor.png} | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename widget/testdata/{dummyfile.png => entry/wrap_multi_line_cursor.png} (100%) diff --git a/widget/entry_test.go b/widget/entry_test.go index 16d3d8504d..42686ec2d5 100644 --- a/widget/entry_test.go +++ b/widget/entry_test.go @@ -122,7 +122,7 @@ func TestEntry_CursorColumn_Wrap2(t *testing.T) { assert.Equal(t, 1, entry.CursorRow) w := test.NewWindow(entry) w.Resize(fyne.NewSize(70, 70)) - test.AssertImageMatches(t, "dummyfile.png", w.Canvas().Capture()) + test.AssertImageMatches(t, "entry/wrap_multi_line_cursor.png", w.Canvas().Capture()) } func TestEntry_CursorPasswordRevealer(t *testing.T) { diff --git a/widget/testdata/dummyfile.png b/widget/testdata/entry/wrap_multi_line_cursor.png similarity index 100% rename from widget/testdata/dummyfile.png rename to widget/testdata/entry/wrap_multi_line_cursor.png From 25c9d913b7dde8e531cd61ba121100fc047113ad Mon Sep 17 00:00:00 2001 From: Balakrishna Prasad Ganne Date: Tue, 12 Jan 2021 17:21:38 +0530 Subject: [PATCH 5/6] Modified test image to match latest theme --- .../testdata/entry/wrap_multi_line_cursor.png | Bin 1461 -> 1473 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/widget/testdata/entry/wrap_multi_line_cursor.png b/widget/testdata/entry/wrap_multi_line_cursor.png index d040e75750a313281c7b5c44aedd198c6c6c5f0d..392ca00f2b17102dd0ce3987fbd5880117b198a0 100644 GIT binary patch delta 1455 zcmV;g1yK663&9JJB!7rWL_t(|oa~xUXcJi&z~6MHlW8->CLOD!C19x&(_-tXv}N0( zW<9vl1!+wYdJ(miBIwXU#EMiD+oDG4K}kao9!!W@!LS%CMgxK(NHB}yL1Q#1nV6_C z8S>92%VyXyn`LXJO-M)PcglS8&CB=W^}W1&DWcJ6z|TclsecP7Jfe~i5S4_0s3ZhL zB_SXx2?0?_2#88TV09@G1hIerejLYFG6=#eyQQUNczF2QwQCO_KIDR(ot?XP?vu96hYb%CfG)>!Vw(HlgFFn3oF4tFMd(+FHNgKR!O5oz~IO z(bm?+DZwzjVZ(-siVC04$IdE8DwUGSWcBs+pFVwh|9}2{v6O5!o5SGo2wJ;#t;^+NFI6hl?K$P;gIKES6X-1^{ro-S_X`-@0`xuQK@UcuUaS z+&n%$uGi~dym-L{|HvSfN;hxbeB{WHrlzI~7k@4Q0Aw;*UteEyb8~fdHHKk-*MWSm z#OL#Iuf1OHjvYIARZ^H)+O%oYnKNf*XJ_x;z5Cz048uHr{MckNX*8O$vN9A!^?H3{ zW8>W1-00}&(9lp$e)e)j5G0jK@hYYON-CA=?AfyhgTZRGE|G>|7z9D-bebf|y1Kec zmwzs~T&_SMP*YQrlc`iHxz`O14PLL8S3N6LYHVzrnwoMr9BwnB$#n7JMI6Udsnq=Z{O#Mfd6fhewI`0Es9Y{jCX=5(f6iGF z5{aa`x;hXDupebPz%Wb@#FsB$;_*1&H!ZGGNmyMc@q!>K2?0?_2#88TKvepFMt?>| z%x1GhA}Q2>%cd~jmpVE+wr}5FRaI41R{Ck@S3zxU?UpTDNRrI{#wL@=D2lpq<32&Sw?O(rst*orPckkZ0bLZGwqobn_9z1yd{CP3!DK~c1#qJoY0_V%t@w{Bu$LVvAR7qdrx7%H`@|FXS9WQ4$(`Ym#NzycZ{P=NplK=pW zjg2{-&ZV0W#U?MMKp+r}MoE%<`t&Im{P5w!&6_v5OSZ!r3(|eoJzKM84M7lpX5eyKTU&d2dgkWlqS0tE3;r?r{^1#oMg&1lo;-=7DBBRt zZb7ap`1Kyj%gg0*Im0k3`TeKZ@H-GClS!@_ziKJ{k*wf|NII@>nJCjB~eKTh(A9I0Z~Z^{1pHI|NkWt{ekK_XCMFo002ov JPDHLkV1kU-)6f6_ delta 1443 zcmV;U1zh^U3$+W7B!7HKL_t(|oa~rgXw&K&z~6R>iJCaAYpm!d1t(j|N^yFn|7}_`xa;s&jNx*_^Vrpas!02eRQ51}dWny%4>!t>5&+qO`_h z+m+e_%{d{~b2QmfyGVXl$(twX^V^%ed)@~!7!2U|LRsnr#D7Otk^-`l6p)pqfUG11 zWF;veD@g%aNeav@C4wN19zD8f(W2QrM3_>2eZAZ5HX4oG!KS9BD_5>eO-)TsPTFj? zWy_W^<2s%0?Af!Elan5gXJlk#_wL<4eSSqnh1qPzFifDuH$ePD&1Q3Zdpiun+`pn$ zt37%0q|4GFZE z(jR%++uMhRhPdOeUcEAzOzCu*IqmK3y?ptyMx%*DB1euK;f6IfHg4FkfmMPaX!YvV z3l=O027~Y4zvn(Po6Rm=x^&g5RUbZlc>DHkv6MzfM}P0%zaNXml*+<)mGxn=0RSiz zih>x0LZQ)Uyk0MJs?+HP1_m;jOd^q}tgLjq-90@$Y;bEHnx+YYc<|tX#bV+9glJ0B zd43w!+}!;9`SWl%%$(vluFkV_=S~QMoK7b*{^G@p!-o$)d-e#bHR06?WuwY9Yw41WfdN`;~*^J%en1%pBM`1R}8+qZ8Q zl!-XAR99Em-`{Vy+wa`D^ZnICBJuFy!{OoKZQHgfl}ZFb91cfqZSBR27x(Yq-`d(* z5MNeS#vVfu#C)Ip5n+~eI^Cs9m+W@?$jHbK!cY`dDwVlhjwH#ds;Z8Tj(6|g0RXD2 ztA7h3wOZ}VmoJ&)HEY(qdGkh4KC_*rnwpw{fq{GX?)m-xx_?-?awUqQZEbB;RaFXw zV*dR34Gj%uvw3`cJeSMSGz|dI>-7MD6)RR)ES6j@$9?9ZLx;3lZCP1aQ&ZEHEn9^C zE1T^s8I499$N!&)9ULDYw_2@6qp`EIlYd#kKY#u_Ha6DR*T*b(4u_+wtLwyx6X|ri zyStlPE`-D3t5>f&olYFbv)QcM?Y?p2hM<%bMeT_r2vSi|F+Dx~@#Dv@U%zrMp(wg! z$&zR^`mdh~1VL)GIu?tiQYoQ7T3n@)Ft;jkQIM6Sz|56C9eDKVz#~zU5eIpeqlXR(SJR{W=W&btY5#LBuN;C*+G>`b?Vfq zYuBz7A-$Qvca|^=J9FktLqkJ69>*|jY;3GE^!KH%uC9rRi6>8<6fsR9@KvHHs-~u< zrKKeh2+W%|Z{fm)pvA~E!Zh=ihLaWF;ve*LYGuRveN7e+2*l|Nnih@pQGU-5~$~002ovPDHLkV1kje)o}m- From 818c3ff54e4bcb70030bf1296945d083d1235283 Mon Sep 17 00:00:00 2001 From: Balakrishna Prasad Ganne Date: Tue, 12 Jan 2021 18:20:29 +0530 Subject: [PATCH 6/6] Add files via upload --- .../testdata/entry/wrap_multi_line_cursor.png | Bin 1473 -> 1582 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/widget/testdata/entry/wrap_multi_line_cursor.png b/widget/testdata/entry/wrap_multi_line_cursor.png index 392ca00f2b17102dd0ce3987fbd5880117b198a0..2989c1b7c1574115c8bfc5794f5a1ec8508a5c7c 100644 GIT binary patch delta 1565 zcmV+&2IBd_3$6^1B!BfuL_t(|oa~zmOjFk%$4}ea-a<%ytmvAF1eqOaPB#$hwt|u&hMP_BR~lW31D_XpMP!v#6wvk1Cag0|MdFl zQ!*tw+}+XgESx3E5*eT@kpapQ8K5kY0m>2?m|2#1LgA-7cDQ+XOl1%VSMNn(VM#eT zH!CV0wX~p>LDA8X8#aiKWqCOthSGZSJm-FQ5-a*n^hEHAIMrsjv@VmB^#ZBEV? z$BuooWeWfxVe8fbjiy>I*AERX3Jp!p&DHC49V(U6S}}svQiMzvA(NfW&i<;X$iDvd zix5|IsO|4wN{^QitvEgB!Q21M0+xG_#+W!c`ELlt@i^=rC zZp-51Uw=J$GN{oYk8CcNClK%if{)g%qca#SRaHoRuUh?WZth=?9|HhF;^NW{A8xyF z0sWLnA~~FtWHK1$E?&I7tSlxYYHXE{y`bnh#0RFsr$+@{Uo6UaAgsiMN z{{D0ZBPcpr8W)FmE1T+ClE%iex!e^gDJxP^(8~KwO?3qY(%9I~va^v0ZWtNqY-p%g zC?>+)^XDy9RjG2hY~Mb!(WopegzZvRgBs0^ii+)JWo$0jX0_hBc=1kM9WF^U`+uA` z;dwkJ414hT7PEPzzu#d=FkzVE<)zbVt;kmPHVg>z5C}#G1~BeO_IW(QBHnv38;$*T z;me^3-H6_0++vxeb#i9bNt_TUOJu-#OGk?nj}|8qDux)SSt0|JB{D#mrR3ea_bZi5 z7$#~!ry=I_Ac=}vo|x#)7#XP_8iF~T`;CnNbRbQsa`}Vn*SjA)aHUQhV6~LAYu9|S_;hAwuUZYU zSg^Z$c>W3`8Rj*2Zna$Q7aZ(jsaU~e31Tus6B8TGoat4o9kNAhwrx9`oqvrbdGw!w zX)W=DLWspe{5Wv4va;vdGZzSR9vl(xz0u59BH5ImKM^FnyZ`{7A2`s}(J^@v!qs51 zq|<6mdcAL8;M4YYhbHu*M*Anjs?%!qI-Lu2;sBE+i`o2(O0_C2t>@`e^}Tx>Pfwmu zh%{X-DM1PWVPPTh@r~u>rhl<9R|@_xSby;v6bc3eWgIyIu~EnXw-k1kpRjP8TdN@02crMg#;0B3Yt9p P00000NkvXXu0mjfaLM{} delta 1455 zcmV;g1yK5~48aSKB!7rWL_t(|oa~xUXcJi&z~6MHlW8->CLOD!C19x&(_-tXv}N0( zW<9vl1!+wYdJ(miBIwXU#EMiD+oDG4K}kao9!!W@!LS%CMgxK(NHB}yL1Q#1nV6_C z8S>92%VyXyn`LXJO-M)PcglS8&CB=W^}W1&DWcJ6z|TclsecP7Jfe~i5S4_0s3ZhL zB_SXx2?0?_2#88TV09@G1hIerejLYFG6=#eyQQUNczF2QwQCO_KIDR(ot?XP?vu96hYb%CfG)>!Vw(HlgFFn3oF4tFMd(+FHNgKR!O5oz~IO z(bm?+DZwzjVZ(-siVC04$IdE8DwUGSWcBs+pFVwh|9}2{v6O5!o5SGo2wJ;#t;^+NFI6hl?K$P;gIKES6X-1^{ro-S_X`-@0`xuQK@UcuUaS z+&n%$uGi~dym-L{|HvSfN;hxbeB{WHrlzI~7k@4Q0Aw;*UteEyb8~fdHHKk-*MWSm z#OL#Iuf1OHjvYIARZ^H)+O%oYnKNf*XJ_x;z5Cz048uHr{MckNX*8O$vN9A!^?H3{ zW8>W1-00}&(9lp$e)e)j5G0jK@hYYON-CA=?AfyhgTZRGE|G>|7z9D-bebf|y1Kec zmwzs~T&_SMP*YQrlc`iHxz`O14PLL8S3N6LYHVzrnwoMr9BwnB$#n7JMI6Udsnq=Z{O#Mfd6fhewI`0Es9Y{jCX=5(f6iGF z5{aa`x;hXDupebPz%Wb@#FsB$;_*1&H!ZGGNmyMc@q!>K2?0?_2#88TKvepFMt?>| z%x1GhA}Q2>%cd~jmpVE+wr}5FRaI41R{Ck@S3zxU?UpTDNRrI{#wL@=D2lpq<32&Sw?O(rst*orPckkZ0bLZGwqobn_9z1yd{CP3!DK~c1#qJoY0_V%t@w{Bu$LVvAR7qdrx7%H`@|FXS9WQ4$(`Ym#NzycZ{P=NplK=pW zjg2{-&ZV0W#U?MMKp+r}MoE%<`t&Im{P5w!&6_v5OSZ!r3(|eoJzKM84M7lpX5eyKTU&d2dgkWlqS0tE3;r?r{^1#oMg&1lo;-=7DBBRt zZb7ap`1Kyj%gg0*Im0k3`TeKZ@H-GClS!@_ziKJ{k*wf|NII@>nJCjB~eKTh(A9I0Z~Z^{1pHI|NkWt{ekK_XCMFo002ov JPDHLkV1jDA)5-t<