# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: geoffrey.antos@gmail.com-20080709055536-\
#   0b4vyluw3665rmsw
# target_branch: ../scroll-adjustments-signal/
# testament_sha1: 6418f375e72e53af3ae291125803c6ae55936cce
# timestamp: 2008-07-09 02:00:15 -0400
# source_branch: .
# base_revision_id: geoffrey.antos@gmail.com-20080709043947-\
#   1cgjbiqn4unb79bk
# 
# Begin patch
=== modified file 'ChangeLog'
--- ChangeLog	2008-07-09 04:39:47 +0000
+++ ChangeLog	2008-07-09 05:55:36 +0000
@@ -5,6 +5,20 @@
 	actually using the correct marshaller for the given
 	parameter types.
 
+2008-06-26  Geoffrey Antos <dynamotwain@aim.com>
+	* src/gs-fade.c:
+	* src/gs-fade.h:
+	* src/Makefile.am:
+	* src/gth-fullscreen.c: (gth_fullscreen_finalize),
+	(slideshow_timeout_cb), (viewer_image_loaded_cb), (fade_faded_cb),
+	(gth_fullscreen_init):
+	Removed old slideshow fading code that doesn't support Xinerama.
+	
+	* src/gth-fullscreen.c: (load_current_image),
+	(real_load_current_image):
+	Removed gs-fade.c-specific load_current_image
+	Renamed real_load_current_image to load_current_image
+
 2008-05-21  Michael J. Chudobiak  <mjc@svn.gnome.org>
 
 	* AUTHORS:

=== modified file 'data/glade/gthumb_preferences.glade'
--- data/glade/gthumb_preferences.glade	2008-04-08 12:46:24 +0000
+++ data/glade/gthumb_preferences.glade	2008-07-09 05:50:22 +0000
@@ -2108,24 +2108,6 @@
 			    </packing>
 			  </child>
 
-			  <child>
-			    <widget class="GtkCheckButton" id="toggle_ss_fading">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Use a _fading effect when changing image</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>

=== modified file 'src/Makefile.am'
--- src/Makefile.am	2008-02-07 16:13:39 +0000
+++ src/Makefile.am	2008-07-09 05:50:22 +0000
@@ -87,8 +87,6 @@
 	dlg-scripts.h				\
 	dlg-write-to-cd.c			\
 	dlg-write-to-cd.h			\
-	gs-fade.c				\
-	gs-fade.h				\
 	gth-application.c			\
 	gth-application.h			\
 	gth-batch-op.c				\

=== modified file 'src/dlg-preferences.c'
--- src/dlg-preferences.c	2008-04-08 12:46:24 +0000
+++ src/dlg-preferences.c	2008-07-09 05:50:22 +0000
@@ -101,7 +101,6 @@
 	GtkWidget  *radio_ss_direction_random;
 	GtkWidget  *spin_ss_delay;
 	GtkWidget  *toggle_ss_wrap_around;
-	GtkWidget  *toggle_ss_fading;
 
 } DialogData;
 
@@ -140,7 +139,6 @@
 	/* Slideshow. */
 
 	eel_gconf_set_boolean (PREF_SLIDESHOW_WRAP_AROUND, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->toggle_ss_wrap_around)));
-	eel_gconf_set_boolean (PREF_SLIDESHOW_FADING, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->toggle_ss_fading)));
 
 	eel_gconf_set_float (PREF_SLIDESHOW_DELAY, gtk_spin_button_get_value (GTK_SPIN_BUTTON (data->spin_ss_delay)));
 
@@ -435,7 +433,6 @@
         data->radio_ss_direction_random = glade_xml_get_widget (data->gui, "radio_ss_direction_random");
         data->spin_ss_delay = glade_xml_get_widget (data->gui, "spin_ss_delay");
         data->toggle_ss_wrap_around = glade_xml_get_widget (data->gui, "toggle_ss_wrap_around");
-        data->toggle_ss_fading = glade_xml_get_widget (data->gui, "toggle_ss_fading");
 
 	btn_close  = glade_xml_get_widget (data->gui, "p_close_button");
 	btn_help   = glade_xml_get_widget (data->gui, "p_help_button");
