Package: emacs;
Reported by: James Cloos <cloos <at> jhcloos.com>
Date: Sun, 4 Jul 2010 17:20:03 UTC
Severity: normal
Tags: patch
Done: Jan Djärv <jan.h.d <at> swipnet.se>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: help-debbugs <at> gnu.org (GNU bug Tracking System) To: Jan Djärv <jan.h.d <at> swipnet.se> Cc: tracker <at> debbugs.gnu.org Subject: bug#6563: closed ([PATCH] 24.0.50; Set EWMH WM NAME properties) Date: Mon, 05 Jul 2010 10:32:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 05 Jul 2010 12:31:31 +0200 with message-id <4C31B483.8050806 <at> swipnet.se> and subject line Re: bug#6563: [PATCH] 24.0.50; Set EWMH WM NAME properties has caused the GNU bug report #6563, regarding [PATCH] 24.0.50; Set EWMH WM NAME properties to be marked as done. (If you believe you have received this mail in error, please contact help-debbugs <at> gnu.org.) -- 6563: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6563 GNU Bug Tracking System Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: James Cloos <cloos <at> jhcloos.com> To: bug-gnu-emacs <at> gnu.org Subject: [PATCH] 24.0.50; Set EWMH WM NAME properties Date: Sun, 04 Jul 2010 13:18:22 -0400When compiled with gtk+, by calling gtk_window_set_title(), Emacs sets both the WM_NAME, WM_ICON_NAME and the _NET_WM_NAME, _NET_WM_ICON_NAME properties. Many current window managers prefer the _NET properties, which are defined to always be UTF8_STRING. Some may even lack support for COMPOUND_TEXT. Like the _NET_* properties which Emacs already supports, _NET_WM_NAME and _NET_WM_ICON_NAME are specified at: http://specs.freedesktop.org/wm-spec/wm-spec-latest.html The patch adds support for the _NET_WM_NAME and _NET_WM_ICON_NAME properties to the non-gtk+ builds. === modified file 'src/ChangeLog' --- src/ChangeLog 2010-07-03 14:35:54 +0000 +++ src/ChangeLog 2010-07-04 17:09:04 +0000 @@ -1,3 +1,12 @@ +2010-07-04 James Cloos <cloos <at> jhcloos.com + + * xterm.c (x_term_init): Intern the _NET_WM_NAME and + _NET_WM_ICON_NAME atoms. + + * xfns.c (x_set_name_internal): Set the EWMH _NET_WM_NAME + and _NET_WM_ICON_NAME properties, too, matching what is + done in the gtk+ case. + 2010-07-03 Eli Zaretskii <eliz <at> gnu.org> * msdos.c (IT_set_frame_parameters): Fix setting of colors in === modified file 'src/xfns.c' --- src/xfns.c 2010-07-02 12:19:29 +0000 +++ src/xfns.c 2010-07-04 16:32:36 +0000 @@ -1613,8 +1613,8 @@ int bytes, stringp; int do_free_icon_value = 0, do_free_text_value = 0; Lisp_Object coding_system; -#ifdef USE_GTK Lisp_Object encoded_name; + Lisp_Object encoded_icon_name; struct gcpro gcpro1; /* As ENCODE_UTF_8 may cause GC and relocation of string data, @@ -1622,7 +1622,6 @@ GCPRO1 (name); encoded_name = ENCODE_UTF_8 (name); UNGCPRO; -#endif coding_system = Qcompound_text; /* Note: Encoding strategy @@ -1638,7 +1637,12 @@ We may also be able to use "UTF8_STRING" in text.encoding in the future which can encode all Unicode characters. But, for the moment, there's no way to know that the - current window manager supports it or not. */ + current window manager supports it or not. + + Either way, we also set the _NET_WM_NAME and _NET_WM_ICON_NAME + properties. Per the EWMH specification, those two properties + are always UTF8_STRING. This matches what gtk_window_set_title() + does in the USE_GTK case. */ text.value = x_encode_text (name, coding_system, 0, &bytes, &stringp, &do_free_text_value); text.encoding = (stringp ? XA_STRING @@ -1649,6 +1653,7 @@ if (!STRINGP (f->icon_name)) { icon = text; + encoded_icon_name = encoded_name; } else { @@ -1659,6 +1664,8 @@ : FRAME_X_DISPLAY_INFO (f)->Xatom_COMPOUND_TEXT); icon.format = 8; icon.nitems = bytes; + + encoded_icon_name = ENCODE_UTF_8 (f->icon_name); } #ifdef USE_GTK @@ -1666,9 +1673,21 @@ (char *) SDATA (encoded_name)); #else /* not USE_GTK */ XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &text); + XChangeProperty (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), + FRAME_X_DISPLAY_INFO (f)->Xatom_net_wm_name, + FRAME_X_DISPLAY_INFO (f)->Xatom_UTF8_STRING, + 8, PropModeReplace, + (char *) SDATA (encoded_name), + SBYTES (encoded_name)); #endif /* not USE_GTK */ XSetWMIconName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), &icon); + XChangeProperty (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), + FRAME_X_DISPLAY_INFO (f)->Xatom_net_wm_icon_name, + FRAME_X_DISPLAY_INFO (f)->Xatom_UTF8_STRING, + 8, PropModeReplace, + (char *) SDATA (encoded_icon_name), + SBYTES (encoded_icon_name)); if (do_free_icon_value) xfree (icon.value); === modified file 'src/xterm.c' --- src/xterm.c 2010-07-02 12:19:29 +0000 +++ src/xterm.c 2010-07-04 16:32:36 +0000 @@ -10493,6 +10493,10 @@ = XInternAtom (dpyinfo->display, "_NET_WM_WINDOW_TYPE", False); dpyinfo->Xatom_net_window_type_tooltip = XInternAtom (dpyinfo->display, "_NET_WM_WINDOW_TYPE_TOOLTIP", False); + dpyinfo->Xatom_net_wm_icon_name + = XInternAtom (dpyinfo->display, "_NET_WM_ICON_NAME", False); + dpyinfo->Xatom_net_wm_name + = XInternAtom (dpyinfo->display, "_NET_WM_NAME", False); dpyinfo->cut_buffers_initialized = 0;
[Message part 3 (message/rfc822, inline)]
From: Jan Djärv <jan.h.d <at> swipnet.se> To: James Cloos <cloos <at> jhcloos.com> Cc: 6563-done <at> debbugs.gnu.org Subject: Re: bug#6563: [PATCH] 24.0.50; Set EWMH WM NAME properties Date: Mon, 05 Jul 2010 12:31:31 +0200Applied, thanks. Jan D. James Cloos skrev 2010-07-04 19.18: > When compiled with gtk+, by calling gtk_window_set_title(), Emacs sets > both the WM_NAME, WM_ICON_NAME and the _NET_WM_NAME, _NET_WM_ICON_NAME > properties. > > Many current window managers prefer the _NET properties, which are > defined to always be UTF8_STRING. Some may even lack support for > COMPOUND_TEXT. > > Like the _NET_* properties which Emacs already supports, _NET_WM_NAME > and _NET_WM_ICON_NAME are specified at: > > http://specs.freedesktop.org/wm-spec/wm-spec-latest.html > > The patch adds support for the _NET_WM_NAME and _NET_WM_ICON_NAME > properties to the non-gtk+ builds. > > === modified file 'src/ChangeLog' > --- src/ChangeLog 2010-07-03 14:35:54 +0000 > +++ src/ChangeLog 2010-07-04 17:09:04 +0000 > @@ -1,3 +1,12 @@ > +2010-07-04 James Cloos<cloos <at> jhcloos.com > + > + * xterm.c (x_term_init): Intern the _NET_WM_NAME and > + _NET_WM_ICON_NAME atoms. > + > + * xfns.c (x_set_name_internal): Set the EWMH _NET_WM_NAME > + and _NET_WM_ICON_NAME properties, too, matching what is > + done in the gtk+ case. > + > 2010-07-03 Eli Zaretskii<eliz <at> gnu.org> > > * msdos.c (IT_set_frame_parameters): Fix setting of colors in > > === modified file 'src/xfns.c' > --- src/xfns.c 2010-07-02 12:19:29 +0000 > +++ src/xfns.c 2010-07-04 16:32:36 +0000 > @@ -1613,8 +1613,8 @@ > int bytes, stringp; > int do_free_icon_value = 0, do_free_text_value = 0; > Lisp_Object coding_system; > -#ifdef USE_GTK > Lisp_Object encoded_name; > + Lisp_Object encoded_icon_name; > struct gcpro gcpro1; > > /* As ENCODE_UTF_8 may cause GC and relocation of string data, > @@ -1622,7 +1622,6 @@ > GCPRO1 (name); > encoded_name = ENCODE_UTF_8 (name); > UNGCPRO; > -#endif > > coding_system = Qcompound_text; > /* Note: Encoding strategy > @@ -1638,7 +1637,12 @@ > We may also be able to use "UTF8_STRING" in text.encoding > in the future which can encode all Unicode characters. > But, for the moment, there's no way to know that the > - current window manager supports it or not. */ > + current window manager supports it or not. > + > + Either way, we also set the _NET_WM_NAME and _NET_WM_ICON_NAME > + properties. Per the EWMH specification, those two properties > + are always UTF8_STRING. This matches what gtk_window_set_title() > + does in the USE_GTK case. */ > text.value = x_encode_text (name, coding_system, 0,&bytes,&stringp, > &do_free_text_value); > text.encoding = (stringp ? XA_STRING > @@ -1649,6 +1653,7 @@ > if (!STRINGP (f->icon_name)) > { > icon = text; > + encoded_icon_name = encoded_name; > } > else > { > @@ -1659,6 +1664,8 @@ > : FRAME_X_DISPLAY_INFO (f)->Xatom_COMPOUND_TEXT); > icon.format = 8; > icon.nitems = bytes; > + > + encoded_icon_name = ENCODE_UTF_8 (f->icon_name); > } > > #ifdef USE_GTK > @@ -1666,9 +1673,21 @@ > (char *) SDATA (encoded_name)); > #else /* not USE_GTK */ > XSetWMName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),&text); > + XChangeProperty (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), > + FRAME_X_DISPLAY_INFO (f)->Xatom_net_wm_name, > + FRAME_X_DISPLAY_INFO (f)->Xatom_UTF8_STRING, > + 8, PropModeReplace, > + (char *) SDATA (encoded_name), > + SBYTES (encoded_name)); > #endif /* not USE_GTK */ > > XSetWMIconName (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f),&icon); > + XChangeProperty (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f), > + FRAME_X_DISPLAY_INFO (f)->Xatom_net_wm_icon_name, > + FRAME_X_DISPLAY_INFO (f)->Xatom_UTF8_STRING, > + 8, PropModeReplace, > + (char *) SDATA (encoded_icon_name), > + SBYTES (encoded_icon_name)); > > if (do_free_icon_value) > xfree (icon.value); > > === modified file 'src/xterm.c' > --- src/xterm.c 2010-07-02 12:19:29 +0000 > +++ src/xterm.c 2010-07-04 16:32:36 +0000 > @@ -10493,6 +10493,10 @@ > = XInternAtom (dpyinfo->display, "_NET_WM_WINDOW_TYPE", False); > dpyinfo->Xatom_net_window_type_tooltip > = XInternAtom (dpyinfo->display, "_NET_WM_WINDOW_TYPE_TOOLTIP", False); > + dpyinfo->Xatom_net_wm_icon_name > + = XInternAtom (dpyinfo->display, "_NET_WM_ICON_NAME", False); > + dpyinfo->Xatom_net_wm_name > + = XInternAtom (dpyinfo->display, "_NET_WM_NAME", False); > > dpyinfo->cut_buffers_initialized = 0; > > > >
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.