diff options
-rw-r--r-- | .SRCINFO | 44 | ||||
-rw-r--r-- | 0001-gdkscreen-x11-Fix-screen-and-monitor-size-calculatio.patch | 83 | ||||
-rw-r--r-- | PKGBUILD | 40 |
3 files changed, 132 insertions, 35 deletions
@@ -1,6 +1,6 @@ pkgbase = gtk3-ubuntu pkgdesc = GObject-based multi-platform toolkit - pkgver = 3.20.8 + pkgver = 3.22.2 pkgrel = 1 url = http://www.gtk.org/ install = gtk3.install @@ -8,43 +8,45 @@ pkgbase = gtk3-ubuntu arch = x86_64 license = LGPL makedepends = gobject-introspection - makedepends = libcanberra makedepends = gtk-doc + makedepends = libcanberra + depends = adwaita-icon-theme + depends = at-spi2-atk depends = atk depends = cairo + depends = colord + depends = desktop-file-utils + depends = gdk-pixbuf2 + depends = gtk-update-icon-cache + depends = json-glib depends = libcups - depends = libxcursor - depends = libxinerama - depends = libxrandr - depends = libxi depends = libepoxy - depends = gdk-pixbuf2 + depends = librsvg depends = libxcomposite + depends = libxcursor depends = libxdamage + depends = libxi + depends = libxinerama + depends = libxkbcommon + depends = libxrandr depends = pango + depends = rest depends = shared-mime-info - depends = colord - depends = at-spi2-atk depends = wayland - depends = libxkbcommon - depends = adwaita-icon-theme - depends = json-glib - depends = rest - depends = librsvg depends = wayland-protocols - depends = desktop-file-utils - depends = gtk-update-icon-cache optdepends = libcanberra: gtk3-widget-factory demo - provides = gtk3=3.20.8 + provides = gtk3=3.22.2 conflicts = gtk3 - source = https://download.gnome.org/sources/gtk+/3.20/gtk+-3.20.8.tar.xz + source = https://download.gnome.org/sources/gtk+/3.22/gtk+-3.22.2.tar.xz + source = 0001-gdkscreen-x11-Fix-screen-and-monitor-size-calculatio.patch source = settings.ini source = gtk-query-immodules-3.0.hook - source = http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu/pool/main/g/gtk+3.0/gtk+3.0_3.20.8-1ubuntu0~ppa1.debian.tar.xz - sha512sums = 9f5d29dc0ec06ce28f8b45da2e39e1d4e50cdd6b98bd0355b62c62a76aa868b596e113d68d99875b3ac18dc07d08d3fa4d6f8d3b69b61fdb3de0b244f5bb0cb5 + source = http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu/pool/main/g/gtk+3.0/gtk+3.0_3.22.2-0ubuntu1~ubuntu16.10.1.debian.tar.xz + sha512sums = edf8c3fa858d87605df1d244d5103a2d4cabbbe3aa4213220342ad84fd595df94fa5526db5b51a3d89bba1e3548d47d9c15dbb68a8ae3bcd99ebfa333797a2ee + sha512sums = 6c41ac66f8e3df4ed630f31733b5dd67fe85db79fe713f3b645a8c16e80bf04eaadb0cb05e18d03d26d72eff39db2d534bb247b5c95190381f22f2f3f673f756 sha512sums = ad2c0b0388f4169592b9574f0b3db673a969b7c4721548c4ac7c438eddbcdc378fcaac04e2b6c858a1562cc23ddf4804e5f7be08068340b7c9365e2b11ddcfb8 sha512sums = f0ffd95544863f2e10fda81488b4727aa9a8a35a7d39fb96872db6664d03442db2b58af788b5990825c7b3a83681f7220ca481409cca5421dfb39b9a3bbac9ac - sha512sums = 4034bce60e78a59d9982e315b4ec89b3c703f792d38c7c2020ae5096b60156798d872ad2db80f0c5055648e4ed600a85bd9bc1b6f7bec757635e61d991b608d4 + sha512sums = 165c881c7195eefabde0d0d99e7ff4553725a4dd12299ff42e96d5eeacc29a0d589ff8cbeec5cbe01599f04dbf94b4082e6da4e7d1fc2cc911c293dc9b6ad31c pkgname = gtk3-ubuntu diff --git a/0001-gdkscreen-x11-Fix-screen-and-monitor-size-calculatio.patch b/0001-gdkscreen-x11-Fix-screen-and-monitor-size-calculatio.patch new file mode 100644 index 000000000000..5d6210e54529 --- /dev/null +++ b/0001-gdkscreen-x11-Fix-screen-and-monitor-size-calculatio.patch @@ -0,0 +1,83 @@ +From 0d945f06faee49788191e3e28f797f72959b3583 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> +Date: Mon, 10 Oct 2016 16:34:28 +0200 +Subject: [PATCH] gdkscreen-x11: Fix screen and monitor size calculation + +The monitors are already in scaled pixels, so scaling again when retrieving +the screen size is wrong. + +With GDK_SCALE unset, the initial monitor sizes are unscaled, and when the +xsettings client sets a scale > 1, the monitor sizes should be updated. + +The end result is that the monitor sizes start out wrong, and get +corrected on the first xrandr event, while the screen size starts out +right and becomes wrong after the event. + +This patch fixes Firefox misplacing menus and popovers when the xrandr +configuration changes while it is running. + +Fix for the X11 side of + +https://bugzilla.gnome.org/show_bug.cgi?id=772202 +--- + gdk/x11/gdkscreen-x11.c | 16 ++++------------ + 1 file changed, 4 insertions(+), 12 deletions(-) + +diff --git a/gdk/x11/gdkscreen-x11.c b/gdk/x11/gdkscreen-x11.c +index 7738a47adfed1484..28a43a69bedbe955 100644 +--- a/gdk/x11/gdkscreen-x11.c ++++ b/gdk/x11/gdkscreen-x11.c +@@ -49,6 +49,7 @@ + static void gdk_x11_screen_dispose (GObject *object); + static void gdk_x11_screen_finalize (GObject *object); + static void init_randr_support (GdkScreen *screen); ++static void process_monitors_change (GdkScreen *screen); + + enum + { +@@ -82,13 +83,13 @@ gdk_x11_screen_get_display (GdkScreen *screen) + gint + gdk_x11_screen_get_width (GdkScreen *screen) + { +- return GDK_X11_SCREEN (screen)->width / GDK_X11_SCREEN (screen)->window_scale; ++ return GDK_X11_SCREEN (screen)->width; + } + + gint + gdk_x11_screen_get_height (GdkScreen *screen) + { +- return GDK_X11_SCREEN (screen)->height / GDK_X11_SCREEN (screen)->window_scale; ++ return GDK_X11_SCREEN (screen)->height; + } + + static gint +@@ -906,10 +907,8 @@ void + _gdk_x11_screen_set_window_scale (GdkX11Screen *x11_screen, + gint scale) + { +- GdkX11Display *x11_display = GDK_X11_DISPLAY (x11_screen->display); + GList *toplevels, *l; + GdkWindow *root; +- int i; + + if (x11_screen->window_scale == scale) + return; +@@ -928,14 +927,7 @@ _gdk_x11_screen_set_window_scale (GdkX11Screen *x11_screen, + _gdk_x11_window_set_window_scale (window, scale); + } + +- for (i = 0; i < x11_display->monitors->len; i++) +- { +- GdkMonitor *monitor = GDK_MONITOR (x11_display->monitors->pdata[i]); +- +- gdk_monitor_set_scale_factor (monitor, scale); +- } +- +- g_signal_emit_by_name (GDK_SCREEN (x11_screen), "monitors-changed"); ++ process_monitors_change (GDK_SCREEN (x11_screen)); + } + + /* +-- +2.10.1 + @@ -2,32 +2,30 @@ # Contributor: Christopher Reimer <github@creimer.net> # vercheck-pkgbuild: auto -# vercheck-ubuntu: name=gtk+3.0, repo=xenial +# vercheck-ubuntu: name=gtk+3.0, repo=zesty # vercheck-archlinux: name=gtk3, repo=extra, arch=x86_64 -# vercheck-gnome: name=gtk+, majorver=3.20 +# vercheck-gnome: name=gtk+, majorver=3.22 # vercheck-ppa: name=gtk+3.0, url=ppa:gnome3-team/gnome3-staging _use_ppa=true pkgname=gtk3-ubuntu -_ubuntu_rel=1ubuntu0~ppa1 -pkgver=3.20.8 +_ubuntu_rel=0ubuntu1~ubuntu16.10.1 +pkgver=3.22.2 pkgrel=1 pkgdesc="GObject-based multi-platform toolkit" arch=(i686 x86_64) url="http://www.gtk.org/" install=gtk3.install -depends=(atk cairo libcups libxcursor libxinerama libxrandr libxi libepoxy - gdk-pixbuf2 libxcomposite libxdamage pango shared-mime-info colord - at-spi2-atk wayland libxkbcommon adwaita-icon-theme json-glib rest - librsvg wayland-protocols desktop-file-utils gtk-update-icon-cache) -makedepends=(gobject-introspection libcanberra gtk-doc) +depends=(adwaita-icon-theme at-spi2-atk atk cairo colord desktop-file-utils gdk-pixbuf2 gtk-update-icon-cache json-glib libcups libepoxy librsvg libxcomposite libxcursor libxdamage libxi libxinerama libxkbcommon libxrandr pango rest shared-mime-info wayland wayland-protocols) +makedepends=(gobject-introspection gtk-doc libcanberra) optdepends=('libcanberra: gtk3-widget-factory demo') provides=("gtk3=${pkgver}") conflicts=(gtk3) license=(LGPL) source=("https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-${pkgver}.tar.xz" - settings.ini + 0001-gdkscreen-x11-Fix-screen-and-monitor-size-calculatio.patch + settings.ini gtk-query-immodules-3.0.hook) if [[ "${_use_ppa}" != "true" ]]; then @@ -36,30 +34,35 @@ else source+=("http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu/pool/main/g/gtk+3.0/gtk+3.0_${_ubuntu_ver:-${pkgver}}-${_ubuntu_rel}.debian.tar.xz") fi -sha512sums=('9f5d29dc0ec06ce28f8b45da2e39e1d4e50cdd6b98bd0355b62c62a76aa868b596e113d68d99875b3ac18dc07d08d3fa4d6f8d3b69b61fdb3de0b244f5bb0cb5' +sha512sums=('edf8c3fa858d87605df1d244d5103a2d4cabbbe3aa4213220342ad84fd595df94fa5526db5b51a3d89bba1e3548d47d9c15dbb68a8ae3bcd99ebfa333797a2ee' + '6c41ac66f8e3df4ed630f31733b5dd67fe85db79fe713f3b645a8c16e80bf04eaadb0cb05e18d03d26d72eff39db2d534bb247b5c95190381f22f2f3f673f756' 'ad2c0b0388f4169592b9574f0b3db673a969b7c4721548c4ac7c438eddbcdc378fcaac04e2b6c858a1562cc23ddf4804e5f7be08068340b7c9365e2b11ddcfb8' 'f0ffd95544863f2e10fda81488b4727aa9a8a35a7d39fb96872db6664d03442db2b58af788b5990825c7b3a83681f7220ca481409cca5421dfb39b9a3bbac9ac' - '4034bce60e78a59d9982e315b4ec89b3c703f792d38c7c2020ae5096b60156798d872ad2db80f0c5055648e4ed600a85bd9bc1b6f7bec757635e61d991b608d4') + '165c881c7195eefabde0d0d99e7ff4553725a4dd12299ff42e96d5eeacc29a0d589ff8cbeec5cbe01599f04dbf94b4082e6da4e7d1fc2cc911c293dc9b6ad31c') prepare() { cd "gtk+-${pkgver}" + patch -p1 -i ../0001-gdkscreen-x11-Fix-screen-and-monitor-size-calculatio.patch + local patches=( 016_no_offscreen_widgets_grabbing.patch 017_no_offscreen_device_grabbing.patch 060_ignore-random-icons.patch 073_treeview_almost_fixed.patch 074_eventbox_scroll_mask.patch + no-accessibility-dump.patch bzg_gtkcellrenderer_grabbing_modifier.patch ubuntu_gtk_custom_menu_items.patch print-dialog-show-options-of-remote-dnssd-printers.patch uimanager-guard-against-nested-node-updates.patch x-canonical-accel.patch message-dialog-restore-traditional-look-on-unity.patch - restore_filechooser_typeaheadfind 0001-calendar-always-emit-day-selected-once.patch 0001-gtkwindow-set-transparent-background-color.patch ubuntu_fileselector_behaviour.patch + unity-border-radius.patch + unity-headerbar-maximized-mode.patch ) for i in "${patches[@]}"; do @@ -80,7 +83,8 @@ build() { --disable-schemas-compile \ --enable-x11-backend \ --enable-broadway-backend \ - --enable-wayland-backend + --enable-wayland-backend \ + --enable-gtk-doc #https://bugzilla.gnome.org/show_bug.cgi?id=655517 sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool @@ -98,4 +102,12 @@ package() { "${pkgdir}"/usr/share/libalpm/hooks/gtk-query-immodules-3.0.hook rm "${pkgdir}"/usr/bin/gtk-update-icon-cache + + cd "$pkgdir" + for _f in usr/lib/*/*/printbackends/*; do + case $_f in + *-file.so|*-lpr.so) continue ;; + *) rm "${_f}" ;; + esac + done } |