unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#65382: 27.1; Sometimes two cursors are unexpectedly shown
@ 2023-08-19 12:11 Markus Triska
  2023-08-19 12:46 ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Markus Triska @ 2023-08-19 12:11 UTC (permalink / raw)
  To: 65382


To reproduce this issue, please save the forms below in the file
duplicate_cursor.el, and then open the file in Emacs with:

    $ emacs -Q duplicate_cursor.el

Next, evaluate the forms in the file with:

    M-x eval-buffer RET

The function `duplicate-cursor' is now defined. Invoke this function
with:

    M-x duplicate-cursor RET

A new buffer called duplicated-cursor is now selected. So far,
everything works as intended, and a single cursor is shown in the
penultimate line of the window, as expected, at the position of point.

Now the issue: Invoke `duplicate-cursor' again, i.e., please do again:

    M-x duplicate-cursor RET

Unexpectedly, two cursors now appear in the buffer duplicated-cursor:
One, as before, in the penultimate line of the window, and a second
cursor in the last line of the window. This second cursor is unexpected
and does not appear at the position of point, but one line below it.

If I then press C-p, a cursor is shown in the antepenultimate line of
the window. This works as expected. However, a second cursor is again
unexpectedly shown in the last line of the window. This second cursor
is also unexpectedly shown when I press C-p repeatedly from then on.

The expected situation in all cases above is that only a single cursor
is shown at all times, located at the position of point.

Please find below the forms I used to elicit this issue. Alternatively,
you can download duplicate_cursor.el from:

    https://www.metalevel.at/ei/duplicate_cursor.el

Can you reproduce the issue with this information? Please let me know if
anything else is needed.

Thank you and all the best,
Markus


(defface duplicated-cursor
  '((t
     (:height 151)))
  "Face for frame to illustrate the issue")

