aboutsummaryrefslogtreecommitdiff
path: root/xwayland/xwm.c
diff options
context:
space:
mode:
Diffstat (limited to 'xwayland/xwm.c')
-rw-r--r--xwayland/xwm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/xwayland/xwm.c b/xwayland/xwm.c
index b97a1753..7c9cd304 100644
--- a/xwayland/xwm.c
+++ b/xwayland/xwm.c
@@ -353,8 +353,10 @@ static void read_surface_title(struct wlr_xwm *xwm,
return;
}
- // TODO: if reply->type == XCB_ATOM_STRING, uses latin1 encoding
- // if reply->type == xwm->atoms[UTF8_STRING], uses utf8 encoding
+ bool is_utf8 = reply->type == xwm->atoms[UTF8_STRING];
+ if (!is_utf8 && xsurface->has_utf8_title) {
+ return;
+ }
size_t len = xcb_get_property_value_length(reply);
char *title = xcb_get_property_value(reply);
@@ -365,6 +367,7 @@ static void read_surface_title(struct wlr_xwm *xwm,
} else {
xsurface->title = NULL;
}
+ xsurface->has_utf8_title = is_utf8;
wlr_log(L_DEBUG, "XCB_ATOM_WM_NAME: %s", xsurface->title);
wlr_signal_emit_safe(&xsurface->events.set_title, xsurface);