diff --git a/src/core/system.cpp b/src/core/system.cpp index 5db314f1b..b742afc34 100644 --- a/src/core/system.cpp +++ b/src/core/system.cpp @@ -496,6 +496,12 @@ bool System::ProcessStartup(Error* error) // Initialize rapidyaml before anything can use it. SetRymlCallbacks(); +#ifdef __linux__ + // Running DuckStation out of /usr/lib is not supported and makes no sense. + if (std::memcmp(EmuFolders::AppRoot.data(), "/usr/""lib", 8) == 0) + return false; +#endif + return true; } diff --git a/src/duckstation-qt/gamelistwidget.cpp b/src/duckstation-qt/gamelistwidget.cpp index c15033443..06b38e0b8 100644 --- a/src/duckstation-qt/gamelistwidget.cpp +++ b/src/duckstation-qt/gamelistwidget.cpp @@ -1428,6 +1428,7 @@ void GameListWidget::reloadThemeSpecificImages() void GameListWidget::updateBackground(bool reload_image) { + const bool had_image = !m_background_image.isNull(); if (reload_image) { m_background_image = QImage(); @@ -1444,8 +1445,13 @@ void GameListWidget::updateBackground(bool reload_image) if (m_background_image.isNull()) { - m_ui.stack->setPalette(palette()); - m_list_view->setAlternatingRowColors(true); + if (had_image) + { + m_ui.stack->setPalette(qApp->palette(m_ui.stack)); + m_ui.stack->setAutoFillBackground(false); + m_list_view->setAlternatingRowColors(true); + } + return; } @@ -1458,8 +1464,10 @@ void GameListWidget::updateBackground(bool reload_image) return; QPalette new_palette(m_ui.stack->palette()); - new_palette.setBrush(QPalette::Base, QPixmap::fromImage(image)); + new_palette.setBrush(QPalette::Window, QPixmap::fromImage(image)); + new_palette.setBrush(QPalette::Base, Qt::transparent); m_ui.stack->setPalette(new_palette); + m_ui.stack->setAutoFillBackground(true); m_list_view->setAlternatingRowColors(false); }; }); diff --git a/src/duckstation-qt/qthost.cpp b/src/duckstation-qt/qthost.cpp index 65f0bb964..1307780e0 100644 --- a/src/duckstation-qt/qthost.cpp +++ b/src/duckstation-qt/qthost.cpp @@ -531,12 +531,7 @@ bool QtHost::SetCriticalFolders() // the resources directory should exist, bail out if not const std::string rcc_path = Path::Combine(EmuFolders::Resources, "duckstation-qt.rcc"); if (!FileSystem::FileExists(rcc_path.c_str()) || !QResource::registerResource(QString::fromStdString(rcc_path)) || - !FileSystem::DirectoryExists(EmuFolders::Resources.c_str()) -#ifdef __linux__ - // Broken packages that won't stop distributing my application. - || StringUtil::StartsWithNoCase(EmuFolders::AppRoot, "/usr""/lib") -#endif - ) + !FileSystem::DirectoryExists(EmuFolders::Resources.c_str())) { QMessageBox::critical(nullptr, QStringLiteral("Error"), QStringLiteral("Resources are missing, your installation is incomplete."));