Skip to content

Commit

Permalink
DisplayProperties: Allow going from a wallpaper to a background colour
Browse files Browse the repository at this point in the history
Before this patch DisplayProperties couldn't handle correctly going from
a set wallpaper to a background color.

This patch adds a new "Use background color" as a first option for the
Wallpaper combobox as well as correct handling of setting an invalid
bitmap, thus making the WindowManager draw the background color
  • Loading branch information
zlotny authored and awesomekling committed Apr 28, 2020
1 parent 19c744a commit bcd5e97
Showing 1 changed file with 17 additions and 9 deletions.
26 changes: 17 additions & 9 deletions Applications/DisplayProperties/DisplayProperties.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ void DisplayPropertiesWidget::create_wallpaper_list()
{
Core::DirIterator iterator("/res/wallpapers/", Core::DirIterator::Flags::SkipDots);

m_wallpapers.append("Use background color");

while (iterator.has_next()) {
m_wallpapers.append(iterator.next_path());
}
Expand Down Expand Up @@ -123,11 +125,15 @@ void DisplayPropertiesWidget::create_frame()
m_wallpaper_combo->set_model(*ItemListModel<AK::String>::create(m_wallpapers));
m_wallpaper_combo->on_change = [this](auto& text, const GUI::ModelIndex& index) {
String path = text;
if (index.is_valid()) {
StringBuilder builder;
builder.append("/res/wallpapers/");
builder.append(path);
path = builder.to_string();
if (index.row() == 0) {
path = "";
} else {
if (index.is_valid()) {
StringBuilder builder;
builder.append("/res/wallpapers/");
builder.append(path);
path = builder.to_string();
}
}

this->m_monitor_widget->set_wallpaper(path);
Expand Down Expand Up @@ -281,6 +287,8 @@ void DisplayPropertiesWidget::load_current_settings()
m_wallpaper_combo->set_text(selected_wallpaper);
m_wallpaper_combo->set_only_allow_values_from_model(true);
}
} else {
m_wallpaper_combo->set_selected_index(0);
}

/// Mode //////////////////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -340,11 +348,11 @@ void DisplayPropertiesWidget::send_settings_to_window_server()

if (!m_monitor_widget->wallpaper().is_empty()) {
GUI::Desktop::the().set_wallpaper(m_monitor_widget->wallpaper());
} else {
dbg() << "Setting color input: __" << m_color_input->text() << "__";
GUI::Desktop::the().set_wallpaper("");
GUI::Desktop::the().set_background_color(m_color_input->text());
}

GUI::Desktop::the().set_wallpaper_mode(m_monitor_widget->wallpaper_mode());

if (m_color_input->color() != this->palette().desktop_background()) {
GUI::Desktop::the().set_background_color(m_color_input->text());
}
}

0 comments on commit bcd5e97

Please sign in to comment.