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

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

bug#61337: 29.0.60; Setting frame-title-format makes Emacs to steal focu


From: Po Lu
Subject: bug#61337: 29.0.60; Setting frame-title-format makes Emacs to steal focus
Date: Thu, 09 Feb 2023 10:20:11 +0800
User-agent: Gnus/5.13 (Gnus v5.13)

Óscar Fuentes <ofv@wanadoo.es> writes:

> WM_STATE(WM_STATE):
>                 window state: Iconic
>                 icon window: 0x0
> WM_NAME(STRING) = "*scratch* - GNU Emacs at sky"
> _NET_WM_NAME(UTF8_STRING) = "*scratch* - GNU Emacs at sky"
> WM_ICON_NAME(STRING) = "*scratch* - GNU Emacs at sky"
> _NET_WM_ICON_NAME(UTF8_STRING) = "*scratch* - GNU Emacs at sky"
> _NET_WM_STATE(ATOM) = 
> WM_NAME(STRING) = "Emacs: *scratch* --  @ sky"
> _NET_WM_NAME(UTF8_STRING) = "Emacs: *scratch* --  @ sky"
> WM_ICON_NAME(STRING) = "Emacs: *scratch* --  @ sky"
> _NET_WM_ICON_NAME(UTF8_STRING) = "Emacs: *scratch* --  @ sky"
> _NET_WM_STATE(ATOM) = 
> _NET_WM_STATE(ATOM) = 
> WM_STATE(WM_STATE):
>                 window state: Normal
>                 icon window: 0x0
> _NET_WM_USER_TIME(CARDINAL) = 132540735
> _NET_WM_STATE(ATOM) = _NET_WM_STATE_FOCUSED
> _NET_WM_STATE(ATOM) = 
> ^C
> ~/dev/emacs/emacs$ 

I think I see the problem here: after moving to a different workspace,
the window manager told Emacs that the frame was iconified (this is what
most window managers report to windows in a different desktop), and as a
result the icon and window manager names were changed to reflect
`icon-title-format'.

KWin seems to treat this as Emacs asking to be focused.

If you set `icon-title-format' to the same as `frame-title-format', and
in addition apply this patch:

diff --git a/src/xfns.c b/src/xfns.c
index 3a129211463..7f1128399a8 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -2317,7 +2317,7 @@ x_implicitly_set_name (struct frame *f, Lisp_Object arg, 
Lisp_Object oldval)
 x_set_title (struct frame *f, Lisp_Object name, Lisp_Object old_name)
 {
   /* Don't change the title if it's already NAME.  */
-  if (EQ (name, f->title))
+  if (Fstring_equal (name, f->title))
     return;
 
   update_mode_lines = 38;

does the problem go away?

Thanks.




reply via email to

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