[arch-commits] Commit in nemo/trunk (4 files)

Balló György bgyorgy at nymeria.archlinux.org
Wed Apr 17 14:15:37 UTC 2013


    Date: Wednesday, April 17, 2013 @ 16:15:37
  Author: bgyorgy
Revision: 88430

upgpkg: nemo 1.7.3-1

Update to version 1.7.3, add compatibility patches for GNOME 3.8

Added:
  nemo/trunk/remove-desktop-background.patch
  nemo/trunk/tracker-0.16.patch
Modified:
  nemo/trunk/PKGBUILD
Deleted:
  nemo/trunk/use-terminal-config.patch

---------------------------------+
 PKGBUILD                        |   26 -
 remove-desktop-background.patch |  964 ++++++++++++++++++++++++++++++++++++++
 tracker-0.16.patch              |   33 +
 use-terminal-config.patch       |   45 -
 4 files changed, 1011 insertions(+), 57 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2013-04-17 13:34:15 UTC (rev 88429)
+++ PKGBUILD	2013-04-17 14:15:37 UTC (rev 88430)
@@ -3,7 +3,7 @@
 # Contributor: Ner0
 
 pkgname=nemo
-pkgver=1.7.2
+pkgver=1.7.3
 pkgrel=1
 pkgdesc="Cinnamon file manager (Nautilus fork)"
 arch=('i686' 'x86_64')
@@ -13,22 +13,27 @@
          'gnome-desktop' 'gnome-icon-theme' 'libnotify' 'libtracker-sparql')
 makedepends=('gtk-doc' 'gobject-introspection' 'intltool' 'gnome-common')
 optdepends=('gksu: Open as Root')
-provides=('nemo-fm')
-replaces=('nemo-fm')
-conflicts=('nemo-fm')
 options=('!emptydirs' '!libtool')
 install=nemo.install
 source=("$pkgname-$pkgver.tar.gz::https://github.com/linuxmint/nemo/tarball/$pkgver"
-        "use-terminal-config.patch")
-md5sums=('809cf58f472a9e5de628a763d441b246'
-         '6cca080cc8fe3df7e725c0f8cd5fa485')
+        "tracker-0.16.patch"
+        "remove-desktop-background.patch")
+md5sums=('04c021da543e2562b712107c2be9a8c2'
+         '9e170cc74eee901634b3367b06a209c6'
+         '700b595dfcf06e39f9dc3bdb7c81e086')
 
 build() {
   cd linuxmint-nemo-*
 
-  # Read the default terminal app from GSettings
-  patch -Np1 -i ../use-terminal-config.patch
+  # Python2 fix
+  sed -i 's/bin\/python/bin\/python2/g' files/usr/share/nemo/actions/myaction.py
 
+  # https://github.com/linuxmint/nemo/pull/258
+  patch -Np1 -i ../tracker-0.16.patch
+
+  # https://github.com/linuxmint/nemo/pull/263
+  patch -Np1 -i ../remove-desktop-background.patch
+
   ./autogen.sh --prefix=/usr --sysconfdir=/etc \
       --localstatedir=/var --disable-static \
       --libexecdir=/usr/lib/nemo \
@@ -43,7 +48,4 @@
   cd linuxmint-nemo-*
 
   make DESTDIR="$pkgdir/" install
-
-  # Python2 fix
-  sed -i 's/bin\/python/bin\/python2/g' "${pkgdir}/usr/share/nemo/actions/myaction.py"
 }

