summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2017-10-04 07:34:30 -0400
committerMatthias Clasen <mclasen@redhat.com>2017-10-04 07:35:45 -0400
commit899cfb3c50e013589540c59c57ba0dd3722255e7 (patch)
treea252bc7e81fd985abcea585d0d83f2aeb196942b
parent223a709403c7947758b0990fb3c2478d9a4a4704 (diff)
downloadgtk+-899cfb3c50e013589540c59c57ba0dd3722255e7.tar.gz
Fix several issues with resizing
Some of the border windows were not placed correctly. Patch by Jan Steffens.
-rw-r--r--gtk/gtkwindow.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index ffc841871f..a4ba098224 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -6855,7 +6855,7 @@ update_corner_windows (GtkWindow *window,
region, 0, 0);
cairo_region_destroy (region);
- gdk_window_hide (priv->border_window[GDK_WINDOW_EDGE_NORTH_EAST]);
+ gdk_window_show_unraised (priv->border_window[GDK_WINDOW_EDGE_NORTH_EAST]);
}
else
{
@@ -7065,13 +7065,13 @@ update_border_windows (GtkWindow *window)
if (resize_n)
{
- y += window_border.top;
+ y += window_border.top + handle_v;
h -= window_border.top + handle_v;
}
if (resize_w)
{
- x += window_border.left;
+ x += window_border.left + handle_h;
w -= window_border.left + handle_h;
}
@@ -7084,9 +7084,9 @@ update_border_windows (GtkWindow *window)
/* North */
if (resize_n)
{
- gdk_window_move_resize (priv->border_window[GDK_WINDOW_EDGE_SOUTH],
- x, window_border.top + height,
- w, border.bottom);
+ gdk_window_move_resize (priv->border_window[GDK_WINDOW_EDGE_NORTH],
+ x, window_border.top - border.top,
+ w, border.top);
gdk_window_show_unraised (priv->border_window[GDK_WINDOW_EDGE_NORTH]);
}
@@ -7096,7 +7096,7 @@ update_border_windows (GtkWindow *window)
}
/* South */
- if (resize_n)
+ if (resize_s)
{
gdk_window_move_resize (priv->border_window[GDK_WINDOW_EDGE_SOUTH],
x, window_border.top + height,
@@ -7109,13 +7109,6 @@ update_border_windows (GtkWindow *window)
gdk_window_hide (priv->border_window[GDK_WINDOW_EDGE_SOUTH]);
}
- /*
- * Horizontal edges
- */
-
- y = (resize_n || resize_s) ? window_border.top + handle_v : 0;
- h = (resize_n || resize_s) ? height - 2 * handle_v : height + window_border.top + window_border.bottom;
-
/* East */
if (resize_e)
{