From 07458155a290ea719dca70b876eb0922e755f7a3 Mon Sep 17 00:00:00 2001 From: "Julien \"_FrnchFrgg_\" RIVAUD" Date: Thu, 31 Oct 2019 11:34:36 +0100 Subject: [PATCH] Work around an initialization bug of GTK menus --- libs/gtkmm2ext/utils.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc index 8c03d20c33..64a8eacf05 100644 --- a/libs/gtkmm2ext/utils.cc +++ b/libs/gtkmm2ext/utils.cc @@ -317,7 +317,7 @@ Gtkmm2ext::pixbuf_from_string(const string& name, const Pango::FontDescription& static void _position_menu_anchored (int& x, int& y, bool& push_in, - const Gtk::Menu* const menu, + Gtk::Menu* const menu, Gtk::Widget* const anchor, const std::string& selected) { @@ -424,10 +424,13 @@ _position_menu_anchored (int& x, int& y, bool& push_in, y -= menu_req.height; /* c) */ } else if (i != items.end()) { y -= offset; /* d) */ + menu->gobj()->upper_arrow_visible = 1; /* work around a gtk bug for the first show */ } else if (monitor.get_height() - allocation.get_height() >= 2*(y - monitor.get_y())) { y += allocation.get_height(); /* e), more space below */ + menu->gobj()->upper_arrow_visible = 1; /* work around a gtk bug for the first show */ } else { y -= menu_req.height; /* e), more space above */ + menu->gobj()->upper_arrow_visible = 1; /* work around a gtk bug for the first show */ } push_in = true;