GNU bug report logs -
#65919
29.1; build without xinput does not get focused when hovering over window
Previous Next
Reported by: Ivan Popovych <ivan <at> ipvych.com>
Date: Wed, 13 Sep 2023 14:29:03 UTC
Severity: normal
Found in version 29.1
Done: Po Lu <luangruo <at> yahoo.com>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 65919 in the body.
You can then email your comments to 65919 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Wed, 13 Sep 2023 14:29:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Ivan Popovych <ivan <at> ipvych.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 13 Sep 2023 14:29:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Steps to reproduce:
Build Emacs 29 with configure flags as below
$ echo "exec emacs -Q" > ~/.xinitrc
$ startx
Cursor is hollow when starting Emacs and hovering over or clicking in window
Clicking menu bar item fixes the cursor.
Building with `--without-xinput` fixes the issue.
Originally reported as EXWM bug in
https://github.com/ch11ng/exwm/issues/924 but this can be reproduced
even without EXWM
In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.16.0, Xaw3d scroll bars)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
System Description: NixOS 23.11 (Tapir)
Configured using:
'configure
--prefix=/nix/store/81g0rphgaisjz1kf6mfdlqv9m69kjfkf-emacs-29.1
--disable-build-details --with-modules --with-x-toolkit=lucid
--with-xft --with-cairo --with-native-compilation --with-tree-sitter
--with-xinput2'
Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM
LUCID ZLIB
Important settings:
value of $EMACSLOADPATH: /nix/store/f6rpc2qbrsn02vzyybqrhybl4n3zfdc0-emacs-packages-deps/share/emacs/site-lisp:
value of $EMACSNATIVELOADPATH: /nix/store/f6rpc2qbrsn02vzyybqrhybl4n3zfdc0-emacs-packages-deps/share/emacs/native-lisp:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-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:
/nix/store/f6rpc2qbrsn02vzyybqrhybl4n3zfdc0-emacs-packages-deps/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /nix/store/81g0rphgaisjz1kf6mfdlqv9m69kjfkf-emacs-29.1/share/emacs/29.1/lisp/emacs-lisp/let-alist
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
comp comp-cstr warnings icons subr-x rx cl-seq cl-macs gv cl-extra
help-mode bytecomp byte-compile cl-lib sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip cconv
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
theme-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 inotify
dynamic-setting system-font-setting font-render-setting cairo x-toolkit
xinput2 x multi-tty make-network-process native-compile emacs)
Memory information:
((conses 16 78420 8285)
(symbols 48 7140 0)
(strings 32 20459 2047)
(string-bytes 1 634737)
(vectors 16 16614)
(vector-slots 8 334479 10269)
(floats 8 46 40)
(intervals 56 255 0)
(buffers 984 11))
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Thu, 14 Sep 2023 00:46:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Ivan Popovych <ivan <at> ipvych.com> writes:
> Steps to reproduce:
> Build Emacs 29 with configure flags as below
> $ echo "exec emacs -Q" > ~/.xinitrc
> $ startx
> Cursor is hollow when starting Emacs and hovering over or clicking in window
> Clicking menu bar item fixes the cursor.
> Building with `--without-xinput` fixes the issue.
>
> Originally reported as EXWM bug in
> https://github.com/ch11ng/exwm/issues/924 but this can be reproduced
> even without EXWM
The subject and the body of your e-mail are contradictory. Does the
build _with_ XInput2 fail to focus correctly, or does the build without?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Thu, 14 Sep 2023 08:48:01 GMT)
Full text and
rfc822 format available.
Message #11 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Ivan Popovych <ivan <at> ipvych.com> writes:
> Po Lu <luangruo <at> yahoo.com> writes:
>
>> The subject and the body of your e-mail are contradictory. Does the
>> build _with_ XInput2 fail to focus correctly, or does the build without?
>
> Sorry about that, subject is incorrect. Build _with_ XInput2 fail to
> focus correctly.
OK. Does the problem vanish if you switch to a no toolkit or GTK 3
build?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Thu, 14 Sep 2023 10:04:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Po Lu <luangruo <at> yahoo.com> writes:
> The subject and the body of your e-mail are contradictory. Does the
> build _with_ XInput2 fail to focus correctly, or does the build without?
Sorry about that, subject is incorrect. Build _with_ XInput2 fail to
focus correctly.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Thu, 14 Sep 2023 11:05:02 GMT)
Full text and
rfc822 format available.
Message #17 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Ivan Popovych <ivan <at> ipvych.com> writes:
> Po Lu <luangruo <at> yahoo.com> writes:
>
>>
>> OK. Does the problem vanish if you switch to a no toolkit or GTK 3
>> build?
>
> Build with no toolkit has no issue
>
> Configured using:
> 'configure
> --prefix=/nix/store/zg0g00l2gyycf1xdl64j89sbnjrif62l-emacs-29.1
> --disable-build-details --with-modules --with-x-toolkit=no --with-xft
> --with-cairo --with-native-compilation --with-tree-sitter
> --with-xinput2'
>
> Build with gtk3 has no issue
>
> Configured using:
> 'configure
> --prefix=/nix/store/y35rnh7np5m538gmw6qcsr6wcwrw9ls5-emacs-gtk3-29.1
> --disable-build-details --with-modules --with-x-toolkit=gtk3
> --with-xft --with-cairo --with-native-compilation --with-tree-sitter
> --with-xinput2 --with-xwidgets'
Thanks. I guess the problem arises from the core window focus code used
under X toolkit builds.
Would you please instrument x_focus_changed as follows:
diff --git a/src/xterm.c b/src/xterm.c
index 11ccd5ebdb3..cff9b2537d5 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -12005,6 +12005,8 @@ XTtoggle_invisible_pointer (struct frame *f, bool invisible)
x_focus_changed (int type, int state, struct x_display_info *dpyinfo,
struct frame *frame, struct input_event *bufp)
{
+ fprintf (stderr, "x_focus_changed: %d %d %p\n",
+ type, state, (void *) frame);
if (type == FocusIn)
{
if (dpyinfo->x_focus_event_frame != frame)
and send us whatever is printed to standard output after moving the
pointer within the frame?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Thu, 14 Sep 2023 13:13:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Po Lu <luangruo <at> yahoo.com> writes:
>
> OK. Does the problem vanish if you switch to a no toolkit or GTK 3
> build?
Build with no toolkit has no issue
Configured using:
'configure
--prefix=/nix/store/zg0g00l2gyycf1xdl64j89sbnjrif62l-emacs-29.1
--disable-build-details --with-modules --with-x-toolkit=no --with-xft
--with-cairo --with-native-compilation --with-tree-sitter
--with-xinput2'
Build with gtk3 has no issue
Configured using:
'configure
--prefix=/nix/store/y35rnh7np5m538gmw6qcsr6wcwrw9ls5-emacs-gtk3-29.1
--disable-build-details --with-modules --with-x-toolkit=gtk3
--with-xft --with-cairo --with-native-compilation --with-tree-sitter
--with-xinput2 --with-xwidgets'
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 02:39:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 65919 <at> debbugs.gnu.org (full text, mbox):
This should be fixed on the master branch. There is a minor issue,
however: the fix for this bug may negatively affect that of bug#57468.
Would either Lars or Robert confirm that the Lucid, Motif and GTK 2.x
builds still remain free of that bug?
TIA.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 03:58:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Hello,
Po Lu writes:
> This should be fixed on the master branch. [...]
FYI your e1a730017d6 patch introduces the following compiler warning:
process.c: In function ‘child_signal_notify’:
process.c:7436:54: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
7436 | /* emacs_perror ("writing to child signal FD") */;
| ^
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 04:39:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Amin Bandali <bandali <at> gnu.org> writes:
> Hello,
>
> Po Lu writes:
>
>> This should be fixed on the master branch. [...]
>
> FYI your e1a730017d6 patch introduces the following compiler warning:
>
> process.c: In function ‘child_signal_notify’:
> process.c:7436:54: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
> 7436 | /* emacs_perror ("writing to child signal FD") */;
> | ^
Thanks. Does this silence the warning?
diff --git a/configure.ac b/configure.ac
index 7ca75be996d..3b5f3c1c37a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1776,6 +1776,9 @@ AC_DEFUN
# Emacs doesn't need this paranoia.
nw="$nw -Wbidi-chars=any,ucn"
+ # Or this hysteria, which impedes commentary within if statements.
+ nw="$nw -Wempty-body"
+
if test "$emacs_cv_clang" = yes; then
nw="$nw -Wdouble-promotion"
nm="$nm -Wunknown-pragmas"
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 05:03:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Po Lu writes:
> Amin Bandali <bandali <at> gnu.org> writes:
>
>> Hello,
>>
>> Po Lu writes:
>>
>>> This should be fixed on the master branch. [...]
>>
>> FYI your e1a730017d6 patch introduces the following compiler warning:
>>
>> process.c: In function ‘child_signal_notify’:
>> process.c:7436:54: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
>> 7436 | /* emacs_perror ("writing to child signal FD") */;
>> | ^
>
> Thanks. Does this silence the warning?
>
> diff --git a/configure.ac b/configure.ac
> index 7ca75be996d..3b5f3c1c37a 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1776,6 +1776,9 @@ AC_DEFUN
> # Emacs doesn't need this paranoia.
> nw="$nw -Wbidi-chars=any,ucn"
>
> + # Or this hysteria, which impedes commentary within if statements.
> + nw="$nw -Wempty-body"
> +
> if test "$emacs_cv_clang" = yes; then
> nw="$nw -Wdouble-promotion"
> nm="$nm -Wunknown-pragmas"
>
Thanks, but it doesn't seem to. Also, IMHO this is a useful warning,
and the better fix would be to add the braces for that if statement.
That part of the code now looks quite fragile, and a problem waiting
to happen if that lone semicolon is accidentally mistakenly removed.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 05:07:01 GMT)
Full text and
rfc822 format available.
Message #35 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <bug-gnu-emacs <at> gnu.org> writes:
>> FYI your e1a730017d6 patch introduces the following compiler warning:
>>
>> process.c: In function ‘child_signal_notify’:
>> process.c:7436:54: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
>> 7436 | /* emacs_perror ("writing to child signal FD") */;
>> | ^
>
> Thanks. Does this silence the warning?
AFAIU, the point here is to fix a warning in
if (emacs_write (fd, &dummy, 1) != 1)
/* emacs_perror ("writing to child signal FD") */;
for which the easiest solution should be
emacs_write (fd, &dummy, 1);
This avoids having to disable -Wempty-body everywhere, which IMO doesn't
seems justified just to silence this one warning.
What am I missing?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 05:11:02 GMT)
Full text and
rfc822 format available.
Message #38 received at 65919 <at> debbugs.gnu.org (full text, mbox):
From: Po Lu <luangruo <at> yahoo.com>
Date: Fri, 15 Sep 2023 10:38:18 +0800
This should be fixed on the master branch. There is a minor issue,
however: the fix for this bug may negatively affect that of bug#57468.
Would either Lars or Robert confirm that the Lucid, Motif and GTK 2.x
builds still remain free of that bug?
TIA.
I can confirm that there is no such bug in 1442f4043a7 with any of these
toolkits (nor with GTK3, which is what I normally use).
-- Bob Rogers
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 05:19:02 GMT)
Full text and
rfc822 format available.
Message #41 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Stefan Kangas <stefankangas <at> gmail.com> writes:
> Po Lu via "Bug reports for GNU Emacs, the Swiss army knife of text
> editors" <bug-gnu-emacs <at> gnu.org> writes:
>
>>> FYI your e1a730017d6 patch introduces the following compiler warning:
>>>
>>> process.c: In function ‘child_signal_notify’:
>>> process.c:7436:54: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
>>> 7436 | /* emacs_perror ("writing to child signal FD") */;
>>> | ^
>>
>> Thanks. Does this silence the warning?
>
> AFAIU, the point here is to fix a warning in
>
> if (emacs_write (fd, &dummy, 1) != 1)
> /* emacs_perror ("writing to child signal FD") */;
>
> for which the easiest solution should be
>
> emacs_write (fd, &dummy, 1);
>
> This avoids having to disable -Wempty-body everywhere, which IMO doesn't
> seems justified just to silence this one warning.
>
> What am I missing?
It's not to fix a warning, but to communicate that we would like to call
`emacs_perror' there, yet cannot, given that it is not a reentrant
function.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 05:19:02 GMT)
Full text and
rfc822 format available.
Message #44 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Bob Rogers <rogers <at> rgrjr.com> writes:
> From: Po Lu <luangruo <at> yahoo.com>
> Date: Fri, 15 Sep 2023 10:38:18 +0800
>
> This should be fixed on the master branch. There is a minor issue,
> however: the fix for this bug may negatively affect that of bug#57468.
>
> Would either Lars or Robert confirm that the Lucid, Motif and GTK 2.x
> builds still remain free of that bug?
>
> TIA.
>
> I can confirm that there is no such bug in 1442f4043a7 with any of these
> toolkits (nor with GTK3, which is what I normally use).
>
> -- Bob Rogers
OK, thanks for testing.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 05:44:01 GMT)
Full text and
rfc822 format available.
Message #47 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Po Lu <luangruo <at> yahoo.com> writes:
> It's not to fix a warning, but to communicate that we would like to call
> `emacs_perror' there, yet cannot, given that it is not a reentrant
> function.
Right, but surely that can be done without disabling -Wempty-body.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 06:08:02 GMT)
Full text and
rfc822 format available.
Message #50 received at 65919 <at> debbugs.gnu.org (full text, mbox):
> Cc: 65919 <at> debbugs.gnu.org, Lars Ingebrigtsen <larsi <at> gnus.org>,
> Ivan Popovych <ivan <at> ipvych.com>, Bob Rogers <rogers <at> rgrjr.com>
> From: Amin Bandali <bandali <at> gnu.org>
> Date: Thu, 14 Sep 2023 23:57:26 -0400
>
> Hello,
>
> Po Lu writes:
>
> > This should be fixed on the master branch. [...]
>
> FYI your e1a730017d6 patch introduces the following compiler warning:
>
> process.c: In function ‘child_signal_notify’:
> process.c:7436:54: warning: suggest braces around empty body in an ‘if’ statement [-Wempty-body]
> 7436 | /* emacs_perror ("writing to child signal FD") */;
> | ^
Thanks, should be fixed now.
Reply sent
to
Po Lu <luangruo <at> yahoo.com>
:
You have taken responsibility.
(Fri, 15 Sep 2023 11:12:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Ivan Popovych <ivan <at> ipvych.com>
:
bug acknowledged by developer.
(Fri, 15 Sep 2023 11:12:02 GMT)
Full text and
rfc822 format available.
Message #55 received at 65919-done <at> debbugs.gnu.org (full text, mbox):
Ivan Popovych <ivan <at> ipvych.com> writes:
> Po Lu <luangruo <at> yahoo.com> writes:
>
>> This should be fixed on the master branch. There is a minor issue,
>> however: the fix for this bug may negatively affect that of bug#57468.
>>
>> Would either Lars or Robert confirm that the Lucid, Motif and GTK 2.x
>> builds still remain free of that bug?
>>
>> TIA.
>
> Tested it as well, issue is gone, thank you.
Thanks, closing.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Fri, 15 Sep 2023 13:05:04 GMT)
Full text and
rfc822 format available.
Message #58 received at 65919 <at> debbugs.gnu.org (full text, mbox):
Po Lu <luangruo <at> yahoo.com> writes:
> This should be fixed on the master branch. There is a minor issue,
> however: the fix for this bug may negatively affect that of bug#57468.
>
> Would either Lars or Robert confirm that the Lucid, Motif and GTK 2.x
> builds still remain free of that bug?
>
> TIA.
Tested it as well, issue is gone, thank you.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#65919
; Package
emacs
.
(Mon, 18 Sep 2023 19:36:01 GMT)
Full text and
rfc822 format available.
Message #61 received at 65919 <at> debbugs.gnu.org (full text, mbox):
On 2023-09-18 06:51, Robert Pluim wrote:
> Is it worth the effort to use strerror_r-posix here from Gnulib?
I don't think that'd suffice, since POSIX does not require strerror_r to
be async-signal-safe
<https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/functions/V2_chap02.html#tag_15_04_03_03>.
Emacs could instead convert the error number to the textual
representation of a decimal number and write that text to stderr; that
would be async-signal-safe if done without using sprintf etc. The error
number wouldn't be as nice as a strerror string but it would be better
than nothing.
If you want to be fancier, whenever Emacs calls setlocale it could cache
all the possible strerror strings into storage that safe to be used in a
signal handler, and use one of those strings if available, outputting a
decimal number otherwise.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Tue, 17 Oct 2023 11:24:05 GMT)
Full text and
rfc822 format available.
This bug report was last modified 1 year and 206 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.