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

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

bug#57468: 29.0.50; Text cursor continues to blink when frame loses focu


From: Po Lu
Subject: bug#57468: 29.0.50; Text cursor continues to blink when frame loses focus
Date: Sat, 03 Sep 2022 21:03:50 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.91 (gnu/linux)

Lars Ingebrigtsen <larsi@gnus.org> writes:

> xi_handle_focus_change: 0x55bb4bd32300 (nil)
> xi_handle_focus_change: 0x55bb4bd32300 0x55bb4bd32300
> xi_handle_focus_change: 0x55bb4bd32300 0x55bb4bd32300
> xi_handle_focus_change: 0x55bb4bd32300 0x55bb4bd32300
> xi_handle_focus_change: 0x55bb4bd32300 0x55bb4bd32300
> xi_handle_focus_change: 0x55bb4bd32300 0x55bb4bd32300
> xi_handle_focus_change: (nil) 0x55bb4bd32300

This looks fine, so far.

> And this is what the other Emacs, with one frame, says:

[...]

> xi_handle_focus_change: 0x559640421300 0x559640421300
> xi_handle_focus_change: 0x559640421300 0x559640421300
> xi_handle_focus_change: 0x559640421300 0x559640421300
> xi_handle_focus_change: 0x559640421300 0x559640421300
> xi_handle_focus_change: 0x559640421300 0x559640421300
> xi_handle_focus_change: 0x559640421300 0x559640421300
> xi_handle_focus_change: 0x559640421300 0x559640421300
> xi_handle_focus_change: 0x559640421300 0x559640421300
> xi_handle_focus_change: 0x559640421300 0x559640421300

Was this printed immediately after you switched to frame 1 (on the Emacs
that has two frames)?  Or did you give the focus back to the other Emacs
(the one with a single frame) afterwards?

If the former is the case, could you please in addition to the earlier
instrumentation also instrument xi_focus_handle_for_device like such:

    case XI_FocusIn:
      device->focus_frame = mentioned_frame;
      device->focus_frame_time = event->time;

      fprintf (stderr, "XI_FocusIn\n"); <== add instrumentation here
      break;

    case XI_FocusOut:
      device->focus_frame = NULL;

      fprintf (stderr, "XI_FocusOut\n"); <== here
      break;

    case XI_Enter:
      if (!event->focus)
        break;

      if (device->use == XIMasterPointer)
        device = xi_device_from_id (dpyinfo, device->attachment);

      if (!device)
        break;

      device->focus_implicit_frame = mentioned_frame;
      device->focus_implicit_time = event->time;
      fprintf (stderr, "XI_Enter\n"); <=== here
      break;

    case XI_Leave:
      if (!event->focus)
        break;

      if (device->use == XIMasterPointer)
        device = xi_device_from_id (dpyinfo, device->attachment);

      if (!device)
        break;

      device->focus_implicit_frame = NULL;
      fprintf (stderr, "XI_Leave\n"); <=== and here
      break;

and show what is printed in the second Emacs (with a single frame) once
it starts to blink despite not being focused?

Thanks.




reply via email to

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