bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#71866: 30.0.50; [macOS] Cursor hiding char behind it with certain th


From: Dmitry Gutov
Subject: bug#71866: 30.0.50; [macOS] Cursor hiding char behind it with certain theme customization
Date: Fri, 19 Jul 2024 04:57:12 +0300
User-agent: Mozilla Thunderbird

On 10/07/2024 14:58, Eli Zaretskii wrote:
Date: Wed, 10 Jul 2024 05:46:35 +0300
Cc: 71866@debbugs.gnu.org
From: Dmitry Gutov <dmitry@gutov.dev>

It does get called. Unfortunately, as soon as I put a breakpoint there,
any attempt to switch to the Emacs window drops into the debugger again
- and I have switch back to the terminal emulator to enter 'c RET' 20
times or so.

I don't think I understand what you are trying to do.  I thought you
needed to "switch to the Emacs window" just once: to trigger the
situation which you want to investigate.  Once you trigger it, the
debugger will indeed kick in, but all you need to do next is step
through the code, so why do you care about switching to Emacs again?

Somehow, the problem manifests when I switch between frames (two frames
in the current repro) using C-` (bound to `other-frame').

But if I Alt-Tab to a different application and then Alt-Tab back to
Emacs, then the glyph is rendered fine - even if the "problematic" frame
gets selected.

I thought you see the problem when you switch from another application
to Emacs, not only when you switch between two Emacs frames.  I see I
was mistaken.

    (gdb) print f
      $1 = (struct frame *) 0x1234567812345600
    (gdb) condition 3 f == 0x1234567812345600

This makes breakpoint 3 trigger only when struct frame variable f has
the value of this frame.

So step 1 find out the address of the second frame, step 2 switch to
first frame, step 3 enable a conditional breakpoint.

Yes.

Okay, I have tried that, and the results might or might not be useful.

Similarly to the case of switching from another application, when I have to switch to another application to handle the breakpoints (just typing 'c RET'), the behavior is different.

BUT the last call to ns_draw_window_cursor (out of 14) before the control is returned results in the cursor getting hidden (in the new selected Emacs frame only). Unlike the problem I described, the character under the cursor stays drawn, but the cursor rectangle goes away (and that happens after the last breakpoint hit, before that the text and the cursor look correctly - hollow cursor around the character).

I'm attaching the last debugging log - maybe the backtrace can be useful? - but note that the backtrace printing is halfway broken as well - it freezes and I have to press ^C a bunch of times to see something.

Anyway, while wrong, the behavior is not the same, so I can't be sure it's the same problem that is being triggered.

Attachment: emacs-lldb-log.txt
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]