← Back to team overview

dx-packages team mailing list archive

[Bug 1302852] Re: Does not work in non-Unity DEs/Xsessions

 

the code doesn't really assume that the Unity prompt is available

"      if ((prompt == PROMPT_NONE) && p && p->end_session_dialog)
        {
          GDBusProxy * proxy = G_DBUS_PROXY (p->end_session_dialog);
          char * name = g_dbus_proxy_get_name_owner (proxy);
          if (name != NULL)
            prompt = PROMPT_WITH_UNITY;
          g_free (name);
        }

      /* can we use zenity? */
      if ((prompt == PROMPT_NONE) && p && p->zenity)
        prompt = PROMPT_WITH_ZENITY;"

name should be null if unity is not active (is not on the bus) and it
should hit the second case and go with zenity...

-- 
You received this bug notification because you are a member of DX
Packages, which is subscribed to indicator-session in Ubuntu.
Matching subscriptions: dx-packages
https://bugs.launchpad.net/bugs/1302852

Title:
  Does not work in non-Unity DEs/Xsessions

Status in indicator-session package in Ubuntu:
  Confirmed

Bug description:
  Clicking any of the actions that require a prompt - shutdown, restart, etc. - in a non-Unity X session do not work. This seems to be caused by prompt selection code in https://bazaar.launchpad.net/~indicator-applet-developers/indicator-session/trunk.14.04/view/head:/src/backend-dbus/actions.c#L94 - it always assumes  that Unity prompt is available even if it, in fact, is not. 
  Checking for availability of Zenity prompt first is reported to fix this.

  For a proper solution the code responsible for detecting Unity prompt availability should be improved. Right now it seems to be simply checking if it can access D-bus. I assume the prompt is invoked via a D-bus call so I've investigated checking for name presence on the bus, but that can potentially be slow since it has a manually-set timeout. 
  Checking the XDG_CURRENT_DESKTOP variable and only showing the Unity prompt if it's set to "Unity" sounds like a better idea to me, but I'm not sure if the variable is set on Ubuntu Touch at all.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/indicator-session/+bug/1302852/+subscriptions