UI: Selectively disable focus frame

NoFocusFrameStyle was meant to disable focus frames around the scenes/sources
list (on OSX); unfortunately it also removed focus frames from controls that
should have focus frames like input boxes in the settings window
This commit is contained in:
Palana 2014-10-29 17:18:00 +01:00
parent 9ddbb1077a
commit f1f1ca45df
4 changed files with 7 additions and 14 deletions

View file

@ -410,19 +410,6 @@ QString OBSTranslator::translate(const char *context, const char *sourceText,
return QT_UTF8(out);
}
struct NoFocusFrameStyle : QProxyStyle
{
void drawControl(ControlElement element, const QStyleOption *option,
QPainter *painter, const QWidget *widget=nullptr)
const override
{
if (element == CE_FocusFrame)
return;
QProxyStyle::drawControl(element, option, painter, widget);
}
};
static bool get_token(lexer *lex, string &str, base_token_type type)
{
base_token token;
@ -611,7 +598,6 @@ static int run_program(fstream &logFile, int argc, char *argv[])
create_log_file(logFile);
program.installTranslator(&translator);
program.setStyle(new NoFocusFrameStyle);
ret = program.OBSInit() ? program.exec() : 0;

View file

@ -119,6 +119,9 @@ OBSBasic::OBSBasic(QWidget *parent)
qRegisterMetaType<OBSSceneItem>("OBSSceneItem");
qRegisterMetaType<OBSSource> ("OBSSource");
ui->scenes->setAttribute(Qt::WA_MacShowFocusRect, false);
ui->sources->setAttribute(Qt::WA_MacShowFocusRect, false);
connect(windowHandle(), &QWindow::screenChanged, [this]() {
struct obs_video_info ovi;

View file

@ -217,6 +217,8 @@ OBSBasicSettings::OBSBasicSettings(QWidget *parent)
ui->setupUi(this);
ui->listWidget->setAttribute(Qt::WA_MacShowFocusRect, false);
HookWidget(ui->language, COMBO_CHANGED, GENERAL_CHANGED);
HookWidget(ui->theme, COMBO_CHANGED, GENERAL_CHANGED);
HookWidget(ui->outputMode, COMBO_CHANGED, OUTPUTS_CHANGED);

View file

@ -164,6 +164,8 @@ OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *id_)
{
ui->setupUi(this);
ui->sourceList->setAttribute(Qt::WA_MacShowFocusRect, false);
QString placeHolderText{QT_UTF8(obs_source_get_display_name(
OBS_SOURCE_TYPE_INPUT, id))};