summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile.am2
-rw-r--r--src/polkitmateauthenticator.c11
-rw-r--r--src/polkitmatelistener.c14
3 files changed, 22 insertions, 5 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index d1d8136..eb2fcfc 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,6 +30,7 @@ polkit_mate_authentication_agent_1_CPPFLAGS = \
polkit_mate_authentication_agent_1_CFLAGS = \
$(GTK_CFLAGS) \
+ $(GLIB_CFLAGS) \
$(POLKIT_AGENT_CFLAGS) \
$(POLKIT_GOBJECT_CFLAGS) \
$(WARN_CFLAGS) \
@@ -40,6 +41,7 @@ polkit_mate_authentication_agent_1_LDFLAGS = \
polkit_mate_authentication_agent_1_LDADD = \
$(GTK_LIBS) \
+ $(GLIB_LIBS) \
$(POLKIT_AGENT_LIBS) \
$(POLKIT_GOBJECT_LIBS) \
$(INTLLIBS)
diff --git a/src/polkitmateauthenticator.c b/src/polkitmateauthenticator.c
index e5fd4c4..93440cd 100644
--- a/src/polkitmateauthenticator.c
+++ b/src/polkitmateauthenticator.c
@@ -127,6 +127,7 @@ polkit_mate_authenticator_class_init (PolkitMateAuthenticatorClass *klass)
* PolkitMateAuthenticator::completed:
* @authenticator: A #PolkitMateAuthenticator.
* @gained_authorization: Whether the authorization was gained.
+ * @dismissed: Whether the dialog was dismissed.
*
* Emitted when the authentication is completed. The user is supposed to dispose of @authenticator
* upon receiving this signal.
@@ -137,9 +138,10 @@ polkit_mate_authenticator_class_init (PolkitMateAuthenticatorClass *klass)
0, /* class offset */
NULL, /* accumulator */
NULL, /* accumulator data */
- g_cclosure_marshal_VOID__BOOLEAN,
+ g_cclosure_marshal_generic,
G_TYPE_NONE,
- 1,
+ 2,
+ G_TYPE_BOOLEAN,
G_TYPE_BOOLEAN);
}
@@ -473,7 +475,10 @@ do_initiate (gpointer user_data)
}
out:
- g_signal_emit_by_name (authenticator, "completed", authenticator->gained_authorization);
+ g_signal_emit_by_name (authenticator,
+ "completed",
+ authenticator->gained_authorization,
+ authenticator->was_cancelled);
g_object_unref (authenticator);
diff --git a/src/polkitmatelistener.c b/src/polkitmatelistener.c
index 1b7c486..926fccd 100644
--- a/src/polkitmatelistener.c
+++ b/src/polkitmatelistener.c
@@ -23,6 +23,7 @@
#include "config.h"
#include <string.h>
+#include <glib/gi18n.h>
#include "polkitmatelistener.h"
#include "polkitmateauthenticator.h"
@@ -153,8 +154,9 @@ maybe_initiate_next_authenticator (PolkitMateListener *listener)
static void
authenticator_completed (PolkitMateAuthenticator *authenticator,
- gboolean gained_authorization,
- gpointer user_data)
+ gboolean gained_authorization,
+ gboolean dismissed,
+ gpointer user_data)
{
AuthData *data = user_data;
@@ -164,6 +166,14 @@ authenticator_completed (PolkitMateAuthenticator *authenticator,
g_object_unref (authenticator);
+ if (dismissed)
+ {
+ g_simple_async_result_set_error (data->simple,
+ POLKIT_ERROR,
+ POLKIT_ERROR_CANCELLED,
+ _("Authentication dialog was dismissed by the user"));
+ }
+
g_simple_async_result_complete (data->simple);
g_object_unref (data->simple);