* bug#58438: 29.0.50; EXWM focus lost
@ 2022-10-11 13:26 Manuel Giraud
2022-10-12 0:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
0 siblings, 1 reply; 4+ messages in thread
From: Manuel Giraud @ 2022-10-11 13:26 UTC (permalink / raw)
To: 58438
Hi,
I'm using EXWM. Since this patch 3924fbd025, whenever I'm starting an
external graphical program (eg. Firefox), the cursor will stay hollow in
other Emacs buffers even when I switch to them.
Do you think that EXWM is at fault here regarding EWMH?
Best regards,
In GNU Emacs 29.0.50 (build 1, x86_64-unknown-openbsd7.2, cairo version
1.17.6) of 2022-10-11 built on elite.giraud
Repository revision: 8a2bc8603996db24f206fc0c933536c7695a537a
Repository branch: HEAD
Windowing system distributor 'The X.Org Foundation', version 11.0.12101004
System Description: OpenBSD elite.giraud 7.2 GENERIC.MP#739 amd64
Configured using:
'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin
--with-x-toolkit=no --without-sound --without-compress-install
CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG
SQLITE3 THREADS TIFF WEBP X11 XDBE XIM XINPUT2 XPM ZLIB
Important settings:
value of $LC_ALL: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
global-git-commit-mode: t
magit-auto-revert-mode: t
paredit-mode: t
icomplete-mode: t
display-time-mode: t
display-battery-mode: t
shell-dirtrack-mode: t
global-so-long-mode: t
repeat-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
/home/manuel/.emacs.d/elpa/transient-20220918.2101/transient hides /home/manuel/emacs/share/emacs/29.0.50/lisp/transient
Features:
(shadow sort mail-extr emacsbug magit-extras face-remap magit-bookmark
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func imenu
magit-diff smerge-mode diff diff-mode git-commit log-edit pcvs-util
add-log magit-core magit-autorevert autorevert filenotify magit-margin
magit-transient magit-process with-editor magit-mode transient magit-git
magit-base magit-section dash compat-27 compat-26 compat compat-macs
pulse paredit edmacro icomplete time battery exwm-randr xcb-randr
exwm-config exwm exwm-input xcb-keysyms xcb-xkb exwm-manage
exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core
xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug kmacro server
stimmung-themes modus-operandi-theme modus-themes ytdious osm mingus
libmpdee reporter edebug debug backtrace transmission diary-lib
diary-loaddefs color calc-bin calc-ext calc calc-loaddefs rect calc-macs
w3m-load mu4e mu4e-org mu4e-main mu4e-view mu4e-headers mu4e-compose
mu4e-draft mu4e-actions smtpmail mu4e-search mu4e-lists mu4e-bookmarks
mu4e-mark mu4e-message flow-fill mule-util hl-line mu4e-contacts
mu4e-update mu4e-folders mu4e-server mu4e-context mu4e-vars mu4e-helpers
mu4e-config bookmark ido supercite regi ebdb-message ebdb-gnus gnus-msg
gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr
pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start
gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec
gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec
epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse
rfc2231 rfc2047 rfc2045 ietf-drums gmm-utils mailheader gnus-win gnus
nnheader gnus-util mail-utils range mm-util mail-prsvr ebdb-mua ebdb-com
crm ebdb-format ebdb mailabbrev eieio-opt speedbar ezimage dframe
eieio-base pcase timezone org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-footnote org-src ob-comint org-pcomplete org-list
org-faces org-entities org-version ob-emacs-lisp ob-core ob-eval
org-table oc-basic bibtex ol org-keys oc org-compat org-macs
org-loaddefs find-func cal-menu calendar cal-loaddefs visual-basic-mode
cl web-mode disp-table erlang-start smart-tabs-mode skeleton cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs slime-asdf grep slime-tramp tramp tramp-loaddefs trampver
tramp-integration cus-edit cus-load wid-edit files-x tramp-compat rx
shell pcomplete parse-time iso8601 time-date ls-lisp format-spec
slime-fancy slime-indentation slime-cl-indent cl-indent
slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references
slime-compiler-notes-tree slime-scratch slime-presentations advice
bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context
slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c
slime-editing-commands slime-autodoc slime-repl elp slime-parse slime
derived cl-extra help-mode lisp-mnt gud apropos compile
text-property-search etags fileloop generator xref project arc-mode
archive-mode noutline outline icons pp comint ansi-osc ansi-color ring
hyperspec thingatpt slime-autoloads dired-aux dired-x dired
dired-loaddefs so-long notifications dbus xml repeat easy-mmode
auctex-autoloads tex-site boxquote-autoloads debbugs-autoloads
hyperbole-autoloads magit-autoloads git-commit-autoloads
magit-section-autoloads dash-autoloads paredit-autoloads
rust-mode-autoloads stimmung-themes-autoloads transient-autoloads
with-editor-autoloads info compat-autoloads ytdious-autoloads package
browse-url url url-proxy url-privacy url-expand url-methods url-history
url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers
url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache
json subr-x map byte-opt gv bytecomp byte-compile cconv url-vars
cl-loaddefs cl-lib rmc iso-transl tooltip eldoc paren electric uniquify
ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select
scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors
frame minibuffer nadvice seq simple cl-generic indonesian philippine
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
kqueue lcms2 dynamic-setting system-font-setting font-render-setting
cairo xinput2 x multi-tty make-network-process emacs)
Memory information:
((conses 16 679078 33593)
(symbols 48 56153 1)
(strings 32 167172 8350)
(string-bytes 1 5531299)
(vectors 16 94594)
(vector-slots 8 1235141 33365)
(floats 8 507 406)
(intervals 56 719 33)
(buffers 1000 13))
--
Manuel Giraud
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#58438: 29.0.50; EXWM focus lost
2022-10-11 13:26 bug#58438: 29.0.50; EXWM focus lost Manuel Giraud
@ 2022-10-12 0:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-12 7:08 ` Manuel Giraud
2022-10-12 8:56 ` Manuel Giraud
0 siblings, 2 replies; 4+ messages in thread
From: Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2022-10-12 0:52 UTC (permalink / raw)
To: Manuel Giraud; +Cc: 58438
forcemerge 58438 58245
thanks
Manuel Giraud <manuel@ledu-giraud.fr> writes:
> Hi,
>
> I'm using EXWM. Since this patch 3924fbd025, whenever I'm starting an
> external graphical program (eg. Firefox), the cursor will stay hollow in
> other Emacs buffers even when I switch to them.
>
> Do you think that EXWM is at fault here regarding EWMH?
Yes; it must either set `x-no-window-manager' to a non-nil value, stop
announcing support for _NET_ACTIVE_WINDOW, or implement said property
correctly. At present, it assumes Emacs itself will never rely on said
property to activate its frames, which is no longer true in Emacs 29.
Please point the EXWM developers to this document:
https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html#idm46409506372544
And say that this part of exwm.el:
;; _NET_ACTIVE_WINDOW.
((= type xcb:Atom:_NET_ACTIVE_WINDOW) <==== add code after here
(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))))))))
must loop through each frame on the display EXWM manages, and should the
frame's `outer-window-id' match what is specified in the client message,
call `x-focus-frame' on the frame with noactivate set to a non-nil
value.
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#58438: 29.0.50; EXWM focus lost
2022-10-12 0:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
@ 2022-10-12 7:08 ` Manuel Giraud
2022-10-12 8:56 ` Manuel Giraud
1 sibling, 0 replies; 4+ messages in thread
From: Manuel Giraud @ 2022-10-12 7:08 UTC (permalink / raw)
To: Po Lu; +Cc: Manuel Giraud, 58438
Po Lu <luangruo@yahoo.com> writes:
> forcemerge 58438 58245
> thanks
>
> Manuel Giraud <manuel@ledu-giraud.fr> writes:
>
>> Hi,
>>
>> I'm using EXWM. Since this patch 3924fbd025, whenever I'm starting an
>> external graphical program (eg. Firefox), the cursor will stay hollow in
>> other Emacs buffers even when I switch to them.
>>
>> Do you think that EXWM is at fault here regarding EWMH?
>
> Yes; it must either set `x-no-window-manager' to a non-nil value, stop
> announcing support for _NET_ACTIVE_WINDOW, or implement said property
> correctly. At present, it assumes Emacs itself will never rely on said
> property to activate its frames, which is no longer true in Emacs 29.
Thanks for looking into this and for the detailed explanation. I'm
going to try to make it into EXWM but it won't be easy because if I'm
not mistaken there is currently no maintainer :(
--
Manuel Giraud
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#58438: 29.0.50; EXWM focus lost
2022-10-12 0:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-12 7:08 ` Manuel Giraud
@ 2022-10-12 8:56 ` Manuel Giraud
1 sibling, 0 replies; 4+ messages in thread
From: Manuel Giraud @ 2022-10-12 8:56 UTC (permalink / raw)
To: Po Lu; +Cc: 58438
Hi Po,
So I've just made this PR: https://github.com/ch11ng/exwm/pull/890
Best regards,
--
Manuel Giraud
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-10-12 8:56 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-11 13:26 bug#58438: 29.0.50; EXWM focus lost Manuel Giraud
2022-10-12 0:52 ` Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2022-10-12 7:08 ` Manuel Giraud
2022-10-12 8:56 ` Manuel Giraud
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).