Originally Posted by
SkiesOfAzel
Theoretically yes , you probably have to hack the gtk menu class to do that though.
After taking a good, long look at the gtk source code, I found this function in gtklabel.c: gtk_label_set_text_with_mnemonic ()
Code:
gtk_label_set_text_with_mnemonic (GtkLabel *label, const gchar *str)
{
guint last_keyval;
g_return_if_fail (GTK_IS_LABEL (label));
g_return_if_fail (str != NULL);
last_keyval = label->mnemonic_keyval;
g_object_freeze_notify (G_OBJECT (label));
gtk_label_set_label_internal (label, g_strdup (str ? str : ""));
gtk_label_set_use_markup_internal (label, FALSE);
gtk_label_set_use_underline_internal (label, TRUE);
gtk_label_recalculate (label);
gtk_label_setup_mnemonic (label, last_keyval);
g_object_thaw_notify (G_OBJECT (label));
}
From the looks of it, we need to just make a slight modification that removes single-underlines from the 'str' variable, while making sure that double-underlines stay in tact. This needs to take place before the gtk_label_set_label_internal (), and then we can set gtk_label_set_use_underline_internal() to FALSE.
Is there anyone with enough c++ know-how to do this? After a bit of googling, I figured out how to take out single-underlines just fine, but I can't for the life of me figure out how to maintain double-underlines.
Bookmarks