forked from AuroraMiddleware/gtk
gtkmenu: fix unnecessary scroll buttons
Don't change menu height if menu is out of monitor only by shadow width. https://bugzilla.gnome.org/show_bug.cgi?id=738321
This commit is contained in:
parent
264cab2b52
commit
bdaef1f88d
@ -3339,6 +3339,7 @@ gtk_menu_get_preferred_height_for_width (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GdkScreen *screen = gtk_widget_get_screen (priv->toplevel);
|
GdkScreen *screen = gtk_widget_get_screen (priv->toplevel);
|
||||||
GdkRectangle monitor;
|
GdkRectangle monitor;
|
||||||
|
GtkBorder border;
|
||||||
|
|
||||||
gdk_screen_get_monitor_workarea (screen, priv->monitor_num, &monitor);
|
gdk_screen_get_monitor_workarea (screen, priv->monitor_num, &monitor);
|
||||||
|
|
||||||
@ -3348,10 +3349,12 @@ gtk_menu_get_preferred_height_for_width (GtkWidget *widget,
|
|||||||
if (priv->position_y + nat_height > monitor.y + monitor.height)
|
if (priv->position_y + nat_height > monitor.y + monitor.height)
|
||||||
nat_height = monitor.y + monitor.height - priv->position_y;
|
nat_height = monitor.y + monitor.height - priv->position_y;
|
||||||
|
|
||||||
if (priv->position_y < monitor.y)
|
_gtk_window_get_shadow_width (GTK_WINDOW (priv->toplevel), &border);
|
||||||
|
|
||||||
|
if (priv->position_y + border.top < monitor.y)
|
||||||
{
|
{
|
||||||
min_height -= monitor.y - priv->position_y;
|
min_height -= monitor.y - (priv->position_y + border.top);
|
||||||
nat_height -= monitor.y - priv->position_y;
|
nat_height -= monitor.y - (priv->position_y + border.top);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user