9front - general discussion about 9front
 help / color / mirror / Atom feed
From: "Scott Flowers" <flowerss@cranky.ca>
To: 9front@9front.org
Subject: Re: [9front] Bug or inconsistency in cursor behaviour?
Date: Mon, 28 Oct 2024 16:59:50 -0600	[thread overview]
Message-ID: <d7318b5a-78f7-4315-8125-28b2f2eae9c6@app.fastmail.com> (raw)
In-Reply-To: <d77bbdd1-15b9-4663-8830-ee9de2f033dd@app.fastmail.com>

Please ignore the first set of patches, I arsed up the one for rio.

Scott Flowers
flowerss@cranky.ca

On Mon, 28 Oct 2024, at 16:49, Scott Flowers wrote:
> If interested, patch for acme, patch for rio below. Apologies for my non-c-programmerness.
> 
> diff 6894c4e13a24e9983e2daf4ee2566f8396d29f4e uncommitted
> --- a/sys/src/cmd/acme/text.c
> +++ b/sys/src/cmd/acme/text.c
> @@ -680,13 +680,24 @@
> switch(r){
> case Kleft:
> typecommit(t);
> - if(t->q0 > 0)
> - textshow(t, t->q0-1, t->q0-1, TRUE);
> + if(t->q0 > 0) {
> + if(t->q0 != t->q1) {
> + textshow(t, t->q0, t->q0, TRUE);
> + }
> + else {
> + textshow(t, t->q0-1, t->q0-1, TRUE);
> + }
> + }
> return;
> case Kright:
> typecommit(t);
> if(t->q1 < t->file->nc)
> - textshow(t, t->q1+1, t->q1+1, TRUE);
> + if(t->q0 != t->q1) {
> + textshow(t, t->q1, t->q1, TRUE);
> + }
> + else {
> + textshow(t, t->q1+1, t->q1+1, TRUE);
> + }
> return;
> case Kdown:
> n = t->maxlines/3;
> 
> diff 6894c4e13a24e9983e2daf4ee2566f8396d29f4e uncommitted
> --- a/sys/src/cmd/rio/wind.c
> +++ b/sys/src/cmd/rio/wind.c
> @@ -892,16 +892,30 @@
> return;
> case Kleft:
> if(w->q0 > 0){
> - q0 = w->q0-1;
> - wsetselect(w, q0, q0);
> - wshow(w, q0);
> + if(w->q1 != w->q0) {
> + q0 = w->q0;
> + wsetselect(w, q0, q0);
> + wshow(w, q0);
> + }
> + else {
> + q0 = w->q0-1;
> + wsetselect(w, q0, q0);
> + wshow(w, q0);
> + }
> }
> return;
> case Kright:
> if(w->q1 < w->nr){
> - q1 = w->q1+1;
> - wsetselect(w, q1, q1);
> - wshow(w, q1);
> + if(w->q1 != w->q0) {
> + q1 = w->q1;
> + wsetselect(w, q1, q1);
> + wshow(w, q1);
> + } 
> + else {
> + q1 = w->q1+1;
> + wsetselect(w, q1, q1);
> + wshow(w, q1);
> + }
> }
> return;
> case Khome:
> 
> 
> 
> Scott
> 
> On Mon, 28 Oct 2024, at 14:19, flowerss@cranky.ca wrote:
> > I have noticed an odd behaviour when using the arrow keys when text is selected in 9front, and I'm wondering if it's a bug, multiple bugs, or just the way things work.
> > 
> > If I have a string of text in a shell or acme, and I select one or more characters with the mouse, and then use the right arrow key, the text gets deselected, and the cursor moves one character past the right end of the selected text. If I use the left arrow key, the cursor moves to one character to the left of the previously selected text. It feels like the resultin position of the cursor has gone one character too far left or right.
> > 
> > In sam, this behaviour is different. If I select text in sam, and then hit the left arrow key, the cursor moves one character to the left of the initially selected text, and if I hit the right arrow key, the cursor moves to the right of the first character of the previously selected text. This also seems odd.
> > 
> > In Windows, MacOS and all the Linux graphical text manipulation apps I have tried, if you select text and then hit the left arrow, the cursor moves to the beginning of the selection, and the right arrow moves to the end of the selection. This feels like the more appropriate behaviour to me. Am I out to lunch?
> > 
> > Thanks,
> > 
> > Scott
> > 
> 

  reply	other threads:[~2024-10-28 23:01 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-28 20:19 flowerss
2024-10-28 22:49 ` Scott Flowers
2024-10-28 22:59   ` Scott Flowers [this message]
2024-10-28 23:04     ` Scott Flowers
2024-10-28 23:45 ` Thaddeus Woskowiak
2024-10-29  0:35   ` Scott Flowers
2024-10-29  9:59   ` hiro
2024-10-29 15:16     ` Scott Flowers
2024-10-29 17:40       ` hiro
2024-10-29 17:41         ` hiro
2024-10-29  1:40 ` ori
2024-10-29  3:31   ` Scott Flowers
2024-10-29  4:32     ` umbraticus
2024-10-29  9:26     ` hiro

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d7318b5a-78f7-4315-8125-28b2f2eae9c6@app.fastmail.com \
    --to=flowerss@cranky.ca \
    --cc=9front@9front.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).