diff --git a/src/module/qt_window/mpvwidget.cc b/src/module/qt_window/mpvwidget.cc
index 924a04245b4c9b1bd3651259f95c2112f1eab955..8c5429f3f97d7904d277997c48e41194ef993774 100644
--- a/src/module/qt_window/mpvwidget.cc
+++ b/src/module/qt_window/mpvwidget.cc
@@ -376,7 +376,7 @@ MpvWidget::keyPressEvent(QKeyEvent* event)
         case Qt::Key_I:
             MPV_SEND_COMMAND_ASYNC("script-binding", "stats/display-stats", NULL);
         case Qt::Key_Delete:
-            MPV_SEND_COMMAND_ASYNC("script-binding", "osc/visibility", NULL);
+            MPV_SEND_COMMAND_ASYNC("script-message", "osc-visibility", (m_oscVisible = !m_oscVisible) ? "always" : "never", NULL);
 
         default:
             break;
diff --git a/src/module/qt_window/mpvwidget.hh b/src/module/qt_window/mpvwidget.hh
index 3f05be0267f17cb19e0ce3d28984eb54d0578448..496a0f9437e26f67ca3398dbf2991ed1ed64ba6f 100644
--- a/src/module/qt_window/mpvwidget.hh
+++ b/src/module/qt_window/mpvwidget.hh
@@ -37,6 +37,7 @@ private:
 
     int m_position;
     int m_duration;
+    bool m_oscVisible = false;
 
 protected:
     void keyPressEvent(QKeyEvent* event);