From 174478a960380b1ae564474ad4518f0291b401f1 Mon Sep 17 00:00:00 2001 From: adam Date: Wed, 8 Jan 2020 14:57:29 +0000 Subject: gtk3: fix building on macOS with Quartz backend --- x11/gtk3/PLIST | 9 ++-- x11/gtk3/distinfo | 5 +- x11/gtk3/patches/patch-gdk_quartz_Makefile.in | 14 ++++++ .../patches/patch-gdk_quartz_gdkquartz-gtk-only.h | 57 ++++++++++++++++++++++ .../patches/patch-gdk_quartz_gdkselection-quartz.c | 14 ++++++ 5 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 x11/gtk3/patches/patch-gdk_quartz_Makefile.in create mode 100644 x11/gtk3/patches/patch-gdk_quartz_gdkquartz-gtk-only.h create mode 100644 x11/gtk3/patches/patch-gdk_quartz_gdkselection-quartz.c (limited to 'x11/gtk3') diff --git a/x11/gtk3/PLIST b/x11/gtk3/PLIST index 652e65aa3ff..162d3e4a6d2 100644 --- a/x11/gtk3/PLIST +++ b/x11/gtk3/PLIST @@ -1,4 +1,4 @@ -@comment $NetBSD: PLIST,v 1.28 2019/11/06 14:51:19 wiz Exp $ +@comment $NetBSD: PLIST,v 1.29 2020/01/08 14:57:29 adam Exp $ bin/gtk-builder-tool bin/gtk-encode-symbolic-svg bin/gtk-launch @@ -55,6 +55,7 @@ include/gtk-3.0/gdk/gdkvisual.h ${PLIST.wayland}include/gtk-3.0/gdk/gdkwayland.h include/gtk-3.0/gdk/gdkwindow.h ${PLIST.x11}include/gtk-3.0/gdk/gdkx.h +${PLIST.quartz}include/gtk-3.0/gdk/quartz/gdkquartz-gtk-only.h ${PLIST.quartz}include/gtk-3.0/gdk/quartz/gdkquartzcursor.h ${PLIST.quartz}include/gtk-3.0/gdk/quartz/gdkquartzdevice-core.h ${PLIST.quartz}include/gtk-3.0/gdk/quartz/gdkquartzdevicemanager-core.h @@ -425,6 +426,7 @@ include/gtk-3.0/unix-print/gtk/gtkunixprint.h lib/girepository-1.0/Gdk-3.0.typelib ${PLIST.x11}lib/girepository-1.0/GdkX11-3.0.typelib lib/girepository-1.0/Gtk-3.0.typelib +@pkgdir lib/gtk-3.0/3.0.0/filesystems lib/gtk-3.0/3.0.0/immodules/im-am-et.la lib/gtk-3.0/3.0.0/immodules/im-cedilla.la lib/gtk-3.0/3.0.0/immodules/im-cyrillic-translit.la @@ -442,6 +444,8 @@ ${PLIST.x11}lib/gtk-3.0/3.0.0/immodules/im-xim.la ${PLIST.cups}lib/gtk-3.0/3.0.0/printbackends/libprintbackend-cups.la lib/gtk-3.0/3.0.0/printbackends/libprintbackend-file.la lib/gtk-3.0/3.0.0/printbackends/libprintbackend-lpr.la +@pkgdir lib/gtk-3.0/immodules +@pkgdir lib/gtk-3.0/modules lib/libgailutil-3.la lib/libgdk-3.la lib/libgtk-3.la @@ -1406,6 +1410,3 @@ share/locale/zh_TW/LC_MESSAGES/gtk30.mo share/themes/Default/gtk-3.0/gtk-keys.css share/themes/Emacs/gtk-3.0/gtk-keys.css ${PLIST.quartz}share/themes/Mac/gtk-3.0/gtk-keys.css -@pkgdir lib/gtk-3.0/modules -@pkgdir lib/gtk-3.0/immodules -@pkgdir lib/gtk-3.0/3.0.0/filesystems diff --git a/x11/gtk3/distinfo b/x11/gtk3/distinfo index 28ddc932c1c..da8598fdd1b 100644 --- a/x11/gtk3/distinfo +++ b/x11/gtk3/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.72 2019/12/31 12:21:00 wiz Exp $ +$NetBSD: distinfo,v 1.73 2020/01/08 14:57:29 adam Exp $ SHA1 (gtk+-3.24.13.tar.xz) = 5f014189e117207580bf7bc16aea4e09e009c75a RMD160 (gtk+-3.24.13.tar.xz) = cdf6b911d59e13b412efe0666d5d58de5095abe2 @@ -8,6 +8,9 @@ SHA1 (patch-aj) = cbfab43f27352f7c6bc57a7c562c2d84c69da07a SHA1 (patch-config.h.in) = dc5f8741eed554f88c0b6834cadad95083e4dc8f SHA1 (patch-configure) = d531b33e52facf960058f1223b70db680da35300 SHA1 (patch-configure.ac) = 68793f40752f25ccaecc958c72c23a504670bea5 +SHA1 (patch-gdk_quartz_Makefile.in) = 610bf837b2ed2d3524174979cab7bf54cf53bb79 +SHA1 (patch-gdk_quartz_gdkquartz-gtk-only.h) = 24aefa2631c2546ef726eba0aee0f9460c1664ed +SHA1 (patch-gdk_quartz_gdkselection-quartz.c) = 723c97746ec93129434ca989a9ad5b026b5c8035 SHA1 (patch-gdk_wayland_gdkdevice-wayland.c) = e283bd6533ea1307b971c524bc05f0d3ee90453d SHA1 (patch-gdk_x11_gdkscreen-x11.h) = 455d6c3de8421984ba3c99baf51cd31982a3df78 SHA1 (patch-gdk_x11_gdkwindow-x11.h) = c80f7c9d5a570817e54fd74fa903a53400dc6f64 diff --git a/x11/gtk3/patches/patch-gdk_quartz_Makefile.in b/x11/gtk3/patches/patch-gdk_quartz_Makefile.in new file mode 100644 index 00000000000..b7dbaceac44 --- /dev/null +++ b/x11/gtk3/patches/patch-gdk_quartz_Makefile.in @@ -0,0 +1,14 @@ +$NetBSD: patch-gdk_quartz_Makefile.in,v 1.1 2020/01/08 14:57:29 adam Exp $ + +https://gitlab.gnome.org/GNOME/gtk/issues/2279 + +--- gdk/quartz/Makefile.in.orig 2020-01-08 14:34:08.000000000 +0000 ++++ gdk/quartz/Makefile.in +@@ -601,6 +601,7 @@ libgdkinclude_HEADERS = \ + gdkquartz.h + + libgdkquartzinclude_HEADERS = \ ++ gdkquartz-gtk-only.h \ + gdkquartzcursor.h \ + gdkquartzdevice-core.h \ + gdkquartzdevicemanager-core.h \ diff --git a/x11/gtk3/patches/patch-gdk_quartz_gdkquartz-gtk-only.h b/x11/gtk3/patches/patch-gdk_quartz_gdkquartz-gtk-only.h new file mode 100644 index 00000000000..afd2afbb401 --- /dev/null +++ b/x11/gtk3/patches/patch-gdk_quartz_gdkquartz-gtk-only.h @@ -0,0 +1,57 @@ +$NetBSD: patch-gdk_quartz_gdkquartz-gtk-only.h,v 1.1 2020/01/08 14:57:29 adam Exp $ + +https://gitlab.gnome.org/GNOME/gtk/issues/2279 + +--- /dev/null 2020-01-01 20:40:06.000000000 +0000 ++++ gdk/quartz/gdkquartz-gtk-only.h +@@ -0,0 +1,50 @@ ++/* gdkquartz-gtk-only.h ++ * ++ * Copyright (C) 2005-2007 Imendio AB ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library. If not, see . ++ */ ++ ++#ifndef __GDK_QUARTZ_GTK_ONLY_H__ ++#define __GDK_QUARTZ_GTK_ONLY_H__ ++ ++#if !(defined (GTK_COMPILATION) || defined (GDK_COMPILATION)) ++#error "This API is for use only in Gtk internal code." ++#endif ++ ++#include ++#include ++#include ++ ++/* Drag and Drop/Clipboard */ ++GDK_AVAILABLE_IN_ALL ++GdkAtom gdk_quartz_pasteboard_type_to_atom_libgtk_only (NSString *type); ++GDK_AVAILABLE_IN_ALL ++NSString *gdk_quartz_target_to_pasteboard_type_libgtk_only (const gchar *target); ++GDK_AVAILABLE_IN_ALL ++NSString *gdk_quartz_atom_to_pasteboard_type_libgtk_only (GdkAtom atom); ++ ++/* Utilities */ ++GDK_AVAILABLE_IN_ALL ++NSImage *gdk_quartz_pixbuf_to_ns_image_libgtk_only (GdkPixbuf *pixbuf); ++GDK_AVAILABLE_IN_ALL ++NSEvent *gdk_quartz_event_get_nsevent (GdkEvent *event); ++ ++/* Window */ ++GDK_AVAILABLE_IN_ALL ++NSWindow *gdk_quartz_window_get_nswindow (GdkWindow *window); ++GDK_AVAILABLE_IN_ALL ++NSView *gdk_quartz_window_get_nsview (GdkWindow *window); ++ ++#endif diff --git a/x11/gtk3/patches/patch-gdk_quartz_gdkselection-quartz.c b/x11/gtk3/patches/patch-gdk_quartz_gdkselection-quartz.c new file mode 100644 index 00000000000..24158a2b025 --- /dev/null +++ b/x11/gtk3/patches/patch-gdk_quartz_gdkselection-quartz.c @@ -0,0 +1,14 @@ +$NetBSD: patch-gdk_quartz_gdkselection-quartz.c,v 1.1 2020/01/08 14:57:29 adam Exp $ + +https://gitlab.gnome.org/GNOME/gtk/issues/2279 + +--- gdk/quartz/gdkselection-quartz.c.orig 2020-01-08 14:36:55.000000000 +0000 ++++ gdk/quartz/gdkselection-quartz.c +@@ -24,6 +24,7 @@ + #include "gdkproperty.h" + #include "gdkquartz.h" + #include "gdkinternal-quartz.h" ++#include "gdkquartz-gtk-only.h" + + gboolean + _gdk_quartz_display_set_selection_owner (GdkDisplay *display, -- cgit v1.2.3