x11/window-props: Convert WM_NAME and WM_CLASS to UTF-8
gjs throws exceptions on non UTF-8 strings which, in some cases, crash gnome-shell. ICCCM string properties are defined to be Latin-1 encoded so we can try to convert them to avoid it. Note that _NET_WM_NAME is defined to be UTF-8 and we already validate it in utf8_string_from_results() . https://bugzilla.gnome.org/show_bug.cgi?id=752788
This commit is contained in:
parent
8f7a36c53f
commit
d62491f46e
@ -635,7 +635,10 @@ reload_wm_name (MetaWindow *window,
|
|||||||
|
|
||||||
if (value->type != META_PROP_VALUE_INVALID)
|
if (value->type != META_PROP_VALUE_INVALID)
|
||||||
{
|
{
|
||||||
set_window_title (window, value->v.str);
|
g_autofree gchar *title = g_convert (value->v.str, -1,
|
||||||
|
"UTF-8", "LATIN1",
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
set_window_title (window, title);
|
||||||
|
|
||||||
meta_verbose ("Using WM_NAME for new title of %s: \"%s\"\n",
|
meta_verbose ("Using WM_NAME for new title of %s: \"%s\"\n",
|
||||||
window->desc, window->title);
|
window->desc, window->title);
|
||||||
@ -969,9 +972,13 @@ reload_wm_class (MetaWindow *window,
|
|||||||
{
|
{
|
||||||
if (value->type != META_PROP_VALUE_INVALID)
|
if (value->type != META_PROP_VALUE_INVALID)
|
||||||
{
|
{
|
||||||
meta_window_set_wm_class (window,
|
g_autofree gchar *res_class = g_convert (value->v.class_hint.res_class, -1,
|
||||||
value->v.class_hint.res_class,
|
"UTF-8", "LATIN1",
|
||||||
value->v.class_hint.res_name);
|
NULL, NULL, NULL);
|
||||||
|
g_autofree gchar *res_name = g_convert (value->v.class_hint.res_name, -1,
|
||||||
|
"UTF-8", "LATIN1",
|
||||||
|
NULL, NULL, NULL);
|
||||||
|
meta_window_set_wm_class (window, res_class, res_name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user