mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-16 07:04:29 +00:00
popover: Support vertical aligment
We already support horizontal alignment, and we should do the same for vertical alignment.
This commit is contained in:
parent
bc8d2add04
commit
c75a368bab
@ -246,14 +246,50 @@ move_to_rect (GtkPopover *popover)
|
||||
switch (priv->position)
|
||||
{
|
||||
case GTK_POS_LEFT:
|
||||
parent_anchor = GDK_GRAVITY_WEST;
|
||||
surface_anchor = GDK_GRAVITY_EAST;
|
||||
switch (gtk_widget_get_valign (GTK_WIDGET (popover)))
|
||||
{
|
||||
case GTK_ALIGN_START:
|
||||
parent_anchor = GDK_GRAVITY_NORTH_WEST;
|
||||
surface_anchor = GDK_GRAVITY_NORTH_EAST;
|
||||
break;
|
||||
|
||||
case GTK_ALIGN_END:
|
||||
parent_anchor = GDK_GRAVITY_SOUTH_WEST;
|
||||
surface_anchor = GDK_GRAVITY_SOUTH_EAST;
|
||||
break;
|
||||
|
||||
case GTK_ALIGN_FILL:
|
||||
case GTK_ALIGN_CENTER:
|
||||
case GTK_ALIGN_BASELINE:
|
||||
default:
|
||||
parent_anchor = GDK_GRAVITY_WEST;
|
||||
surface_anchor = GDK_GRAVITY_EAST;
|
||||
break;
|
||||
}
|
||||
anchor_hints = GDK_ANCHOR_FLIP_X | GDK_ANCHOR_SLIDE_Y;
|
||||
break;
|
||||
|
||||
case GTK_POS_RIGHT:
|
||||
parent_anchor = GDK_GRAVITY_EAST;
|
||||
surface_anchor = GDK_GRAVITY_WEST;
|
||||
switch (gtk_widget_get_valign (GTK_WIDGET (popover)))
|
||||
{
|
||||
case GTK_ALIGN_START:
|
||||
parent_anchor = GDK_GRAVITY_NORTH_EAST;
|
||||
surface_anchor = GDK_GRAVITY_NORTH_WEST;
|
||||
break;
|
||||
|
||||
case GTK_ALIGN_END:
|
||||
parent_anchor = GDK_GRAVITY_SOUTH_EAST;
|
||||
surface_anchor = GDK_GRAVITY_SOUTH_WEST;
|
||||
break;
|
||||
|
||||
case GTK_ALIGN_FILL:
|
||||
case GTK_ALIGN_CENTER:
|
||||
case GTK_ALIGN_BASELINE:
|
||||
default:
|
||||
parent_anchor = GDK_GRAVITY_EAST;
|
||||
surface_anchor = GDK_GRAVITY_WEST;
|
||||
break;
|
||||
}
|
||||
anchor_hints = GDK_ANCHOR_FLIP_X | GDK_ANCHOR_SLIDE_Y;
|
||||
break;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user