(set-frame-font (face-font 'duplicated-cursor))

(defun insert-height (h ascent)
  ;; use a PBM image, due to problems with XBM (see #36337)
  (insert-image `(image :type pbm
                        :data ,(format "P1\n1 %s\n%s" h (make-string h ?0))
                        :ascent ,ascent) "t"))

(defun goto-last-window-line ()
  (while (pos-visible-in-window-p)
    (insert "\n"))
  (delete-char -1))

(defun duplicate-cursor ()
  (interactive)
  (switch-to-buffer (get-buffer-create "duplicated-cursor"))
  (erase-buffer)
  (insert "\n\n")
  (insert-height 160 80)
  (let ((m (point-marker)))
    (insert-height 125 'center)
    (goto-last-window-line)
    (redisplay)
    (delete-region (point) m)
    (insert-height 112 'center)
    (insert "\n\n")
    (insert-height 6 100)
    (insert (propertize "\n"
                        'face '(:height 1)
                        'line-height t
                        'rear-nonsticky t))
    (goto-last-window-line)
    (previous-line)))


In GNU Emacs 27.1 (build 1, x86_64-apple-darwin15.3.0, X toolkit, Xaw scroll bars)
 of 2020-12-12 built on macbook
Windowing system distributor 'The X.Org Foundation', version 11.0.11502000
System Description:  Mac OS X 10.11.3


Configured using:
 'configure --prefix=/opt/local --disable-silent-rules --without-ns
 --without-dbus --without-gconf --without-libotf --without-m17n-flt
 --with-gmp --with-gnutls --with-json --with-xml2 --with-modules
 --infodir /opt/local/share/info/emacs --with-x-toolkit=lucid
 --without-xaw3d --without-imagemagick --with-xpm --with-jpeg
 --with-tiff --with-gif --with-png --with-lcms2 --without-rsvg
 --with-xft 'CFLAGS=-pipe -Os -arch x86_64'
 CPPFLAGS=-I/opt/local/include 'LDFLAGS=-L/opt/local/lib
 -Wl,-headerpad_max_install_names -lfreetype -lfontconfig -Wl,-no_pie
 -arch x86_64''

Configured features:
XPM JPEG TIFF GIF PNG GSETTINGS GLIB NOTIFY KQUEUE ACL GNUTLS LIBXML2
FREETYPE HARFBUZZ XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 XDBE XIM
MODULES THREADS JSON PDUMPER LCMS2 GMP






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#65382: 27.1; Sometimes two cursors are unexpectedly shown
  2023-08-19 12:11 bug#65382: 27.1; Sometimes two cursors are unexpectedly shown Markus Triska
@ 2023-08-19 12:46 ` Eli Zaretskii
  2023-08-19 12:55   ` Markus Triska
  2023-08-19 13:11   ` Gregory Heytings
  0 siblings, 2 replies; 8+ messages in thread
From: Eli Zaretskii @ 2023-08-19 12:46 UTC (permalink / raw)
  To: Markus Triska; +Cc: 65382

> From: Markus Triska <triska@metalevel.at>
> Date: Sat, 19 Aug 2023 14:11:57 +0200
> 
> 
> To reproduce this issue, please save the forms below in the file
> duplicate_cursor.el, and then open the file in Emacs with:
> 
>     $ emacs -Q duplicate_cursor.el
> 
> Next, evaluate the forms in the file with:
> 
>     M-x eval-buffer RET
> 
> The function `duplicate-cursor' is now defined. Invoke this function
> with:
> 
>     M-x duplicate-cursor RET
> 
> A new buffer called duplicated-cursor is now selected. So far,
> everything works as intended, and a single cursor is shown in the
> penultimate line of the window, as expected, at the position of point.
> 
> Now the issue: Invoke `duplicate-cursor' again, i.e., please do again:
> 
>     M-x duplicate-cursor RET
> 
> Unexpectedly, two cursors now appear in the buffer duplicated-cursor:
> One, as before, in the penultimate line of the window, and a second
> cursor in the last line of the window. This second cursor is unexpected
> and does not appear at the position of point, but one line below it.

I cannot reproduce this.  I see just one cursor.

It could be that some or all of the magic constants you use need to be
adjusted for other systems due to slightly different sizes of the
default fonts and/or the initial frames.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#65382: 27.1; Sometimes two cursors are unexpectedly shown
  2023-08-19 12:46 ` Eli Zaretskii
@ 2023-08-19 12:55   ` Markus Triska
  2023-08-19 13:11   ` Gregory Heytings
  1 sibling, 0 replies; 8+ messages in thread
From: Markus Triska @ 2023-08-19 12:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65382

Eli Zaretskii <eliz@gnu.org> writes:

> I cannot reproduce this.  I see just one cursor.
>
> It could be that some or all of the magic constants you use need to be
> adjusted for other systems due to slightly different sizes of the
> default fonts and/or the initial frames.

Thank you for trying this! Yes, unfortunately line heights sometimes
differ between systems even for identical programs, I previously filed
#34577 for this.

I will try to reproduce the present issue on a different system as well
in the hope that you can then also reproduce it.

Thank you and all the best,
Markus





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#65382: 27.1; Sometimes two cursors are unexpectedly shown
  2023-08-19 12:46 ` Eli Zaretskii
  2023-08-19 12:55   ` Markus Triska
@ 2023-08-19 13:11   ` Gregory Heytings
  2023-08-19 13:18     ` Eli Zaretskii
  1 sibling, 1 reply; 8+ messages in thread
From: Gregory Heytings @ 2023-08-19 13:11 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65382, Markus Triska


>
> I cannot reproduce this.  I see just one cursor.
>

I can reproduce this (with Emacs 24 up to 30).  But I don't see more than 
one cursor either: the "other" cursor appears to be a kind of visual 
glitch, it does not blink, and it vanishes after e.g. M-x TAB C-g, or 
moving another frame above the one on which the "other" cursor appears.






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#65382: 27.1; Sometimes two cursors are unexpectedly shown
  2023-08-19 13:11   ` Gregory Heytings
@ 2023-08-19 13:18     ` Eli Zaretskii
  2023-08-19 13:20       ` Gregory Heytings
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2023-08-19 13:18 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: 65382, triska

> Date: Sat, 19 Aug 2023 13:11:42 +0000
> From: Gregory Heytings <gregory@heytings.org>
> cc: Markus Triska <triska@metalevel.at>, 65382@debbugs.gnu.org
> 
> I can reproduce this (with Emacs 24 up to 30).  But I don't see more than 
> one cursor either: the "other" cursor appears to be a kind of visual 
> glitch, it does not blink, and it vanishes after e.g. M-x TAB C-g, or 
> moving another frame above the one on which the "other" cursor appears.

Does it also vanish if you say "M-x redraw-display RET"?





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#65382: 27.1; Sometimes two cursors are unexpectedly shown
  2023-08-19 13:18     ` Eli Zaretskii
@ 2023-08-19 13:20       ` Gregory Heytings
  2023-08-19 13:48         ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Gregory Heytings @ 2023-08-19 13:20 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65382, triska


>> I can reproduce this (with Emacs 24 up to 30).  But I don't see more 
>> than one cursor either: the "other" cursor appears to be a kind of 
>> visual glitch, it does not blink, and it vanishes after e.g. M-x TAB 
>> C-g, or moving another frame above the one on which the "other" cursor 
>> appears.
>
> Does it also vanish if you say "M-x redraw-display RET"?
>

Yes.






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#65382: 27.1; Sometimes two cursors are unexpectedly shown
  2023-08-19 13:20       ` Gregory Heytings
@ 2023-08-19 13:48         ` Eli Zaretskii
  2023-08-19 13:55           ` Gregory Heytings
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2023-08-19 13:48 UTC (permalink / raw)
  To: Gregory Heytings; +Cc: 65382, triska

> Date: Sat, 19 Aug 2023 13:20:42 +0000
> From: Gregory Heytings <gregory@heytings.org>
> cc: triska@metalevel.at, 65382@debbugs.gnu.org
> 
> 
> >> I can reproduce this (with Emacs 24 up to 30).  But I don't see more 
> >> than one cursor either: the "other" cursor appears to be a kind of 
> >> visual glitch, it does not blink, and it vanishes after e.g. M-x TAB 
> >> C-g, or moving another frame above the one on which the "other" cursor 
> >> appears.
> >
> > Does it also vanish if you say "M-x redraw-display RET"?
> >
> 
> Yes.

So the other cursor is probably some artifact we didn't remove when we
should have.  Does it look like a cursor, or does it look like one of
the images that the recipe uses?

Also, what happens if you change the cursor-type to be, say, 'bar'
before running the recipe?





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#65382: 27.1; Sometimes two cursors are unexpectedly shown
  2023-08-19 13:48         ` Eli Zaretskii
@ 2023-08-19 13:55           ` Gregory Heytings
  0 siblings, 0 replies; 8+ messages in thread
From: Gregory Heytings @ 2023-08-19 13:55 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65382, triska


>
> So the other cursor is probably some artifact we didn't remove when we 
> should have.
>

Yes.

>
> Does it look like a cursor, or does it look like one of the images that 
> the recipe uses?
>

It looks exactly like a cursor.  Changing the cursor color, or its style, 
displays something that looks like another cursor (but which, as I said, 
doesn't blink).  AFAICT the images are white boxes, so in emacs -Q you 
don't see them.






^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-08-19 13:55 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-19 12:11 bug#65382: 27.1; Sometimes two cursors are unexpectedly shown Markus Triska
2023-08-19 12:46 ` Eli Zaretskii
2023-08-19 12:55   ` Markus Triska
2023-08-19 13:11   ` Gregory Heytings
2023-08-19 13:18     ` Eli Zaretskii
2023-08-19 13:20       ` Gregory Heytings
2023-08-19 13:48         ` Eli Zaretskii
2023-08-19 13:55           ` Gregory Heytings

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).