@ -481,9 +481,9 @@ bool UBBoardView::itemShouldReceiveSuspendedMousePressEvent(QGraphicsItem *item)
case UBGraphicsPixmapItem : : Type :
case UBGraphicsPixmapItem : : Type :
case UBGraphicsTextItem : : Type :
case UBGraphicsTextItem : : Type :
case UBGraphicsW3CWidgetItem : : Type :
case UBGraphicsW3CWidgetItem : : Type :
if ( currentTool ! = UBStylusTool : : Play & & ! item - > isSelected ( ) & & item - > parentItem ( ) )
if ( currentTool = = UBStylusTool : : Selector & & ! item - > isSelected ( ) & & item - > parentItem ( ) )
return true ;
return true ;
if ( currentTool ! = UBStylusTool : : Play & & ! item - > isSelected ( ) )
if ( currentTool = = UBStylusTool : : Selector & & item - > isSelected ( ) )
return true ;
return true ;
break ;
break ;
@ -580,12 +580,21 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event)
if ( itemShouldReceiveMousePressEvent ( movingItem ) )
if ( itemShouldReceiveMousePressEvent ( movingItem ) )
QGraphicsView : : mousePressEvent ( event ) ;
QGraphicsView : : mousePressEvent ( event ) ;
else
else
if ( itemShouldReceiveSuspendedMousePressEvent ( movingItem ) )
{
{
if ( movingItem )
movingItem - > clearFocus ( ) ;
if ( suspendedMousePressEvent )
if ( suspendedMousePressEvent )
{
delete suspendedMousePressEvent ;
delete suspendedMousePressEvent ;
suspendedMousePressEvent = NULL ;
}
if ( itemShouldReceiveSuspendedMousePressEvent ( movingItem ) )
{
suspendedMousePressEvent = new QMouseEvent ( event - > type ( ) , event - > pos ( ) , event - > button ( ) , event - > buttons ( ) , event - > modifiers ( ) ) ;
suspendedMousePressEvent = new QMouseEvent ( event - > type ( ) , event - > pos ( ) , event - > button ( ) , event - > buttons ( ) , event - > modifiers ( ) ) ;
}
}
}
}
}
void UBBoardView : : handleItemMouseMove ( QMouseEvent * event )
void UBBoardView : : handleItemMouseMove ( QMouseEvent * event )
@ -933,6 +942,10 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
delete suspendedMousePressEvent ;
delete suspendedMousePressEvent ;
suspendedMousePressEvent = NULL ;
suspendedMousePressEvent = NULL ;
}
}
else
{
movingItem - > setSelected ( true ) ;
}
}
}
if ( mUBRubberBand & & mUBRubberBand - > isVisible ( ) ) {
if ( mUBRubberBand & & mUBRubberBand - > isVisible ( ) ) {
@ -1163,6 +1176,7 @@ void UBBoardView::dropEvent (QDropEvent *event)
UBGraphicsWidgetItem * graphicsWidget = dynamic_cast < UBGraphicsWidgetItem * > ( graphicsItemAtPos ) ;
UBGraphicsWidgetItem * graphicsWidget = dynamic_cast < UBGraphicsWidgetItem * > ( graphicsItemAtPos ) ;
if ( graphicsWidget & & graphicsWidget - > acceptDrops ( ) ) {
if ( graphicsWidget & & graphicsWidget - > acceptDrops ( ) ) {
graphicsWidget - > processDropEvent ( event ) ;
graphicsWidget - > processDropEvent ( event ) ;
event - > acceptProposedAction ( ) ;
event - > acceptProposedAction ( ) ;
@ -1295,20 +1309,16 @@ void UBBoardView::virtualKeyboardActivated(bool b)
bool UBBoardView : : isAbsurdPoint ( QPoint point )
bool UBBoardView : : isAbsurdPoint ( QPoint point )
{
{
# ifdef Q_WS_MACX
QDesktopWidget * desktop = qApp - > desktop ( ) ;
QDesktopWidget * desktop = qApp - > desktop ( ) ;
bool isValidPoint = false ;
bool isValidPoint = false ;
for ( int i = 0 ; i < desktop - > numScreens ( ) & & ! isValidPoint ; i + + ) {
for ( int i = 0 ; i < desktop - > numScreens ( ) ; i + + )
QRect screenRect = desktop - > screenGeometry ( i ) ;
{
screenRect = QRect ( QPoint ( 0 , 0 ) , screenRect . size ( ) ) ;
QRect screenRect = desktop - > screenGeometry ( i ) ;
isValidPoint = isValidPoint | | screenRect . contains ( point ) ;
isValidPoint = isValidPoint | | screenRect . contains ( point ) ;
}
}
return ! isValidPoint ;
return ! isValidPoint ;
# else
Q_UNUSED ( point ) ;
return false ;
# endif
}
}
void
void