Reduce plasmashell frozen time to almost nothing

Authored by jtamate on Feb 18 2018, 9:20 AM.

Description

Reduce plasmashell frozen time to almost nothing

Summary:
CCBUG: 358231
CCBUG: 342056
Even the icon with the number of tasks pending moves from time to time.

To reduce the frozen time, a similar patch must be applied also to
frameworks/kwindowsystem src/platforms/xcb/kxmessages.cpp
frameworks/plasma-framework src/plasma/private/effectwatcher.cpp

According to the documentation (and a look to the source code)
http://doc.qt.io/qt-5/qabstractnativeeventfilter.html

The type of event eventType is specific to the platform plugin chosen
at run-time, and can be used to cast message to the right type.

On X11, eventType is set to "xcb_generic_event_t", and the message can
be casted to a xcb_generic_event_t pointer.

The other eventType are "windows_generic_MSG" and "mac_generic_NSEvent".
No other eventType starts with an 'x'.

Test Plan:
Cut & paste 2000 small files.
Before, a freeze (plasmashell not responding) of minutes
After, a freeze of seconds

Reviewers: Frameworks, Plasma, davidedmundson

Reviewed By: Plasma, davidedmundson

Subscribers: broulik, davidedmundson, plasma-devel

Tags: Plasma

Differential Revision: https://phabricator.kde.org/D10627

Details

Committed
jtamateFeb 19 2018, 8:09 PM
Reviewer
Plasma
Differential Revision
D10627: Reduce plasmashell frozen time to almost nothing
Parents
R120:4b68374192ac: Avoid a double emitResult()
Branches
Unknown
Tags
Unknown