fix the offsets used to keep the menus on screen

This commit is contained in:
Dana Jansens 2003-08-14 07:04:40 +00:00
parent 948c549d9d
commit d61edbe219

View file

@ -20,6 +20,8 @@ GList *menu_visible = NULL;
#define ENTRY_EVENTMASK (EnterWindowMask | LeaveWindowMask | \ #define ENTRY_EVENTMASK (EnterWindowMask | LeaveWindowMask | \
ButtonPressMask | ButtonReleaseMask) ButtonPressMask | ButtonReleaseMask)
void menu_control_show(ObMenu *self, int x, int y, ObClient *client);
static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, static void parse_menu(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node,
gpointer data) gpointer data)
{ {
@ -106,8 +108,6 @@ parse_menu_fail:
g_free(title); g_free(title);
} }
void menu_control_show(ObMenu *self, int x, int y, ObClient *client);
void menu_destroy_hash_key(ObMenu *menu) void menu_destroy_hash_key(ObMenu *menu)
{ {
g_free(menu); g_free(menu);
@ -523,11 +523,12 @@ void menu_control_mouseover(ObMenuEntry *self, gboolean enter)
a = screen_physical_area_monitor(self->parent->xin_area); a = screen_physical_area_monitor(self->parent->xin_area);
if (self->submenu->size.width + x >= a->x + a->width) { if (self->submenu->size.width + x + ob_rr_theme->bwidth >=
a->x + a->width) {
int newparentx = a->x + a->width int newparentx = a->x + a->width
- self->submenu->size.width - self->submenu->size.width
- self->parent->size.width - self->parent->size.width
- ob_rr_theme->bwidth - ob_rr_theme->bwidth * 2
- ob_rr_theme->menu_overlap; - ob_rr_theme->menu_overlap;
x = a->x + a->width - self->submenu->size.width x = a->x + a->width - self->submenu->size.width
@ -540,7 +541,8 @@ void menu_control_mouseover(ObMenuEntry *self, gboolean enter)
} }
menu_show_full(self->submenu, x, menu_show_full(self->submenu, x,
self->parent->location.y + self->y, self->parent->location.y + self->y +
self->parent->title_h + ob_rr_theme->bwidth,
self->parent->client); self->parent->client);
} }
self->hilite = TRUE; self->hilite = TRUE;