Added: remove-desktop-background.patch
===================================================================
--- remove-desktop-background.patch	                        (rev 0)
+++ remove-desktop-background.patch	2013-04-17 14:15:37 UTC (rev 88430)
@@ -0,0 +1,964 @@
+From 5f82ebba474f6c1068a21f51ded2b0e26869ecaf Mon Sep 17 00:00:00 2001
+From: Michael Webster <miketwebster at gmail.com>
+Date: Mon, 15 Apr 2013 18:44:35 -0400
+Subject: [PATCH 1/4] Don't render the background.  Need to fix selected icon
+ style
+
+---
+ src/nemo-desktop-icon-view.c | 18 +++---------------
+ src/nemo-desktop-window.c    | 15 ++++++++++++++-
+ 2 files changed, 17 insertions(+), 16 deletions(-)
+
+diff --git a/src/nemo-desktop-icon-view.c b/src/nemo-desktop-icon-view.c
+index b903c5b..37cd8cb 100644
+--- a/src/nemo-desktop-icon-view.c
++++ b/src/nemo-desktop-icon-view.c
+@@ -243,16 +243,6 @@ struct NemoDesktopIconViewDetails
+ static void
+ real_begin_loading (NemoView *object)
+ {
+-	NemoIconContainer *icon_container;
+-	NemoDesktopIconView *view;
+-
+-	view = NEMO_DESKTOP_ICON_VIEW (object);
+-
+-	icon_container = get_icon_container (view);
+-	if (view->details->background == NULL) {
+-		view->details->background = nemo_desktop_background_new (icon_container);
+-	}
+-
+ 	NEMO_VIEW_CLASS (nemo_desktop_icon_view_parent_class)->begin_loading (object);
+ }
+ 
+@@ -298,11 +288,6 @@ struct NemoDesktopIconViewDetails
+ 					      nemo_view_update_menus,
+ 					      icon_view);
+ 
+-	if (icon_view->details->background != NULL) {
+-		g_object_unref (icon_view->details->background);
+-		icon_view->details->background = NULL;
+-	}
+-
+ 	G_OBJECT_CLASS (nemo_desktop_icon_view_parent_class)->dispose (object);
+ }
+ 
+@@ -652,6 +637,9 @@ struct NemoDesktopIconViewDetails
+ 				  G_CALLBACK (nemo_view_update_menus),
+ 				  desktop_icon_view);
+ 
++    GdkRGBA transparent = { 0, 0, 0, 0 };
++    gtk_widget_override_background_color (GTK_WIDGET (icon_container), GTK_STATE_FLAG_NORMAL, &transparent);
++
+     have_cinnamon_settings = g_find_program_in_path ("cinnamon-settings") != NULL;
+ }
+ 
+diff --git a/src/nemo-desktop-window.c b/src/nemo-desktop-window.c
+index 9c80c62..2d5c4e8 100644
+--- a/src/nemo-desktop-window.c
++++ b/src/nemo-desktop-window.c
+@@ -97,6 +97,7 @@ struct NemoDesktopWindowDetails {
+ 	g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_DESKTOP_IS_HOME_DIR,
+ 				  G_CALLBACK (nemo_desktop_window_update_directory),
+ 				  window);
++
+ }
+ 
+ static void
+@@ -189,6 +190,12 @@ struct NemoDesktopWindowDetails {
+ 	/* Chain up to realize our children */
+ 	GTK_WIDGET_CLASS (nemo_desktop_window_parent_class)->map (widget);
+ 	gdk_window_lower (gtk_widget_get_window (widget));
++
++    GdkWindow *window;
++    GdkRGBA transparent = { 0, 0, 0, 0 };
++
++    window = gtk_widget_get_window (widget);
++    gdk_window_set_background_rgba (window, &transparent);
+ }
+ 
+ static void
+@@ -254,6 +261,7 @@ struct NemoDesktopWindowDetails {
+ {
+ 	NemoDesktopWindow *window;
+ 	NemoDesktopWindowDetails *details;
++    GdkVisual *visual;
+ 
+ 	window = NEMO_DESKTOP_WINDOW (widget);
+ 	details = window->details;
+@@ -261,7 +269,12 @@ struct NemoDesktopWindowDetails {
+ 	/* Make sure we get keyboard events */
+ 	gtk_widget_set_events (widget, gtk_widget_get_events (widget) 
+ 			      | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK);
+-			      
++
++    visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget));
++    if (visual) {
++        gtk_widget_set_visual (widget, visual);
++    }
++
+ 	/* Do the work of realizing. */
+ 	GTK_WIDGET_CLASS (nemo_desktop_window_parent_class)->realize (widget);
+ 
+-- 
+1.8.1.5
+
+
+From 6b013acb8f0ad855d042d0e8d51350c539a37c21 Mon Sep 17 00:00:00 2001
+From: Michael Webster <miketwebster at gmail.com>
+Date: Mon, 15 Apr 2013 20:03:03 -0400
+Subject: [PATCH 2/4] Remove nemo-desktop-background, the desktop window makes
+ a transparent background and just uses the existing rendered background from
+ muffin/g-s-d
+
+---
+ libnemo-private/Makefile.am               |   2 -
+ libnemo-private/nemo-desktop-background.c | 578 ------------------------------
+ libnemo-private/nemo-desktop-background.h |  65 ----
+ src/nemo-desktop-icon-view.c              |  26 +-
+ 4 files changed, 13 insertions(+), 658 deletions(-)
+ delete mode 100644 libnemo-private/nemo-desktop-background.c
+ delete mode 100644 libnemo-private/nemo-desktop-background.h
+
+diff --git a/libnemo-private/Makefile.am b/libnemo-private/Makefile.am
+index 3b46318..5fd797c 100644
+--- a/libnemo-private/Makefile.am
++++ b/libnemo-private/Makefile.am
+@@ -81,8 +81,6 @@ libnemo_private_la_SOURCES = \
+ 	nemo-debug.h \
+ 	nemo-default-file-icon.c \
+ 	nemo-default-file-icon.h \
+-	nemo-desktop-background.c \
+-	nemo-desktop-background.h \
+ 	nemo-desktop-directory-file.c \
+ 	nemo-desktop-directory-file.h \
+ 	nemo-desktop-directory.c \
+diff --git a/libnemo-private/nemo-desktop-background.c b/libnemo-private/nemo-desktop-background.c
+deleted file mode 100644
+index f8dc979..0000000
+--- a/libnemo-private/nemo-desktop-background.c
++++ /dev/null
+@@ -1,578 +0,0 @@
+-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+-
+-/*
+- * nemo-desktop-background.c: Helper object to handle desktop background
+- *                                changes.
+- *
+- * Copyright (C) 2000 Eazel, Inc.
+- * Copyright (C) 2010 Cosimo Cecchi <cosimoc at gnome.org>
+- *
+- * 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., 51 Franklin Street - Suite 500,
+- * Boston, MA 02110-1335, USA.
+- *
+- * Authors: Darin Adler <darin at bentspoon.com>
+- *          Cosimo Cecchi <cosimoc at gnome.org>
+- */
+-
+-#include <config.h>
+-
+-#include "nemo-desktop-background.h"
+-
+-#include <eel/eel-gdk-extensions.h>
+-#include <eel/eel-gtk-extensions.h>
+-
+-#include "nemo-global-preferences.h"
+-
+-#define GNOME_DESKTOP_USE_UNSTABLE_API
+-#include <libgnome-desktop/gnome-bg.h>
+-#include <gdesktop-enums.h>
+-
+-#include <gtk/gtk.h>
+-#include <string.h>
+-
+-static void init_fade (NemoDesktopBackground *self);
+-static void free_fade (NemoDesktopBackground *self);
+-static void queue_background_change (NemoDesktopBackground *self);
+-
+-static NemoDesktopBackground *singleton = NULL;
+-
+-G_DEFINE_TYPE (NemoDesktopBackground, nemo_desktop_background, G_TYPE_OBJECT);
+-
+-enum {
+-        PROP_WIDGET = 1,
+-        NUM_PROPERTIES,
+-};
+-
+-struct NemoDesktopBackgroundDetails {
+-
+-	GtkWidget *widget;
+-        GnomeBG *bg;
+-
+-	/* Realized data: */
+-	cairo_surface_t *background_surface;
+-	GnomeBGCrossfade *fade;
+-	int background_entire_width;
+-	int background_entire_height;
+-	GdkColor default_color;
+-
+-	/* Desktop screen size watcher */
+-	gulong screen_size_handler;
+-	/* Desktop monitors configuration watcher */
+-	gulong screen_monitors_handler;
+-	guint change_idle_id;
+-};
+-
+-
+-static gboolean
+-background_settings_change_event_cb (GSettings *settings,
+-                                     gpointer   keys,
+-                                     gint       n_keys,
+-                                     gpointer   user_data);
+-
+-
+-static void
+-free_fade (NemoDesktopBackground *self)
+-{
+-	if (self->details->fade != NULL) {
+-		g_object_unref (self->details->fade);
+-		self->details->fade = NULL;
+-	}
+-}
+-
+-static void
+-free_background_surface (NemoDesktopBackground *self)
+-{
+-	cairo_surface_t *surface;
+-
+-	surface = self->details->background_surface;
+-	if (surface != NULL) {
+-		cairo_surface_destroy (surface);
+-		self->details->background_surface = NULL;
+-	}
+-}
+-
+-static void
+-nemo_desktop_background_finalize (GObject *object)
+-{
+-	NemoDesktopBackground *self;
+-
+-	self = NEMO_DESKTOP_BACKGROUND (object);
+-
+-	g_signal_handlers_disconnect_by_func (gnome_background_preferences,
+-					      background_settings_change_event_cb,
+-					      self);
+-
+-	free_background_surface (self);
+-	free_fade (self);
+-
+-	g_clear_object (&self->details->bg);
+-
+-	G_OBJECT_CLASS (nemo_desktop_background_parent_class)->finalize (object);
+-}
+-
+-static void
+-nemo_desktop_background_unrealize (NemoDesktopBackground *self)
+-{
+-	free_background_surface (self);
+-
+-	self->details->background_entire_width = 0;
+-	self->details->background_entire_height = 0;
+-	self->details->default_color.red = 0xffff;
+-	self->details->default_color.green = 0xffff;
+-	self->details->default_color.blue = 0xffff;
+-}
+-
+-static void
+-nemo_desktop_background_set_image_uri (NemoDesktopBackground *self,
+-                                           const char *image_uri)
+-{
+-	char *filename;
+-
+-	if (image_uri != NULL) {
+-		filename = g_filename_from_uri (image_uri, NULL, NULL);
+-	}
+-	else {
+-		filename = NULL;
+-	}
+-
+-	gnome_bg_set_filename (self->details->bg, filename);
+-
+-	g_free (filename);
+-}
+-
+-static void
+-init_fade (NemoDesktopBackground *self)
+-{
+-	GtkWidget *widget;
+-	gboolean do_fade;
+-
+-	widget = self->details->widget;
+-
+-	if (widget == NULL || !gtk_widget_get_realized (widget))
+-		return;
+-
+-	do_fade = g_settings_get_boolean (nemo_desktop_preferences,
+-					  NEMO_PREFERENCES_DESKTOP_BACKGROUND_FADE);
+-
+-	if (!do_fade) {
+-		return;
+-	}
+-
+-	if (self->details->fade == NULL) {
+-		GdkWindow *window;
+-		GdkScreen *screen;
+-		int old_width, old_height, width, height;
+-
+-		/* If this was the result of a screen size change,
+-		 * we don't want to crossfade
+-		 */
+-		window = gtk_widget_get_window (widget);
+-		old_width = gdk_window_get_width (window);
+-		old_height = gdk_window_get_height (window);
+-
+-		screen = gtk_widget_get_screen (widget);
+-		width = gdk_screen_get_width (screen);
+-		height = gdk_screen_get_height (screen);
+-
+-		if (old_width == width && old_height == height) {
+-			self->details->fade = gnome_bg_crossfade_new (width, height);
+-			g_signal_connect_swapped (self->details->fade,
+-                                                  "finished",
+-                                                  G_CALLBACK (free_fade),
+-                                                  self);
+-		}
+-	}
+-
+-	if (self->details->fade != NULL && !gnome_bg_crossfade_is_started (self->details->fade)) {
+-		cairo_surface_t *start_surface;
+-
+-		if (self->details->background_surface == NULL) {
+-			start_surface = gnome_bg_get_surface_from_root (gtk_widget_get_screen (widget));
+-		} else {
+-			start_surface = cairo_surface_reference (self->details->background_surface);
+-		}
+-		gnome_bg_crossfade_set_start_surface (self->details->fade,
+-						      start_surface);
+-                cairo_surface_destroy (start_surface);
+-	}
+-}
+-
+-static void
+-screen_size_changed (GdkScreen *screen,
+-                     NemoDesktopBackground *self)
+-{
+-	queue_background_change (self);
+-}
+-
+-static gboolean
+-nemo_desktop_background_ensure_realized (NemoDesktopBackground *self)
+-{
+-	int entire_width;
+-	int entire_height;
+-	GdkScreen *screen;
+-	GdkWindow *window;
+-
+-	screen = gtk_widget_get_screen (self->details->widget);
+-	entire_height = gdk_screen_get_height (screen);
+-	entire_width = gdk_screen_get_width (screen);
+-
+-	/* If the window size is the same as last time, don't update */
+-	if (entire_width == self->details->background_entire_width &&
+-	    entire_height == self->details->background_entire_height) {
+-		return FALSE;
+-	}
+-
+-	free_background_surface (self);
+-
+-	window = gtk_widget_get_window (self->details->widget);
+-	self->details->background_surface = gnome_bg_create_surface (self->details->bg,
+-                                                                     window,
+-                                                                     entire_width, entire_height,
+-                                                                     TRUE);
+-
+-	/* We got the surface and everything, so we don't care about a change
+-	   that is pending (unless things actually change after this time) */
+-	g_object_set_data (G_OBJECT (self),
+-			   "ignore-pending-change", GINT_TO_POINTER (TRUE));
+-
+-	self->details->background_entire_width = entire_width;
+-	self->details->background_entire_height = entire_height;
+-
+-	return TRUE;
+-}
+-
+-static void
+-on_fade_finished (GnomeBGCrossfade *fade,
+-		  GdkWindow *window,
+-		  gpointer user_data)
+-{
+-        NemoDesktopBackground *self = user_data;
+-
+-	nemo_desktop_background_ensure_realized (self);
+-	gnome_bg_set_surface_as_root (gdk_window_get_screen (window),
+-                                      self->details->background_surface);
+-}
+-
+-static gboolean
+-fade_to_surface (NemoDesktopBackground *self,
+-		 GdkWindow     *window,
+-		 cairo_surface_t *surface)
+-{
+-	if (self->details->fade == NULL) {
+-		return FALSE;
+-	}
+-
+-	if (!gnome_bg_crossfade_set_end_surface (self->details->fade,
+-				                 surface)) {
+-		return FALSE;
+-	}
+-
+-	if (!gnome_bg_crossfade_is_started (self->details->fade)) {
+-		gnome_bg_crossfade_start (self->details->fade, window);
+-		g_signal_connect (self->details->fade,
+-				  "finished",
+-				  G_CALLBACK (on_fade_finished), self);
+-	}
+-
+-	return gnome_bg_crossfade_is_started (self->details->fade);
+-}
+-
+-static void
+-nemo_desktop_background_set_up_widget (NemoDesktopBackground *self)
+-{
+-	GdkWindow *window;
+-	gboolean in_fade = FALSE;
+-        GtkWidget *widget;
+-
+-        widget = self->details->widget;
+-
+-	if (!gtk_widget_get_realized (widget)) {
+-		return;
+-	}
+-
+-	nemo_desktop_background_ensure_realized (self);
+-        window = gtk_layout_get_bin_window (GTK_LAYOUT (widget));
+-
+-	in_fade = fade_to_surface (self, window,
+-				   self->details->background_surface);
+-
+-	if (!in_fade) {
+-		cairo_pattern_t *pattern;
+-
+-		pattern = cairo_pattern_create_for_surface (self->details->background_surface);
+-		gdk_window_set_background_pattern (window, pattern);
+-		cairo_pattern_destroy (pattern);
+-
+-                gnome_bg_set_surface_as_root (gtk_widget_get_screen (widget),
+-                                              self->details->background_surface);
+-	}
+-}
+-
+-static gboolean
+-background_changed_cb (NemoDesktopBackground *self)
+-{
+-	self->details->change_idle_id = 0;
+-
+-	nemo_desktop_background_unrealize (self);
+-	nemo_desktop_background_set_up_widget (self);
+-
+-	gtk_widget_queue_draw (self->details->widget);
+-
+-	return FALSE;
+-}
+-
+-static void
+-queue_background_change (NemoDesktopBackground *self)
+-{
+-	if (self->details->change_idle_id != 0) {
+-                g_source_remove (self->details->change_idle_id);
+-	}
+-
+-	self->details->change_idle_id =
+-                g_idle_add ((GSourceFunc) background_changed_cb, self);
+-}
+-
+-static void
+-nemo_desktop_background_changed (GnomeBG *bg,
+-                                     gpointer user_data)
+-{
+-        NemoDesktopBackground *self;
+-
+-        self = user_data;
+-	init_fade (self);
+-	queue_background_change (self);
+-}
+-
+-static void
+-nemo_desktop_background_transitioned (GnomeBG *bg,
+-                                          gpointer user_data)
+-{
+-        NemoDesktopBackground *self;
+-
+-        self = user_data;
+-	free_fade (self);
+-	queue_background_change (self);
+-}
+-
+-static void
+-widget_realize_cb (GtkWidget *widget,
+-                   gpointer user_data)
+-{
+-	GdkScreen *screen;
+-        NemoDesktopBackground *self = user_data;
+-
+-	screen = gtk_widget_get_screen (widget);
+-
+-	if (self->details->screen_size_handler > 0) {
+-		g_signal_handler_disconnect (screen,
+-					     self->details->screen_size_handler);
+-	}
+-	self->details->screen_size_handler = 
+-		g_signal_connect (screen, "size_changed",
+-				  G_CALLBACK (screen_size_changed), self);
+-
+-	if (self->details->screen_monitors_handler > 0) {
+-		g_signal_handler_disconnect (screen,
+-					     self->details->screen_monitors_handler);
+-	}
+-	self->details->screen_monitors_handler =
+-		g_signal_connect (screen, "monitors-changed",
+-				  G_CALLBACK (screen_size_changed), self);
+-	nemo_desktop_background_set_up_widget (self);
+-}
+-
+-static void
+-widget_unrealize_cb (GtkWidget *widget,
+-                     gpointer user_data)
+-{
+-        NemoDesktopBackground *self = user_data;
+-
+-	if (self->details->screen_size_handler > 0) {
+-		        g_signal_handler_disconnect (gtk_widget_get_screen (GTK_WIDGET (widget)),
+-				                     self->details->screen_size_handler);
+-			self->details->screen_size_handler = 0;
+-	}
+-	if (self->details->screen_monitors_handler > 0) {
+-		        g_signal_handler_disconnect (gtk_widget_get_screen (GTK_WIDGET (widget)),
+-				                     self->details->screen_monitors_handler);
+-			self->details->screen_monitors_handler = 0;
+-	}
+-}
+-
+-static void
+-on_widget_destroyed (GtkWidget *widget,
+-                     gpointer user_data)
+-{
+-        NemoDesktopBackground *self = user_data;
+-
+-	if (self->details->change_idle_id != 0) {
+-		g_source_remove (self->details->change_idle_id);
+-		self->details->change_idle_id = 0;
+-	}
+-
+-	free_fade (self);
+-	self->details->widget = NULL;
+-}
+-
+-static gboolean
+-background_change_event_idle_cb (NemoDesktopBackground *self)
+-{
+-	gnome_bg_load_from_preferences (self->details->bg,
+-					gnome_background_preferences);
+-
+-	g_object_unref (self);
+-
+-	return FALSE;
+-}
+-
+-static gboolean
+-background_settings_change_event_cb (GSettings *settings,
+-                                     gpointer   keys,
+-                                     gint       n_keys,
+-                                     gpointer   user_data)
+-{
+-	NemoDesktopBackground *self = user_data;
+-
+-	/* Need to defer signal processing otherwise
+-	 * we would make the dconf backend deadlock.
+-	 */
+-	g_idle_add ((GSourceFunc) background_change_event_idle_cb,
+-		    g_object_ref (self));
+-
+-	return FALSE;
+-}
+-
+-static void
+-nemo_desktop_background_constructed (GObject *obj)
+-{
+-        NemoDesktopBackground *self;
+-        GtkWidget *widget;
+-
+-        self = NEMO_DESKTOP_BACKGROUND (obj);
+-
+-        if (G_OBJECT_CLASS (nemo_desktop_background_parent_class)->constructed != NULL) {
+-                G_OBJECT_CLASS (nemo_desktop_background_parent_class)->constructed (obj);
+-        }
+-
+-        widget = self->details->widget;
+-
+-        g_assert (widget != NULL);
+-
+- 	g_signal_connect_object (widget, "destroy",
+-                                 G_CALLBACK (on_widget_destroyed), self, 0);
+-	g_signal_connect_object (widget, "realize",
+-				 G_CALLBACK (widget_realize_cb), self, 0);
+-	g_signal_connect_object (widget, "unrealize",
+-				 G_CALLBACK (widget_unrealize_cb), self, 0);
+-
+-        gnome_bg_load_from_preferences (self->details->bg,
+-                                        gnome_background_preferences);
+-
+-        /* Let's receive batch change events instead of every single one */
+-        g_signal_connect (gnome_background_preferences,
+-                          "change-event",
+-                          G_CALLBACK (background_settings_change_event_cb),
+-                          self);
+-
+-	queue_background_change (self);
+-}
+-
+-static void
+-nemo_desktop_background_set_property (GObject *object,
+-                                          guint property_id,
+-                                          const GValue *value,
+-                                          GParamSpec *pspec)
+-{
+-        NemoDesktopBackground *self;
+-
+-        self = NEMO_DESKTOP_BACKGROUND (object);
+-
+-        switch (property_id) {
+-        case PROP_WIDGET:
+-                self->details->widget = g_value_get_object (value);
+-                break;
+-        default:
+-                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+-                break;
+-        }
+-}
+-
+-static GObject *
+-nemo_desktop_background_constructor (GType type,
+-                                         guint n_construct_params,
+-                                         GObjectConstructParam *construct_params)
+-{
+-        GObject *retval;
+-
+-        if (singleton != NULL) {
+-                return g_object_ref (singleton);
+-        }
+-
+-        retval = G_OBJECT_CLASS (nemo_desktop_background_parent_class)->constructor
+-                (type, n_construct_params, construct_params);
+-
+-        singleton = NEMO_DESKTOP_BACKGROUND (retval);
+-        g_object_add_weak_pointer (retval, (gpointer) &singleton);
+-
+-        return retval;
+-}
+-
+-static void
+-nemo_desktop_background_class_init (NemoDesktopBackgroundClass *klass)
+-{
+-	GObjectClass *object_class;
+-        GParamSpec *pspec;
+-
+-	object_class = G_OBJECT_CLASS (klass);
+-	object_class->finalize = nemo_desktop_background_finalize;
+-        object_class->set_property = nemo_desktop_background_set_property;
+-        object_class->constructor = nemo_desktop_background_constructor;
+-        object_class->constructed = nemo_desktop_background_constructed;
+-
+-        pspec = g_param_spec_object ("widget", "The widget for this background",
+-                                     "The widget that gets its background set",
+-                                     NEMO_TYPE_ICON_CONTAINER,
+-                                     G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
+-        g_object_class_install_property (object_class, PROP_WIDGET, pspec);
+-
+-	g_type_class_add_private (klass, sizeof (NemoDesktopBackgroundDetails));
+-}
+-
+-static void
+-nemo_desktop_background_init (NemoDesktopBackground *self)
+-{
+-	self->details =
+-		G_TYPE_INSTANCE_GET_PRIVATE (self,
+-					     NEMO_TYPE_DESKTOP_BACKGROUND,
+-					     NemoDesktopBackgroundDetails);
+-
+-        self->details->bg = gnome_bg_new ();
+-	self->details->default_color.red = 0xffff;
+-	self->details->default_color.green = 0xffff;
+-	self->details->default_color.blue = 0xffff;
+-
+-	g_signal_connect (self->details->bg, "changed",
+-			  G_CALLBACK (nemo_desktop_background_changed), self);
+-	g_signal_connect (self->details->bg, "transitioned",
+-			  G_CALLBACK (nemo_desktop_background_transitioned), self);
+-}
+-
+-NemoDesktopBackground *
+-nemo_desktop_background_new (NemoIconContainer *container)
+-{
+-        return g_object_new (NEMO_TYPE_DESKTOP_BACKGROUND,
+-                             "widget", container,
+-                             NULL);
+-}
+diff --git a/libnemo-private/nemo-desktop-background.h b/libnemo-private/nemo-desktop-background.h
+deleted file mode 100644
+index 8755cb1..0000000
+--- a/libnemo-private/nemo-desktop-background.h
++++ /dev/null
+@@ -1,65 +0,0 @@
+-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+-
+-/*
+- * nemo-desktop-background.c: Helper object to handle desktop background
+- *                                changes.
+- *
+- * Copyright (C) 2000 Eazel, Inc.
+- * Copyright (C) 2010 Cosimo Cecchi <cosimoc at gnome.org>
+- *
+- * 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., 51 Franklin Street - Suite 500,
+- * Boston, MA 02110-1335, USA.
+- *
+- * Authors: Darin Adler <darin at bentspoon.com>
+- *          Cosimo Cecchi <cosimoc at gnome.org>
+- */
+-
+-#ifndef __NAUTILIUS_DESKTOP_BACKGROUND_H__
+-#define __NAUTILIUS_DESKTOP_BACKGROUND_H__
+-
+-#include <gtk/gtk.h>
+-
+-#include "nemo-icon-container.h"
+-
+-typedef struct NemoDesktopBackground NemoDesktopBackground;
+-typedef struct NemoDesktopBackgroundClass NemoDesktopBackgroundClass;
+-
+-#define NEMO_TYPE_DESKTOP_BACKGROUND nemo_desktop_background_get_type()
+-#define NEMO_DESKTOP_BACKGROUND(obj) \
+-  (G_TYPE_CHECK_INSTANCE_CAST ((obj), NEMO_TYPE_DESKTOP_BACKGROUND, NemoDesktopBackground))
+-#define NEMO_DESKTOP_BACKGROUND_CLASS(klass) \
+-  (G_TYPE_CHECK_CLASS_CAST ((klass), NEMO_TYPE_DESKTOP_BACKGROUND, NemoDesktopBackgroundClass))
+-#define NEMO_IS_DESKTOP_BACKGROUND(obj) \
+-  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NEMO_TYPE_DESKTOP_BACKGROUND))
+-#define NEMO_IS_DESKTOP_BACKGROUND_CLASS(klass) \
+-  (G_TYPE_CHECK_CLASS_TYPE ((klass), NEMO_TYPE_DESKTOP_BACKGROUND))
+-#define NEMO_DESKTOP_BACKGROUND_GET_CLASS(obj) \
+-  (G_TYPE_INSTANCE_GET_CLASS ((obj), NEMO_TYPE_DESKTOP_BACKGROUND, NemoDesktopBackgroundClass))
+-
+-GType nemo_desktop_background_get_type (void);
+-NemoDesktopBackground * nemo_desktop_background_new (NemoIconContainer *container);
+-
+-typedef struct NemoDesktopBackgroundDetails NemoDesktopBackgroundDetails;
+-
+-struct NemoDesktopBackground {
+-	GObject parent;
+-	NemoDesktopBackgroundDetails *details;
+-};
+-
+-struct NemoDesktopBackgroundClass {
+-	GObjectClass parent_class;
+-};
+-
+-#endif /* __NAUTILIUS_DESKTOP_BACKGROUND_H__ */
+diff --git a/src/nemo-desktop-icon-view.c b/src/nemo-desktop-icon-view.c
+index 37cd8cb..5dec8b5 100644
+--- a/src/nemo-desktop-icon-view.c
++++ b/src/nemo-desktop-icon-view.c
+@@ -41,7 +41,6 @@
+ #include <fcntl.h>
+ #include <gdk/gdkx.h>
+ #include <glib/gi18n.h>
+-#include <libnemo-private/nemo-desktop-background.h>
+ #include <libnemo-private/nemo-desktop-icon-file.h>
+ #include <libnemo-private/nemo-directory-notify.h>
+ #include <libnemo-private/nemo-file-changes-queue.h>
+@@ -76,8 +75,6 @@ struct NemoDesktopIconViewDetails
+ 	gulong delayed_init_signal;
+ 	guint reload_desktop_timeout;
+ 	gboolean pending_rescan;
+-
+-	NemoDesktopBackground *background;
+ };
+ 
+ static void     default_zoom_level_changed                        (gpointer                user_data);
+@@ -240,12 +237,6 @@ struct NemoDesktopIconViewDetails
+ 	return GDK_FILTER_CONTINUE;
+ }
+ 
+-static void
+-real_begin_loading (NemoView *object)
+-{
+-	NEMO_VIEW_CLASS (nemo_desktop_icon_view_parent_class)->begin_loading (object);
+-}
+-
+ static const char *
+ real_get_id (NemoView *view)
+ {
+@@ -300,7 +291,6 @@ struct NemoDesktopIconViewDetails
+ 
+ 	G_OBJECT_CLASS (class)->dispose = nemo_desktop_icon_view_dispose;
+ 
+-	vclass->begin_loading = real_begin_loading;
+ 	vclass->merge_menus = real_merge_menus;
+ 	vclass->update_menus = real_update_menus;
+ 	vclass->get_view_id = real_get_id;
+@@ -428,6 +418,17 @@ struct NemoDesktopIconViewDetails
+ 			       desktop_icon_view);
+ }
+ 
++static void
++desktop_icon_container_realize (GtkWidget *widget,
++                                NemoDesktopIconView *desktop_icon_view)
++{
++    GdkWindow *bin_window;
++    GdkRGBA transparent = { 0, 0, 0, 0 };
++
++    bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (widget));
++    gdk_window_set_background_rgba (bin_window, &transparent);
++}
++
+ static NemoZoomLevel
+ get_default_zoom_level (void)
+ {
+@@ -614,6 +615,8 @@ struct NemoDesktopIconViewDetails
+ 
+ 	g_signal_connect_object (icon_container, "middle_click",
+ 				 G_CALLBACK (nemo_desktop_icon_view_handle_middle_click), desktop_icon_view, 0);
++    g_signal_connect_object (icon_container, "realize",
++                 G_CALLBACK (desktop_icon_container_realize), desktop_icon_view, 0);
+ 	g_signal_connect_object (desktop_icon_view, "realize",
+ 				 G_CALLBACK (realized_callback), desktop_icon_view, 0);
+ 	g_signal_connect_object (desktop_icon_view, "unrealize",
+@@ -637,9 +640,6 @@ struct NemoDesktopIconViewDetails
+ 				  G_CALLBACK (nemo_view_update_menus),
+ 				  desktop_icon_view);
+ 
+-    GdkRGBA transparent = { 0, 0, 0, 0 };
+-    gtk_widget_override_background_color (GTK_WIDGET (icon_container), GTK_STATE_FLAG_NORMAL, &transparent);
+-
+     have_cinnamon_settings = g_find_program_in_path ("cinnamon-settings") != NULL;
+ }
+ 
+-- 
+1.8.1.5
+
+
+From b40990397b6fff55878481a806a1b5574e43951f Mon Sep 17 00:00:00 2001
+From: Michael Webster <miketwebster at gmail.com>
+Date: Mon, 15 Apr 2013 20:14:40 -0400
+Subject: [PATCH 3/4] Forgot an include
+
+---
+ libnemo-private/nemo-icon-dnd.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/libnemo-private/nemo-icon-dnd.c b/libnemo-private/nemo-icon-dnd.c
+index 017c6a7..2ed073c 100644
+--- a/libnemo-private/nemo-icon-dnd.c
++++ b/libnemo-private/nemo-icon-dnd.c
+@@ -52,7 +52,6 @@
+ #include <gtk/gtk.h>
+ #include <glib/gi18n.h>
+ 
+-#include <libnemo-private/nemo-desktop-background.h>
+ #include <libnemo-private/nemo-file-utilities.h>
+ #include <libnemo-private/nemo-file-changes-queue.h>
+ #include <stdio.h>
+-- 
+1.8.1.5
+
+
+From 020d4dc15fa9c0e1303cef7795e45e688ede7726 Mon Sep 17 00:00:00 2001
+From: Michael Webster <miketwebster at gmail.com>
+Date: Tue, 16 Apr 2013 18:00:01 -0400
+Subject: [PATCH 4/4] Change to use cinnamon background keys
+
+---
+ libnemo-private/nemo-global-preferences.c | 2 +-
+ libnemo-private/nemo-global-preferences.h | 2 +-
+ src/nemo-places-sidebar.c                 | 2 +-
+ src/nemo-view.c                           | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/libnemo-private/nemo-global-preferences.c b/libnemo-private/nemo-global-preferences.c
+index d3ad20a..336afc3 100644
+--- a/libnemo-private/nemo-global-preferences.c
++++ b/libnemo-private/nemo-global-preferences.c
+@@ -76,7 +76,7 @@
+ 	nemo_desktop_preferences = g_settings_new("org.nemo.desktop");
+ 	nemo_tree_sidebar_preferences = g_settings_new("org.nemo.sidebar-panels.tree");
+ 	gnome_lockdown_preferences = g_settings_new("org.gnome.desktop.lockdown");
+-	gnome_background_preferences = g_settings_new("org.gnome.desktop.background");
++	cinnamon_background_preferences = g_settings_new("org.cinnamon.background");
+ 	gnome_media_handling_preferences = g_settings_new("org.gnome.desktop.media-handling");
+ 	gnome_terminal_preferences = g_settings_new("org.gnome.desktop.default-applications.terminal");
+ }
+diff --git a/libnemo-private/nemo-global-preferences.h b/libnemo-private/nemo-global-preferences.h
+index 2b9c56a..c1ec61a 100644
+--- a/libnemo-private/nemo-global-preferences.h
++++ b/libnemo-private/nemo-global-preferences.h
+@@ -226,7 +226,7 @@ enum
+ GSettings *nemo_tree_sidebar_preferences;
+ GSettings *nemo_window_state;
+ GSettings *gnome_lockdown_preferences;
+-GSettings *gnome_background_preferences;
++GSettings *cinnamon_background_preferences;
+ GSettings *gnome_media_handling_preferences;
+ GSettings *gnome_terminal_preferences;
+ 
+diff --git a/src/nemo-places-sidebar.c b/src/nemo-places-sidebar.c
+index a0bc4d4..ca32193 100644
+--- a/src/nemo-places-sidebar.c
++++ b/src/nemo-places-sidebar.c
+@@ -3825,7 +3825,7 @@ static void expand_or_collapse_category (NemoPlacesSidebar *sidebar,
+ 					      bookmarks_popup_menu_detach_cb,
+ 					      sidebar);
+ 
+-	g_signal_handlers_disconnect_by_func (gnome_background_preferences,
++	g_signal_handlers_disconnect_by_func (cinnamon_background_preferences,
+ 					      desktop_setting_changed_callback,
+ 					      sidebar);
+ 
+diff --git a/src/nemo-view.c b/src/nemo-view.c
+index ab03b44..3ece32a 100644
+--- a/src/nemo-view.c
++++ b/src/nemo-view.c
+@@ -6945,7 +6945,7 @@ static void slot_changed_pane (NemoWindowSlot *slot,
+ 
+     uri = nemo_file_info_get_uri (file);
+ 
+-    g_settings_set_string (gnome_background_preferences,
++    g_settings_set_string (cinnamon_background_preferences,
+                                     "picture-uri", uri);
+     g_free (uri);
+ }
+-- 
+1.8.1.5
+

Added: tracker-0.16.patch
===================================================================
--- tracker-0.16.patch	                        (rev 0)
+++ tracker-0.16.patch	2013-04-17 14:15:37 UTC (rev 88430)
@@ -0,0 +1,33 @@
+From 88459a57ac2fcf06400ade5c6d0189bf1aa2334d Mon Sep 17 00:00:00 2001
+From: Nick Black <nick.black at sprezzatech.com>
+Date: Fri, 12 Apr 2013 17:10:46 -0400
+Subject: [PATCH] build with tracker 0.16
+
+---
+ configure.in | 8 +++++---
+ 1 file changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index ec72f73..21afbe4 100644
+--- a/configure.in
++++ b/configure.in
+@@ -249,11 +249,13 @@ AC_ARG_ENABLE(tracker,
+ 
+ build_tracker=no
+ if test "x$enable_tracker" != "xno"; then
+-  PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.14,
++  PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.16,
+                     [build_tracker=yes],
+-                    [PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.12,
++  		    [PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.14,
++                    	[build_tracker=yes],
++                    	[PKG_CHECK_MODULES(TRACKER, tracker-sparql-0.12,
+ 		                       [build_tracker=yes],
+-                                       [build_tracker=no])])
++                                       [build_tracker=no])])])
+   if test "x$build_tracker" = "xyes"; then
+     AC_DEFINE(ENABLE_TRACKER, 1, [Define to enable Tracker support])
+   fi
+-- 
+1.8.1.5
+

