kwin/autotests
Christoph Feck 57440d1d6b Fix captions with non-BMP characters
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
2019-04-26 10:52:57 +02:00
..
drm
integration Fix captions with non-BMP characters 2019-04-26 10:52:57 +02:00
libinput [libinput] Add support for clickfinger and button areas click method 2018-12-22 17:29:49 +01:00
libkwineffects [libkwineffects] Detect modern Radeon GPUs 2018-12-21 13:43:13 +02:00
libxrenderutils
tabbox
abstract_client.h
client.h
CMakeLists.txt [wayland] Use the new plasma virtual desktop protocol 2018-11-01 16:35:29 +01:00
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 [wayland] add enter/leave virtual desktop API 2018-11-14 11:08:46 +00:00
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 [effects/dimscreen] Port to JavaScript 2018-11-17 13:44:20 +02:00
test_client_machine.cpp
test_gbm_surface.cpp
test_gestures.cpp
test_plugin_effectloader.cpp [autotests] Test all scripted effects 2018-11-21 20:01:06 +02:00
test_screen_edges.cpp [autotests] Update virtual desktop layout after load 2019-01-11 14:19:09 +00:00
test_screen_paint_data.cpp
test_screens.cpp
test_scripted_effectloader.cpp [autotests] Test all scripted effects 2018-11-21 20:01:06 +02:00
test_virtual_desktops.cpp Fix changing the number of rows via the dbus protocol 2019-01-09 10:10:39 +01:00
test_virtualkeyboard_dbus.cpp
test_window_paint_data.cpp [libkwineffects] Port the remaining bits of API to dynamic dispatch 2019-01-07 21:40:45 +02:00
test_x11_timestamp_update.cpp Fix the X11TimestampUpdateTest 2018-12-14 17:11:15 +01:00
test_xcb_size_hints.cpp
test_xcb_window.cpp
test_xcb_wrapper.cpp
test_xkb.cpp
test_xrandr_screens.cpp
testutils.h
workspace.h