|
|
@ -58,6 +58,7 @@ namespace Avalonia.FreeDesktop |
|
|
_statusNotifierItemDbusObj = new StatusNotifierItemDbusObj(_connection, dbusMenuPath); |
|
|
_statusNotifierItemDbusObj = new StatusNotifierItemDbusObj(_connection, dbusMenuPath); |
|
|
_pathHandler.Add(_statusNotifierItemDbusObj); |
|
|
_pathHandler.Add(_statusNotifierItemDbusObj); |
|
|
_connection.AddMethodHandler(_pathHandler); |
|
|
_connection.AddMethodHandler(_pathHandler); |
|
|
|
|
|
_statusNotifierItemDbusObj.ActivationDelegate += () => OnClicked?.Invoke(); |
|
|
|
|
|
|
|
|
WatchAsync(); |
|
|
WatchAsync(); |
|
|
} |
|
|
} |
|
|
@ -112,13 +113,19 @@ namespace Avalonia.FreeDesktop |
|
|
#endif
|
|
|
#endif
|
|
|
var tid = s_trayIconInstanceId++; |
|
|
var tid = s_trayIconInstanceId++; |
|
|
|
|
|
|
|
|
|
|
|
// make sure not to add the path handle and connection method handler twice
|
|
|
|
|
|
if (_statusNotifierItemDbusObj!.PathHandler is null) |
|
|
|
|
|
_pathHandler.Add(_statusNotifierItemDbusObj!); |
|
|
|
|
|
|
|
|
|
|
|
_connection.RemoveMethodHandler(_pathHandler.Path); |
|
|
|
|
|
_connection.AddMethodHandler(_pathHandler); |
|
|
|
|
|
|
|
|
_sysTrayServiceName = FormattableString.Invariant($"org.kde.StatusNotifierItem-{pid}-{tid}"); |
|
|
_sysTrayServiceName = FormattableString.Invariant($"org.kde.StatusNotifierItem-{pid}-{tid}"); |
|
|
await _dBus!.RequestNameAsync(_sysTrayServiceName, 0); |
|
|
await _dBus!.RequestNameAsync(_sysTrayServiceName, 0); |
|
|
await _statusNotifierWatcher.RegisterStatusNotifierItemAsync(_sysTrayServiceName); |
|
|
await _statusNotifierWatcher.RegisterStatusNotifierItemAsync(_sysTrayServiceName); |
|
|
|
|
|
|
|
|
_statusNotifierItemDbusObj!.SetTitleAndTooltip(_tooltipText); |
|
|
_statusNotifierItemDbusObj!.SetTitleAndTooltip(_tooltipText); |
|
|
_statusNotifierItemDbusObj.SetIcon(_icon); |
|
|
_statusNotifierItemDbusObj.SetIcon(_icon); |
|
|
_statusNotifierItemDbusObj.ActivationDelegate += OnClicked; |
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
private void DestroyTrayIcon() |
|
|
private void DestroyTrayIcon() |
|
|
|