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

Reply via email to