57440d1d6b
KWin replaces any non-printable character with a space. This check does not handle surrogate pairs correctly. Additionally, translators sometimes insert non-printable soft-hyphens into titles, which also cause KWin to display a space instead. This code adds the missing surrogate handling, and (to fix both issues), also removes non-printable characters instead of replacing them with a space. Also moved the changed test after these changes, so that changes in non- printable characters do not cause unneeded redraws. Unit tests adapted by Vlad Zagorodniy. Test Plan: kwrite /tmp/Test😣.txt shows correct title. I also tested actual non-printable characters, such as 0x1A, and these are correctly omitted. BUG: 376813 FIXED-IN: 5.15.5 Reviewers: #kwin, zzag Reviewed By: #kwin, zzag Subscribers: zzag, grasslin, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D19052 |
||
---|---|---|
.. | ||
drm | ||
integration | ||
libinput | ||
libkwineffects | ||
libxrenderutils | ||
tabbox | ||
abstract_client.h | ||
client.h | ||
CMakeLists.txt | ||
fakeeffectplugin.cpp | ||
fakeeffectplugin.json | ||
fakeeffectplugin_version.cpp | ||
fakeeffectplugin_version.json | ||
mock_abstract_client.cpp | ||
mock_abstract_client.h | ||
mock_client.cpp | ||
mock_client.h | ||
mock_effectshandler.cpp | ||
mock_effectshandler.h | ||
mock_screens.cpp | ||
mock_screens.h | ||
mock_workspace.cpp | ||
mock_workspace.h | ||
onscreennotificationtest.cpp | ||
onscreennotificationtest.h | ||
opengl_context_attribute_builder_test.cpp | ||
test_builtin_effectloader.cpp | ||
test_client_machine.cpp | ||
test_gbm_surface.cpp | ||
test_gestures.cpp | ||
test_plugin_effectloader.cpp | ||
test_screen_edges.cpp | ||
test_screen_paint_data.cpp | ||
test_screens.cpp | ||
test_scripted_effectloader.cpp | ||
test_virtual_desktops.cpp | ||
test_virtualkeyboard_dbus.cpp | ||
test_window_paint_data.cpp | ||
test_x11_timestamp_update.cpp | ||
test_xcb_size_hints.cpp | ||
test_xcb_window.cpp | ||
test_xcb_wrapper.cpp | ||
test_xkb.cpp | ||
test_xrandr_screens.cpp | ||
testutils.h | ||
workspace.h |