aboutsummaryrefslogtreecommitdiff
path: root/src/backend-dbus/actions.c
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2018-03-25 23:49:56 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2018-03-25 23:49:56 +0200
commit771925076fe7695e198b4c4279707ca4b028cebf (patch)
treeca10422e8fd7c4f22ed6c52e4457110540554b4d /src/backend-dbus/actions.c
parentc00d3d13b07ed6fa60ac975c2e633e2e5a3cbee3 (diff)
downloadayatana-indicator-session-771925076fe7695e198b4c4279707ca4b028cebf.tar.gz
ayatana-indicator-session-771925076fe7695e198b4c4279707ca4b028cebf.tar.bz2
ayatana-indicator-session-771925076fe7695e198b4c4279707ca4b028cebf.zip
Add 'Report a bug...' item to the session menu.
Diffstat (limited to 'src/backend-dbus/actions.c')
-rw-r--r--src/backend-dbus/actions.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/backend-dbus/actions.c b/src/backend-dbus/actions.c
index db7d3d5..d8c5f62 100644
--- a/src/backend-dbus/actions.c
+++ b/src/backend-dbus/actions.c
@@ -35,6 +35,11 @@
#include "../utils.h"
+/* some prototypes... */
+static char * find_browser ();
+static void run_outside_app (const char * cmd);
+static gboolean zenity_warning (const char * icon_name, const char * title, const char * text);
+
enum
{
END_SESSION_TYPE_LOGOUT = 0,
@@ -772,6 +777,33 @@ zenity_question (IndicatorSessionActionsDbus * self,
return confirmed;
}
+static void
+my_bug (IndicatorSessionActions * self G_GNUC_UNUSED)
+{
+ const char * bts_url = get_distro_bts_url();
+ static char * browser = NULL;
+
+#ifdef HAS_URLDISPATCHER
+ if (g_getenv ("MIR_SOCKET") != NULL)
+ url_dispatch_send(bts_url, NULL, NULL);
+ else
+#endif
+ {
+
+ if (browser == NULL)
+ browser = find_browser();
+
+ if (browser != NULL)
+ run_outside_app(g_strdup_printf("%s '%s'", browser, bts_url));
+
+ else
+ zenity_warning ("dialog-warning",
+ _("Warning"),
+ _("The operating system's bug tracker needs to be accessed with\na web browser.\n\nThe Ayatana Session Indicator could not find any web\nbrowser on your computer."));
+
+ }
+}
+
static gboolean
zenity_warning (const char * icon_name,
const char * title,
@@ -1296,6 +1328,7 @@ indicator_session_actions_dbus_class_init (IndicatorSessionActionsDbusClass * kl
actions_class->online_accounts = my_online_accounts;
actions_class->desktop_help = my_desktop_help;
actions_class->distro_help = my_distro_help;
+ actions_class->bug = my_bug;
actions_class->about = my_about;
actions_class->switch_to_screensaver = my_switch_to_screensaver;
actions_class->switch_to_greeter = my_switch_to_greeter;