Subject: bug#41719: 28.0.50; emacsclient -c -F '((name . "NAME"))' is not respected --with-x-toolkit=gtk3

From: Dmitry Alexandrov <[email-masked]>
Date: Sun, 07 Jun 2020 19:15:40 +0300

Vladimir Lomov <[email-masked]> wrote:
> So, emacsclient with -F

(make-frame '((name . "NAME"))), actually.

> should change 'instance' but when Emacs is build with GTK/GTK3 emacs doesn't change it. Do I correctly understand this?

Only with GTK3.  GTK2 is fine as well.

> Is it mean that this is a bug?

If a missing feature, that is present on a slightly different platform, is a bug.  Itʼs not necessary a bug in Emacs, though.  Maybe, besides declaring a ability to set a window class deprecated [1], GTK developers had actually broken it.

[1] <https://developer.gnome.org/gtk3/stable/GtkWindow.html#gtk-window-set-wmclass>:

|	gtk_window_set_wmclass has been deprecated since version 3.22 and should not be used in newly-written code.
|
| Don’t use this function. It sets the X Window System “class” and “name” hints for a window. According to the ICCCM, you should always set these to the same value for all windows in an application, and GTK+ sets them to that value by default, so calling this function is sort of pointless. However, you may want to call gtk_window_set_role() on each window in your application, for the benefit of the session manager. Setting the role allows the window manager to restore window positions when loading a saved session.