Fix:graphics_qt_qpainter:Force drawing after draw_mode_end, test for gestures
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sat, 25 Dec 2010 21:47:56 +0000 (21:47 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sat, 25 Dec 2010 21:47:56 +0000 (21:47 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@3834 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/navit/graphics/qt_qpainter/graphics_qt_qpainter.cpp

index 4c384cb..2fce694 100644 (file)
@@ -183,7 +183,8 @@ class RenderArea : public QT_QPAINTER_RENDERAREA_PARENT
      void mouseMoveEvent(QMouseEvent *event);
      void wheelEvent(QWheelEvent *event);
      void keyPressEvent(QKeyEvent *event);
-        void closeEvent(QCloseEvent *event);
+     void closeEvent(QCloseEvent *event);
+     bool event(QEvent *event);
 #if QT_QPAINTER_USE_EVENT_QT
      void timerEvent(QTimerEvent *event);
 #endif
@@ -291,6 +292,11 @@ RenderArea::RenderArea(struct graphics_priv *priv, QT_QPAINTER_RENDERAREA_PARENT
        pixmap = new QPixmap(w, h);
 #ifndef QT_QPAINTER_NO_WIDGET
        if (!overlay) {
+#if QT_VERSION >= 0x040700                                                 
+               grabGesture(Qt::PinchGesture);
+               grabGesture(Qt::SwipeGesture);
+               grabGesture(Qt::PanGesture);
+#endif
 #if QT_VERSION >= 0x040000
                setWindowTitle("Navit");
 #else
@@ -318,6 +324,17 @@ void RenderArea::closeEvent(QCloseEvent* event)
 {
        callback_list_call_attr_0(this->cbl, attr_window_closed);
 }
+
+bool RenderArea::event(QEvent *event)
+{
+#if QT_VERSION >= 0x040700                                                 
+       if (event->type() == QEvent::Gesture) {
+               dbg(0,"gesture\n");
+               return true;
+       }
+#endif
+       return QWidget::event(event);
+}
 //##############################################################################################################
 //# Description: QWidget:sizeHint
 //# Comment: This property holds the recommended size for the widget
@@ -962,6 +979,8 @@ static void draw_mode(struct graphics_priv *gr, enum draw_mode_num mode)
 #endif
                }
 #endif
+               if (!gr->parent)
+                       QCoreApplication::processEvents();
        }
 #if QT_VERSION >= 0x040000
        if (mode == draw_mode_end_lazy)