diff options
Diffstat (limited to 'src/gtkutil.c')
| -rw-r--r-- | src/gtkutil.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c index 65b67e3d241..140796a015e 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -2142,34 +2142,6 @@ xg_create_one_menuitem (item, f, select_cb, highlight_cb, cl_data, group) | |||
| 2142 | return w; | 2142 | return w; |
| 2143 | } | 2143 | } |
| 2144 | 2144 | ||
| 2145 | /* Callback called when keyboard traversal (started by x-menu-bar-open) ends. | ||
| 2146 | WMENU is the menu for which traversal has been done. DATA points to the | ||
| 2147 | frame for WMENU. We must release grabs, some bad interaction between GTK | ||
| 2148 | and Emacs makes the menus keep the grabs. */ | ||
| 2149 | |||
| 2150 | static void | ||
| 2151 | menu_nav_ended (wmenu, data) | ||
| 2152 | GtkMenuShell *wmenu; | ||
| 2153 | gpointer data; | ||
| 2154 | { | ||
| 2155 | FRAME_PTR f = (FRAME_PTR) data; | ||
| 2156 | |||
| 2157 | if (FRAME_X_OUTPUT (f)->menubar_widget) | ||
| 2158 | { | ||
| 2159 | GtkMenuShell *w = GTK_MENU_SHELL (FRAME_X_OUTPUT (f)->menubar_widget); | ||
| 2160 | Display *dpy = FRAME_X_DISPLAY (f); | ||
| 2161 | |||
| 2162 | BLOCK_INPUT; | ||
| 2163 | gtk_menu_shell_deactivate (w); | ||
| 2164 | gtk_menu_shell_deselect (w); | ||
| 2165 | |||
| 2166 | XUngrabKeyboard (dpy, CurrentTime); | ||
| 2167 | XUngrabPointer (dpy, CurrentTime); | ||
| 2168 | UNBLOCK_INPUT; | ||
| 2169 | } | ||
| 2170 | } | ||
| 2171 | |||
| 2172 | |||
| 2173 | static GtkWidget *create_menus P_ ((widget_value *, FRAME_PTR, GCallback, | 2145 | static GtkWidget *create_menus P_ ((widget_value *, FRAME_PTR, GCallback, |
| 2174 | GCallback, GCallback, int, int, int, | 2146 | GCallback, GCallback, int, int, int, |
| 2175 | GtkWidget *, xg_menu_cb_data *, char *)); | 2147 | GtkWidget *, xg_menu_cb_data *, char *)); |
| @@ -2235,12 +2207,6 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb, | |||
| 2235 | } | 2207 | } |
| 2236 | else wmenu = gtk_menu_bar_new (); | 2208 | else wmenu = gtk_menu_bar_new (); |
| 2237 | 2209 | ||
| 2238 | /* Fix up grabs after keyboard traversal ends. */ | ||
| 2239 | g_signal_connect (G_OBJECT (wmenu), | ||
| 2240 | "selection-done", | ||
| 2241 | G_CALLBACK (menu_nav_ended), | ||
| 2242 | f); | ||
| 2243 | |||
| 2244 | /* Put cl_data on the top menu for easier access. */ | 2210 | /* Put cl_data on the top menu for easier access. */ |
| 2245 | cl_data = make_cl_data (cl_data, f, highlight_cb); | 2211 | cl_data = make_cl_data (cl_data, f, highlight_cb); |
| 2246 | g_object_set_data (G_OBJECT (wmenu), XG_FRAME_DATA, (gpointer)cl_data); | 2212 | g_object_set_data (G_OBJECT (wmenu), XG_FRAME_DATA, (gpointer)cl_data); |