Date: Wednesday, October 4, 2017 @ 11:38:13 Author: heftig Revision: 306717
3.22.23-2 Added: gtk3/trunk/window-edges.diff Modified: gtk3/trunk/PKGBUILD -------------------+ PKGBUILD | 8 ++-- window-edges.diff | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 4 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2017-10-04 10:12:42 UTC (rev 306716) +++ PKGBUILD 2017-10-04 11:38:13 UTC (rev 306717) @@ -5,7 +5,7 @@ pkgbase=gtk3 pkgname=(gtk3 gtk-update-icon-cache gtk3-print-backends) pkgver=3.22.23 -pkgrel=1 +pkgrel=2 pkgdesc="GObject-based multi-platform GUI toolkit" arch=(i686 x86_64) url="http://www.gtk.org/" @@ -18,11 +18,13 @@ license=(LGPL) _commit=a5c24729413361bdd3427a8ab248519429583e22 # tags/3.22.23^0 source=("git+https://git.gnome.org/browse/gtk+#commit=$_commit" + window-edges.diff settings.ini gtk-query-immodules-3.0.hook gtk-update-icon-cache.hook gtk-update-icon-cache.script) sha256sums=('SKIP' + '12dc4b946f1d5fd4cf7056ed1fe6cdd19c12730568e608aec3b3a1316f27b843' '01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202' 'de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845' '496064a9dd6214bd58f689dd817dbdc4d7f17d42a8c9940a87018c3f829ce308' @@ -37,9 +39,7 @@ mkdir print-backends cd gtk+ - # menu: Avoid cancelling the menu on GTK+ grabs inside the GtkMenu - # https://bugzilla.gnome.org/show_bug.cgi?id=786029 - git cherry-pick -n 26d8a6dfbac5180dce71d1f2edc7029cfa2773ef + patch -Np1 -i ../window-edges.diff NOCONFIGURE=1 ./autogen.sh } Added: window-edges.diff =================================================================== --- window-edges.diff (rev 0) +++ window-edges.diff 2017-10-04 11:38:13 UTC (rev 306717) @@ -0,0 +1,90 @@ +diff --git i/gdk/wayland/gdkwindow-wayland.c w/gdk/wayland/gdkwindow-wayland.c +index 77a6e978f8463ccd..c87d6d9ce7e79bef 100644 +--- i/gdk/wayland/gdkwindow-wayland.c ++++ w/gdk/wayland/gdkwindow-wayland.c +@@ -3004,7 +3004,7 @@ gtk_surface_configure_edges (void *data, + new_state |= GDK_WINDOW_STATE_TOP_RESIZABLE; + break; + case GTK_SURFACE1_EDGE_CONSTRAINT_RESIZABLE_RIGHT: +- new_state |= GDK_WINDOW_STATE_TOP_TILED; ++ new_state |= GDK_WINDOW_STATE_RIGHT_RESIZABLE; + break; + case GTK_SURFACE1_EDGE_CONSTRAINT_RESIZABLE_BOTTOM: + new_state |= GDK_WINDOW_STATE_BOTTOM_RESIZABLE; +diff --git i/gtk/gtkwindow.c w/gtk/gtkwindow.c +index ffc841871fde0d61..a4ba0982240d8b6d 100644 +--- i/gtk/gtkwindow.c ++++ w/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,57 +7065,50 @@ 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; + } + + if (resize_s) + h -= window_border.bottom + handle_v; + + if (resize_e) + w -= window_border.right + handle_h; + + /* 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]); + } + else + { + gdk_window_hide (priv->border_window[GDK_WINDOW_EDGE_NORTH]); + } + + /* South */ +- if (resize_n) ++ if (resize_s) + { + gdk_window_move_resize (priv->border_window[GDK_WINDOW_EDGE_SOUTH], + x, window_border.top + height, + w, border.bottom); + + gdk_window_show_unraised (priv->border_window[GDK_WINDOW_EDGE_SOUTH]); + } + else + { + 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) + {