]> git.eshelyaron.com Git - emacs.git/commitdiff
(xg_get_font_name): Cast w to GTK_FONT_SELECTION_DIALOG.
authorJan Djärv <jan.h.d@swipnet.se>
Thu, 24 Jul 2008 08:36:26 +0000 (08:36 +0000)
committerJan Djärv <jan.h.d@swipnet.se>
Thu, 24 Jul 2008 08:36:26 +0000 (08:36 +0000)
(menu_nav_ended): Remove.
(create_menus): Remove signal connect for menu_nav_ended.
(xg_update_menubar): Also take deactivate_cb as parameter, pass it to
create_menus.
(xg_modify_menubar_widgets): Pass deactivate_cb to xg_update_menubar.

src/ChangeLog
src/gtkutil.c

index 005540b4a7946c8c2111cc832d95cf147edb4c2b..c36d94d1d24f16b77167e90ba38b0ae7bccfc7cc 100644 (file)
@@ -1,3 +1,12 @@
+2008-07-24  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (xg_get_font_name): Cast w to GTK_FONT_SELECTION_DIALOG.
+       (menu_nav_ended): Remove.
+       (create_menus): Remove signal connect for menu_nav_ended.
+       (xg_update_menubar): Also take deactivate_cb as parameter, pass it to
+       create_menus.
+       (xg_modify_menubar_widgets): Pass deactivate_cb to xg_update_menubar.
+
 2008-07-23  Jason Rumney  <jasonr@gnu.org>
 
         * w32font.c (w32_enumfont_pattern_entity): Return height consistent
index 578e9737f397f55ac028efddbadcc49d6b94cb19..7e2a05eed89434507b9cbc7e53d3a2f47f342d87 100644 (file)
@@ -1648,7 +1648,8 @@ xg_get_font_name (f, default_name)
 
   w = gtk_font_selection_dialog_new ("Pick a font");
   if (default_name)
-    gtk_font_selection_dialog_set_font_name (w, default_name);
+    gtk_font_selection_dialog_set_font_name (GTK_FONT_SELECTION_DIALOG (w),
+                                             default_name);
 
   xg_set_screen (w, f);
   gtk_widget_set_name (w, "emacs-fontdialog");
@@ -1692,9 +1693,9 @@ xg_get_font_name (f, default_name)
                        Menu functions.
  ***********************************************************************/
 
-/* The name of menu items that can be used for citomization.  Since GTK
+/* The name of menu items that can be used for customization.  Since GTK
    RC files are very crude and primitive, we have to set this on all
-   menu item names so a user can easily cutomize menu items.  */
+   menu item names so a user can easily customize menu items.  */
 
 #define MENU_ITEM_NAME "emacs-menuitem"
 
@@ -2138,34 +2139,6 @@ xg_create_one_menuitem (item, f, select_cb, highlight_cb, cl_data, group)
   return w;
 }
 
-/* Callback called when keyboard traversal (started by x-menu-bar-open) ends.
-   WMENU is the menu for which traversal has been done.  DATA points to the
-   frame for WMENU.  We must release grabs, some bad interaction between GTK
-   and Emacs makes the menus keep the grabs.  */
-
-static void
-menu_nav_ended (wmenu, data)
-     GtkMenuShell *wmenu;
-     gpointer data;
-{
-  FRAME_PTR f = (FRAME_PTR) data;
-
-  if (FRAME_X_OUTPUT (f)->menubar_widget)
-    {
-      GtkMenuShell *w = GTK_MENU_SHELL (FRAME_X_OUTPUT (f)->menubar_widget);
-      Display *dpy = FRAME_X_DISPLAY (f);
-
-      BLOCK_INPUT;
-      gtk_menu_shell_deactivate (w);
-      gtk_menu_shell_deselect (w);
-
-      XUngrabKeyboard (dpy, CurrentTime);
-      XUngrabPointer (dpy, CurrentTime);
-      UNBLOCK_INPUT;
-    }
-}
-
-
 static GtkWidget *create_menus P_ ((widget_value *, FRAME_PTR, GCallback,
                                    GCallback, GCallback, int, int, int,
                                    GtkWidget *, xg_menu_cb_data *, char *));
@@ -2231,12 +2204,6 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb,
       }
       else wmenu = gtk_menu_bar_new ();
 
-      /* Fix up grabs after keyboard traversal ends.  */
-      g_signal_connect (G_OBJECT (wmenu),
-                        "selection-done",
-                        G_CALLBACK (menu_nav_ended),
-                        f);
-
       /* Put cl_data on the top menu for easier access.  */
       cl_data = make_cl_data (cl_data, f, highlight_cb);
       g_object_set_data (G_OBJECT (wmenu), XG_FRAME_DATA, (gpointer)cl_data);
@@ -2456,7 +2423,7 @@ xg_destroy_widgets (list)
 
 static void
 xg_update_menubar (menubar, f, list, iter, pos, val,
-                   select_cb, highlight_cb, cl_data)
+                   select_cb, deactivate_cb, highlight_cb, cl_data)
      GtkWidget *menubar;
      FRAME_PTR f;
      GList **list;
@@ -2464,6 +2431,7 @@ xg_update_menubar (menubar, f, list, iter, pos, val,
      int pos;
      widget_value *val;
      GCallback select_cb;
+     GCallback deactivate_cb;
      GCallback highlight_cb;
      xg_menu_cb_data *cl_data;
 {
@@ -2481,7 +2449,7 @@ xg_update_menubar (menubar, f, list, iter, pos, val,
   else if (! iter && val)
     {
       /* Item(s) added.  Add all new items in one call.  */
-      create_menus (val, f, select_cb, 0, highlight_cb,
+      create_menus (val, f, select_cb, deactivate_cb, highlight_cb,
                     0, 1, 0, menubar, cl_data, 0);
 
       /* All updated.  */
@@ -2588,7 +2556,8 @@ xg_update_menubar (menubar, f, list, iter, pos, val,
           /* Create a possibly empty submenu for menu bar items, since some
              themes don't highlight items correctly without it. */
           GtkWidget *submenu = create_menus (NULL, f,
-                                             select_cb, NULL, highlight_cb,
+                                             select_cb, deactivate_cb,
+                                             highlight_cb,
                                              0, 0, 0, 0, cl_data, 0);
           gtk_widget_set_name (w, MENU_ITEM_NAME);
           gtk_menu_shell_insert (GTK_MENU_SHELL (menubar), w, pos);
@@ -2626,7 +2595,7 @@ xg_update_menubar (menubar, f, list, iter, pos, val,
 
   /* Update the rest of the menu bar.  */
   xg_update_menubar (menubar, f, list, iter, pos, val,
-                     select_cb, highlight_cb, cl_data);
+                     select_cb, deactivate_cb, highlight_cb, cl_data);
 }
 
 /* Update the menu item W so it corresponds to VAL.
@@ -2931,7 +2900,7 @@ xg_modify_menubar_widgets (menubar, f, val, deep_p,
                                                   XG_FRAME_DATA);
 
   xg_update_menubar (menubar, f, &list, list, 0, val->contents,
-                     select_cb, highlight_cb, cl_data);
+                     select_cb, deactivate_cb, highlight_cb, cl_data);
 
   if (deep_p)
     {