| Index: ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
| diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
| index b876e177c7e94bfba6898d3433713f034b50ffe0..5fa43d721c57c078a7c7b1b42e8fe504982989e0 100644
|
| --- a/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
| +++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_x11.cc
|
| @@ -574,11 +574,22 @@ bool DesktopWindowTreeHostX11::SetWindowTitle(const base::string16& title) {
|
| PropModeReplace,
|
| reinterpret_cast<const unsigned char*>(utf8str.c_str()),
|
| utf8str.size());
|
| - // TODO(erg): This is technically wrong. So XStoreName and friends expect
|
| - // this in Host Portable Character Encoding instead of UTF-8, which I believe
|
| - // is Compound Text. This shouldn't matter 90% of the time since this is the
|
| - // fallback to the UTF8 property above.
|
| - XStoreName(xdisplay_, xwindow_, utf8str.c_str());
|
| + XTextProperty xtp;
|
| + char *c_utf8_str = const_cast<char *>(utf8str.c_str());
|
| + const int err =
|
| + Xutf8TextListToTextProperty(xdisplay_, &c_utf8_str, 1,
|
| + XCompoundTextStyle, &xtp);
|
| + if (err != Success) {
|
| + const std::string ascii_str = base::UTF16ToASCII(title);
|
| + xtp.encoding = XA_STRING;
|
| + xtp.format = 8;
|
| + xtp.value = reinterpret_cast<unsigned char *>
|
| + (const_cast<char *>(ascii_str.c_str()));
|
| + xtp.nitems = ascii_str.size();
|
| + XSetWMName(xdisplay_, xwindow_, &xtp);
|
| + } else {
|
| + XSetWMName(xdisplay_, xwindow_, &xtp);
|
| + }
|
| return true;
|
| }
|
|
|
|
|