diff options
author | Alec Warner <antarus@gentoo.org> | 2006-09-19 13:56:02 +0000 |
---|---|---|
committer | Alec Warner <antarus@gentoo.org> | 2006-09-19 13:56:02 +0000 |
commit | b213adc8094d1270c74000225b2ec3161874205f (patch) | |
tree | 52f7216ad52eb428538b784ca78bcbcbb9a6ffa7 /media-gfx | |
parent | enable support for nested pts groups, fixing bug #145339 (diff) | |
download | gentoo-2-b213adc8094d1270c74000225b2ec3161874205f.tar.gz gentoo-2-b213adc8094d1270c74000225b2ec3161874205f.tar.bz2 gentoo-2-b213adc8094d1270c74000225b2ec3161874205f.zip |
Pushing in some fixes thanks to Ben Hodgetts and bug # 141588
(Portage version: 2.1.2_pre1)
Diffstat (limited to 'media-gfx')
-rw-r--r-- | media-gfx/pornview/ChangeLog | 10 | ||||
-rw-r--r-- | media-gfx/pornview/files/digest-pornview-0.2.0_pre1 | 2 | ||||
-rw-r--r-- | media-gfx/pornview/files/digest-pornview-0.2.0_pre1-r1 | 3 | ||||
-rw-r--r-- | media-gfx/pornview/files/pornview-0.2.0_pre1-4.diff | 265 | ||||
-rw-r--r-- | media-gfx/pornview/files/traypatch.diff | 536 | ||||
-rw-r--r-- | media-gfx/pornview/metadata.xml | 8 | ||||
-rw-r--r-- | media-gfx/pornview/pornview-0.2.0_pre1-r1.ebuild | 53 |
7 files changed, 610 insertions, 267 deletions
diff --git a/media-gfx/pornview/ChangeLog b/media-gfx/pornview/ChangeLog index b00806d50171..661b2a3ce807 100644 --- a/media-gfx/pornview/ChangeLog +++ b/media-gfx/pornview/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for media-gfx/pornview -# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-gfx/pornview/ChangeLog,v 1.27 2005/11/19 14:38:19 allanonjl Exp $ +# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/media-gfx/pornview/ChangeLog,v 1.28 2006/09/19 13:56:02 antarus Exp $ + +*pornview-0.2.0_pre1-r1 (19 Sep 2006) + + 19 Sep 2006; <antarus@gentoo.org> files/pornview-0.2.0_pre1-4.diff, + +files/traypatch.diff, +metadata.xml, +pornview-0.2.0_pre1-r1.ebuild: + Pushing in some fixes thanks to Ben Hodgetts and bug # 141588 19 Nov 2005; John N. Laliberte <allanonjl@gentoo.org> pornview-0.2.0_pre1.ebuild: diff --git a/media-gfx/pornview/files/digest-pornview-0.2.0_pre1 b/media-gfx/pornview/files/digest-pornview-0.2.0_pre1 index 91adc949e286..0d9887e516ff 100644 --- a/media-gfx/pornview/files/digest-pornview-0.2.0_pre1 +++ b/media-gfx/pornview/files/digest-pornview-0.2.0_pre1 @@ -1 +1,3 @@ MD5 339fde6d7ff0cc1053abe951601373e6 pornview-0.2.0pre1.tar.gz 608864 +RMD160 03a9d01235fafbfb9825da43e79fbfb66a2ecbfa pornview-0.2.0pre1.tar.gz 608864 +SHA256 66502f936f743489dcff14e429a80e4670a60221187c34f58f87530229874fb9 pornview-0.2.0pre1.tar.gz 608864 diff --git a/media-gfx/pornview/files/digest-pornview-0.2.0_pre1-r1 b/media-gfx/pornview/files/digest-pornview-0.2.0_pre1-r1 new file mode 100644 index 000000000000..0d9887e516ff --- /dev/null +++ b/media-gfx/pornview/files/digest-pornview-0.2.0_pre1-r1 @@ -0,0 +1,3 @@ +MD5 339fde6d7ff0cc1053abe951601373e6 pornview-0.2.0pre1.tar.gz 608864 +RMD160 03a9d01235fafbfb9825da43e79fbfb66a2ecbfa pornview-0.2.0pre1.tar.gz 608864 +SHA256 66502f936f743489dcff14e429a80e4670a60221187c34f58f87530229874fb9 pornview-0.2.0pre1.tar.gz 608864 diff --git a/media-gfx/pornview/files/pornview-0.2.0_pre1-4.diff b/media-gfx/pornview/files/pornview-0.2.0_pre1-4.diff index 26c2cf94cbab..41a9dd555fce 100644 --- a/media-gfx/pornview/files/pornview-0.2.0_pre1-4.diff +++ b/media-gfx/pornview/files/pornview-0.2.0_pre1-4.diff @@ -59,268 +59,3 @@ cell_area.x = CELL_X_FROM_COL (list, j) + list->cell_x_pad; cell_area.y = CELL_Y_FROM_ROW (list, i) + list->cell_y_pad; ---- pornview-0.2pre1.orig/debian/changelog -+++ pornview-0.2pre1/debian/changelog -@@ -0,0 +1,87 @@ -+pornview (0.2pre1-4) unstable; urgency=low -+ -+ * Applied Akira TAGOH's patch to fix GdkPixbuf errors and consequent -+ brokeness that occur with the latest gtk+. (Closes: #201160) -+ -+ -- Brian Nelson <pyro@debian.org> Sun, 13 Jul 2003 23:32:44 -0700 -+ -+pornview (0.2pre1-3) unstable; urgency=low -+ -+ * Fixed an out-of-bounds error in src/support/widgets/zlist.c discovered -+ by Matthias Urlichs. (Closes: #189342) -+ * Modified debian/control and debian/rules to build with gtk 2.0. -+ * Fixed a segfault on exit when no audio device available. -+ -+ -- Brian Nelson <pyro@debian.org> Sun, 20 Apr 2003 18:52:34 -0700 -+ -+pornview (0.2pre1-2) unstable; urgency=low -+ -+ * Performed an audit of the code to ensure nothing malicious is present. -+ * Updated maintainer email address. -+ * Use debian/compat instead of DH_COMPAT=n in debian/rules. -+ * debian/control: added the homepage to the description. -+ * Removed unnecessary dh_testroot from debian/rules clean target. -+ * Re-enable stripping of the binary. (Closes: #187514) -+ * Bumped up standards version. -+ -+ -- Brian Nelson <pyro@debian.org> Fri, 4 Apr 2003 20:16:32 -0800 -+ -+pornview (0.2pre1-1) unstable; urgency=low -+ -+ * New upstream release. -+ * Link against new libxine. (Closes: #176324) -+ -+ -- Brian Nelson <nelson@bignachos.com> Thu, 9 Jan 2003 16:04:32 -0800 -+ -+pornview (0.1.5-1) unstable; urgency=low -+ -+ * New upstream release. -+ * Don't strip binary to help debugging segfaults. -+ -+ -- Brian Nelson <nelson@bignachos.com> Thu, 26 Dec 2002 22:04:21 -0500 -+ -+pornview (0.1.4-1) unstable; urgency=low -+ -+ * New upstream release. -+ * Upstream code borrowed from GImageView now acknowledges its source. -+ * Corrected an #include error in src/support/menu_option.c. -+ -+ -- Brian Nelson <nelson@bignachos.com> Fri, 13 Dec 2002 13:39:32 -0800 -+ -+pornview (0.1.3.1-1) unstable; urgency=low -+ -+ * Removed empty upstream changelog. (Closes: #172054) -+ * Repackaged upstream tarball to replace the probably copyrighted logo -+ image with an image I believe to be in the public domain. -+ (Closes: #171988) -+ * Improved the description in the control file - thanks Colin Walters -+ for the suggestions. (Closes: 172168) -+ * Removed the icon since it had too many colors by Debian's menu policy, -+ and looks like ass if the number of colors is reduced. -+ -+ -- Brian Nelson <nelson@bignachos.com> Sat, 7 Dec 2002 20:24:52 -0800 -+ -+pornview (0.1.3-1) unstable; urgency=low -+ -+ * New upstream release -+ -+ -- Brian Nelson <nelson@bignachos.com> Sun, 1 Dec 2002 15:37:03 -0800 -+ -+pornview (0.1.2b-1) unstable; urgency=low -+ -+ * New upstream release -+ -+ -- Brian Nelson <nelson@bignachos.com> Sun, 24 Nov 2002 18:11:58 -0800 -+ -+pornview (0.1.1-1) unstable; urgency=low -+ -+ * New upstream release -+ -+ -- Brian Nelson <nelson@bignachos.com> Mon, 11 Nov 2002 22:56:23 -0800 -+ -+pornview (0.1.0-1) unstable; urgency=low -+ -+ * Initial Release (Closes: #167488) -+ -+ -- Brian Nelson <nelson@bignachos.com> Sat, 2 Nov 2002 17:18:01 -0800 -+ ---- pornview-0.2pre1.orig/debian/compat -+++ pornview-0.2pre1/debian/compat -@@ -0,0 +1 @@ -+4 ---- pornview-0.2pre1.orig/debian/control -+++ pornview-0.2pre1/debian/control -@@ -0,0 +1,18 @@ -+Source: pornview -+Section: utils -+Priority: optional -+Maintainer: Brian Nelson <pyro@debian.org> -+Build-Depends: debhelper (>> 4.0.0), libgtk2.0-dev, libpng12-0-dev, libxine-dev (>= 1-beta1-1) -+Standards-Version: 3.5.9 -+ -+Package: pornview -+Architecture: any -+Depends: ${shlibs:Depends} -+Description: Image and movie viewer/manager -+ PornView is an image and movie viewer/manager with thumbnail previews. -+ Additional features includes thumbnail caching, directory tree views, -+ adjustable zoom, and fullscreen view. Slideshows allow for unattended -+ presentation of images for hands-free viewing. Pornview is written -+ using GTK+. -+ . -+ Homepage: http://pornview.sourceforge.net/ ---- pornview-0.2pre1.orig/debian/copyright -+++ pornview-0.2pre1/debian/copyright -@@ -0,0 +1,9 @@ -+This package was debianized by Brian Nelson <nelson@bignachos.com> on -+Sat, 2 Nov 2002 17:18:01 -0800. -+ -+It was downloaded from http://pornview.sourceforge.net/ -+ -+The upstream author is trem0r <trem0r@tlen.pl>. -+ -+pornview is licensed under the GNU GPL which you can find in -+/usr/share/common-licenses/GPL on your Debian system. ---- pornview-0.2pre1.orig/debian/docs -+++ pornview-0.2pre1/debian/docs -@@ -0,0 +1,2 @@ -+NEWS -+README ---- pornview-0.2pre1.orig/debian/menu -+++ pornview-0.2pre1/debian/menu -@@ -0,0 +1,4 @@ -+?package(pornview):needs=X11\ -+ section=Apps/Viewers\ -+ title="PornView" command="/usr/bin/pornview"\ -+ hints="Images" ---- pornview-0.2pre1.orig/debian/pornview.1 -+++ pornview-0.2pre1/debian/pornview.1 -@@ -0,0 +1,50 @@ -+.\" Hey, EMACS: -*- nroff -*- -+.\" First parameter, NAME, should be all caps -+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection -+.\" other parameters are allowed: see man(7), man(1) -+.TH PORNVIEW 1 "November 2, 2002" -+.\" Please adjust this date whenever revising the manpage. -+.\" -+.\" Some roff macros, for reference: -+.\" .nh disable hyphenation -+.\" .hy enable hyphenation -+.\" .ad l left justify -+.\" .ad b justify to both left and right margins -+.\" .nf disable filling -+.\" .fi enable filling -+.\" .br insert line break -+.\" .sp <n> insert n+1 empty lines -+.\" for manpage-specific macros, see man(7) -+.SH NAME -+PornView \- GTK+-based image viewer/manager -+.SH SYNOPSIS -+.B pornview -+.br -+.SH DESCRIPTION -+This manual page documents briefly the -+.B pornview -+command. -+This manual page was written for the Debian distribution -+because the original program does not have a manual page. -+.PP -+.B PornView -+is a GTK+-based image viewer/manager. Features include thumbnail -+previews, thumbnail caching, directory tree views, adjustable zoom, and -+fullscreen view. Slideshows allow for unattended presentation of images -+for hands-free viewing. -+ -+.SH OPTIONS -+.B PornView -+does not support any command-line options other than the common options -+supported by all gtk commands. All -+.B PornView -+operations may be controlled with only one hand using a mouse or the -+keyboard arrow keys. -+ -+.SH WARRANTY -+This is free software with NO warranty whatsoever; not even for keyboard -+damage or grounding by your parent or legal guardian. -+ -+.SH AUTHOR -+This manual page was written by Brian Nelson <nelson@bignachos.com>, -+for the Debian GNU/Linux system (but may be used by others). ---- pornview-0.2pre1.orig/debian/rules -+++ pornview-0.2pre1/debian/rules -@@ -0,0 +1,70 @@ -+#!/usr/bin/make -f -+ -+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) -+ -+CFLAGS = -Wall -g -+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) -+ CFLAGS += -O0 -+else -+ CFLAGS += -O2 -+endif -+ -+ -+config.status: configure -+ dh_testdir -+ -+ CFLAGS='$(CFLAGS)' ./configure --host=$(DEB_HOST_GNU_TYPE) \ -+ --build=$(DEB_BUILD_GNU_TYPE) \ -+ --prefix=/usr \ -+ --mandir=\$${prefix}/share/man \ -+ --infodir=\$${prefix}/share/info \ -+ --with-gtk2 \ -+ --enable-xine -+ -+build: build-stamp -+ -+build-stamp: config.status -+ dh_testdir -+ -+ $(MAKE) -+ -+ touch build-stamp -+ -+clean: -+ dh_testdir -+ rm -f build-stamp -+ -+ -$(MAKE) distclean -+ -+ dh_clean -+ -+install: build -+ dh_testdir -+ dh_testroot -+ dh_clean -k -+ dh_installdirs -+ -+ $(MAKE) install prefix=$(CURDIR)/debian/pornview/usr -+ -+binary-indep: build install -+ -+binary-arch: build install -+ dh_testdir -+ dh_testroot -+ dh_installdocs -+ dh_installmenu -+ dh_installman debian/pornview.1 -+ dh_installchangelogs -+ dh_link -+ dh_strip -+ dh_compress -+ dh_fixperms -+ dh_installdeb -+ dh_shlibdeps -+ dh_gencontrol -+ dh_md5sums -+ dh_builddeb -+ -+binary: binary-indep binary-arch -+.PHONY: build clean binary-indep binary-arch binary install diff --git a/media-gfx/pornview/files/traypatch.diff b/media-gfx/pornview/files/traypatch.diff new file mode 100644 index 000000000000..db7873ba09e1 --- /dev/null +++ b/media-gfx/pornview/files/traypatch.diff @@ -0,0 +1,536 @@ +diff -Naur pornview-0.2.0pre1/src/dock.c pornview-0.2.0pre2/src/dock.c +--- pornview-0.2.0pre1/src/dock.c 2002-12-11 14:29:03.000000000 -0500 ++++ pornview-0.2.0pre2/src/dock.c 2005-05-21 23:10:58.000000000 -0400 +@@ -5,6 +5,7 @@ + * trem0r <trem0r@tlen.pl> ) \= ) ( * + * (c) 2002 (.--' '--.) * + * / (_)^(_) \ * ++ * Modified to use EggTrayIcon by freelight <evaykher@optonline.net> * + *----------------------------------------------------------------------------*/ + + #include "pornview.h" +@@ -15,7 +16,8 @@ + #include "about.h" + #include "browser.h" + #include "prefs.h" +- ++#include "eggtrayicon.h" ++#include "eggtrayicon.c" + #include "pixmaps/dock.xpm" + + #define dock_exit browser_destroy +@@ -38,7 +40,7 @@ + + static GtkItemFactory *popup_item_factory; + static GtkWidget *popup_menu; +-static GtkWindow *dock = NULL;; ++static EggTrayIcon *dock = NULL; + + /* + *------------------------------------------------------------------- +@@ -102,18 +104,20 @@ + } + + static void +-dock_build (GtkWindow * dock) ++dock_build () + { + GtkWidget *image; + GtkWidget *eventbox; + ++ dock = egg_tray_icon_new ("Pornview"); ++ eventbox = gtk_event_box_new (); + image = pixbuf_create_pixmap_from_xpm_data (dock_xpm); + + GTK_WIDGET_SET_FLAGS (image, GTK_NO_WINDOW); + image->requisition.width = 22; + image->requisition.height = 22; + +- eventbox = gtk_event_box_new (); ++ + + gtk_widget_set_events (GTK_WIDGET (eventbox), + gtk_widget_get_events (eventbox) | +@@ -130,8 +134,7 @@ + gtk_object_set_data (GTK_OBJECT (dock), "pixmapg", image); + gtk_container_add (GTK_CONTAINER (eventbox), image); + gtk_container_add (GTK_CONTAINER (dock), eventbox); +- +- gtk_widget_show (image); ++ gtk_widget_show_all (GTK_WIDGET (dock)); + + /* + * add the popup menu +diff -Naur pornview-0.2.0pre1/src/eggtrayicon.c pornview-0.2.0pre2/src/eggtrayicon.c +--- pornview-0.2.0pre1/src/eggtrayicon.c 1969-12-31 19:00:00.000000000 -0500 ++++ pornview-0.2.0pre2/src/eggtrayicon.c 2005-05-21 23:10:58.000000000 -0400 +@@ -0,0 +1,389 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ ++/* eggtrayicon.c ++ * Copyright (C) 2002 Anders Carlsson <andersca@gnu.org> ++ * ++ * 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, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#include <string.h> ++#include <gdk/gdkx.h> ++#include "eggtrayicon.h" ++ ++#define SYSTEM_TRAY_REQUEST_DOCK 0 ++#define SYSTEM_TRAY_BEGIN_MESSAGE 1 ++#define SYSTEM_TRAY_CANCEL_MESSAGE 2 ++ ++static GtkPlugClass *parent_class = NULL; ++ ++static void egg_tray_icon_init (EggTrayIcon *icon); ++static void egg_tray_icon_class_init (EggTrayIconClass *klass); ++ ++static void egg_tray_icon_unrealize (GtkWidget *widget); ++ ++static void egg_tray_icon_update_manager_window (EggTrayIcon *icon); ++ ++GType ++egg_tray_icon_get_type (void) ++{ ++ static GType our_type = 0; ++ ++ our_type = g_type_from_name("EggTrayIcon"); ++ ++ if (our_type == 0) ++ { ++ static const GTypeInfo our_info = ++ { ++ sizeof (EggTrayIconClass), ++ (GBaseInitFunc) NULL, ++ (GBaseFinalizeFunc) NULL, ++ (GClassInitFunc) egg_tray_icon_class_init, ++ NULL, /* class_finalize */ ++ NULL, /* class_data */ ++ sizeof (EggTrayIcon), ++ 0, /* n_preallocs */ ++ (GInstanceInitFunc) egg_tray_icon_init ++ }; ++ ++ our_type = g_type_register_static (GTK_TYPE_PLUG, "EggTrayIcon", &our_info, 0); ++ } ++ else if (parent_class == NULL) { ++ /* we're reheating the old class from a previous instance - engage ugly hack =( */ ++ egg_tray_icon_class_init((EggTrayIconClass *)g_type_class_peek(our_type)); ++ } ++ ++ return our_type; ++} ++ ++static void ++egg_tray_icon_init (EggTrayIcon *icon) ++{ ++ icon->stamp = 1; ++ ++ gtk_widget_add_events (GTK_WIDGET (icon), GDK_PROPERTY_CHANGE_MASK); ++} ++ ++static void ++egg_tray_icon_class_init (EggTrayIconClass *klass) ++{ ++ GtkWidgetClass *widget_class = (GtkWidgetClass *)klass; ++ ++ parent_class = g_type_class_peek_parent (klass); ++ ++ widget_class->unrealize = egg_tray_icon_unrealize; ++} ++ ++static GdkFilterReturn ++egg_tray_icon_manager_filter (GdkXEvent *xevent, GdkEvent *event, gpointer user_data) ++{ ++ EggTrayIcon *icon = user_data; ++ XEvent *xev = (XEvent *)xevent; ++ ++ if (xev->xany.type == ClientMessage && ++ xev->xclient.message_type == icon->manager_atom && ++ xev->xclient.data.l[1] == icon->selection_atom) ++ { ++ egg_tray_icon_update_manager_window (icon); ++ } ++ else if (xev->xany.window == icon->manager_window) ++ { ++ if (xev->xany.type == DestroyNotify) ++ { ++ egg_tray_icon_update_manager_window (icon); ++ } ++ } ++ ++ return GDK_FILTER_CONTINUE; ++} ++ ++static void ++egg_tray_icon_unrealize (GtkWidget *widget) ++{ ++ EggTrayIcon *icon = EGG_TRAY_ICON (widget); ++ GdkWindow *root_window; ++ ++ if (icon->manager_window != None) ++ { ++ GdkWindow *gdkwin; ++ ++#if HAVE_GTK_MULTIHEAD ++ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (widget), ++ icon->manager_window); ++#else ++ gdkwin = gdk_window_lookup (icon->manager_window); ++#endif ++ ++ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); ++ } ++ ++#if HAVE_GTK_MULTIHEAD ++ root_window = gdk_screen_get_root_window (gtk_widget_get_screen (widget)); ++#else ++ root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); ++#endif ++ ++ gdk_window_remove_filter (root_window, egg_tray_icon_manager_filter, icon); ++ ++ if (GTK_WIDGET_CLASS (parent_class)->unrealize) ++ (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget); ++} ++ ++static void ++egg_tray_icon_send_manager_message (EggTrayIcon *icon, ++ long message, ++ Window window, ++ long data1, ++ long data2, ++ long data3) ++{ ++ XClientMessageEvent ev; ++ Display *display; ++ ++ ev.type = ClientMessage; ++ ev.window = window; ++ ev.message_type = icon->system_tray_opcode_atom; ++ ev.format = 32; ++ ev.data.l[0] = gdk_x11_get_server_time (GTK_WIDGET (icon)->window); ++ ev.data.l[1] = message; ++ ev.data.l[2] = data1; ++ ev.data.l[3] = data2; ++ ev.data.l[4] = data3; ++ ++#if HAVE_GTK_MULTIHEAD ++ display = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); ++#else ++ display = gdk_display; ++#endif ++ ++ gdk_error_trap_push (); ++ XSendEvent (display, ++ icon->manager_window, False, NoEventMask, (XEvent *)&ev); ++ XSync (display, False); ++ gdk_error_trap_pop (); ++} ++ ++static void ++egg_tray_icon_send_dock_request (EggTrayIcon *icon) ++{ ++ egg_tray_icon_send_manager_message (icon, ++ SYSTEM_TRAY_REQUEST_DOCK, ++ icon->manager_window, ++ gtk_plug_get_id (GTK_PLUG (icon)), ++ 0, 0); ++} ++ ++static void ++egg_tray_icon_update_manager_window (EggTrayIcon *icon) ++{ ++ Display *xdisplay; ++ ++#if HAVE_GTK_MULTIHEAD ++ xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); ++#else ++ xdisplay = gdk_display; ++#endif ++ ++ if (icon->manager_window != None) ++ { ++ GdkWindow *gdkwin; ++ ++#if HAVE_GTK_MULTIHEAD ++ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), ++ icon->manager_window); ++#else ++ gdkwin = gdk_window_lookup (icon->manager_window); ++#endif ++ ++ gdk_window_remove_filter (gdkwin, egg_tray_icon_manager_filter, icon); ++ } ++ ++ XGrabServer (xdisplay); ++ ++ icon->manager_window = XGetSelectionOwner (xdisplay, ++ icon->selection_atom); ++ ++ if (icon->manager_window != None) ++ XSelectInput (xdisplay, ++ icon->manager_window, StructureNotifyMask); ++ ++ XUngrabServer (xdisplay); ++ XFlush (xdisplay); ++ ++ if (icon->manager_window != None) ++ { ++ GdkWindow *gdkwin; ++ ++#if HAVE_GTK_MULTIHEAD ++ gdkwin = gdk_window_lookup_for_display (gtk_widget_get_display (GTK_WIDGET (icon)), ++ icon->manager_window); ++#else ++ gdkwin = gdk_window_lookup (icon->manager_window); ++#endif ++ ++ gdk_window_add_filter (gdkwin, egg_tray_icon_manager_filter, icon); ++ ++ /* Send a request that we'd like to dock */ ++ egg_tray_icon_send_dock_request (icon); ++ } ++} ++ ++EggTrayIcon * ++egg_tray_icon_new_for_xscreen (Screen *xscreen, const char *name) ++{ ++ EggTrayIcon *icon; ++ char buffer[256]; ++ GdkWindow *root_window; ++ ++ g_return_val_if_fail (xscreen != NULL, NULL); ++ ++ icon = g_object_new (EGG_TYPE_TRAY_ICON, NULL); ++ gtk_window_set_title (GTK_WINDOW (icon), name); ++ ++#if HAVE_GTK_MULTIHEAD ++ /* FIXME: this code does not compile, screen is undefined. Now try ++ * getting the GdkScreen from xscreen (:. Dunno how to solve this ++ * (there is prolly some easy way I cant think of right now) ++ */ ++ gtk_plug_construct_for_display (GTK_PLUG (icon), ++ gdk_screen_get_display (screen), 0); ++#else ++ gtk_plug_construct (GTK_PLUG (icon), 0); ++#endif ++ ++ gtk_widget_realize (GTK_WIDGET (icon)); ++ ++ /* Now see if there's a manager window around */ ++ g_snprintf (buffer, sizeof (buffer), ++ "_NET_SYSTEM_TRAY_S%d", ++ XScreenNumberOfScreen (xscreen)); ++ ++ icon->selection_atom = XInternAtom (DisplayOfScreen (xscreen), ++ buffer, False); ++ ++ icon->manager_atom = XInternAtom (DisplayOfScreen (xscreen), ++ "MANAGER", False); ++ ++ icon->system_tray_opcode_atom = XInternAtom (DisplayOfScreen (xscreen), ++ "_NET_SYSTEM_TRAY_OPCODE", False); ++ ++ egg_tray_icon_update_manager_window (icon); ++ ++#if HAVE_GTK_MULTIHEAD ++ root_window = gdk_screen_get_root_window (gtk_widget_get_screen (screen)); ++#else ++ root_window = gdk_window_lookup (gdk_x11_get_default_root_xwindow ()); ++#endif ++ ++ /* Add a root window filter so that we get changes on MANAGER */ ++ gdk_window_add_filter (root_window, ++ egg_tray_icon_manager_filter, icon); ++ ++ return icon; ++} ++ ++#if HAVE_GTK_MULTIHEAD ++EggTrayIcon * ++egg_tray_icon_new_for_screen (GdkScreen *screen, const char *name) ++{ ++ EggTrayIcon *icon; ++ char buffer[256]; ++ ++ g_return_val_if_fail (GDK_IS_SCREEN (screen), NULL); ++ ++ return egg_tray_icon_new_for_xscreen (GDK_SCREEN_XSCREEN (screen), name); ++} ++#endif ++ ++EggTrayIcon* ++egg_tray_icon_new (const gchar *name) ++{ ++ return egg_tray_icon_new_for_xscreen (DefaultScreenOfDisplay (gdk_display), name); ++} ++ ++guint ++egg_tray_icon_send_message (EggTrayIcon *icon, ++ gint timeout, ++ const gchar *message, ++ gint len) ++{ ++ guint stamp; ++ ++ g_return_val_if_fail (EGG_IS_TRAY_ICON (icon), 0); ++ g_return_val_if_fail (timeout >= 0, 0); ++ g_return_val_if_fail (message != NULL, 0); ++ ++ if (icon->manager_window == None) ++ return 0; ++ ++ if (len < 0) ++ len = strlen (message); ++ ++ stamp = icon->stamp++; ++ ++ /* Get ready to send the message */ ++ egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_BEGIN_MESSAGE, ++ (Window)gtk_plug_get_id (GTK_PLUG (icon)), ++ timeout, len, stamp); ++ ++ /* Now to send the actual message */ ++ gdk_error_trap_push (); ++ while (len > 0) ++ { ++ XClientMessageEvent ev; ++ Display *xdisplay; ++ ++#if HAVE_GTK_MULTIHEAD ++ xdisplay = GDK_DISPLAY_XDISPLAY (gtk_widget_get_display (GTK_WIDGET (icon))); ++#else ++ xdisplay = gdk_display; ++#endif ++ ++ ev.type = ClientMessage; ++ ev.window = (Window)gtk_plug_get_id (GTK_PLUG (icon)); ++ ev.format = 8; ++ ev.message_type = XInternAtom (xdisplay, ++ "_NET_SYSTEM_TRAY_MESSAGE_DATA", False); ++ if (len > 20) ++ { ++ memcpy (&ev.data, message, 20); ++ len -= 20; ++ message += 20; ++ } ++ else ++ { ++ memcpy (&ev.data, message, len); ++ len = 0; ++ } ++ ++ XSendEvent (xdisplay, ++ icon->manager_window, False, StructureNotifyMask, (XEvent *)&ev); ++ XSync (xdisplay, False); ++ } ++ gdk_error_trap_pop (); ++ ++ return stamp; ++} ++ ++void ++egg_tray_icon_cancel_message (EggTrayIcon *icon, ++ guint id) ++{ ++ g_return_if_fail (EGG_IS_TRAY_ICON (icon)); ++ g_return_if_fail (id > 0); ++ ++ egg_tray_icon_send_manager_message (icon, SYSTEM_TRAY_CANCEL_MESSAGE, ++ (Window)gtk_plug_get_id (GTK_PLUG (icon)), ++ id, 0, 0); ++} +diff -Naur pornview-0.2.0pre1/src/eggtrayicon.h pornview-0.2.0pre2/src/eggtrayicon.h +--- pornview-0.2.0pre1/src/eggtrayicon.h 1969-12-31 19:00:00.000000000 -0500 ++++ pornview-0.2.0pre2/src/eggtrayicon.h 2005-05-21 23:10:58.000000000 -0400 +@@ -0,0 +1,76 @@ ++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ ++/* eggtrayicon.h ++ * Copyright (C) 2002 Anders Carlsson <andersca@gnu.org> ++ * ++ * 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, write to the ++ * Free Software Foundation, Inc., 59 Temple Place - Suite 330, ++ * Boston, MA 02111-1307, USA. ++ */ ++ ++#ifndef __EGG_TRAY_ICON_H__ ++#define __EGG_TRAY_ICON_H__ ++ ++#include <gtk/gtkplug.h> ++#include <gdk/gdkx.h> ++ ++G_BEGIN_DECLS ++ ++#define EGG_TYPE_TRAY_ICON (egg_tray_icon_get_type ()) ++#define EGG_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_TRAY_ICON, EggTrayIcon)) ++#define EGG_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_TRAY_ICON, EggTrayIconClass)) ++#define EGG_IS_TRAY_ICON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_TRAY_ICON)) ++#define EGG_IS_TRAY_ICON_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_TRAY_ICON)) ++#define EGG_TRAY_ICON_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_TRAY_ICON, EggTrayIconClass)) ++ ++typedef struct _EggTrayIcon EggTrayIcon; ++typedef struct _EggTrayIconClass EggTrayIconClass; ++ ++struct _EggTrayIcon ++{ ++ GtkPlug parent_instance; ++ ++ guint stamp; ++ ++ Atom selection_atom; ++ Atom manager_atom; ++ Atom system_tray_opcode_atom; ++ Window manager_window; ++}; ++ ++struct _EggTrayIconClass ++{ ++ GtkPlugClass parent_class; ++}; ++ ++GType egg_tray_icon_get_type (void); ++ ++#if EGG_TRAY_ENABLE_MULTIHEAD ++EggTrayIcon *egg_tray_icon_new_for_screen (GdkScreen *screen, ++ const gchar *name); ++#endif ++ ++EggTrayIcon *egg_tray_icon_new (const gchar *name); ++ ++guint egg_tray_icon_send_message (EggTrayIcon *icon, ++ gint timeout, ++ const char *message, ++ gint len); ++void egg_tray_icon_cancel_message (EggTrayIcon *icon, ++ guint id); ++ ++ ++ ++G_END_DECLS ++ ++#endif /* __EGG_TRAY_ICON_H__ */ diff --git a/media-gfx/pornview/metadata.xml b/media-gfx/pornview/metadata.xml new file mode 100644 index 000000000000..49a9cc63cb38 --- /dev/null +++ b/media-gfx/pornview/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer> + <email>antarus@gentoo.org</email> +</maintainer> +</pkgmetadata> + diff --git a/media-gfx/pornview/pornview-0.2.0_pre1-r1.ebuild b/media-gfx/pornview/pornview-0.2.0_pre1-r1.ebuild new file mode 100644 index 000000000000..b712fc34eb68 --- /dev/null +++ b/media-gfx/pornview/pornview-0.2.0_pre1-r1.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-gfx/pornview/pornview-0.2.0_pre1-r1.ebuild,v 1.1 2006/09/19 13:56:02 antarus Exp $ + +inherit eutils + +IUSE="jpeg mplayer nls static" + +DESCRIPTION="Image viewer/manager with optional support for MPEG movies." +HOMEPAGE="http://pornview.sourceforge.net" +LICENSE="GPL-2" + +DEPEND="media-libs/libpng + mplayer? ( media-video/mplayer ) + jpeg? ( media-libs/jpeg ) + >=x11-libs/gtk+-2.0 + nls? ( sys-devel/gettext )" + +SLOT="0" +KEYWORDS="x86 ppc amd64" +SRC_URI="mirror://sourceforge/${PN}/${P/_/}.tar.gz" +RESTRICT="nomirror" + +S="${WORKDIR}/${P/_/}" + +src_compile() { + local myflags + + myflags="${myflags} --with-gtk2" + + if use mplayer; then + myflags="${myflags} --enable-mplayer" + fi + + use jpeg || myflags="${myflags} --disable-exif" + + use nls || myflags="${myflags} --disable-nls" + + use static && myflags="${myflags} --enable-static" + + epatch ${FILESDIR}/${P}-4.diff || die + epatch ${FILESDIR}/traypatch.diff || die + + econf ${myflags} || die "./configure failed" + + emake || die "make failed" +} + +src_install() { + make DESTDIR=${D} install || die + + dodoc AUTHORS NEWS README +} |