diff --git a/src/board/UBBoardView.cpp b/src/board/UBBoardView.cpp
index 1fca73ef2670c176aa98199b6fac82f2839ef35f..4953c018d9512fd644b47e6bb37bb881d0308900 100644
--- a/src/board/UBBoardView.cpp
+++ b/src/board/UBBoardView.cpp
@@ -417,7 +417,7 @@ bool UBBoardView::itemShouldReceiveMousePressEvent(QGraphicsItem *item)
         return true;
 
     if (item == scene()->backgroundObject())
-        return true;
+        return false;
 
     if (itemIsLocked(item))
         return false;
@@ -577,10 +577,17 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event)
 {
     mLastPressedMousePos = mapToScene(event->pos());
 
-    foreach (QGraphicsItem *item, scene()->items())
+
+    if (movingItem && QGraphicsSvgItem::Type !=  movingItem->type()
+        && UBGraphicsDelegateFrame::Type !=  movingItem->type())
     {
-        if (movingItem != item)
-            item->setSelected(false);
+        foreach(QGraphicsItem *item, scene()->selectedItems())
+        {
+            if (item != movingItem)
+            {
+                item->setSelected(false);
+            }
+        }
     }
 
     if (itemShouldReceiveMousePressEvent(movingItem))
@@ -710,7 +717,9 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
 
     mMouseDownPos = event->pos ();
 
-    emit clickOnBoard();
+    movingItem = scene()->itemAt(this->mapToScene(event->posF().toPoint()));
+    if (!movingItem)
+        emit clickOnBoard();
 
     if (event->button () == Qt::LeftButton && isInteractive ())
     {
@@ -738,8 +747,6 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
         }
         else if (currentTool == UBStylusTool::Selector || currentTool == UBStylusTool::Play)
         {
-            movingItem = scene()->itemAt(this->mapToScene(event->posF().toPoint()));
-
             connect(&mLongPressTimer, SIGNAL(timeout()), this, SLOT(longPressEvent()));
             if (!movingItem && !mController->cacheIsVisible())
                 mLongPressTimer.start();
@@ -1004,6 +1011,7 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
           UBDrawingController::drawingController ()->setStylusTool (UBStylusTool::Selector);
 
           textItem->setSelected (true);
+          textItem->setFocus();
         }
       else
         {
diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp
index 07ea3d97d2d32256d7ccf5b763bb998ed52dd7d9..738409abbc64957df81565d883cc8b5d1ba83d8d 100644
--- a/src/domain/UBGraphicsScene.cpp
+++ b/src/domain/UBGraphicsScene.cpp
@@ -1593,12 +1593,14 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c
     if(!textItem){
         textItem = addTextWithFont(pString,QPointF(0,0) ,72,UBSettings::settings()->fontFamily(),true,false);
         textItem->setObjectName(objectName);
+        QSizeF size = textItem->size();
+        textItem->setPos(QPointF(-size.width()/2.0,-size.height()/2.0));
     }
 
     textItem->setPlainText(pString);
     textItem->adjustSize();
-    QSizeF size = textItem->size();
-    textItem->setPos(QPointF(-size.width()/2.0,-size.height()/2.0));
+    textItem->clearFocus();
+    textItem->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
     return textItem;
 }