mirror of https://github.com/mpv-player/mpv
x11: simplify setting unicode text properties
This commit is contained in:
parent
34b22ec6ea
commit
2e0bae181f
|
@ -993,34 +993,18 @@ static int vo_x11_get_gnome_layer(struct vo_x11_state *x11, Window win)
|
||||||
return WIN_LAYER_NORMAL;
|
return WIN_LAYER_NORMAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// set a X text property that expects a STRING type
|
// set a X text property that expects a STRING or COMPOUND_TEXT type
|
||||||
static void vo_x11_set_property_string(struct vo *vo, Atom name, const char *t)
|
static void vo_x11_set_property_string(struct vo *vo, Atom name, const char *t)
|
||||||
{
|
{
|
||||||
struct vo_x11_state *x11 = vo->x11;
|
struct vo_x11_state *x11 = vo->x11;
|
||||||
XTextProperty prop = {0};
|
XTextProperty prop = {0};
|
||||||
int success;
|
|
||||||
|
|
||||||
success = Xutf8TextListToTextProperty(x11->display, (char **)&t, 1,
|
if (Xutf8TextListToTextProperty(x11->display, (char **)&t, 1,
|
||||||
XStringStyle, &prop);
|
XStdICCTextStyle, &prop) == Success)
|
||||||
|
{
|
||||||
// The call can fail if the string uses characters not in the STRING
|
|
||||||
// encoding (which is latin-1 as far as I can tell). Try COMPOUND_TEXT
|
|
||||||
// instead. (It is possible that COMPOUND_TEXT always works, but since the
|
|
||||||
// difference in the type used for the property is visible to the Window
|
|
||||||
// manager and the ICCCM seems to specify STRING, we're trying to be careful
|
|
||||||
// and try STRING first.)
|
|
||||||
// GTK seems to follow about the same fallback mechanism.
|
|
||||||
if (success != Success) {
|
|
||||||
XFree(prop.value);
|
|
||||||
prop.value = NULL;
|
|
||||||
success = Xutf8TextListToTextProperty(x11->display, (char **)&t, 1,
|
|
||||||
XCompoundTextStyle, &prop);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (success == Success)
|
|
||||||
XSetTextProperty(x11->display, x11->window, &prop, name);
|
XSetTextProperty(x11->display, x11->window, &prop, name);
|
||||||
|
XFree(prop.value);
|
||||||
XFree(prop.value);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// set a X text property that expects a UTF8_STRING type
|
// set a X text property that expects a UTF8_STRING type
|
||||||
|
|
Loading…
Reference in New Issue