diff --git a/obs/data/locale/en-US.ini b/obs/data/locale/en-US.ini index 6ab950d11..338a6c0d6 100644 --- a/obs/data/locale/en-US.ini +++ b/obs/data/locale/en-US.ini @@ -359,6 +359,7 @@ Basic.Settings.General.Theme="Theme" Basic.Settings.General.Language="Language" Basic.Settings.General.WarnBeforeStartingStream="Show confirmation dialog when starting streams" Basic.Settings.General.WarnBeforeStoppingStream="Show confirmation dialog when stopping streams" +Basic.Settings.General.HideProjectorCursor="Hide cursor over projectors" Basic.Settings.General.Snapping="Source Alignment Snapping" Basic.Settings.General.ScreenSnapping="Snap Sources to edge of screen" Basic.Settings.General.CenterSnapping="Snap Sources to horizontal and vertical center" diff --git a/obs/forms/OBSBasicSettings.ui b/obs/forms/OBSBasicSettings.ui index 736b75e9f..3b3d5d038 100644 --- a/obs/forms/OBSBasicSettings.ui +++ b/obs/forms/OBSBasicSettings.ui @@ -285,6 +285,13 @@ + + + + Basic.Settings.General.HideProjectorCursor + + + diff --git a/obs/window-basic-settings.cpp b/obs/window-basic-settings.cpp index 3fa2ddafa..6c46f7e32 100644 --- a/obs/window-basic-settings.cpp +++ b/obs/window-basic-settings.cpp @@ -271,6 +271,7 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent) HookWidget(ui->theme, COMBO_CHANGED, GENERAL_CHANGED); HookWidget(ui->warnBeforeStreamStart,CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->warnBeforeStreamStop, CHECK_CHANGED, GENERAL_CHANGED); + HookWidget(ui->hideProjectorCursor, CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->snappingEnabled, CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->screenSnapping, CHECK_CHANGED, GENERAL_CHANGED); HookWidget(ui->centerSnapping, CHECK_CHANGED, GENERAL_CHANGED); @@ -823,6 +824,10 @@ void OBSBasicSettings::LoadGeneralSettings() "BasicWindow", "WarnBeforeStoppingStream"); ui->warnBeforeStreamStop->setChecked(warnBeforeStreamStop); + bool hideProjectorCursor = config_get_bool(GetGlobalConfig(), + "BasicWindow", "HideProjectorCursor"); + ui->hideProjectorCursor->setChecked(hideProjectorCursor); + loading = false; } @@ -2157,6 +2162,10 @@ void OBSBasicSettings::SaveGeneralSettings() config_set_bool(GetGlobalConfig(), "BasicWindow", "WarnBeforeStoppingStream", ui->warnBeforeStreamStop->isChecked()); + + config_set_bool(GetGlobalConfig(), "BasicWindow", + "HideProjectorCursor", + ui->hideProjectorCursor->isChecked()); } void OBSBasicSettings::SaveStream1Settings() diff --git a/obs/window-projector.cpp b/obs/window-projector.cpp index b6091d94d..cc086d3cd 100644 --- a/obs/window-projector.cpp +++ b/obs/window-projector.cpp @@ -26,6 +26,14 @@ OBSProjector::OBSProjector(QWidget *widget, obs_source_t *source_) connect(this, &OBSQTDisplay::DisplayCreated, addDrawCallback); + bool hideCursor = config_get_bool(GetGlobalConfig(), + "BasicWindow", "HideProjectorCursor"); + if (hideCursor) { + QPixmap empty(16, 16); + empty.fill(Qt::transparent); + setCursor(QCursor(empty)); + } + App()->IncrementSleepInhibition(); }