[gnome-shell] ShellKeyringPrompt: Strip out mnemonics indicators from labels
- From: Stefan Walter <stefw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] ShellKeyringPrompt: Strip out mnemonics indicators from labels
- Date: Tue, 9 Jun 2015 09:45:57 +0000 (UTC)
commit 59a18c4eadb3be032208eaeada500eb45a685a12
Author: Watson Yuuma Sato <yuuma sato gmail com>
Date: Sun Jun 7 18:48:51 2015 -0300
ShellKeyringPrompt: Strip out mnemonics indicators from labels
Currently GNOME Shell doesn't support mnemonics and prompters may
send labels with it.
Remove the mnemonics indicator for now.
Signed-off-by: Stef Walter <stefw redhat com>
* Fixed style issue
https://bugzilla.gnome.org/show_bug.cgi?id=750465
src/shell-keyring-prompt.c | 34 +++++++++++++++++++++++++++++++---
1 files changed, 31 insertions(+), 3 deletions(-)
---
diff --git a/src/shell-keyring-prompt.c b/src/shell-keyring-prompt.c
index e07cd1e..85b4e00 100644
--- a/src/shell-keyring-prompt.c
+++ b/src/shell-keyring-prompt.c
@@ -111,6 +111,34 @@ shell_keyring_prompt_init (ShellKeyringPrompt *self)
}
+static gchar *
+remove_mnemonics (const GValue *value)
+{
+ const gchar mnemonic = '_';
+ gchar *stripped_label, *temp;
+ const gchar *label;
+
+ g_return_val_if_fail (value != NULL, NULL);
+ g_return_val_if_fail (G_VALUE_HOLDS_STRING (value), NULL);
+
+ label = g_value_get_string (value);
+ g_return_val_if_fail (label != NULL, NULL);
+
+ /* Stripped label will have the original label lenght at most */
+ stripped_label = temp = g_new (gchar, strlen(label) + 1);
+ g_assert (stripped_label != NULL);
+
+ while (*label != '\0')
+ {
+ if (*label == mnemonic)
+ label++;
+ *(temp++) = *(label++);
+ }
+ *temp = '\0';
+
+ return stripped_label;
+}
+
static void
shell_keyring_prompt_set_property (GObject *obj,
guint prop_id,
@@ -145,7 +173,7 @@ shell_keyring_prompt_set_property (GObject *obj,
break;
case PROP_CHOICE_LABEL:
g_free (self->choice_label);
- self->choice_label = g_value_dup_string (value);
+ self->choice_label = remove_mnemonics (value);
if (!self->choice_label)
self->choice_label = g_strdup ("");
g_object_notify (obj, "choice-label");
@@ -165,12 +193,12 @@ shell_keyring_prompt_set_property (GObject *obj,
break;
case PROP_CONTINUE_LABEL:
g_free (self->continue_label);
- self->continue_label = g_value_dup_string (value);
+ self->continue_label = remove_mnemonics (value);
g_object_notify (obj, "continue-label");
break;
case PROP_CANCEL_LABEL:
g_free (self->cancel_label);
- self->cancel_label = g_value_dup_string (value);
+ self->cancel_label = remove_mnemonics (value);
g_object_notify (obj, "cancel-label");
break;
case PROP_PASSWORD_ACTOR:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]