mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 17:02:45 +00:00 
			
		
		
		
	FileManager: Apply wallpaper on startup
I noticed that nothing actually applies the wallpaper on startup. I wasn't sure where to put the responsibility, so I gave it to the desktop mode file manager. Also adds a save_config option to set_wallpaper so it doesn't needlessly save the config.
This commit is contained in:
		
							parent
							
								
									14a54a72fa
								
							
						
					
					
						commit
						c434a91c91
					
				
					 3 changed files with 10 additions and 3 deletions
				
			
		|  | @ -40,6 +40,7 @@ | ||||||
| #include <LibGUI/Application.h> | #include <LibGUI/Application.h> | ||||||
| #include <LibGUI/BoxLayout.h> | #include <LibGUI/BoxLayout.h> | ||||||
| #include <LibGUI/Clipboard.h> | #include <LibGUI/Clipboard.h> | ||||||
|  | #include <LibGUI/Desktop.h> | ||||||
| #include <LibGUI/FileSystemModel.h> | #include <LibGUI/FileSystemModel.h> | ||||||
| #include <LibGUI/InputBox.h> | #include <LibGUI/InputBox.h> | ||||||
| #include <LibGUI/Label.h> | #include <LibGUI/Label.h> | ||||||
|  | @ -242,6 +243,12 @@ int run_in_desktop_mode(RefPtr<Core::ConfigFile> config, String initial_location | ||||||
|             desktop_view_context_menu->popup(event.screen_position()); |             desktop_view_context_menu->popup(event.screen_position()); | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     auto wm_config = Core::ConfigFile::get_for_app("WindowManager"); | ||||||
|  |     auto selected_wallpaper = wm_config->read_entry("Background", "Wallpaper", ""); | ||||||
|  |     if (!selected_wallpaper.is_empty()) { | ||||||
|  |         GUI::Desktop::the().set_wallpaper(selected_wallpaper, false); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     window->show(); |     window->show(); | ||||||
|     return GUI::Application::the()->exec(); |     return GUI::Application::the()->exec(); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -64,12 +64,12 @@ void Desktop::set_wallpaper_mode(const StringView& mode) | ||||||
|     WindowServerConnection::the().post_message(Messages::WindowServer::SetWallpaperMode(mode)); |     WindowServerConnection::the().post_message(Messages::WindowServer::SetWallpaperMode(mode)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool Desktop::set_wallpaper(const StringView& path) | bool Desktop::set_wallpaper(const StringView& path, bool save_config) | ||||||
| { | { | ||||||
|     WindowServerConnection::the().post_message(Messages::WindowServer::AsyncSetWallpaper(path)); |     WindowServerConnection::the().post_message(Messages::WindowServer::AsyncSetWallpaper(path)); | ||||||
|     auto ret_val = WindowServerConnection::the().wait_for_specific_message<Messages::WindowClient::AsyncSetWallpaperFinished>()->success(); |     auto ret_val = WindowServerConnection::the().wait_for_specific_message<Messages::WindowClient::AsyncSetWallpaperFinished>()->success(); | ||||||
| 
 | 
 | ||||||
|     if (ret_val) { |     if (ret_val && save_config) { | ||||||
|         RefPtr<Core::ConfigFile> config = Core::ConfigFile::get_for_app("WindowManager"); |         RefPtr<Core::ConfigFile> config = Core::ConfigFile::get_for_app("WindowManager"); | ||||||
|         dbg() << "Saving wallpaper path '" << path << "' to config file at " << config->file_name(); |         dbg() << "Saving wallpaper path '" << path << "' to config file at " << config->file_name(); | ||||||
|         config->write_entry("Background", "Wallpaper", path); |         config->write_entry("Background", "Wallpaper", path); | ||||||
|  |  | ||||||
|  | @ -43,7 +43,7 @@ public: | ||||||
|     void set_wallpaper_mode(const StringView& mode); |     void set_wallpaper_mode(const StringView& mode); | ||||||
| 
 | 
 | ||||||
|     String wallpaper() const; |     String wallpaper() const; | ||||||
|     bool set_wallpaper(const StringView& path); |     bool set_wallpaper(const StringView& path, bool save_config = true); | ||||||
| 
 | 
 | ||||||
|     Gfx::IntRect rect() const { return m_rect; } |     Gfx::IntRect rect() const { return m_rect; } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Luke
						Luke