diff --git a/videooverlay.cpp b/videooverlay.cpp
index 9e30be7..8643b07 100644
--- a/videooverlay.cpp
+++ b/videooverlay.cpp
@@ -19,12 +19,16 @@
 #include "videooverlay.h"
 #include "ui_videooverlay.h"
 
+// Client
 #include "contactpicker.h"
 
+// LRC
 #include "callmodel.h"
 #include "contactmethod.h"
 #include "person.h"
 
+
+
 VideoOverlay::VideoOverlay(QWidget* parent) :
     QWidget(parent),
     ui(new Ui::VideoOverlay),
@@ -101,6 +105,9 @@
     connect(qualityDialog_, &QualityDialog::isVisible, [this] (bool visible) {
         dialogVisible_ = visible;
     });
+
+    // temporary hide
+    ui->addPersonButton->hide();
 }
 
 VideoOverlay::~VideoOverlay()
@@ -122,6 +129,17 @@
     ui->timerLabel->setText(time);
 }
 
+void VideoOverlay::toggleContextButtons(bool visible)
+{
+    if (! visible) {
+        ui->videoCfgBtn->hide();
+        ui->videoBackBtn->hide();
+    } else {
+        ui->videoCfgBtn->show();
+        ui->videoBackBtn->show();
+    }
+}
+
 void
 VideoOverlay::on_hangupButton_clicked()
 {
diff --git a/videooverlay.h b/videooverlay.h
index c525a3a..280b13c 100644
--- a/videooverlay.h
+++ b/videooverlay.h
@@ -42,6 +42,7 @@
     void setName(const QString& name);
     void setTime(const QString& time);
     inline bool isDialogVisible(){ return dialogVisible_; };
+    void toggleContextButtons(bool visible);
 
 //UI SLOTS
 private slots:
diff --git a/videoview.cpp b/videoview.cpp
index 46d069f..511d0be 100644
--- a/videoview.cpp
+++ b/videoview.cpp
@@ -185,6 +185,7 @@
 void
 VideoView::toggleFullScreen()
 {
+    overlay_->toggleContextButtons(isFullScreen());
     if(isFullScreen()) {
         dynamic_cast<QSplitter*>(oldParent_)->insertWidget(0,this);
         this->resize(oldSize_.width(), oldSize_.height());
