fix(app-tray): overflow popup active list calculation
This commit is contained in:
parent
5587877e74
commit
ba20b1268d
1 changed files with 36 additions and 34 deletions
|
|
@ -2015,44 +2015,46 @@ impl cosmic::Application for CosmicAppList {
|
||||||
let focused_item = self.currently_active_toplevel();
|
let focused_item = self.currently_active_toplevel();
|
||||||
let dot_radius = theme.cosmic().radius_xs();
|
let dot_radius = theme.cosmic().radius_xs();
|
||||||
// show the overflow popup for active list
|
// show the overflow popup for active list
|
||||||
let active: Vec<_> =
|
let active: Vec<_> = self
|
||||||
self.active_list[..active_popup_cutoff.map_or(self.active_list.len(), |n| {
|
.active_list
|
||||||
|
.iter()
|
||||||
|
.rev()
|
||||||
|
.take(active_popup_cutoff.map_or(self.active_list.len(), |n| {
|
||||||
if n < self.active_list.len() {
|
if n < self.active_list.len() {
|
||||||
n.saturating_sub(1)
|
self.active_list.len() - n + 1
|
||||||
} else {
|
} else {
|
||||||
n - 1
|
0
|
||||||
}
|
}
|
||||||
})]
|
}))
|
||||||
.iter()
|
.map(|dock_item| {
|
||||||
.map(|dock_item| {
|
self.core
|
||||||
self.core
|
.applet
|
||||||
.applet
|
.applet_tooltip(
|
||||||
.applet_tooltip(
|
dock_item.as_icon(
|
||||||
dock_item.as_icon(
|
&self.core.applet,
|
||||||
&self.core.applet,
|
self.rectangle_tracker.as_ref(),
|
||||||
self.rectangle_tracker.as_ref(),
|
self.popup.is_none(),
|
||||||
self.popup.is_none(),
|
self.config.enable_drag_source,
|
||||||
self.config.enable_drag_source,
|
self.gpus.as_deref(),
|
||||||
self.gpus.as_deref(),
|
|
||||||
dock_item
|
|
||||||
.toplevels
|
|
||||||
.iter()
|
|
||||||
.any(|y| focused_item.contains(&y.0.foreign_toplevel)),
|
|
||||||
dot_radius,
|
|
||||||
self.core.main_window_id().unwrap(),
|
|
||||||
),
|
|
||||||
dock_item
|
dock_item
|
||||||
.desktop_info
|
.toplevels
|
||||||
.full_name(&self.locales)
|
.iter()
|
||||||
.unwrap_or_default()
|
.any(|y| focused_item.contains(&y.0.foreign_toplevel)),
|
||||||
.into_owned(),
|
dot_radius,
|
||||||
self.popup.is_some(),
|
self.core.main_window_id().unwrap(),
|
||||||
Message::Surface,
|
),
|
||||||
None,
|
dock_item
|
||||||
)
|
.desktop_info
|
||||||
.into()
|
.full_name(&self.locales)
|
||||||
})
|
.unwrap_or_default()
|
||||||
.collect();
|
.into_owned(),
|
||||||
|
self.popup.is_some(),
|
||||||
|
Message::Surface,
|
||||||
|
Some(id),
|
||||||
|
)
|
||||||
|
.into()
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
let content = match &self.core.applet.anchor {
|
let content = match &self.core.applet.anchor {
|
||||||
PanelAnchor::Left | PanelAnchor::Right => container(
|
PanelAnchor::Left | PanelAnchor::Right => container(
|
||||||
Column::with_children(active)
|
Column::with_children(active)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue