mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no longer being
2006-04-25 Elijah Newren <newren gmail com> Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no longer being used. Fixes #330671. * src/window.[ch] (struct MetaWindow): new using_net_wm_visible_name and using_net_wm_visible_icon_name bits, (meta_window_new_with_attrs): initialize these new bits to false * src/window-props.c (set_title_text, set_window_title, set_icon_title): if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but doesn't need to be this time, make sure to clear it
This commit is contained in:
parent
e9c8fd8527
commit
b62dd8d130
13
ChangeLog
13
ChangeLog
@ -1,3 +1,16 @@
|
||||
2006-04-25 Elijah Newren <newren gmail com>
|
||||
|
||||
Clear _NET_WM_VISIBLE_NAME (and the ICON_ equivalent) when no
|
||||
longer being used. Fixes #330671.
|
||||
|
||||
* src/window.[ch] (struct MetaWindow): new
|
||||
using_net_wm_visible_name and using_net_wm_visible_icon_name bits,
|
||||
(meta_window_new_with_attrs): initialize these new bits to false
|
||||
|
||||
* src/window-props.c (set_title_text, set_window_title, set_icon_title):
|
||||
if the _NET_WM_VISIBLE_(ICON_)NAME property was previously set but
|
||||
doesn't need to be this time, make sure to clear it
|
||||
|
||||
2006-04-25 Elijah Newren <newren gmail com>
|
||||
|
||||
* rationales.txt: add three new tracker bugs
|
||||
|
@ -207,7 +207,11 @@ reload_net_wm_user_time (MetaWindow *window,
|
||||
* Returns TRUE if a new title was set.
|
||||
*/
|
||||
static gboolean
|
||||
set_title_text (MetaWindow *window, const char *title, Atom atom, char **target)
|
||||
set_title_text (MetaWindow *window,
|
||||
gboolean previous_was_modified,
|
||||
const char *title,
|
||||
Atom atom,
|
||||
char **target)
|
||||
{
|
||||
char hostname[HOST_NAME_MAX + 1];
|
||||
gboolean modified = FALSE;
|
||||
@ -242,6 +246,12 @@ set_title_text (MetaWindow *window, const char *title, Atom atom, char **target)
|
||||
window->xwindow,
|
||||
atom, *target);
|
||||
|
||||
/* Bug 330671 -- Don't forget to clear _NET_WM_VISIBLE_(ICON_)NAME */
|
||||
if (!modified && previous_was_modified)
|
||||
XDeleteProperty (window->display->xdisplay,
|
||||
window->xwindow,
|
||||
atom);
|
||||
|
||||
return modified;
|
||||
}
|
||||
|
||||
@ -251,8 +261,13 @@ set_window_title (MetaWindow *window,
|
||||
{
|
||||
char *str;
|
||||
|
||||
set_title_text (window, title, window->display->atom_net_wm_visible_name,
|
||||
gboolean modified =
|
||||
set_title_text (window,
|
||||
window->using_net_wm_visible_name,
|
||||
title,
|
||||
window->display->atom_net_wm_visible_name,
|
||||
&window->title);
|
||||
window->using_net_wm_visible_name = modified;
|
||||
|
||||
/* strndup is a hack since GNU libc has broken %.10s */
|
||||
str = g_strndup (window->title, 10);
|
||||
@ -332,8 +347,13 @@ static void
|
||||
set_icon_title (MetaWindow *window,
|
||||
const char *title)
|
||||
{
|
||||
set_title_text (window, title, window->display->atom_net_wm_visible_icon_name,
|
||||
gboolean modified =
|
||||
set_title_text (window,
|
||||
window->using_net_wm_visible_icon_name,
|
||||
title,
|
||||
window->display->atom_net_wm_visible_icon_name,
|
||||
&window->icon_name);
|
||||
window->using_net_wm_visible_icon_name = modified;
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -529,7 +529,9 @@ meta_window_new_with_attrs (MetaDisplay *display,
|
||||
window->struts = NULL;
|
||||
|
||||
window->using_net_wm_name = FALSE;
|
||||
window->using_net_wm_visible_name = FALSE;
|
||||
window->using_net_wm_icon_name = FALSE;
|
||||
window->using_net_wm_visible_icon_name = FALSE;
|
||||
|
||||
window->need_reread_icon = TRUE;
|
||||
window->update_icon_queued = FALSE;
|
||||
|
@ -274,7 +274,9 @@ struct _MetaWindow
|
||||
|
||||
/* Info on which props we got our attributes from */
|
||||
guint using_net_wm_name : 1; /* vs. plain wm_name */
|
||||
guint using_net_wm_visible_name : 1; /* tracked so we can clear it */
|
||||
guint using_net_wm_icon_name : 1; /* vs. plain wm_icon_name */
|
||||
guint using_net_wm_visible_icon_name : 1; /* tracked so we can clear it */
|
||||
|
||||
/* has a shape mask */
|
||||
guint has_shape : 1;
|
||||
|
Loading…
Reference in New Issue
Block a user