@@ -524,7 +521,6 @@
 	gtk_spin_button_set_value (GTK_SPIN_BUTTON (data->spin_ss_delay),
 				   eel_gconf_get_float (PREF_SLIDESHOW_DELAY, 4.0));
 	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->toggle_ss_wrap_around), eel_gconf_get_boolean (PREF_SLIDESHOW_WRAP_AROUND, FALSE));
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->toggle_ss_fading), eel_gconf_get_boolean (PREF_SLIDESHOW_FADING, TRUE));
 
 	/* Set the signals handlers. */
 

=== removed file 'src/gs-fade.c'
--- src/gs-fade.c	2006-11-30 17:47:38 +0000
+++ src/gs-fade.c	1970-01-01 00:00:00 +0000
@@ -1,632 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-
-/*
- *  GThumb
- *
- *  Copyright (C) 2005 Free Software Foundation, Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- */
-
-/* Base on gs-fade.c from gnome-screensaver: 
- *
- * Copyright (C) 2004-2005 William Jon McCann <mccann@jhu.edu>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Authors: William Jon McCann <mccann@jhu.edu>
- *
- */
-
-#include "config.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-#include <errno.h>
-
-#include <string.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif /* HAVE_UNISTD_H */
-
-#include <gdk/gdkx.h>
-#include <gtk/gtk.h>
-
-#include "gs-fade.h"
-
-#define STEPS_PER_SEC 30
-#define DEFAULT_TIMEOUT 1000
-
-/* XFree86 4.x+ Gamma fading */
-
-#ifdef HAVE_XF86VMODE_GAMMA
-
-#include <X11/extensions/xf86vmode.h>
-
-typedef struct {
-        XF86VidModeGamma vmg;
-        int              size;
-        unsigned short  *r;
-        unsigned short  *g;
-        unsigned short  *b;
-} xf86_gamma_info;
-
-#endif /* HAVE_XF86VMODE_GAMMA */
-
-static void     gs_fade_class_init (GSFadeClass *klass);
-static void     gs_fade_init       (GSFade      *fade);
-static void     gs_fade_finalize   (GObject        *object);
-
-#define GS_FADE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GS_TYPE_FADE, GSFadePrivate))
-
-struct GSFadePrivate
-{
-        GsFadeDirection    direction;
-        gboolean           fading;
-        guint              step_id;
-
-        guint              timeout;
-        guint              step;
-        guint              num_steps;
-        guint              msecs_per_step;
-        gdouble            alpha;
-
-        int                fade_type;
-        int                num_screens;
-#ifdef HAVE_XF86VMODE_GAMMA
-        xf86_gamma_info   *gamma_info;
-#endif /* HAVE_XF86VMODE_GAMMA */
-
-};
-
-enum { 
-        FADED,
-        LAST_SIGNAL
-};
-
-enum {
-        PROP_0
-};
-
-enum {
-        FADE_TYPE_NONE,
-        FADE_TYPE_GAMMA_NUMBER,
-        FADE_TYPE_GAMMA_RAMP
-};
-
-static GObjectClass *parent_class = NULL;
-static guint         signals [LAST_SIGNAL] = { 0, };
-
-G_DEFINE_TYPE (GSFade, gs_fade, G_TYPE_OBJECT)
-
-static gpointer fade_object = NULL;
-
-#ifdef HAVE_XF86VMODE_GAMMA
-
-/* This is needed because the VidMode extension doesn't work
-   on remote displays -- but if the remote display has the extension
-   at all, XF86VidModeQueryExtension returns true, and then
-   XF86VidModeQueryVersion dies with an X error.
-*/
-
-static gboolean error_handler_hit = FALSE;
-
-static int
-ignore_all_errors_ehandler (Display     *dpy,
-                            XErrorEvent *error)
-{
-        error_handler_hit = TRUE;
-
-        return 0;
-}
-
-static Bool
-safe_XF86VidModeQueryVersion (Display *dpy,
-                              int     *majP,
-                              int     *minP)
-{
-        Bool          result;
-        XErrorHandler old_handler;
-
-        XSync (dpy, False);
-        error_handler_hit = FALSE;
-        old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
-
-        result = XF86VidModeQueryVersion (dpy, majP, minP);
-
-        XSync (dpy, False);
-        XSetErrorHandler (old_handler);
-        XSync (dpy, False);
-
-        return (error_handler_hit
-                ? False
-                : result);
-}
-
-static gboolean
-xf86_whack_gamma (int              screen,
-                  xf86_gamma_info *info,
-                  float            ratio)
-{
-        Bool status;
-
-        if (ratio < 0)
-                ratio = 0;
-        if (ratio > 1)
-                ratio = 1;
-
-        if (info->size == 0) {
-                /* we only have a gamma number, not a ramp. */
-
-                XF86VidModeGamma g2;
-
-                g2.red   = info->vmg.red   * ratio;
-                g2.green = info->vmg.green * ratio;
-                g2.blue  = info->vmg.blue  * ratio;
-
-# ifdef XF86_MIN_GAMMA
-                if (g2.red < XF86_MIN_GAMMA)
-                        g2.red = XF86_MIN_GAMMA;
-                if (g2.green < XF86_MIN_GAMMA)
-                        g2.green = XF86_MIN_GAMMA;
-                if (g2.blue < XF86_MIN_GAMMA)
-                        g2.blue = XF86_MIN_GAMMA;
-# endif
-
-                status = XF86VidModeSetGamma (GDK_DISPLAY (), screen, &g2);
-        } else {
-
-# ifdef HAVE_XF86VMODE_GAMMA_RAMP
-                unsigned short *r, *g, *b;
-                int i;
-
-                r = (unsigned short *) malloc (info->size * sizeof (unsigned short));
-                g = (unsigned short *) malloc (info->size * sizeof (unsigned short));
-                b = (unsigned short *) malloc (info->size * sizeof (unsigned short));
-
-                for (i = 0; i < info->size; i++) {
-                        r[i] = info->r[i] * ratio;
-                        g[i] = info->g[i] * ratio;
-                        b[i] = info->b[i] * ratio;
-                }
-
-                status = XF86VidModeSetGammaRamp (GDK_DISPLAY (), screen, info->size, r, g, b);
-
-                free (r);
-                free (g);
-                free (b);
-
-# else  /* !HAVE_XF86VMODE_GAMMA_RAMP */
-                /*abort ();*/
-		status = FALSE;
-# endif /* !HAVE_XF86VMODE_GAMMA_RAMP */
-        }
-
-        gdk_flush ();
-
-        return status;
-}
-
-#endif /* HAVE_XF86VMODE_GAMMA */
-
-/* VidModeExtension version 2.0 or better is needed to do gamma.
-   2.0 added gamma values; 2.1 added gamma ramps.
-*/
-# define XF86_VIDMODE_GAMMA_MIN_MAJOR 2
-# define XF86_VIDMODE_GAMMA_MIN_MINOR 0
-# define XF86_VIDMODE_GAMMA_RAMP_MIN_MAJOR 2
-# define XF86_VIDMODE_GAMMA_RAMP_MIN_MINOR 1
-
-static int
-check_gamma_extension (void)
-{
-#ifdef HAVE_XF86VMODE_GAMMA
-        int event, error, major, minor;
-
-        if (! XF86VidModeQueryExtension (GDK_DISPLAY (), &event, &error))
-                return FADE_TYPE_NONE;  /* display doesn't have the extension. */
-
-        if (! safe_XF86VidModeQueryVersion (GDK_DISPLAY (), &major, &minor))
-                return FADE_TYPE_NONE;  /* unable to get version number? */
-
-        if (major < XF86_VIDMODE_GAMMA_MIN_MAJOR || 
-            (major == XF86_VIDMODE_GAMMA_MIN_MAJOR &&
-             minor < XF86_VIDMODE_GAMMA_MIN_MINOR))
-                return FADE_TYPE_NONE;  /* extension is too old for gamma. */
-
-        if (major < XF86_VIDMODE_GAMMA_RAMP_MIN_MAJOR || 
-            (major == XF86_VIDMODE_GAMMA_RAMP_MIN_MAJOR &&
-             minor < XF86_VIDMODE_GAMMA_RAMP_MIN_MINOR))
-                return FADE_TYPE_GAMMA_NUMBER;  /* extension is too old for gamma ramps. */
-
-        /* Copacetic */
-        return FADE_TYPE_GAMMA_RAMP;
-#else
-        return FADE_TYPE_NONE;
-#endif /* HAVE_XF86VMODE_GAMMA */
-}
-
-static gboolean
-gamma_info_init (GSFade *fade)
-{
-#ifdef HAVE_XF86VMODE_GAMMA
-        int              screen;
-        xf86_gamma_info *info;
-
-# ifndef HAVE_XF86VMODE_GAMMA_RAMP
-        if (FADE_TYPE_GAMMA_RAMP == fade->priv->fade_type) {
-                /* server is newer than client! */
-                fade->priv->fade_type = FADE_TYPE_GAMMA_NUMBER;
-        }
-# endif
-
-        info = g_new0 (xf86_gamma_info, fade->priv->num_screens);
-        fade->priv->gamma_info = info;
-        
-        /* Get the current gamma maps for all screens.
-           Bug out and return -1 if we can't get them for some screen.
-        */
-        for (screen = 0; screen < fade->priv->num_screens; screen++) {
-
-                if (FADE_TYPE_GAMMA_NUMBER == fade->priv->fade_type) {
-                        /* only have gamma parameter, not ramps. */
-
-                        if (! XF86VidModeGetGamma (GDK_DISPLAY (), screen, &info [screen].vmg))
-                                goto FAIL;
-                }
-
-# ifdef HAVE_XF86VMODE_GAMMA_RAMP
-
-                else if (FADE_TYPE_GAMMA_RAMP == fade->priv->fade_type) {
-                        /* have ramps */
-
-                        if (! XF86VidModeGetGammaRampSize (GDK_DISPLAY (), screen, &info [screen].size))
-                                goto FAIL;
-                        if (info [screen].size <= 0)
-                                goto FAIL;
-
-                        info [screen].r = (unsigned short *)
-                                calloc (info[screen].size, sizeof (unsigned short));
-                        info [screen].g = (unsigned short *)
-                                calloc (info[screen].size, sizeof (unsigned short));
-                        info [screen].b = (unsigned short *)
-                                calloc (info[screen].size, sizeof (unsigned short));
-
-                        if (! (info [screen].r && info [screen].g && info [screen].b))
-                                goto FAIL;
-
-                        if (! XF86VidModeGetGammaRamp (GDK_DISPLAY (),
-                                                       screen,
-                                                       info [screen].size,
-                                                       info [screen].r,
-                                                       info [screen].g,
-                                                       info [screen].b))
-                                goto FAIL;
-                }
-# endif /* HAVE_XF86VMODE_GAMMA_RAMP */
-                else {
-                        /*abort ();*/
-			goto FAIL;
-                }
-        }
-
-        return TRUE;
- FAIL:
-#endif /* HAVE_XF86VMODE_GAMMA */
-        return FALSE;
-}
-
-static void
-gamma_info_free (GSFade *fade)
-{
-#ifdef HAVE_XF86VMODE_GAMMA
-
-        if (fade->priv->gamma_info) {
-                int screen;
-
-                for (screen = 0; screen < fade->priv->num_screens; screen++) {
-                        if (fade->priv->gamma_info [screen].r)
-                                g_free (fade->priv->gamma_info[screen].r);
-                        if (fade->priv->gamma_info [screen].g)
-                                g_free (fade->priv->gamma_info[screen].g);
-                        if (fade->priv->gamma_info [screen].b)
-                                g_free (fade->priv->gamma_info[screen].b);
-                }
-
-                g_free (fade->priv->gamma_info);
-                fade->priv->gamma_info = NULL;
-        }
-
-#endif /* HAVE_XF86VMODE_GAMMA */
-}
-
-#define XF86_MIN_GAMMA  0.1
-
-static gboolean
-gs_fade_set_alpha_gamma (GSFade *fade,
-                         gdouble alpha)
-{
-#ifdef HAVE_XF86VMODE_GAMMA
-        int      screen;
-        gboolean res;
-
-        for (screen = 0; screen < fade->priv->num_screens; screen++) {
-                res = xf86_whack_gamma (screen, &fade->priv->gamma_info [screen], alpha);
-        }
-
-        return TRUE;
-#else
-        return FALSE;
-#endif /* HAVE_XF86VMODE_GAMMA */
-}
-
-static gboolean
-gs_fade_set_alpha (GSFade *fade,
-                   gdouble alpha)
-{
-        gboolean ret;
-
-        switch (fade->priv->fade_type) {
-        case FADE_TYPE_GAMMA_RAMP:
-        case FADE_TYPE_GAMMA_NUMBER:
-                ret = gs_fade_set_alpha_gamma (fade, alpha);
-                break;
-        case FADE_TYPE_NONE:
-                ret = FALSE;
-                break;
-        default:
-                g_warning ("Unknown fade type");
-                ret = FALSE;
-                break;
-        }
-
-        return ret;
-}
-
-static void
-gs_fade_set_property (GObject            *object,
-                      guint               prop_id,
-                      const GValue       *value,
-                      GParamSpec         *pspec)
-{
-        switch (prop_id) {
-        default:
-                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-                break;
-        }
-}
-
-static void
-gs_fade_get_property (GObject            *object,
-                      guint               prop_id,
-                      GValue             *value,
-                      GParamSpec         *pspec)
-{
-        switch (prop_id) {
-        default:
-                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-                break;
-        }
-}
-
-static void
-gs_fade_class_init (GSFadeClass *klass)
-{
-        GObjectClass   *object_class = G_OBJECT_CLASS (klass);
-
-        parent_class = g_type_class_peek_parent (klass);
-
-        object_class->finalize     = gs_fade_finalize;
-        object_class->get_property = gs_fade_get_property;
-        object_class->set_property = gs_fade_set_property;
-
-        signals [FADED] =
-                g_signal_new ("faded",
-                              G_TYPE_FROM_CLASS (object_class),
-                              G_SIGNAL_RUN_LAST,
-                              G_STRUCT_OFFSET (GSFadeClass, faded),
-                              NULL,
-                              NULL,
-                              g_cclosure_marshal_VOID__INT,
-                              G_TYPE_NONE,
-                              1, G_TYPE_INT);
-
-        g_type_class_add_private (klass, sizeof (GSFadePrivate));
-}
-
-static void
-gs_fade_init (GSFade *fade)
-{
-        GdkDisplay *display;
-
-        fade->priv = GS_FADE_GET_PRIVATE (fade);
-
-	fade->priv->direction = GS_FADE_DIRECTION_OUT;
-	fade->priv->fading = FALSE;
-        fade->priv->alpha = 0.0;
-        gs_fade_set_timeout (fade, DEFAULT_TIMEOUT);
-
-        fade->priv->fade_type = check_gamma_extension ();
-
-        display = gdk_display_get_default ();
-        fade->priv->num_screens = gdk_display_get_n_screens (display);
-
-        gamma_info_init (fade);
-}
-
-static void
-gs_fade_stop (GSFade *fade)
-{
-        if (fade->priv->step_id != 0) {
-                g_source_remove (fade->priv->step_id);
-                fade->priv->step_id = 0;
-        }
-        fade->priv->fading = FALSE;
-}
-
-static void
-gs_fade_finalize (GObject *object)
-{
-        GSFade *fade;
-
-        g_return_if_fail (object != NULL);
-        g_return_if_fail (GS_IS_FADE (object));
-
-        fade = GS_FADE (object);
-
-        g_return_if_fail (fade->priv != NULL);
-
-        gs_fade_stop (fade);
-        gamma_info_free (fade);
-
-        G_OBJECT_CLASS (parent_class)->finalize (object);
-}
-
-GSFade *
-gs_fade_new (void)
-{
-        if (fade_object) {
-                g_object_ref (fade_object);
-        } else {
-                fade_object = g_object_new (GS_TYPE_FADE, NULL);
-                g_object_add_weak_pointer (fade_object,
-                                           (gpointer *) &fade_object);
-        }
-
-        return GS_FADE (fade_object);
-}
-
-void
-gs_fade_set_timeout (GSFade *fade,
-                     guint   timeout)
-{
-        fade->priv->timeout = timeout;
-        fade->priv->step = 0;
-        fade->priv->num_steps = (fade->priv->timeout / 1000) * STEPS_PER_SEC;
-        fade->priv->msecs_per_step = 1000 / STEPS_PER_SEC;
-}
-
-static gboolean
-gs_fade_faded (GSFade *fade)
-{
-        fade->priv->step_id = 0;
-        fade->priv->fading = FALSE;
-
-        g_signal_emit (fade, signals[FADED], 0, fade->priv->direction);
-
-        return FALSE;
-}
-
-static gboolean
-gs_fade_step (gpointer data)
-{ 
-        GSFade  *fade = data;
-        gdouble  sign;
-
-        if (!gs_fade_set_alpha (fade, fade->priv->alpha)) 
-                return gs_fade_faded (fade);
-
-        fade->priv->step++;
-        if (fade->priv->step > fade->priv->num_steps) 
-                return gs_fade_faded (fade);
-
-        sign = 1.0;
-        if (fade->priv->direction == GS_FADE_DIRECTION_OUT)
-                sign = -1.0;
-        fade->priv->alpha += (sign) * (gdouble)fade->priv->step / (gdouble)fade->priv->num_steps;
-
-        return TRUE;
-}
-
-void
-gs_fade_in (GSFade *fade)
-{
-        if (fade->priv->fading)
-                return;
-
-        fade->priv->fading = TRUE;
-
-        fade->priv->direction = GS_FADE_DIRECTION_IN;
-        fade->priv->alpha = 0.0;
-        fade->priv->step = 0;
-        fade->priv->step_id = g_timeout_add (fade->priv->msecs_per_step, 
-                                             gs_fade_step,
-                                             fade);
-}
-
-void
-gs_fade_out (GSFade *fade)
-{       
-        if (fade->priv->fading)
-                return;
-
-        fade->priv->fading = TRUE;
-
-        fade->priv->direction = GS_FADE_DIRECTION_OUT;
-        fade->priv->alpha = 1.0;
-        fade->priv->step = 0;
-        fade->priv->step_id = g_timeout_add (fade->priv->msecs_per_step, 
-                                             gs_fade_step,
-                                             fade);
-}
-
-void
-gs_fade_complete (GSFade *fade)
-{
-        gs_fade_stop (fade);
-	fade->priv->direction = GS_FADE_DIRECTION_IN;
-	gs_fade_set_alpha (fade, 1.0);
-        gs_fade_faded (fade);           
-}
-
-void
-gs_fade_reset (GSFade *fade)
-{ 
-        gs_fade_stop (fade);
-        gs_fade_set_alpha (fade, 1.0);
-}
-
-gboolean
-gs_fade_is_fading (GSFade *fade)
-{
-	return fade->priv->fading;
-}
-
-gboolean
-gs_fade_is_fading_in (GSFade *fade)
-{
-	return fade->priv->fading && (fade->priv->direction = GS_FADE_DIRECTION_IN);
-}
-
-gboolean
-gs_fade_is_fading_out (GSFade *fade)
-{
-	return fade->priv->fading && (fade->priv->direction = GS_FADE_DIRECTION_OUT);
-}

