Quote Originally Posted by SkiesOfAzel View Post
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.