GNU bug report logs -
#58245
29.0.50; other-frame is broken in EXWM
Previous Next
Reported by: Jacky Li <drsl <at> drshapeless.com>
Date: Sun, 2 Oct 2022 04:12:01 UTC
Severity: normal
Merged with 58438
Found in version 29.0.50
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Jacky Li <drsl <at> drshapeless.com> writes:
> I am using EXWM with dual monitors. When I call (other-frame), I can see
> the modeline is activated on the other frame, but the cursor does not
> follow. Any interactive functions would be called in the original
> frame. The cursor now only follows my mouse, but I am sure that
> focus-follow-mouse is nil and mouse-autoselect-window is nil.
>
> I believe the broken commit is within the previous 24 hours. And I
> highly suspect commit 3924fbd025 is the root of the bug.
I believe this is a bug with EXWM, from reading its code:
((= type xcb:Atom:_NET_ACTIVE_WINDOW)
(let ((buffer (exwm--id->buffer id))
iconic window)
(when (buffer-live-p buffer)
(with-current-buffer buffer
(when (eq exwm--frame exwm-workspace--current)
(if exwm--floating-frame
(select-frame exwm--floating-frame)
(setq iconic (exwm-layout--iconic-state-p))
(when iconic
;; State change: iconic => normal.
(set-window-buffer (frame-selected-window exwm--frame)
(current-buffer)))
;; Focus transfer.
(setq window (get-buffer-window nil t))
(when (or iconic
(not (eq window (selected-window))))
(select-window window)))))))
Since it acts as a window manager, it must either set
`x-no-window-manager' to t, or really focus Emacs frames (which don't
have corresponding EXWM buffers) by doing the X protocol to transfer the
focus to the frame.
3924fbd025 is not buggy; EXWM enables support for _NET_ACTIVE_WINDOW,
which Emacs expects to be implemented correctly:
Activation
In the X world, activating a window means to give it the input
^^^^^^^^^^^^^^^^^
focus. This may not be possible if the window is unmapped,
^^^^^
because it is on a different desktop. Thus, activating a window may
involve additional steps like moving it to the current desktop (or
changing to the desktop the window is on), deiconifying it or raising
it.
This bug report was last modified 2 years and 218 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.