https://bugs.kde.org/show_bug.cgi?id=437988

            Bug ID: 437988
           Summary: KSNI to indicate when it couldn't register anything
           Product: frameworks-knotifications
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: kdelibs-b...@kde.org
          Reporter: sit...@kde.org
                CC: kdelibs-b...@kde.org
  Target Milestone: ---

KSNI can skip registering an indicator

            // prevent infinite recursion if the KDE platform plugin is loaded
            // but SNI is not available; see bug 350785
            qCWarning(LOG_KNOTIFICATIONS) << "env says KDE is running but SNI
unavailable -- check "
                                             "KDE_FULL_SESSION and
XDG_CURRENT_DESKTOP";

this ought to be communicated to the outside world one way or another through
API. currently an application must assume the SNI is registered, but that can
easily not be the case when one of the pieces of the SNI infrastructure are
broken. the application then may want to either very visually tell the user or
otherwise handle the situation. otherwise the application may seem broken when
indeed it's something behind the scenes

e.g. an app that has an option 'show tray icon' will not work correctly when
kded fails to start and consequently org.kde.StatusNotifierWatcher is missing

another example is drkonqi which relies on tray icons as primary visualization
mode. when the tray icons can't be registered or visualized that is important
information to drkonqi as it has to do fallback visualization.

specifically it might make sense to pick up drkonqi's code and monitor both
kded and plasmashell to figure out if the SNI can actually be visualized and
that expose that through generic enum
State{Unknown,NotRegistered,NotVisualized,Working,WorkingLegacy} API that
tracks the effective representation of the SNI. another less comprehensive
option would be to simply add a "failed to register" signal that is emitted
when the warning is printed

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to