keyboard accelerators for both front ends.
[xboard.git] / gtk / xoptions.c
index defdfa4..5b4867c 100644 (file)
@@ -428,6 +428,14 @@ CreateMenuPopup (Option *opt, int n, int def)
          } else
            entry = gtk_menu_item_new_with_label(msg);
          gtk_signal_connect_object (GTK_OBJECT (entry), "activate", GTK_SIGNAL_FUNC(MenuSelect), (gpointer) (intptr_t) ((n<<16)+i));
+         if(mb[i].accel) {
+           guint accelerator_key;
+           GdkModifierType accelerator_mods;
+
+           gtk_accelerator_parse(mb[i].accel, &accelerator_key, &accelerator_mods);
+           gtk_widget_add_accelerator (GTK_WIDGET(entry), "activate",GtkAccelerators,
+                                       accelerator_key, accelerator_mods, GTK_ACCEL_VISIBLE);
+         };
          gtk_widget_show(entry);
        } else entry = gtk_separator_menu_item_new();
        gtk_menu_append(GTK_MENU (menu), entry);
@@ -555,7 +563,7 @@ MemoEvent(GtkWidget *widget, GdkEvent *event, gpointer gdata)
     GtkTextIter start, end;
     String val = NULL;
     gboolean res;
-    gint index, x, y;
+    gint index = 0, x, y;
 
     switch(event->type) { // figure out what's up
        case GDK_MOTION_NOTIFY:
@@ -1071,7 +1079,7 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
     GtkWidget *box;
     GtkWidget *checkbutton;
     GtkWidget *entry;
-    GtkWidget *oldHbox, *hbox = NULL;
+    GtkWidget *oldHbox = NULL, *hbox = NULL;
     GtkWidget *pane = NULL;
     GtkWidget *button;
     GtkWidget *table;
@@ -1086,10 +1094,10 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
     GtkWidget *list;
     GtkWidget *graph;
     GtkWidget *menuButton;
-    GtkWidget *menuBar;
+    GtkWidget *menuBar = NULL;
     GtkWidget *menu;
 
-    int i, j, arraysize, left, top, height=999, width=1, boxStart, breakType = 0, r;
+    int i, j, arraysize, left, top, height=999, width=1, boxStart=0, breakType = 0, r;
     char def[MSG_SIZ], *msg, engineDlg = (currentCps != NULL && dlgNr != BrowserDlg);
 
     if(dlgNr < PromoDlg && shellUp[dlgNr]) return 0; // already up