From d761d763d517677c4397d9a0c04ecfdb4a69e451 Mon Sep 17 00:00:00 2001 From: l-const Date: Tue, 8 Oct 2024 22:40:57 +0300 Subject: [PATCH] fix(dock): Dock configurable per display. --- cosmic-settings/src/app.rs | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/cosmic-settings/src/app.rs b/cosmic-settings/src/app.rs index c15f2fc..a9cc1fe 100644 --- a/cosmic-settings/src/app.rs +++ b/cosmic-settings/src/app.rs @@ -501,39 +501,47 @@ impl cosmic::Application for SettingsApp { }, Message::OutputAdded(info, output) => { + let mut commands = vec![]; if let Some(page) = self.pages.page_mut::() { - return page - .update(panel::Message(_panel::Message::OutputAdded( + commands.push( + page.update(panel::Message(_panel::Message::OutputAdded( info.name.clone().unwrap_or_default(), output.clone(), ))) - .map(Into::into); + .map(Into::into), + ); } if let Some(page) = self.pages.page_mut::() { - return page - .update(dock::Message::Inner(_panel::Message::OutputAdded( + commands.push( + page.update(dock::Message::Inner(_panel::Message::OutputAdded( info.name.unwrap_or_default(), output, ))) - .map(Into::into); + .map(Into::into), + ); } + return Command::batch(commands); } Message::OutputRemoved(output) => { + let mut commands = vec![]; if let Some(page) = self.pages.page_mut::() { - return page - .update(panel::Message(_panel::Message::OutputRemoved( + commands.push( + page.update(panel::Message(_panel::Message::OutputRemoved( output.clone(), ))) - .map(Into::into); + .map(Into::into), + ); } if let Some(page) = self.pages.page_mut::() { - return page - .update(dock::Message::Inner(_panel::Message::OutputRemoved(output))) - .map(Into::into); + commands.push( + page.update(dock::Message::Inner(_panel::Message::OutputRemoved(output))) + .map(Into::into), + ); } + return Command::batch(commands); } Message::PanelConfig(config) if config.name.to_lowercase().contains("panel") => {