summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libs/gtkmm2ext/utils.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc
index 6f2a177372..6d9e47e80e 100644
--- a/libs/gtkmm2ext/utils.cc
+++ b/libs/gtkmm2ext/utils.cc
@@ -416,13 +416,13 @@ _position_menu_anchored (int& x, int& y, bool& push_in,
if (i != items.end() &&
y - offset >= monitor.get_y() &&
y - offset + menu_req.height <= monitor.get_y() + monitor.get_height()) {
- y -= offset; /* a) */
+ y += allocation.get_height() / 2 - i->size_request().height / 2 - offset; /* a) */
} else if (y + allocation.get_height() + menu_req.height <= monitor.get_y() + monitor.get_height()) {
y += allocation.get_height(); /* b) */
} else if ((y - menu_req.height) >= monitor.get_y()) {
y -= menu_req.height; /* c) */
} else if (i != items.end()) {
- y -= offset; /* d) */
+ y += allocation.get_height() / 2 - i->size_request().height / 2 - offset; /* d) */
} else if (monitor.get_height() - allocation.get_height() >= 2*(y - monitor.get_y())) {
y += allocation.get_height(); /* e), more space below */
} else {