CVS commit by kzk: ehance InputMethod support of KWord. Handle QIMEvent properly. M +18 -0 kwcanvas.cc 1.461 M +3 -0 kwframe.h 1.251 M +16 -0 kwtextframeset.cc 1.773 M +3 -0 kwtextframeset.h 1.266 --- koffice/kword/kwcanvas.cc #1.460:1.461 @@ -2622,4 +2622,22 @@ bool KWCanvas::eventFilter( QObject *o, } break; + case QEvent::IMStart: + { + QIMEvent * imev = static_cast(e); + m_currentFrameSetEdit->imStartEvent( imev ); + } + break; + case QEvent::IMCompose: + { + QIMEvent * imev = static_cast(e); + m_currentFrameSetEdit->imComposeEvent( imev ); + } + break; + case QEvent::IMEnd: + { + QIMEvent * imev = static_cast(e); + m_currentFrameSetEdit->imEndEvent( imev ); + } + break; default: break; --- koffice/kword/kwframe.h #1.250:1.251 @@ -375,4 +375,7 @@ public: virtual void keyPressEvent( QKeyEvent * ) {} virtual void keyReleaseEvent( QKeyEvent * ) {} + virtual void imStartEvent( QIMEvent * ) {} + virtual void imComposeEvent( QIMEvent * ) {} + virtual void imEndEvent( QIMEvent * ) {} virtual void mousePressEvent( QMouseEvent *, const QPoint &, const KoPoint & ) {} virtual void mouseMoveEvent( QMouseEvent *, const QPoint &, const KoPoint & ) {} // only called if button is pressed --- koffice/kword/kwtextframeset.cc #1.772:1.773 @@ -3288,4 +3288,20 @@ void KWTextFrameSetEdit::keyReleaseEvent } +void KWTextFrameSetEdit::imStartEvent( QIMEvent* e ) +{ + kdDebug() << "FEFOIEJFOIEWFEWIJU" << endl; + textView()->handleImStartEvent( e ); +} + +void KWTextFrameSetEdit::imComposeEvent( QIMEvent* e ) +{ + textView()->handleImComposeEvent( e ); +} + +void KWTextFrameSetEdit::imEndEvent( QIMEvent* e ) +{ + textView()->handleImEndEvent( e ); +} + void KWTextFrameSetEdit::mousePressEvent( QMouseEvent *e, const QPoint &, const KoPoint & dPoint ) { --- koffice/kword/kwtextframeset.h #1.265:1.266 @@ -380,4 +380,7 @@ public: virtual void keyPressEvent( QKeyEvent * ); virtual void keyReleaseEvent( QKeyEvent * ); + virtual void imStartEvent( QIMEvent * ); + virtual void imComposeEvent( QIMEvent * ); + virtual void imEndEvent( QIMEvent * ); virtual void mousePressEvent( QMouseEvent *, const QPoint &, const KoPoint & ); virtual void mouseMoveEvent( QMouseEvent *, const QPoint &, const KoPoint & ); // only called if button is pressed