=== removed file 'src/gs-fade.h'
--- src/gs-fade.h	2005-12-27 15:05:48 +0000
+++ src/gs-fade.h	1970-01-01 00:00:00 +0000
@@ -1,91 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-
-/*
- *  GThumb
- *
- *  Copyright (C) 2005 Free Software Foundation, Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program 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 General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
- */
-
-/* Base on gs-fade.c from gnome-screensaver: 
- *
- * Copyright (C) 2004-2005 William Jon McCann <mccann@jhu.edu>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program 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 General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Authors: William Jon McCann <mccann@jhu.edu>
- *
- */
-
-#ifndef __GS_FADE_H
-#define __GS_FADE_H
-
-G_BEGIN_DECLS
-
-#define GS_TYPE_FADE         (gs_fade_get_type ())
-#define GS_FADE(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), GS_TYPE_FADE, GSFade))
-#define GS_FADE_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), GS_TYPE_FADE, GSFadeClass))
-#define GS_IS_FADE(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), GS_TYPE_FADE))
-#define GS_IS_FADE_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), GS_TYPE_FADE))
-#define GS_FADE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GS_TYPE_FADE, GSFadeClass))
-
-
-typedef enum {
-        GS_FADE_DIRECTION_IN,
-        GS_FADE_DIRECTION_OUT,
-} GsFadeDirection;
-
-typedef struct GSFadePrivate GSFadePrivate;
-
-typedef struct
-{
-        GObject        parent;
-        GSFadePrivate *priv;
-} GSFade;
-
-typedef struct
-{
-        GObjectClass   parent_class;
-
-        void          (* faded)        (GSFade          *fade,
-                                        GsFadeDirection  direction);
-} GSFadeClass;
-
-GType       gs_fade_get_type         (void);
-GSFade    * gs_fade_new              (void);
-void        gs_fade_set_timeout      (GSFade *fade,
-                                      guint   timeout);
-void        gs_fade_in               (GSFade *fade);
-void        gs_fade_out              (GSFade *fade);
-void        gs_fade_complete         (GSFade *fade);
-void        gs_fade_reset            (GSFade *fade);
-gboolean    gs_fade_is_fading        (GSFade *fade);
-gboolean    gs_fade_is_fading_in     (GSFade *fade);
-gboolean    gs_fade_is_fading_out    (GSFade *fade);
-
-#endif /* __GS_FADE_H */

