diff options
author | Koop Mast <kwm@FreeBSD.org> | 2015-07-28 19:26:30 +0000 |
---|---|---|
committer | Koop Mast <kwm@FreeBSD.org> | 2015-07-28 19:26:30 +0000 |
commit | a8f152f37c55bdf4167a54873f8cc889b6fcbcca (patch) | |
tree | b17d96c562ca3cbd03c93d6b88b7b24472b4c9d0 /x11-toolkits/gtk30 | |
parent | dc0d7ef725e524f22bc2832704392fd449d1e4fc (diff) | |
download | ports-a8f152f37c55bdf4167a54873f8cc889b6fcbcca.tar.gz ports-a8f152f37c55bdf4167a54873f8cc889b6fcbcca.zip |
Notes
Diffstat (limited to 'x11-toolkits/gtk30')
-rw-r--r-- | x11-toolkits/gtk30/Makefile | 9 | ||||
-rw-r--r-- | x11-toolkits/gtk30/distinfo | 4 | ||||
-rw-r--r-- | x11-toolkits/gtk30/files/patch-721398 | 81 |
3 files changed, 88 insertions, 6 deletions
diff --git a/x11-toolkits/gtk30/Makefile b/x11-toolkits/gtk30/Makefile index 0aa9bb6ef12b..21a9368a5bf3 100644 --- a/x11-toolkits/gtk30/Makefile +++ b/x11-toolkits/gtk30/Makefile @@ -1,10 +1,9 @@ # Created by: Vanilla I. Shu <vanilla@MinJe.com.TW> # $FreeBSD$ -# $MCom: ports/trunk/x11-toolkits/gtk30/Makefile 20051 2014-11-10 09:39:43Z gusi $ # Please keep gtk30 and x11-themes/gnome-themes-standard minor version in sync PORTNAME= gtk -PORTVERSION= 3.14.12 +PORTVERSION= 3.14.15 PORTREVISION?= 0 CATEGORIES= x11-toolkits MASTER_SITES= GNOME/sources/gtk+/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/} @@ -37,14 +36,16 @@ USE_GNOME= atk gdkpixbuf2 gtk-update-icon-cache \ USES+= gettext gmake libtool pathfix perl5 pkgconfig USE_XORG= xext xrender x11 xinerama xi xrandr xcursor xfixes xdamage \ xcomposite -CONFIGURE_ARGS= --enable-gtk2-dependency --disable-packagekit \ +CONFIGURE_ARGS= --enable-gtk2-dependency \ + --disable-wayland-backend \ + --enable-x11-backend \ --enable-introspection CPPFLAGS+= -I${LOCALBASE}/include -fno-omit-frame-pointer LIBS+= -L${LOCALBASE}/lib INSTALLS_ICONS= yes INSTALL_TARGET= install-strip -LIBVERSION= 0.1400.12 +LIBVERSION= 0.1400.15 PLIST_SUB+= LIBVERSION=${LIBVERSION} GLIB_SCHEMAS= org.gtk.Demo.gschema.xml \ diff --git a/x11-toolkits/gtk30/distinfo b/x11-toolkits/gtk30/distinfo index 4a9bf88bd829..f9bf3a410d9f 100644 --- a/x11-toolkits/gtk30/distinfo +++ b/x11-toolkits/gtk30/distinfo @@ -1,2 +1,2 @@ -SHA256 (gnome3/gtk+-3.14.12.tar.xz) = 3aaf1f04b6393695a726b4bbe09ed9c9ddb0f779edc8238f803d5a4f10a2f549 -SIZE (gnome3/gtk+-3.14.12.tar.xz) = 15784084 +SHA256 (gnome3/gtk+-3.14.15.tar.xz) = 3ac87659112ced9e5ee5bd55d055faa881aafd040f26ca40b0d8ba0fa6509c83 +SIZE (gnome3/gtk+-3.14.15.tar.xz) = 15896532 diff --git a/x11-toolkits/gtk30/files/patch-721398 b/x11-toolkits/gtk30/files/patch-721398 new file mode 100644 index 000000000000..ad6204648efd --- /dev/null +++ b/x11-toolkits/gtk30/files/patch-721398 @@ -0,0 +1,81 @@ +From 55edc81c10742bf3e410168f6dc317f8aca05938 Mon Sep 17 00:00:00 2001 +From: Matthias Clasen <mclasen@redhat.com> +Date: Mon, 27 Jul 2015 23:18:27 -0400 +Subject: x11: Make selection handling work across screens + +When dealing with selection events, we might see windows from +other screens in the requestor field. The current x11 backend +code fails to wrap these in a foreign GdkWindow, since we +don't have the corresponding GdkScreen anymore. Work around +this by creating such 'foreign screens' on demand. We still +maintain the 1:1 relation between the display and the screen +returned by gdk_display_get_default_screen(). + +https://bugzilla.gnome.org/show_bug.cgi?id=721398 + +diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c +index f2824b6..9bb27ee 100644 +--- gdk/x11/gdkdisplay-x11.c ++++ gdk/x11/gdkdisplay-x11.c +@@ -1959,6 +1959,7 @@ gdk_x11_display_finalize (GObject *object) + + /* Free all GdkScreens */ + g_object_unref (display_x11->screen); ++ g_list_free_full (display_x11->screens, g_object_unref); + + g_free (display_x11->startup_notification_id); + +@@ -2035,12 +2036,36 @@ GdkScreen * + _gdk_x11_display_screen_for_xrootwin (GdkDisplay *display, + Window xrootwin) + { +- GdkScreen *screen = gdk_display_get_default_screen (display); ++ GdkScreen *screen; ++ XWindowAttributes attrs; ++ gboolean result; ++ GdkX11Display *display_x11; ++ GList *l; ++ ++ screen = gdk_display_get_default_screen (display); + + if (GDK_SCREEN_XROOTWIN (screen) == xrootwin) + return screen; + +- return NULL; ++ display_x11 = GDK_X11_DISPLAY (display); ++ ++ for (l = display_x11->screens; l; l = l->next) ++ { ++ screen = l->data; ++ if (GDK_SCREEN_XROOTWIN (screen) == xrootwin) ++ return screen; ++ } ++ ++ gdk_x11_display_error_trap_push (display); ++ result = XGetWindowAttributes (display_x11->xdisplay, xrootwin, &attrs); ++ if (gdk_x11_display_error_trap_pop (display) || !result) ++ return NULL; ++ ++ screen = _gdk_x11_screen_new (display, XScreenNumberOfScreen (attrs.screen)); ++ ++ display_x11->screens = g_list_prepend (display_x11->screens, screen); ++ ++ return screen; + } + + /** +diff --git a/gdk/x11/gdkdisplay-x11.h b/gdk/x11/gdkdisplay-x11.h +index aadf255..9b78f61 100644 +--- gdk/x11/gdkdisplay-x11.h ++++ gdk/x11/gdkdisplay-x11.h +@@ -39,6 +39,7 @@ struct _GdkX11Display + GdkDisplay parent_instance; + Display *xdisplay; + GdkScreen *screen; ++ GList *screens; + + GSource *event_source; + +-- +cgit v0.10.2 + |