forked from AuroraMiddleware/gtk
mir: set placement for menu-type windows
This commit is contained in:
parent
3914bcd678
commit
64753532ba
@ -427,6 +427,7 @@ create_spec (GdkWindow *window,
|
|||||||
{
|
{
|
||||||
MirWindowSpec *spec = NULL;
|
MirWindowSpec *spec = NULL;
|
||||||
GdkWindow *parent;
|
GdkWindow *parent;
|
||||||
|
MirRectangle rect;
|
||||||
|
|
||||||
spec = create_window_type_spec (impl->display,
|
spec = create_window_type_spec (impl->display,
|
||||||
impl->transient_for,
|
impl->transient_for,
|
||||||
@ -468,6 +469,41 @@ create_spec (GdkWindow *window,
|
|||||||
impl->rect_anchor_dx,
|
impl->rect_anchor_dx,
|
||||||
impl->rect_anchor_dy);
|
impl->rect_anchor_dy);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
switch (impl->type_hint)
|
||||||
|
{
|
||||||
|
case GDK_WINDOW_TYPE_HINT_MENU:
|
||||||
|
case GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU:
|
||||||
|
case GDK_WINDOW_TYPE_HINT_POPUP_MENU:
|
||||||
|
case GDK_WINDOW_TYPE_HINT_TOOLBAR:
|
||||||
|
case GDK_WINDOW_TYPE_HINT_COMBO:
|
||||||
|
case GDK_WINDOW_TYPE_HINT_DND:
|
||||||
|
case GDK_WINDOW_TYPE_HINT_TOOLTIP:
|
||||||
|
case GDK_WINDOW_TYPE_HINT_NOTIFICATION:
|
||||||
|
rect.left = impl->transient_x;
|
||||||
|
rect.top = impl->transient_y;
|
||||||
|
rect.width = 1;
|
||||||
|
rect.height = 1;
|
||||||
|
|
||||||
|
mir_window_spec_set_placement (spec,
|
||||||
|
&rect,
|
||||||
|
mir_placement_gravity_southeast,
|
||||||
|
mir_placement_gravity_northwest,
|
||||||
|
(mir_placement_hints_flip_x |
|
||||||
|
mir_placement_hints_flip_y |
|
||||||
|
mir_placement_hints_slide_x |
|
||||||
|
mir_placement_hints_slide_y |
|
||||||
|
mir_placement_hints_resize_x |
|
||||||
|
mir_placement_hints_resize_y),
|
||||||
|
-window->shadow_left,
|
||||||
|
-window->shadow_top);
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return spec;
|
return spec;
|
||||||
}
|
}
|
||||||
@ -1128,7 +1164,8 @@ _gdk_mir_window_set_final_rect (GdkWindow *window,
|
|||||||
gint unflipped_offset;
|
gint unflipped_offset;
|
||||||
gint flipped_offset;
|
gint flipped_offset;
|
||||||
|
|
||||||
g_return_if_fail (impl->has_rect);
|
if (!impl->has_rect)
|
||||||
|
return;
|
||||||
|
|
||||||
best_rect = get_unflipped_rect (&impl->rect,
|
best_rect = get_unflipped_rect (&impl->rect,
|
||||||
window->width,
|
window->width,
|
||||||
|
Loading…
Reference in New Issue
Block a user