Hi Marco, thank you for verifying and advises on how to reproduce. I missed the part with "without releasing the mouse"
I have created a patch that resolves the issue here. Can you please check the patch and commit it if it works for you as well. Thank you, Matthias On Fri, 2012-07-27 at 13:28 +0200, Marco Hugentobler wrote: > Hi Matthias > > I still have the resize crash with Qt 4.8.1. To reproduce, load a layer > with many objects. Go with the mouse to the right corner and resize > several times without releasing the mouse. After the mouse release, the > crash occures. > Note: this problem (and the flicker with the workaround) is X11 only. > But still, Linux is the most important platform. > Btw, the threading branch would be the clean solution for the issue. But > if you have another workaround in the short-term, let me know. > > Regards, > Marco > > > Am 27.07.2012 13:08, schrieb Matthias Kuhn: > > Hi all, > > > > there is this issue report #4011 "Map canvas flickers when content is > > dragged" which is actually pretty annoying and doesn't get much > > attention. ( http://hub.qgis.org/issues/4011 ) I think the solution > > would be pretty simple. Please read on. > > > > It was introduced by f4d26d6211830a866030a333236dcfbf15e077aa "Fix for > > resize crash, ticket #2714". > > This bugfix disables backbuffering, what fixes the crash but leads to > > the beforementioned flickering. > > > > The crash seems to be related to Qt versions (probably 4.6 and 4.7 > > affected). When I tried to reproduce the crash in 4.8.1 (by reverting > > abovementioned patch) I couldn't reproduce the crash. So it is well > > possible that this problem has been fixed in Qt upstreams. > > > > But: I myself never could reproduce this crash (due to the lack of a > > system with old Qt libs). So, I would be happy if someone familiar with > > this problem could confirm that this is fixed with Qt 4.8. > > > > Then there are two possibilities (unless you come up with a third one): > > > > 1. Check for qVersion upon every repaint as suggested by Martin Dobias > > and then enable/disable the workaround accordingly. > > > > 2. Switch the workaround on/off by a pre-compiler constant. This way, > > any new distro with Qt>=4.8 could be shipped without the workaround-code > > being compiled into the binaries. > > > > Any comments on this issue are very welcome, as it makes QGIS look a lot > > sweeter :) > > > > Regards > > > > _______________________________________________ > > Qgis-developer mailing list > > [email protected] > > http://lists.osgeo.org/mailman/listinfo/qgis-developer > >
>From 24253c7acc61b17313d5ae446cce9228a4bc52b6 Mon Sep 17 00:00:00 2001 From: Matthias Kuhn <[email protected]> Date: Fri, 27 Jul 2012 15:08:44 +0200 Subject: [PATCH] Fixed flicker bug --- src/gui/qgsmapcanvas.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/qgsmapcanvas.cpp b/src/gui/qgsmapcanvas.cpp index 3d5372d..9779e75 100644 --- a/src/gui/qgsmapcanvas.cpp +++ b/src/gui/qgsmapcanvas.cpp @@ -88,7 +88,7 @@ QgsMapCanvas::QgsMapCanvas( QWidget * parent, const char *name ) if ( viewport() ) { #ifndef ANDROID - viewport()->setAttribute( Qt::WA_PaintOnScreen, true ); + viewport()->setAttribute( Qt::WA_NativeWindow, true ); #endif //ANDROID } -- 1.7.11.2
_______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
