Merge lp:~ted/libdbusmenu/double-underscore into lp:libdbusmenu/0.6

Proposed by Ted Gould
Status: Merged
Approved by: Charles Kerr
Approved revision: 405
Merged at revision: 413
Proposed branch: lp:~ted/libdbusmenu/double-underscore
Merge into: lp:libdbusmenu/0.6
Diff against target: 53 lines (+28/-1)
1 file modified
libdbusmenu-gtk/genericmenuitem.c (+28/-1)
To merge this branch: bzr merge lp:~ted/libdbusmenu/double-underscore
Reviewer Review Type Date Requested Status
Charles Kerr (community) Approve
Review via email: mp+101650@code.launchpad.net

Description of the change

Fixes the double underscore issue introduced earlier.

To post a comment you must log in.
Revision history for this message
Charles Kerr (charlesk) wrote :

Looks good.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'libdbusmenu-gtk/genericmenuitem.c'
--- libdbusmenu-gtk/genericmenuitem.c 2012-04-09 17:07:32 +0000
+++ libdbusmenu-gtk/genericmenuitem.c 2012-04-11 21:35:21 +0000
@@ -241,6 +241,27 @@
241 return FALSE;241 return FALSE;
242}242}
243243
244/* Sanitize the label by removing "__" meaning "_" */
245gchar *
246sanitize_label (const gchar * in_label)
247{
248 static GRegex * underscore_regex = NULL;
249
250 g_return_val_if_fail(in_label != NULL, NULL);
251
252 if (underscore_regex == NULL) {
253 underscore_regex = g_regex_new("__", 0, 0, NULL);
254 }
255
256 return g_regex_replace_literal(underscore_regex,
257 in_label,
258 -1, /* length */
259 0, /* start */
260 "_", /* replacement */
261 0, /* flags */
262 NULL); /* error */
263}
264
244/* Set the label on the item */265/* Set the label on the item */
245static void266static void
246set_label (GtkMenuItem * menu_item, const gchar * in_label)267set_label (GtkMenuItem * menu_item, const gchar * in_label)
@@ -319,6 +340,10 @@
319 gtk_label_set_use_underline(GTK_LABEL(labelw), TRUE);340 gtk_label_set_use_underline(GTK_LABEL(labelw), TRUE);
320 gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(labelw), GTK_WIDGET(menu_item));341 gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(labelw), GTK_WIDGET(menu_item));
321 gtk_label_set_markup_with_mnemonic(labelw, local_label);342 gtk_label_set_markup_with_mnemonic(labelw, local_label);
343 } else {
344 gchar * sanitized = sanitize_label(local_label);
345 gtk_label_set_markup(labelw, sanitized);
346 g_free(sanitized);
322 }347 }
323348
324 gtk_widget_show(GTK_WIDGET(labelw));349 gtk_widget_show(GTK_WIDGET(labelw));
@@ -343,7 +368,9 @@
343 gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(labelw), GTK_WIDGET(menu_item));368 gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(labelw), GTK_WIDGET(menu_item));
344 gtk_label_set_markup_with_mnemonic(labelw, local_label);369 gtk_label_set_markup_with_mnemonic(labelw, local_label);
345 } else {370 } else {
346 gtk_label_set_markup(labelw, local_label);371 gchar * sanitized = sanitize_label(local_label);
372 gtk_label_set_markup(labelw, sanitized);
373 g_free(sanitized);
347 }374 }
348 }375 }
349 }376 }

Subscribers

People subscribed via source and target branches

to all changes: