summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlec Warner <antarus@gentoo.org>2006-09-19 13:56:02 +0000
committerAlec Warner <antarus@gentoo.org>2006-09-19 13:56:02 +0000
commitb213adc8094d1270c74000225b2ec3161874205f (patch)
tree52f7216ad52eb428538b784ca78bcbcbb9a6ffa7 /media-gfx
parentenable support for nested pts groups, fixing bug #145339 (diff)
downloadgentoo-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/ChangeLog10
-rw-r--r--media-gfx/pornview/files/digest-pornview-0.2.0_pre12
-rw-r--r--media-gfx/pornview/files/digest-pornview-0.2.0_pre1-r13
-rw-r--r--media-gfx/pornview/files/pornview-0.2.0_pre1-4.diff265
-rw-r--r--media-gfx/pornview/files/traypatch.diff536
-rw-r--r--media-gfx/pornview/metadata.xml8
-rw-r--r--media-gfx/pornview/pornview-0.2.0_pre1-r1.ebuild53
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
+}