diff --git a/Applications/DisplaySettings/DisplaySettings.cpp b/Applications/DisplaySettings/DisplaySettings.cpp index 96610be6f3..459e7fa9cf 100644 --- a/Applications/DisplaySettings/DisplaySettings.cpp +++ b/Applications/DisplaySettings/DisplaySettings.cpp @@ -125,6 +125,11 @@ void DisplaySettingsWidget::create_frame() m_wallpaper_combo->set_model(*ItemListModel::create(m_wallpapers)); m_wallpaper_combo->on_change = [this](auto& text, const GUI::ModelIndex& index) { String path = text; + if (m_monitor_widget->set_wallpaper(path)) { + m_monitor_widget->update(); + return; + } + if (index.row() == 0) { path = ""; } else { @@ -136,8 +141,8 @@ void DisplaySettingsWidget::create_frame() } } - this->m_monitor_widget->set_wallpaper(path); - this->m_monitor_widget->update(); + m_monitor_widget->set_wallpaper(path); + m_monitor_widget->update(); }; auto& button = wallpaper_selection_container.add(); diff --git a/Applications/DisplaySettings/MonitorWidget.cpp b/Applications/DisplaySettings/MonitorWidget.cpp index 71d6651593..d4e8b1e6cc 100644 --- a/Applications/DisplaySettings/MonitorWidget.cpp +++ b/Applications/DisplaySettings/MonitorWidget.cpp @@ -33,10 +33,14 @@ MonitorWidget::MonitorWidget() m_monitor_rect = { 8, 9, 320, 180 }; } -void MonitorWidget::set_wallpaper(String path) +bool MonitorWidget::set_wallpaper(String path) { m_desktop_wallpaper_path = path; - m_desktop_wallpaper_bitmap = Gfx::Bitmap::load_from_file(path); + auto bitmap_ptr = Gfx::Bitmap::load_from_file(path); + if (!bitmap_ptr) + return false; + m_desktop_wallpaper_bitmap = bitmap_ptr; + return true; } String MonitorWidget::wallpaper() diff --git a/Applications/DisplaySettings/MonitorWidget.h b/Applications/DisplaySettings/MonitorWidget.h index fa0a5dbbf8..d9695d11fa 100644 --- a/Applications/DisplaySettings/MonitorWidget.h +++ b/Applications/DisplaySettings/MonitorWidget.h @@ -35,7 +35,7 @@ class MonitorWidget final : public GUI::Widget { public: MonitorWidget(); - void set_wallpaper(String path); + bool set_wallpaper(String path); String wallpaper(); void set_wallpaper_mode(String mode);