status-area: Add theme_path to IconUpdate
This commit is contained in:
parent
e7e275abf7
commit
9b979ccf74
1 changed files with 7 additions and 0 deletions
|
|
@ -4,6 +4,7 @@
|
||||||
use cosmic::iced::{self, Subscription};
|
use cosmic::iced::{self, Subscription};
|
||||||
use futures::{FutureExt, StreamExt};
|
use futures::{FutureExt, StreamExt};
|
||||||
use rustc_hash::FxHashMap;
|
use rustc_hash::FxHashMap;
|
||||||
|
use std::path::PathBuf;
|
||||||
use zbus::zvariant::{self, OwnedValue};
|
use zbus::zvariant::{self, OwnedValue};
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
|
|
@ -24,6 +25,7 @@ pub struct Icon {
|
||||||
pub struct IconUpdate {
|
pub struct IconUpdate {
|
||||||
pub name: Option<String>,
|
pub name: Option<String>,
|
||||||
pub pixmap: Option<Vec<Icon>>,
|
pub pixmap: Option<Vec<Icon>>,
|
||||||
|
pub theme_path: Option<PathBuf>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl StatusNotifierItem {
|
impl StatusNotifierItem {
|
||||||
|
|
@ -96,9 +98,11 @@ impl StatusNotifierItem {
|
||||||
async fn icon_events(item_proxy: StatusNotifierItemProxy<'static>) -> IconUpdate {
|
async fn icon_events(item_proxy: StatusNotifierItemProxy<'static>) -> IconUpdate {
|
||||||
let icon_name = item_proxy.icon_name().await;
|
let icon_name = item_proxy.icon_name().await;
|
||||||
let icon_pixmap = item_proxy.icon_pixmap().await;
|
let icon_pixmap = item_proxy.icon_pixmap().await;
|
||||||
|
let icon_theme_path = item_proxy.icon_theme_path().await.map(PathBuf::from);
|
||||||
IconUpdate {
|
IconUpdate {
|
||||||
name: icon_name.ok(),
|
name: icon_name.ok(),
|
||||||
pixmap: icon_pixmap.ok(),
|
pixmap: icon_pixmap.ok(),
|
||||||
|
theme_path: icon_theme_path.ok().filter(|x| !x.as_os_str().is_empty()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -136,6 +140,9 @@ pub trait StatusNotifierItem {
|
||||||
#[zbus(property)]
|
#[zbus(property)]
|
||||||
fn icon_name(&self) -> zbus::Result<String>;
|
fn icon_name(&self) -> zbus::Result<String>;
|
||||||
|
|
||||||
|
#[zbus(property)]
|
||||||
|
fn icon_theme_path(&self) -> zbus::Result<String>;
|
||||||
|
|
||||||
// https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/Icons
|
// https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/Icons
|
||||||
#[zbus(property)]
|
#[zbus(property)]
|
||||||
fn icon_pixmap(&self) -> zbus::Result<Vec<Icon>>;
|
fn icon_pixmap(&self) -> zbus::Result<Vec<Icon>>;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue