Author: ek.kato
Date: Mon Aug 25 23:30:18 2008
New Revision: 5534

Modified:
   trunk/qt4/immodule/candidatewindow.cpp

Log:
* qt4/immodule/candidatewindow.cpp
  - (CandidateWindow::CandidateWindow)
  - (CandidateWindow::activateCandwin)
  - (CandidateWindow::deactivateCandwin)
  - (CandidateWindow::slotCandidateSelected)
  - (CandidateWindow::moveEvent)
  - (CandidateWindow::resizeEvent)
    - Delay initialization of subWin (bug #17302).


Modified: trunk/qt4/immodule/candidatewindow.cpp
==============================================================================
--- trunk/qt4/immodule/candidatewindow.cpp      (original)
+++ trunk/qt4/immodule/candidatewindow.cpp      Mon Aug 25 23:30:18 2008
@@ -98,7 +98,7 @@

     isAlwaysLeft = false;

-    subWin = new SubWindow( 0 );
+    subWin = NULL;
 }

 CandidateWindow::~CandidateWindow()
@@ -123,11 +123,15 @@
     candidateIndex = -1;
     displayLimit = dLimit;
     pageIndex = 0;
+
+    if ( !subWin )
+        subWin = new SubWindow( this );
 }

 void CandidateWindow::deactivateCandwin()
 {
-    subWin->cancelHook();
+    if ( subWin )
+        subWin->cancelHook();

     hide();
     clearCandidates();
@@ -378,14 +382,16 @@

 void CandidateWindow::slotHookSubwindow( Q3ListViewItem * item )
 {
-    // cancel previous hook
-    subWin->cancelHook();
-
-    // hook annotation
-    QString annotationString = item->text( 2 );
-    if ( !annotationString.isEmpty() )
-    {
-        subWin->hookPopup( "Annotation", annotationString );
+    if ( subWin ) {
+        // cancel previous hook
+        subWin->cancelHook();
+
+        // hook annotation
+        QString annotationString = item->text( 2 );
+        if ( !annotationString.isEmpty() )
+        {
+            subWin->hookPopup( "Annotation", annotationString );
+        }
     }
 }

@@ -393,13 +399,15 @@
 void CandidateWindow::moveEvent( QMoveEvent *e )
 {
     // move subwindow
-    subWin->layoutWindow( e->pos().x() + width(), e->pos().y() );
+    if ( subWin )
+        subWin->layoutWindow( e->pos().x() + width(), e->pos().y() );
 }

 void CandidateWindow::resizeEvent( QResizeEvent *e )
 {
     // move subwindow
-    subWin->layoutWindow( pos().x() + e->size().width(), pos().y() );
+    if ( subWin )
+        subWin->layoutWindow( pos().x() + e->size().width(), pos().y() );
 }


Reply via email to