Deleted: use-terminal-config.patch
===================================================================
--- use-terminal-config.patch	2013-04-17 13:34:15 UTC (rev 88429)
+++ use-terminal-config.patch	2013-04-17 14:15:37 UTC (rev 88430)
@@ -1,45 +0,0 @@
-diff -Naur linuxmint-nemo-63f7b44.orig/libnemo-private/nemo-global-preferences.c linuxmint-nemo-63f7b44/libnemo-private/nemo-global-preferences.c
---- linuxmint-nemo-63f7b44.orig/libnemo-private/nemo-global-preferences.c	2013-02-19 17:30:18.000000000 +0100
-+++ linuxmint-nemo-63f7b44/libnemo-private/nemo-global-preferences.c	2013-03-04 04:05:13.472897136 +0100
-@@ -77,5 +77,6 @@
- 	nemo_tree_sidebar_preferences = g_settings_new("org.nemo.sidebar-panels.tree");
- 	gnome_lockdown_preferences = g_settings_new("org.gnome.desktop.lockdown");
- 	gnome_background_preferences = g_settings_new("org.gnome.desktop.background");
--    gnome_media_handling_preferences = g_settings_new("org.gnome.desktop.media-handling");
-+	gnome_media_handling_preferences = g_settings_new("org.gnome.desktop.media-handling");
-+	gnome_terminal_preferences = g_settings_new("org.gnome.desktop.default-applications.terminal");
- }
-diff -Naur linuxmint-nemo-63f7b44.orig/libnemo-private/nemo-global-preferences.h linuxmint-nemo-63f7b44/libnemo-private/nemo-global-preferences.h
---- linuxmint-nemo-63f7b44.orig/libnemo-private/nemo-global-preferences.h	2013-02-19 17:30:18.000000000 +0100
-+++ linuxmint-nemo-63f7b44/libnemo-private/nemo-global-preferences.h	2013-03-04 04:49:20.581767625 +0100
-@@ -211,6 +211,9 @@
- #define GNOME_DESKTOP_MEDIA_HANDLING_AUTOMOUNT_OPEN "automount-open"
- #define GNOME_DESKTOP_MEDIA_HANDLING_AUTORUN        "autorun-never"
- 
-+/* Terminal */
-+#define GNOME_DESKTOP_TERMINAL_EXEC        "exec"
-+
- void nemo_global_preferences_init                      (void);
- char *nemo_global_preferences_get_default_folder_viewer_preference_as_iid (void);
- 
-@@ -224,6 +227,7 @@
- GSettings *gnome_lockdown_preferences;
- GSettings *gnome_background_preferences;
- GSettings *gnome_media_handling_preferences;
-+GSettings *gnome_terminal_preferences;
- 
- G_END_DECLS
- 
-diff -Naur linuxmint-nemo-63f7b44.orig/src/nemo-view.c linuxmint-nemo-63f7b44/src/nemo-view.c
---- linuxmint-nemo-63f7b44.orig/src/nemo-view.c	2013-02-19 17:30:18.000000000 +0100
-+++ linuxmint-nemo-63f7b44/src/nemo-view.c	2013-03-04 04:14:47.222310992 +0100
-@@ -6716,7 +6716,8 @@
- open_in_terminal (gchar *location)
- {	
-     gchar *argv[2];
--    argv[0] = "x-terminal-emulator";
-+    argv[0] = g_settings_get_string (gnome_terminal_preferences,
-+				     GNOME_DESKTOP_TERMINAL_EXEC);
-     argv[1] = NULL;
-     g_spawn_async(location, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
- }




More information about the arch-commits mailing list