-rw-r--r-- | korganizer/koagenda.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 0aef929..ffa2678 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp @@ -438,28 +438,34 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me) mActionItem = 0; if (me->button() == RightButton ) { blockNewEvent = true; - //qDebug("right "); + block = false; + } else { + blockNewEvent = false; + setCursor(arrowCursor); + startSelectAction(viewportPos); + } + } + break; + + case QEvent::MouseButtonRelease: + //qDebug("QEvent::MouseButtonRelease: %d",blockNewEvent ); + if (me->button() == RightButton && blockNewEvent && !block) { int x,y; viewportToContents(viewportPos.x(),viewportPos.y(),x,y); int gx,gy; contentsToGrid(x,y,gx,gy); - mStartCellX = gx; - mStartCellY = gy; + if ( mCurrentCellY < mStartCellY +1 ) { + //qDebug("mCurrentCellY %d mStartCellY %d ", mCurrentCellY,mStartCellY); mCurrentCellX = gx; mCurrentCellY = gy; + mStartCellX = gx; + mStartCellY = gy; mNewItemPopup->popup( viewport()->mapToGlobal( me->pos() ) ); - + break; } else { blockNewEvent = false; - setCursor(arrowCursor); - startSelectAction(viewportPos); } - } - break; - - case QEvent::MouseButtonRelease: - //qDebug("QEvent::MouseButtonRelease: "); - if (me->button() == RightButton && block ) { + } else if (me->button() == RightButton && block ) { if (object != viewport()) { mClickedItem = (KOAgendaItem *)object; if (mActionItem ) { @@ -491,7 +497,6 @@ bool KOAgenda::eventFilter_mouse(QObject *object, QMouseEvent *me) endItemAction(); } else if ( mActionType == SELECT ) { if (me->button() == RightButton ) { - } else { endSelectAction( !blockNewEvent ); } |