fix the offsets used to keep the menus on screen
This commit is contained in:
parent
948c549d9d
commit
d61edbe219
1 changed files with 7 additions and 5 deletions
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue