]> git.neil.brown.name Git - edlib.git/commitdiff
render-lines: fix cursor-placement sometimes off-screen
authorNeilBrown <neil@brown.name>
Fri, 21 Jul 2023 07:48:29 +0000 (17:48 +1000)
committerNeilBrown <neil@brown.name>
Fri, 21 Jul 2023 07:48:29 +0000 (17:48 +1000)
I was measuring against the bottom of the cursor, not the top.

Signed-off-by: NeilBrown <neil@brown.name>
DOC/TODO.md
render-lines.c
tests.d/02-grep
tests.d/02-presenter

index 315a57332cdfbcd5c89f492ba36a8dc69c8bc29a..39b663938a0e946089b1fac8f5910704c3554d3d 100644 (file)
@@ -20,7 +20,7 @@ the file.
 - [X] When merge makes a change, highlight the new content.
 - [ ] Review the options for editing a merge - it doesn't always do what
       I want.  Maybe have a menu of choices to remind me
-- [ ] cursor is sometimes off-screen when it shouldn't be.  I don't know
+- [X] cursor is sometimes off-screen when it shouldn't be.  I don't know
       what cause this yet, but I will try to remember to take notes next
       time.
       When searching backwards and result is just above display, the
index 2e11e02f0f1696914ab747ea582617a8f6ced1e3..57f04f5c7f7f784956bb5d059c20d5169673b393 100644 (file)
@@ -726,9 +726,13 @@ static void find_lines(struct mark *pm safe, struct pane *p safe,
                        found_end = step_fore(p, focus, &start, &end,
                                              &y_post, &line_height_post);
 
+               /* This test has "> rl->margin" while found_end test has
+                * ">= rl->margin" due to the asymmetry of measuring from the
+                * baseline, not the centreling, of the target text.
+                */
                if (!found_start && top && end &&
                    mark_ordered_or_same(start, top) &&
-                   lines_above >= rl->margin)
+                   lines_above > rl->margin)
                        if (mark_ordered_not_same(top, end) ||
                            (mark_same(top, end) &&
                             y_post - rl->tail_height >= y_pre))
index 7d4f691b84c4c4bbdd675cfc2b754cdf91264ddc..3a2d1d75f5320719603bbe8cd8f4ae1b8174d2d6 100644 (file)
@@ -90,102 +90,102 @@ Display 80,30 F3D5D6A5E0A5D5975ECB6E7F00917039 1,6
 Key ":C-X"
 Display 80,30 2D8E0ECD65429DDDA3F1C8A49A73E1D8 1,6
 Key "-`"
-Display 80,30 8C5006B950CA2BEB4E936CCBAC1B6592 1,1
+Display 80,30 1A4BDA70365FA2BE77204B4D3C5A71FD 1,1
 Key "-`"
-Display 80,30 2B92DBCEE330D073BD5C0A47EFE783B6 1,7
+Display 80,30 6488347D7F4C458D0C4DB4DD9EDB8DA5 1,7
 Key "-`"
-Display 80,30 C8582801EA4EB730362C8E28C7408B33 1,6
+Display 80,30 69AD76906A155260B345D2BA411F3921 1,6
 Key "-`"
-Display 80,30 AC1DE4A9739FFCEFD87C066C2BAE7B8A 1,7
+Display 80,30 047048FF34AD3B5A3C889C79BEC80EAB 1,7
 Key "-`"
-Display 80,30 1A236C860DE13BBBC446C143CAF21813 1,6
+Display 80,30 2D5FBF9D6847197E8686AE154C0CA6B2 1,6
 Key "-`"
-Display 80,30 28F045FE67ADE62B92F3A4E02A295234 1,7
+Display 80,30 14302278E63F297EDCB931F482E34BDE 1,7
 Key "-`"
-Display 80,30 5A3D99C44BCE3F01AF08C0ABA187E8F8 1,9
+Display 80,30 BCB642A843697EAC24C93E65BD548B2D 1,9
 Key ":A--"
-Display 80,30 23588A716A8C327CA5BB29B0F391EB58 1,9
+Display 80,30 7A911AEF593FC17E29D5B1B39B19D154 1,9
 Key ":C-X"
-Display 80,30 6821203991872E2268CE855FB748B630 1,9
+Display 80,30 01EC2055C21E211A34F4A0EEB1C00AC9 1,9
 Key "-`"
-Display 80,30 5A3D99C44BCE3F01AF08C0ABA187E8F8 1,9
+Display 80,30 BCB642A843697EAC24C93E65BD548B2D 1,9
 Key "-`"
