diff --color -U 5 -r -Z -B gtk/gtkmenu.c gtk/gtkmenu.c --- src/gtk/gtkmenu.c 2018-01-31 18:37:18.000000000 +0100 +++ src/gtk/gtkmenu.c 2018-07-16 23:43:51.061469725 +0200 @@ -1393,10 +1393,17 @@ const GdkRectangle *final_rect, gboolean flipped_x, gboolean flipped_y, GtkMenu *menu) { + if (GTK_IS_MENU_ITEM (menu->priv->widget) && GTK_IS_MENU_BAR (gtk_widget_get_parent (menu->priv->widget)) + && flipped_rect != NULL && final_rect != NULL && !flipped_y && flipped_rect->y > final_rect->y) + { + gint new_height = final_rect->height - (flipped_rect->y - final_rect->y); + if (new_height > 200) + gdk_window_move_resize (window, final_rect->x, flipped_rect->y, final_rect->width, new_height); + } g_signal_emit (menu, menu_signals[POPPED_UP], 0, flipped_rect, final_rect,