diff options
Diffstat (limited to 'recipes-graphics/gpicview/gpicview/0001-gpicview-allow-to-build-for-gtk-wayland.patch')
-rw-r--r-- | recipes-graphics/gpicview/gpicview/0001-gpicview-allow-to-build-for-gtk-wayland.patch | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/recipes-graphics/gpicview/gpicview/0001-gpicview-allow-to-build-for-gtk-wayland.patch b/recipes-graphics/gpicview/gpicview/0001-gpicview-allow-to-build-for-gtk-wayland.patch new file mode 100644 index 0000000..8cf74c1 --- /dev/null +++ b/recipes-graphics/gpicview/gpicview/0001-gpicview-allow-to-build-for-gtk-wayland.patch @@ -0,0 +1,276 @@ +From aa2f81a3e78e7da505bdab465eacce9b37b035e6 Mon Sep 17 00:00:00 2001 +From: Max Krummenacher <max.krummenacher@toradex.com> +Date: Mon, 6 Nov 2023 10:43:46 +0000 +Subject: [PATCH] gpicview: allow to build for gtk/wayland + +For wayland gdk/gdkx.h does not work, even with xwayland. +Remove the more elaborate gf_display_get_workarea function and use the +existing fallback. +With the removal of gdk from the code also remove the dependency +check on x11 from configure. + +Upstream-Status: Inappropriate [Toradex specific] +Upstream targets X11. Removing the use of gdk would remove +functionaliy. + +Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> +--- + Makefile.in | 2 - + configure.ac | 4 -- + data/Makefile.in | 2 - + src/Makefile.am | 5 +- + src/Makefile.in | 7 +-- + src/working-area.c | 123 ++------------------------------------------- + 6 files changed, 6 insertions(+), 137 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 6ecf74a..cad90b7 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -317,8 +317,6 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ +-X11_CFLAGS = @X11_CFLAGS@ +-X11_LIBS = @X11_LIBS@ + XGETTEXT = @XGETTEXT@ + abs_builddir = @abs_builddir@ + abs_srcdir = @abs_srcdir@ +diff --git a/configure.ac b/configure.ac +index 2fb2469..1591584 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -56,15 +56,11 @@ AC_SUBST(GTK_LIBS) + + pkg_modules="x11" + +-PKG_CHECK_MODULES(X11, [$pkg_modules]) + AC_CHECK_LIB(jpeg, jpeg_start_decompress, [], + [AC_MSG_ERROR([libjpeg not found])], -lm) + AC_CHECK_HEADER(jpeglib.h, , [AC_MSG_ERROR([libjpeg not found])]) + LIBJPEG='-ljpeg' + +-AC_SUBST(X11_CFLAGS) +-AC_SUBST(X11_LIBS) +- + # Generate po/LINGUAS on the fly rather than relying on translators + # to maintain it manually. This also overcome the problem that Transifex + # cannot add a language to po/LINGUAS if a new po file is submitted. +diff --git a/data/Makefile.in b/data/Makefile.in +index c8c142b..ea2e4ff 100644 +--- a/data/Makefile.in ++++ b/data/Makefile.in +@@ -234,8 +234,6 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ +-X11_CFLAGS = @X11_CFLAGS@ +-X11_LIBS = @X11_LIBS@ + XGETTEXT = @XGETTEXT@ + abs_builddir = @abs_builddir@ + abs_srcdir = @abs_srcdir@ +diff --git a/src/Makefile.am b/src/Makefile.am +index 44ecb19..6c7a683 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -2,7 +2,6 @@ + + # set the include path found by configure + gpicview_CPPFLAGS = $(all_includes) \ +- $(X11_CFLAGS) \ + $(GTK_CFLAGS) \ + $(ADDITIONAL_FLAGS) \ + -I$(top_srcdir) \ +@@ -27,7 +26,7 @@ gpicview_SOURCES = \ + + # the library search path. + # use -nodefaultlibs to prevent linking libstdc++ +-gpicview_LDADD = $(X11_LIBS) $(GTK_LIBS) -lm ++gpicview_LDADD = $(GTK_LIBS) -lm + + noinst_HEADERS = \ + glib-mem.h \ +@@ -44,6 +43,4 @@ noinst_HEADERS = \ + + noinst_PROGRAMS=xml-purge + xml_purge_SOURCES=xml-purge.c +-xml_purge_CFLAGS=@X11_CFLAGS@ +-xml_purge_LDADD=@X11_LIBS@ + +diff --git a/src/Makefile.in b/src/Makefile.in +index 24cfe1f..65fea48 100644 +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -271,8 +271,6 @@ SHELL = @SHELL@ + STRIP = @STRIP@ + USE_NLS = @USE_NLS@ + VERSION = @VERSION@ +-X11_CFLAGS = @X11_CFLAGS@ +-X11_LIBS = @X11_LIBS@ + XGETTEXT = @XGETTEXT@ + abs_builddir = @abs_builddir@ + abs_srcdir = @abs_srcdir@ +@@ -331,7 +329,6 @@ top_srcdir = @top_srcdir@ + + # set the include path found by configure + gpicview_CPPFLAGS = $(all_includes) \ +- $(X11_CFLAGS) \ + $(GTK_CFLAGS) \ + $(ADDITIONAL_FLAGS) \ + -I$(top_srcdir) \ +@@ -356,7 +353,7 @@ gpicview_SOURCES = \ + + # the library search path. + # use -nodefaultlibs to prevent linking libstdc++ +-gpicview_LDADD = $(X11_LIBS) $(GTK_LIBS) -lm ++gpicview_LDADD = $(GTK_LIBS) -lm + noinst_HEADERS = \ + glib-mem.h \ + image-list.h \ +@@ -371,8 +368,6 @@ noinst_HEADERS = \ + jhead.h + + xml_purge_SOURCES = xml-purge.c +-xml_purge_CFLAGS = @X11_CFLAGS@ +-xml_purge_LDADD = @X11_LIBS@ + all: all-am + + .SUFFIXES: +diff --git a/src/working-area.c b/src/working-area.c +index 86a1fa5..2fa9474 100644 +--- a/src/working-area.c ++++ b/src/working-area.c +@@ -23,126 +23,11 @@ + */ + + # include <gdk/gdk.h> +-# include <gdk/gdkx.h> +-# include <X11/Xlib.h> +-# include <X11/Xutil.h> +-# include <X11/Xatom.h> +- +-void get_working_area(GdkScreen* screen, GdkRectangle *rect); +- +-static gboolean gf_display_get_workarea(GdkScreen* g_screen, GdkRectangle *rect) { +- Atom xa_desktops, xa_current, xa_workarea, xa_type; +- Display *x_display; +- Window x_root; +- guint32 desktops = 0, current = 0; +- gulong *workareas, len, fill; +- guchar *data; +- gint format; +- +- GdkDisplay *g_display; +- Screen *x_screen; +- +- /* get the gdk display */ +- g_display = gdk_display_get_default(); +- if(!g_display) +- return FALSE; +- +- /* get the x display from the gdk display */ +- x_display = gdk_x11_display_get_xdisplay(g_display); +- if(!x_display) +- return FALSE; +- +- /* get the x screen from the gdk screen */ +- x_screen = gdk_x11_screen_get_xscreen(g_screen); +- if(!x_screen) +- return FALSE; +- +- /* get the root window from the screen */ +- x_root = XRootWindowOfScreen(x_screen); +- +- /* find the _NET_NUMBER_OF_DESKTOPS atom */ +- xa_desktops = XInternAtom(x_display, "_NET_NUMBER_OF_DESKTOPS", True); +- if(xa_desktops == None) +- return FALSE; +- +- /* get the number of desktops */ +- if(XGetWindowProperty(x_display, x_root, xa_desktops, 0, 1, False, +- XA_CARDINAL, &xa_type, &format, &len, &fill, +- &data) != Success) +- { +- return FALSE; +- } +- +- if(!data) +- return FALSE; +- +- desktops = *(guint32 *)data; +- XFree(data); +- +- /* find the _NET_CURRENT_DESKTOP atom */ +- xa_current = XInternAtom(x_display, "_NET_CURRENT_DESKTOP", True); +- if(xa_current == None) +- return FALSE; +- +- /* get the current desktop */ +- if(XGetWindowProperty(x_display, x_root, xa_current, 0, 1, False, +- XA_CARDINAL, &xa_type, &format, &len, &fill, +- &data) != Success) +- { +- return FALSE; +- } +- +- if(!data) +- return FALSE; +- +- current = *(guint32 *)data; +- XFree(data); +- +- /* find the _NET_WORKAREA atom */ +- xa_workarea = XInternAtom(x_display, "_NET_WORKAREA", True); +- if(xa_workarea == None) +- return FALSE; +- +- if(XGetWindowProperty(x_display, x_root, xa_workarea, 0, (glong)(4 * 32), +- False, AnyPropertyType, &xa_type, &format, &len, +- &fill, &data) != Success) +- { +- return FALSE; +- } +- +- /* make sure the type and format are good */ +- if(xa_type == None || format == 0) +- return FALSE; +- +- /* make sure we don't have any leftovers */ +- if(fill) +- return FALSE; +- +- /* make sure len divides evenly by 4 */ +- if(len % 4) +- return FALSE; +- +- /* it's good, lets use it */ +- workareas = (gulong *)(guint32 *)data; +- +- rect->x = (guint32)workareas[current * 4]; +- rect->y = (guint32)workareas[current * 4 + 1]; +- rect->width = (guint32)workareas[current * 4 + 2]; +- rect->height = (guint32)workareas[current * 4 + 3]; +- +- /* clean up our memory */ +- XFree(data); +- +- return TRUE; +-} + + void get_working_area(GdkScreen* screen, GdkRectangle *rect) + { +- if( !gf_display_get_workarea(screen, rect) ) +- { +- rect->x = 0; +- rect->y = 0; +- rect->width = gdk_screen_width(); +- rect->height = gdk_screen_height(); +- } ++ rect->x = 0; ++ rect->y = 0; ++ rect->width = gdk_screen_width(); ++ rect->height = gdk_screen_height(); + } +-- +2.35.3 + |