summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2020-01-07 15:43:26 +0100
committerMax Krummenacher <max.krummenacher@toradex.com>2020-01-09 19:49:35 +0100
commit2cae28641eb00e2b1b8d187367306122d0498c37 (patch)
tree028407cdd6c1bf6374d8f5b0095545ce1caf2cc4
parentda3dfd8138787574cf3a558ff76340f086f34c0d (diff)
gpicview: import from meta-lxde
Related-to: ELB-1284 Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
-rw-r--r--recipes-graphics/gpicview/gpicview/remove-gdk-x11.patch136
-rw-r--r--recipes-graphics/gpicview/gpicview_0.2.5.bb24
2 files changed, 160 insertions, 0 deletions
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 <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();
+ }
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/*"