}
static void menu_frame_place_topmenu(ObMenuFrame *self, GravityPoint *pos,
- gint *x, gint *y, gint monitor)
+ gint *x, gint *y, gint monitor,
+ gboolean user_positioned)
{
gint dx, dy;
screen_apply_gravity_point(pos, x, y, screen_physical_area_monitor(monitor),
self->area.width, self->area.height);
+ if (user_positioned)
+ return;
+
if (config_menu_middle) {
*x -= self->area.width / 2;
}
gboolean menu_frame_show_topmenu(ObMenuFrame *self, GravityPoint pos,
- gint monitor, gboolean mouse)
+ gint monitor, gboolean mouse,
+ gboolean user_positioned)
{
gint px, py;
gint x, y;
y = pos.y.pos;
self->menu->place_func(self, &x, &y, mouse, self->menu->data);
} else {
- menu_frame_place_topmenu(self, &pos, &x, &y, monitor);
+ menu_frame_place_topmenu(self, &pos, &x, &y, monitor,
+ !mouse && user_positioned);
}
menu_frame_move(self, x, y);