src/hbwidgets/editors/hbabstractedit_p.cpp
changeset 6 c3690ec91ef8
parent 5 627c4a0fd0e7
child 7 923ff622b8b9
--- a/src/hbwidgets/editors/hbabstractedit_p.cpp	Fri Jun 11 13:58:22 2010 +0300
+++ b/src/hbwidgets/editors/hbabstractedit_p.cpp	Wed Jun 23 18:33:25 2010 +0300
@@ -45,7 +45,7 @@
 #include "hbcolorscheme.h"
 #include "hbsmileyengine_p.h"
 #include "hbtextmeasurementutility_p.h"
-#include "hbfeaturemanager_p.h"
+#include "hbfeaturemanager_r.h"
 #include "hbinputeditorinterface.h"
 #include "hbinputvkbhost.h"
 
@@ -198,7 +198,8 @@
     wasGesture(false),
     smileysEnabled(false),
     smileyEngine(0),
-    formatDialog(0)
+    formatDialog(0),
+    updatePrimitivesInProgress(false)
 {
 }
 
@@ -211,6 +212,8 @@
     Q_Q(HbAbstractEdit);
 
     canvas = new HbEditItem(q);
+    canvas->setSizePolicy(QSizePolicy::Ignored,QSizePolicy::Ignored);
+
 
     setContent(Qt::RichText, QString());
 
@@ -238,6 +241,7 @@
     q->setFlag(QGraphicsItem::ItemIsFocusable);
     q->setFlag(QGraphicsItem::ItemAcceptsInputMethod);
     q->setFlag(QGraphicsItem::ItemSendsScenePositionChanges);
+    q->setFlag(QGraphicsItem::ItemHasNoContents, false);
     q->setFocusPolicy(Qt::StrongFocus);
     q->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
@@ -368,6 +372,10 @@
 
 void HbAbstractEditPrivate::setCursorPosition(int pos, QTextCursor::MoveMode mode)
 {
+    if (cursor.isNull()) {
+        cursor = QTextCursor(doc);
+    }
+
     cursor.setPosition(pos, mode);
 
     cursorChanged(HbValidator::CursorChangeFromMouse);
@@ -972,7 +980,7 @@
     QTextLayout *layout = cursor.block().layout();
     int cursorPos = hitTest(tapPos, Qt::ExactHit);
 
-    if (cursorPos == -1) {
+    if (layout && cursorPos == -1) {
             cursorPos = cursor.position() + layout->preeditAreaText().length();
     }