refactor: set locations of auto popup hover

This commit is contained in:
Ashley Wulber 2024-05-13 12:25:39 -04:00 committed by Michael Murphy
parent b96d5f520b
commit 0d27b2e02a
11 changed files with 11 additions and 43 deletions

View file

@ -16,7 +16,6 @@ use cosmic::applet::token::subscription::{
};
use cosmic::cctk::sctk::reexports::calloop;
use cosmic::cosmic_config::CosmicConfigEntry;
use cosmic::iced::event::listen_with;
use cosmic::iced::widget;
use cosmic::iced::Limits;
use cosmic::iced::{
@ -33,7 +32,6 @@ use cosmic::widget::Row;
use cosmic::widget::{divider, icon};
use cosmic::Renderer;
use cosmic::{Element, Theme};
use cosmic_time::Duration;
use cosmic_time::{anim, chain, id, once_cell::sync::Lazy, Instant, Timeline};
use iced::wayland::popup::{destroy_popup, get_popup};
use iced::widget::container;
@ -74,7 +72,6 @@ pub struct Audio {
config: AudioAppletConfig,
player_status: Option<mpris_subscription::PlayerStatus>,
token_tx: Option<calloop::channel::Sender<TokenRequest>>,
waiting: bool,
}
impl Audio {
@ -154,9 +151,6 @@ pub enum Message {
MprisRequest(MprisRequest),
Token(TokenUpdate),
OpenSettings,
Wait,
WaitDone,
CursorLeft,
}
impl Audio {
@ -289,7 +283,6 @@ impl cosmic::Application for Audio {
icon_name: "audio-volume-high-symbolic".to_string(),
input_icon_name: "audio-input-microphone-symbolic".to_string(),
token_tx: None,
waiting: true,
..Default::default()
},
Command::none(),
@ -496,11 +489,6 @@ impl cosmic::Application for Audio {
self.player_status = None;
}
Message::MprisRequest(r) => {
// HACK avoid activating MPRIS from a panel popup auto-click event
// instead, open the popup
if self.waiting {
return self.update(Message::TogglePopup);
}
let Some(player_status) = self.player_status.as_ref() else {
tracing::error!("No player found");
return Command::none();
@ -562,18 +550,6 @@ impl cosmic::Application for Audio {
cosmic::process::spawn(cmd);
}
},
Message::Wait => {
self.waiting = true;
return Command::perform(tokio::time::sleep(Duration::from_millis(20)), |_| {
cosmic::app::Message::App(Message::WaitDone)
});
}
Message::WaitDone => {
self.waiting = false;
}
Message::CursorLeft => {
self.waiting = true;
}
};
Command::none()
@ -585,15 +561,6 @@ impl cosmic::Application for Audio {
self.timeline
.as_subscription()
.map(|(_, now)| Message::Frame(now)),
listen_with(|e, _status| match e {
cosmic::iced::Event::Mouse(cosmic::iced::mouse::Event::CursorEntered) => {
Some(Message::Wait)
}
cosmic::iced::Event::Mouse(cosmic::iced::mouse::Event::CursorLeft) => {
Some(Message::CursorLeft)
}
_ => None,
}),
self.core.watch_config(Self::APP_ID).map(|u| {
for err in u.errors {
tracing::error!(?err, "Error watching config");