-Display 80,30 28F045FE67ADE62B92F3A4E02A295234 1,7
+Display 80,30 14302278E63F297EDCB931F482E34BDE 1,7
 Key "-`"
-Display 80,30 1A236C860DE13BBBC446C143CAF21813 1,6
+Display 80,30 2D5FBF9D6847197E8686AE154C0CA6B2 1,6
 Key ":C-X"
-Display 80,30 8710264955CE9B1E9FDE8137F8435A4F 1,6
+Display 80,30 77F1C291B9214AE59842D4BD18F6A05F 1,6
 Key ":C-F"
-Display 80,30 E0392781F1477405B591F751E22B806E 53,13
+Display 80,30 1E7384AE76BB991FAFA7F02E7DD3EEEB 53,13
 Key ":Backspace"
-Display 80,30 05C7C6F7453F37042098818395938252 52,13
+Display 80,30 35348689E9324FAFFBBE96CA75ACC343 52,13
 Key ":Backspace"
-Display 80,30 A6C7DF0EEA1D2267C1CA174AFBFB1DDE 51,13
+Display 80,30 EDD2BA2F188B83EB303752022182BD67 51,13
 Key ":Backspace"
-Display 80,30 9E6ED319D3AEC31ABA74A237746020D7 50,13
+Display 80,30 4D15F5967422B54DD7F304F81681E7EB 50,13
 Key ":Backspace"
-Display 80,30 9A43E6961B7CC401A14C3329A66A75E9 49,13
+Display 80,30 B330CA9B8C5C00592DC1CB634BB76B98 49,13
 Key ":Enter"
-Display 80,30 D8C8FB1FCA3B454D26ECA5F0F8C73332 1,1
+Display 80,30 AECF9530714EDA1396E5EE297A285515 1,1
 Key ":A-x"
-Display 80,30 130F4BD0560C5B628E1872D1E1F15E7F 26,13
+Display 80,30 23BE555E2A71C84D10CDBEA655E0FDED 26,13
 Key "-g"
-Display 80,30 9F4229F6DB56268B8E16B3228B2D146E 27,13
+Display 80,30 33FB289B03AAAB6513425C7C8E84F666 27,13
 Key "-r"
-Display 80,30 6678DA2D6D2AE75D81E9F4726B5FAD04 28,13
+Display 80,30 CA112C801D96F486C4BDF8DC701BD084 28,13
 Key "-e"
-Display 80,30 495FAF1FD56212D6FAFCB4536C8C51B3 29,13
+Display 80,30 B288D3231EB83BF3DA9079B5C514399B 29,13
 Key "-p"
-Display 80,30 D465905309000463FAB5DB288CA22BDD 30,13
+Display 80,30 EA6525B171573E8EC86616CF09256CC1 30,13
 Key ":Enter"
-Display 80,30 886493CD557ACA404CA2DE3BE2775755 44,13
+Display 80,30 B4700025345C83B2D3080D8BDEE24002 44,13
 Key "-w"
-Display 80,30 19D7A430BE3252936B88B0DA6C0221F6 45,13
+Display 80,30 152D7736769A61A3D21A1FE9B78A4C48 45,13
 Key "-i"
-Display 80,30 7D73517D44CAABA514D62A490C778799 46,13
+Display 80,30 8D03A6F7F665D9C36121FDAA89D4CFA5 46,13
 Key "-n"
-Display 80,30 45A6D1257C2E5F8E472898D6FCB23F87 47,13
+Display 80,30 766182A0B37F539B26C93064825FBFE5 47,13
 Key "-d"
-Display 80,30 1C616B6400B620C172C4B2EE92FA9772 48,13
+Display 80,30 B39EA5064872791E64B3C76483A548FB 48,13
 Key "-o"
-Display 80,30 1FBA12433A070016D5C6EB48E85FE9DF 49,13
+Display 80,30 F173DC941BF78DC00C3BE284428FB8CC 49,13
 Key "-w"
-Display 80,30 01B616E5FC1C6E5C3319BDD67DCD467E 50,13
+Display 80,30 D8E62A85F59F768797BC1BAAA4EE65D5 50,13
 Key "- "
-Display 80,30 01B616E5FC1C6E5C3319BDD67DCD467E 51,13
+Display 80,30 D8E62A85F59F768797BC1BAAA4EE65D5 51,13
 Key "-*"
-Display 80,30 51599B8AFDF8F59384CBF9EA76E40944 52,13
+Display 80,30 03235403ED46661F0CE073C0E7D171E8 52,13
 Key "-."
