From 2cae28641eb00e2b1b8d187367306122d0498c37 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Tue, 7 Jan 2020 15:43:26 +0100 Subject: gpicview: import from meta-lxde Related-to: ELB-1284 Signed-off-by: Max Krummenacher --- .../gpicview/gpicview/remove-gdk-x11.patch | 136 +++++++++++++++++++++ recipes-graphics/gpicview/gpicview_0.2.5.bb | 24 ++++ 2 files changed, 160 insertions(+) create mode 100644 recipes-graphics/gpicview/gpicview/remove-gdk-x11.patch create mode 100644 recipes-graphics/gpicview/gpicview_0.2.5.bb diff --git a/recipes-graphics/gpicview/gpicview/remove-gdk-x11.patch b/recipes-graphics/gpicview/gpicview/remove-gdk-x11.patch new file mode 100644 index 0000000..a1f97b3 --- /dev/null +++ b/recipes-graphics/gpicview/gpicview/remove-gdk-x11.patch @@ -0,0 +1,136 @@ +For xwayland gdk/gdkx.h does not work. +Remove the more elaborate gf_display_get_workarea function and use only +the fallback. +--- ./src/working-area.c.orig 2016-02-20 22:38:31.000000000 +0000 ++++ ./src/working-area.c 2020-01-07 13:37:47.023817524 +0000 +@@ -23,126 +23,11 @@ + */ + + # include +-# include +-# include +-# include +-# include +- +-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(); + } diff --git a/recipes-graphics/gpicview/gpicview_0.2.5.bb b/recipes-graphics/gpicview/gpicview_0.2.5.bb new file mode 100644 index 0000000..27808b6 --- /dev/null +++ b/recipes-graphics/gpicview/gpicview_0.2.5.bb @@ -0,0 +1,24 @@ +SUMMARY = "Simple Image Viewer for X" +HOMEPAGE = "http://lxde.sourceforge.net/gpicview" +SECTION = "x11" + +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552" + +DEPENDS = "glib-2.0-native intltool-native jpeg" +RDEPENDS_${PN} = "adwaita-icon-theme" + +SRC_URI = " \ + ${SOURCEFORGE_MIRROR}/lxde/${P}.tar.xz \ + file://remove-gdk-x11.patch \ +" +SRC_URI[md5sum] = "26be9b0c5a234f1afe7d83d02a4a33f4" +SRC_URI[sha256sum] = "38466058e53702450e5899193c4b264339959b563dd5cd81f6f690de32d82942" + +PACKAGECONFIG ?= "gtk3" +PACKAGECONFIG[gtk2] = ",,gtk+" +PACKAGECONFIG[gtk3] = "--enable-gtk3,,gtk+3" + +inherit autotools gettext pkgconfig + +FILES_${PN} += "${datadir}/icons/*" -- cgit v1.2.3