1
0
Fork 0
mirror of https://github.com/Zedfrigg/ironbar.git synced 2025-08-17 23:01:04 +02:00

fix(popup): re-position on resize due to content change

This commit is contained in:
Jake Stanger 2024-02-18 14:55:29 +00:00
parent a55ba8c523
commit a10466e7e9
No known key found for this signature in database
GPG key ID: C51FC8F9CB0BEA61
4 changed files with 102 additions and 67 deletions

View file

@ -167,13 +167,13 @@ impl Ipc {
match bar {
Some(bar) => {
let popup = bar.popup();
let current_widget = popup.borrow().current_widget();
let current_widget = popup.current_widget();
popup.borrow_mut().hide();
popup.hide();
let data = popup
.borrow()
.cache
.borrow()
.iter()
.find(|(_, value)| value.name == name)
.map(|(id, value)| (*id, value.content.buttons.first().cloned()));
@ -181,7 +181,6 @@ impl Ipc {
match data {
Some((id, Some(button))) if current_widget != Some(id) => {
let button_id = button.popup_id();
let mut popup = popup.borrow_mut();
if popup.is_visible() {
popup.hide();
@ -207,11 +206,11 @@ impl Ipc {
let popup = bar.popup();
// only one popup per bar, so hide if open for another widget
popup.borrow_mut().hide();
popup.hide();
let data = popup
.borrow()
.cache
.borrow()
.iter()
.find(|(_, value)| value.name == name)
.map(|(id, value)| (*id, value.content.buttons.first().cloned()));
@ -219,7 +218,7 @@ impl Ipc {
match data {
Some((id, Some(button))) => {
let button_id = button.popup_id();
popup.borrow_mut().show(id, button_id);
popup.show(id, button_id);
Response::Ok
}
@ -236,7 +235,7 @@ impl Ipc {
match bar {
Some(bar) => {
let popup = bar.popup();
popup.borrow_mut().hide();
popup.hide();
Response::Ok
}