The LibreOffice code-base dates from an era when:
a) rendering was impossibly slow and
b) window managers didn't keep copies of occluded windows.
The world has move on since 1995 ;-) as such we should hack some of the complexity out here. The currently vcl/ menu structure literally screen-shots the area underneath a popup menu, stores it, tries to track if it is drawn over while the menu is up (to invalidate it), and then restores that afterwards.
At least - that's what it looks like checkout:
checkout 'EnableSaveBackground' and others. In a nutshell I think we want to have:
vcl/inc/svdata.hxx: bool mbNoSaveBackground; // true: save background is unnecessary or even less performant
set - unconditionally true for all backends: and just push that through the code to remove the horrors =)
Migrating Whiteboard tags to Keywords: (easyHack, difficultyBeginner, skillCpp, topicCleanup)
Caolán McNamara committed a patch related to this issue.
It has been pushed to "master":
Resolves: tdf#93821 assume mbNoSaveBackground as true everywhere
It will be available in 5.2.0.
The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
Affected users are encouraged to test the fix and report feedback.
couldn't resist temptation given the amount of unused code that falls out after this removal
Argh ! =) be strong, I managed to resist it ;-) Your penance - should you chose to accept it is to file another easy hack ! =) and also great to see you in Brussels ... of course.
Oh my goodness! That is truly amazing... I don't think I've ever seen so much code be obsoleted in a single bug fix... Great work!
Remove LibreOffice Dev List from CC on EasyHacks
(curtailing excessive email to list)