=== modified file 'src/gth-fullscreen.c'
--- src/gth-fullscreen.c	2008-05-10 17:09:14 +0000
+++ src/gth-fullscreen.c	2008-07-09 05:50:22 +0000
@@ -48,7 +48,6 @@
 #include "main.h"
 #include "preferences.h"
 #include "totem-scrsaver.h"
-#include "gs-fade.h"
 
 #include "icons/pixbufs.h"
 
@@ -88,8 +87,6 @@
 	GtkWidget       *toolbar_window;
 
 	TotemScrsaver   *screensaver;
-	GSFade          *fade;
-	gboolean         use_fade;
 
 	/* comment */
 
@@ -135,10 +132,6 @@
 
 		g_object_unref (priv->screensaver);
 
-		if (priv->fading_activated)
-			gs_fade_reset (priv->fade);
-		g_object_unref (priv->fade);
-
 		file_data_unref (priv->file);
 		file_data_list_free (priv->file_list);
 		file_data_unref (priv->requested);
@@ -178,7 +171,6 @@
 	}
 
 	if (!priv->slideshow_paused) {
-		priv->use_fade = TRUE;
 		load_next_image (fullscreen);
 	}
 
@@ -208,14 +200,6 @@
 {
 	GthFullscreenPrivateData *priv = fullscreen->priv;
 
-	if (priv->fading_activated) {
-		if (priv->use_fade) {
-			gs_fade_in (priv->fade);
-			return;
-		}
-		gs_fade_reset (priv->fade);
-	}
-
 	if (priv->slideshow)
 		continue_slideshow (fullscreen);
 }
