[Qgis-developer] Map canvas flickers

Matthias Kuhn matthias.kuhn at gmx.ch
Wed Aug 1 08:59:58 PDT 2012


Hi Marco,

You're right, this patch does not work. I don't really know it passed
the tests I did here. My environment was pretty messy.

I had a look at it again today and tracked down the warning that
appeared before the crashes (QWidget::repaint: Recursive repaint
detected).
This led me to the code in qgsvectorlayer I changed in the attached
patch. It looks to me as if this patch really fixes the problem. Still,
I'd be happy if you could review the patch, because I don't know, what
side-effects it could cause. I think you know what the code I removed
did (The initials MH probably say that you already disabled this for
Mac)

Regards,
Matthias


On Fri, 2012-07-27 at 16:19 +0200, Marco Hugentobler wrote:
> I still have the crash with the patch (Qt::WA_NativeWindow) on my
> machine (Qt 4.8.1).
> 
> Regards,
> Marco
> 
> Am 27.07.2012 15:10, schrieb Matthias Kuhn:
> 
> > 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
> > > > Qgis-developer at lists.osgeo.org
> > > > http://lists.osgeo.org/mailman/listinfo/qgis-developer
> > > 
> > 
> > 
> > _______________________________________________
> > Qgis-developer mailing list
> > Qgis-developer at lists.osgeo.org
> > http://lists.osgeo.org/mailman/listinfo/qgis-developer
> 
> 
> -- 
> Dr. Marco Hugentobler
> Sourcepole -  Linux & Open Source Solutions
> Weberstrasse 5, CH-8004 Zürich, Switzerland
> marco.hugentobler at sourcepole.ch http://www.sourcepole.ch
> Technical Advisor QGIS Project Steering Committee
> _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer

-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix_flicker.patch
Type: text/x-patch
Size: 1812 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20120801/84f41a96/attachment.bin>


More information about the Qgis-developer mailing list