-Display 80,30 E91C5809890A6029A5AAD5EF4B51947E 53,13
+Display 80,30 D4C9EF28C1BC7C6B7B65CCDCAF516479 53,13
 Key "-c"
-Display 80,30 A02C8F9C87AFBA88C1747360F3E89931 54,13
+Display 80,30 319AF12A183FDD7D5B4FC0C6E218D1CA 54,13
 Key ":Enter"
-Display 80,30 6FC9201493F2B4AA8301B257BCD2177E 11,10
-Display 80,30 3F11378374AB743F15EEAA73544864F1 11,10
+Display 80,30 D24CF94877A55DB6B922A31361C6AA7A 11,10
+Display 80,30 C1BCF5F3004964015667E6B86738CFD9 11,10
 Key ":C-N"
-Display 80,30 3F11378374AB743F15EEAA73544864F1 11,11
+Display 80,30 C1BCF5F3004964015667E6B86738CFD9 11,11
 Key ":C-N"
-Display 80,30 3F11378374AB743F15EEAA73544864F1 11,12
+Display 80,30 C1BCF5F3004964015667E6B86738CFD9 11,12
 Key ":C-N"
-Display 80,30 3F11378374AB743F15EEAA73544864F1 11,13
+Display 80,30 C1BCF5F3004964015667E6B86738CFD9 11,13
 Key ":C-N"
-Display 80,30 3F11378374AB743F15EEAA73544864F1 11,14
+Display 80,30 C1BCF5F3004964015667E6B86738CFD9 11,14
 Key ":C-N"
-Display 80,30 3F11378374AB743F15EEAA73544864F1 11,15
+Display 80,30 C1BCF5F3004964015667E6B86738CFD9 11,15
 Key ":C-N"
-Display 80,30 3F11378374AB743F15EEAA73544864F1 11,16
+Display 80,30 C1BCF5F3004964015667E6B86738CFD9 11,16
 Key "-f"
-Display 80,30 A73A6090F8B6FE5421867051742AF0B6 11,12
+Display 80,30 0662203642222B15195944D33E42B0CB 11,12
 Key ":C-V"
-Display 80,30 BD854B0497808D377B3CCAD6C7B119F7 11,7
+Display 80,30 7542B2673CB816613E5AFA3EFF7E8680 11,7
 Key ":C-V"
-Display 80,30 185265E51CAB0A8F427E4E649B95C80E 11,7
+Display 80,30 EF9D9BE6379CA61FFF5700271DCB6BB4 11,7
 Key ":C-V"
-Display 80,30 8B3A348574A918BDEDE51730B797717B 11,7
+Display 80,30 61721B5272A51EDF6B45450D660374EB 11,7
 Key ":A-B"
-Display 80,30 D8C8FB1FCA3B454D26ECA5F0F8C73332 1,1
+Display 80,30 AECF9530714EDA1396E5EE297A285515 1,1
 Key ":C-X"
-Display 80,30 E9EA03CE59D6B146608BFE19C64FF24E 1,1
+Display 80,30 ED0B24C0BE5F7005C9F3E8287F13E4B1 1,1
 Key "-`"
 Display 80,30 8557455273011DFCCAB6707018F20080 1,6
 Key "-`"
@@ -242,4 +242,4 @@ Key ":C-X"
 Display 80,30 1B93FE4A0F3F6D0DA9A9A7767239F356 1,6
 Key ":C-C"
 Display 80,30 010E4E8994BB534A4F27DD543E023E74 1,6
-Close 909
+Close 908
index ae2a3169a850804cbe2b9b41ea3b6f142eb1c098..5b599c8c2842224aefb20ce455aba9be172903fc 100644 (file)
@@ -212,9 +212,9 @@ Display 80,30 1D01CD6F5882A920FA950B64648868B1 41,2
 Key ":C-P"
 Display 80,30 0AEE37672B46ACD5B40CF7858A4AC027 41,1
 Key ":C-P"
-Display 80,30 856629CF797E687B1CF405673E5548D2 41,-1
+Display 80,30 43AAFD0E7799B8A170552941FCFFC6FA 41,0
 Key ":C-P"
-Display 80,30 A9438640D4D27E7DA1530B425E1BCDA7 79,27
+Display 80,30 F6421EC5A0230B9D2706E9A9324138E7 41,0
 Key ":C-L"
 Display 80,30 2C2BCA9050E59298FEDEB5EFAF528EAE 41,13
 Key ":C-X"