@@ -250,29 +234,6 @@
 		image_viewer_load_from_image_loader (IMAGE_VIEWER (priv->viewer), loader);
 }
 
-
-static void real_load_current_image (GthFullscreen *fullscreen);
-
-
-static void
-fade_faded_cb (GSFade          *fade,
-	       GsFadeDirection  direction,
-	       GthFullscreen   *fullscreen)
-{
-	switch (direction) {
-	case GS_FADE_DIRECTION_OUT:
-		real_load_current_image (fullscreen);
-		break;
-
-	case GS_FADE_DIRECTION_IN:
-		if (fullscreen->priv->slideshow)
-			continue_slideshow (fullscreen);
-		fullscreen->priv->use_fade = FALSE;
-		break;
-	}
-}
-
-
 static void
 gth_fullscreen_init (GthFullscreen *fullscreen)
 {
@@ -294,12 +255,6 @@
 
 	priv->screensaver = totem_scrsaver_new ();
 
-	priv->fade = gs_fade_new ();
-	g_signal_connect (G_OBJECT (priv->fade),
-			  "faded",
-			  G_CALLBACK (fade_faded_cb),
-			  fullscreen);
-	priv->use_fade = FALSE;
 }
 
 
@@ -513,9 +468,8 @@
 	return TRUE;
 }
 
-
 static void
-real_load_current_image (GthFullscreen *fullscreen)
+load_current_image (GthFullscreen *fullscreen)
 {
 	GthFullscreenPrivateData *priv = fullscreen->priv;
 	gboolean from_pixbuf = TRUE;
@@ -547,23 +501,7 @@
 
 	if (from_pixbuf)
 		image_loaded (fullscreen);
-}
-
-
-static void
-load_current_image (GthFullscreen *fullscreen)
-{
-	GthFullscreenPrivateData *priv = fullscreen->priv;
-
-	if (priv->fading_activated) {
-		if (priv->use_fade) {
-			gs_fade_out (fullscreen->priv->fade);
-			return;
-		}
-		gs_fade_reset (fullscreen->priv->fade);
-	}
-
-	real_load_current_image (fullscreen);
+
 }
 
 

