Commits on Source (43)
-
Marco Trevisan authored
We do them in the top callers, so that we don't have to try/catch everywhere.
6fa6ee27 -
Marco Trevisan authored
This was breaking the loading of custom icons with previous commit, because we ended up stopping loading of normal icons when a custom icon was about to be loaded.
cab49d33 -
Marco Trevisan authored
If an overlay icon is loading it must not cancel any operation for other icons, instead we should just proceed or we'd block the loading of all the icons. It's not worth adding another list to keep track of icons by their type because, we want loading any icon to stop the previously started operations, whether they're attention or normal ones, while overlay ones are so uncommon that we don't really care much if we require updating them multiple times.
139d2533 -
Marco Trevisan authored
Since we're recreating a cancellable for each icon request we should ensure that when starting an async operation we preserve using the same cancellable for all the reqeusts or we may eventually continue on an operation after that it has been originally cancelled (because the new cancellable is actually used).
ab4b1816 -
Marco Trevisan authored10a02554
-
Marco Trevisan authored
We're now overriding it in settings
80c36cef -
Marco Trevisan authoredd052f713
-
Marco Trevisan authoredab9df322
-
Marco Trevisan authored
In some cases we can't update the layouts promptly, so mark the menu ready only when it really is.
2991b2e9 -
Marco Trevisan authored
In some cases menu can change path or being removed, so try to track this case by keeping the menu populated only while the client is ready.
a1b61140 -
Marco Trevisan authored
For some properties (Status and Icons theme path) we get the changed value as the status argument, so in such case we don't have to perform further dbus calls but we can just emit the change promptly, or wait for next update if one is already pending. This is also fixing a nasty issue we had that was causing icons state not being updated when they were moving to passive just before removing the indicator from the bus. This is happening in electron apps that provide an option to toggle the indicator (such as ferdium): when turning it off the old indicator sends us a status change to passive and the object is immediately removed from the bus. This was problematic for us because we were trying to update the state again from an object that had been removed, leading to dbus errors. Closes: #348
31c491da -
Marco Trevisan authored
In some cases indicators may disappear and we don't need to keep track of them anymore, so let's just try to check if they're replying to our dbus calls after some changes, and if they don't we just destroy them.
d2416e80 -
Marco Trevisan authored
Be consistent so we can sure they always match.
5bd11b7c -
Marco Trevisan authored
Gjs does it already for us
8887af8b -
Marco Trevisan authored
Use indicator destroy signal as single point for removing items from our tracked indicators. And ensure that when an indicator is destroyed we notify it via dbus-signals.
1170f803 -
Marco Trevisan authored
In KDE applications we use the name watcher to monitor applications indicator presency, however we did not consider that in our logic properly. This fixes the case in which a Qt applications (i.e. Telegram) hides an indicator from settings. Before of this we used not to remove it, even though was not working anymore.
d093db15 -
Marco Trevisan authored9cc0a641
-
Marco Trevisan authored68c7bf91
-
Marco Trevisan authored
We should ensure that we have it, or just fail otherwise.
30e9712e -
Marco Trevisan authored
So we force reloading them
2329d3c1 -
Marco Trevisan authored9328609c
-
Marco Trevisan authored
We need to handle it at upper levels, not in an utility function
f5e22b4d -
Marco Trevisan authored
As per previous commits, if the properties checking fails we'd now switch to check-alive checks, that may lead the indicator to be destroyed if it doesn't reply anymore.
5b0f60cd -
Marco Trevisan authored
If the icon is not visible, tracking its menu items it's pointless and just consumes resources, so let's just remove all the items when hidden while set them back when visible again.
880f62be -
Marco Trevisan authoredfce207e3
-
Marco Trevisan authored4f9aeda5
-
Marco Trevisan authored
If the indicator is hidden, there's no need to do icon updates, we can just do them once we're back to business.
5f950a80 -
Marco Trevisan authored
-
Marco Trevisan authored
This ensures that we're going to destroy the actual icon all the times.
7ae1bdc5 -
Marco Trevisan authored
So we are consistent with tray icons too
cde55306 -
Marco Trevisan authored5f4baa48
-
Marco Trevisan authored68c17c4c
-
Marco Trevisan authored6a66941b
-
Marco Trevisan authored
In case logging is disabled for the extension or in general, there's no need to do C calls, as we can handle this way earlier in JS scope.
4aa8f035 -
Marco Trevisan authored
No need to have a global cancellable for this, as we need to track icon updates that may happen at the same time. We only want to stop icon updates that act on the same final icon
6854e387 -
Marco Trevisan authored
It may be legit to have null icons, but this is an issue only if due to an actual error, so filter them more.
b7bff609 -
Marco Trevisan authored657a6948
-
Marco Trevisan authored59809d1b
-
Marco Trevisan authored
When using brute force also try to use the actual service name if we can find it.
566f3c9c -
Marco Trevisan authored
When computing the unique ID we should also consider the service name, as that's used in some cases as unique-id. This fixes an issue that was causing us not to remove some indicators when disabling the extension, leading to a double-destroy.
eec48884 -
Marco Trevisan authoredb60005d1
-
Marco Trevisan authored
-
Jeremy Bicha authored5904dd07
This diff is collapsed.