fix(ags): make popup notifs actually gone after being hovered
This commit is contained in:
parent
59544dc14c
commit
57c41f9d49
3 changed files with 26 additions and 22 deletions
|
@ -87,7 +87,10 @@ const NotificationIcon = notif => {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export default ({ notif, command = () => {} } = {}) => {
|
export default ({
|
||||||
|
notif,
|
||||||
|
command = () => {},
|
||||||
|
} = {}) => {
|
||||||
const BlockedApps = [
|
const BlockedApps = [
|
||||||
'Spotify',
|
'Spotify',
|
||||||
];
|
];
|
||||||
|
|
|
@ -76,12 +76,12 @@ export default ({
|
||||||
|
|
||||||
if (offset >= 0) {
|
if (offset >= 0) {
|
||||||
self.setStyle(`margin-left: ${Number(offset + startMargin)}px;
|
self.setStyle(`margin-left: ${Number(offset + startMargin)}px;
|
||||||
margin-right: -${Number(offset + startMargin)}px;`);
|
margin-right: -${Number(offset + startMargin)}px;`);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
offset = Math.abs(offset);
|
offset = Math.abs(offset);
|
||||||
self.setStyle(`margin-right: ${Number(offset + startMargin)}px;
|
self.setStyle(`margin-right: ${Number(offset + startMargin)}px;
|
||||||
margin-left: -${Number(offset + startMargin)}px;`);
|
margin-left: -${Number(offset + startMargin)}px;`);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.get_parent()._dragging = Math.abs(offset) > 10;
|
self.get_parent()._dragging = Math.abs(offset) > 10;
|
||||||
|
@ -93,15 +93,16 @@ export default ({
|
||||||
[gesture, self => {
|
[gesture, self => {
|
||||||
if (!self._ready) {
|
if (!self._ready) {
|
||||||
self.setStyle(`transition: margin 0.5s ease, opacity 0.5s ease;
|
self.setStyle(`transition: margin 0.5s ease, opacity 0.5s ease;
|
||||||
margin-left: -${Number(maxOffset + endMargin)}px;
|
margin-left: -${Number(maxOffset + endMargin)}px;
|
||||||
margin-right: ${Number(maxOffset + endMargin)}px;
|
margin-right: ${Number(maxOffset + endMargin)}px;
|
||||||
margin-bottom: 0px; margin-top: 0px; opacity: 0;`);
|
margin-bottom: 0px; margin-top: 0px; opacity: 0;`);
|
||||||
|
|
||||||
Utils.timeout(500, () => {
|
Utils.timeout(500, () => {
|
||||||
self.setStyle(`transition: margin 0.5s ease, opacity 0.5s ease;
|
self.setStyle(`transition: margin 0.5s ease, opacity 0.5s ease;
|
||||||
margin-left: ${startMargin}px;
|
margin-left: ${startMargin}px;
|
||||||
margin-right: ${startMargin}px;
|
margin-right: ${startMargin}px;
|
||||||
margin-bottom: unset; margin-top: unset; opacity: 1;`);
|
margin-bottom: unset; margin-top: unset;
|
||||||
|
opacity: 1;`);
|
||||||
});
|
});
|
||||||
Utils.timeout(1000, () => self._ready = true);
|
Utils.timeout(1000, () => self._ready = true);
|
||||||
return;
|
return;
|
||||||
|
@ -125,9 +126,10 @@ export default ({
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
self.setStyle(`transition: margin 0.5s ease, opacity 0.5s ease;
|
self.setStyle(`transition: margin 0.5s ease, opacity 0.5s ease;
|
||||||
margin-left: ${startMargin}px;
|
margin-left: ${startMargin}px;
|
||||||
margin-right: ${startMargin}px;
|
margin-right: ${startMargin}px;
|
||||||
margin-bottom: unset; margin-top: unset; opacity: 1;`);
|
margin-bottom: unset; margin-top: unset;
|
||||||
|
opacity: 1;`);
|
||||||
if (widget.window)
|
if (widget.window)
|
||||||
widget.window.set_cursor(Gdk.Cursor.new_from_name(display, 'grab'));
|
widget.window.set_cursor(Gdk.Cursor.new_from_name(display, 'grab'));
|
||||||
|
|
||||||
|
|
|
@ -12,18 +12,15 @@ const Popups = () => Box({
|
||||||
['map', new Map()],
|
['map', new Map()],
|
||||||
|
|
||||||
['dismiss', (box, id, force = false) => {
|
['dismiss', (box, id, force = false) => {
|
||||||
if (!id || !box._map.has(id) ||
|
if (!id || !box._map.has(id) || box._map.get(id)._hovered && !force)
|
||||||
box._map.get(id)._hovered && !force)
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
||||||
if (box._map.size - 1 === 0)
|
if (box._map.size - 1 === 0)
|
||||||
box.get_parent().reveal_child = false;
|
box.get_parent().reveal_child = false;
|
||||||
|
|
||||||
Utils.timeout(200, () => {
|
Utils.timeout(200, () => {
|
||||||
if (box._map.get(id)?.interval) {
|
if (box._map.get(id)?.interval) {
|
||||||
box._map.get(id).interval.destroy();
|
GLib.source_remove(box._map.get(id).interval);
|
||||||
box._map.get(id).interval = undefined;
|
box._map.get(id).interval = undefined;
|
||||||
}
|
}
|
||||||
box._map.get(id)?.destroy();
|
box._map.get(id)?.destroy();
|
||||||
|
@ -53,12 +50,14 @@ const Popups = () => Box({
|
||||||
});
|
});
|
||||||
|
|
||||||
box._map.get(id).interval = Utils.interval(4500, () => {
|
box._map.get(id).interval = Utils.interval(4500, () => {
|
||||||
if (!box._map.get(id)._hovered) {
|
const notif = box._map.get(id);
|
||||||
box._map.get(id).child.setStyle(box._map.get(id).child._leftAnim1);
|
if (!notif._hovered) {
|
||||||
|
notif.child.setStyle(notif.child._leftAnim1);
|
||||||
|
|
||||||
if (box._map.get(id).interval) {
|
if (notif.interval) {
|
||||||
GLib.source_remove(box._map.get(id).interval);
|
Utils.timeout(500, () => notif.destroy());
|
||||||
box._map.get(id).interval = undefined;
|
GLib.source_remove(notif.interval);
|
||||||
|
notif.interval = undefined;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue