summaryrefslogtreecommitdiff
path: root/debian/patches/0256-fix-recursive-backingstore-sync-crash.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0256-fix-recursive-backingstore-sync-crash.diff')
-rw-r--r--debian/patches/0256-fix-recursive-backingstore-sync-crash.diff38
1 files changed, 0 insertions, 38 deletions
diff --git a/debian/patches/0256-fix-recursive-backingstore-sync-crash.diff b/debian/patches/0256-fix-recursive-backingstore-sync-crash.diff
deleted file mode 100644
index 9665d5a..0000000
--- a/debian/patches/0256-fix-recursive-backingstore-sync-crash.diff
+++ /dev/null
@@ -1,38 +0,0 @@
-qt-bugs@ issue : N227209
-Trolltech task ID : none yet
-bugs.kde.org number : 174065
-applied: yes
-author: Szymon Tomasz Stefanek <s.stefanek@gmail.com>
-
-This patch fixes a crash deep inside the qt painting engine.
-
-The toplevel shared painter is instantiated by the topmost window
-which "owns" the backingstore buffer. The topmost window then recursively
-asks the children to paint themselves with the shared painter.
-With certain widget hierarchies it turns out that the topmost window
-may be asked to paint itself deep inside the recursive painting stack:
-a sort of "hierarchy-looping recursion".
-The window will do the job and then happily destroy the shared
-painter leaving the outer stack frames with a dangling pointer.
-
-This patch stops the "looping recursion" when it's triggered
-with a shared painter already active. The bug doesn't seem to
-be present in qt 4.5 snapshots, but in the meantime we need this fix.
-
-
---- a/src/gui/painting/qbackingstore.cpp
-+++ b/src/gui/painting/qbackingstore.cpp
-@@ -988,8 +988,12 @@ void QWidgetBackingStore::cleanRegion(co
- return;
- }
-
-- if (tlw->updatesEnabled()) {
-+ // With certain widget hierarchies we may end up being called recursively
-+ // on the same toplevel. This is likely to explode once the painter is released
-+ // in the code below (since there is no reference counting). Avoid it.
-+ bool alreadyPainting = tlwExtra->sharedPainter && tlwExtra->sharedPainter->isActive();
-
-+ if (tlw->updatesEnabled() && !alreadyPainting) {
- // hw: XXX the toClean region is not correct if !dirtyWidgets.isEmpty()
-
- // Pre render config