I appreciate your work on this, and also how tiny the test case is. :)
If it helps - and it may just confirm your theories - I've noticed that
when the bad behavior happens, CTRL-Z undoes single keystrokes.
On 09/14/2013 02:00 PM, Robby Findler wrote:
A little more progress: it turns out that simply turning on and turning
off an edit-sequence in a text% object clears some internal state in a
text% object (the extend-streak? field) and, when the search bars are
open, more edit sequences are flying around. That seems wrong to me
(that starting and ending an edit-sequence would clear this state), but
I'm not sure if the answer can be as simple as avoiding this
state-clearing action or not. Anyways, here's some simple code that
demonstrates how far I've gotten.
#lang racket/base
(require rackunit racket/class racket/gui/base)
(check-equal? (let ()
(define t (new text%))
(send t insert "abcdef")
(send t set-position 3 3)
(send t move-position 'right #t)
(send t move-position 'left #t)
(list (send t get-start-position)
(send t get-end-position)))
(list 3 3))
(check-equal? (let ()
(define t (new text%))
(send t insert "abcdef")
(send t set-position 3 3)
(send t move-position 'right #t)
(send t begin-edit-sequence)
(send t end-edit-sequence)
(send t move-position 'left #t)
(list (send t get-start-position)
(send t get-end-position)))
(list 3 3))
Robby
On Sat, Sep 14, 2013 at 12:43 PM, Neil Toronto <[email protected]
<mailto:[email protected]>> wrote:
Yes! You figured it out! This has been bugging me for months.
Here's more info, in case it helps. In addition to SHIFT+Left,
SHIFT+Right, SHIFT+Up and SHIFT+Down always expanding the selection
when Replace is shown, so does SHIFT-End, and all the SHIFT+ALT
arrow combos and SHIFT+CTRL combos. SHIFT-Home only works when the
selection doesn't span multiple lines.
If the Search box is empty, selection works as expected. (That is,
getting in this always-expanding-selection or
caret-position-forgetting state requires the Replace box to be shown
and the Search box to have text in it.) If the Search box has text
in it, it doesn't matter whether it's found. I'm guessing there's
some caret-wrangling code for the search bar that causes the editor
to forget the caret position while selecting.
Selection in the REPL also seems to be affected by Search and
Replace in exactly the same way. (I haven't tested it thoroughly.)
We should have Eli test this because he's had the same problem.
IIRC, he uses Linux, and so do I: I've seen this on Ubuntu 12.04 and
13.04.
Neil ⊥
On 09/14/2013 08:20 AM, bhrgunatha wrote:
After lots of head scratching and experimenting I have a
consistent cause.
It seems like the Search and Replace bar causes some problem.
It is only happening when the Replace text box is visible.
This weird behaviour disappears if the I click the Hide Replace
button
or choose Hide Replace from the Edit menu.
I've also noticed that S:C:R stops working after the Replace
text box
and buttons have disappeared. That is I can't Hide, then Re show the
Replace text box.
I hope that helps you fix the problem, but I'm pretty happy now
I know
how to get the correct operation back again.
Thanks,
Bhrgunatha
On 14/09/13 20:04, Robby Findler wrote:
This sounds like a bug in the implementation of the
shift-left and
shift-right keybindings.
If you can give some kind of a step by step procedure to get
into the
bad state, then I think we can probably fix it.
Robby
On Sat, Sep 14, 2013 at 6:16 AM, bhrgunatha
<[email protected] <mailto:[email protected]>
<mailto:[email protected]
<mailto:[email protected]>__>> wrote:
I'm having a problem editing programs using DrRacket.
This happened
once before but went away after re-installing. [1].
I'm having the same issue again. Basically the
behaviour of text
selection is changes while I open and edit different
files running a
single instance of DrRacket.
If I select some text and then press SHIFT+Left instead
of altering
the selection based on the current cursor position, the
selection is
extended left from the beginning of the text currently
selected.
Similarly for SHIFT+Right - it extends the text
selection one
character to the right from the end of the selection
rather than the
current cursor position. Same for SHIFT+Down, SHIFT+Up.
Is there some key binding or setting in DrRacket that
controls the
way text selection is handled that I am accidentally
hitting?
It doesn't happen in any other editor - it's specific
to DrRacket.
If I quit DrRacket and re-open it normal operation
continues for a
while again. I don't know if it's a bug or some setting
in DrRacket
that I am unaware of.
My current specs are:
Arch Linux 64 bit:
Linux 3.10.10-1-ARCH #1 SMP PREEMPT x86_64 GNU/Linux
DrRacket 5.3.6.
(This is a version I compiled myself - but it's the
same using the
Arch binary package - racket 5.3.6-1)
Can someone offer any advice?
Bhrgunatha
[1]
http://article.gmane.org/____gmane.comp.lang.racket.user/____17034/match=bhrgunatha
<http://article.gmane.org/__gmane.comp.lang.racket.user/__17034/match=bhrgunatha>
<http://article.gmane.org/__gmane.comp.lang.racket.user/__17034/match=bhrgunatha
<http://article.gmane.org/gmane.comp.lang.racket.user/17034/match=bhrgunatha>>
____________________
Racket Users list:
http://lists.racket-lang.org/____users
<http://lists.racket-lang.org/__users>
<http://lists.racket-lang.org/__users
<http://lists.racket-lang.org/users>>
____________________
Racket Users list:
http://lists.racket-lang.org/__users
<http://lists.racket-lang.org/users>
____________________
Racket Users list:
http://lists.racket-lang.org/__users
<http://lists.racket-lang.org/users>
____________________
Racket Users list:
http://lists.racket-lang.org/users