summaryrefslogtreecommitdiffstats
path: root/source/xap/xfce/patches
diff options
context:
space:
mode:
Diffstat (limited to 'source/xap/xfce/patches')
-rw-r--r--source/xap/xfce/patches/exo_quoting_fix.diff66
-rw-r--r--source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff48
-rw-r--r--source/xap/xfce/patches/migrate-itheme-smartly.diff92
-rw-r--r--source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff132
-rw-r--r--source/xap/xfce/patches/terminal.gtk.2.18.fix.diff101
-rw-r--r--source/xap/xfce/patches/thunar-1.0.1-png14.diff11
-rw-r--r--source/xap/xfce/patches/thunar-fix_umask_properly.diff52
-rw-r--r--source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff11
-rw-r--r--source/xap/xfce/patches/xfce4-settings.libxklavier5.diff11
9 files changed, 186 insertions, 338 deletions
diff --git a/source/xap/xfce/patches/exo_quoting_fix.diff b/source/xap/xfce/patches/exo_quoting_fix.diff
deleted file mode 100644
index ac6544576..000000000
--- a/source/xap/xfce/patches/exo_quoting_fix.diff
+++ /dev/null
@@ -1,66 +0,0 @@
-Index: exo-open/main.c
-===================================================================
---- exo-open/main.c (revision 30250)
-+++ exo-open/main.c (revision 30251)
-@@ -36,7 +36,17 @@
- #include <exo/exo.h>
-
-
-+/**
-+ * For testing this code the following commands should work:
-+ *
-+ * exo-open --launch WebBrowser http://xfce.org (bug #5461).
-+ * exo-open http://xfce.org
-+ * exo-open --launch TerminalEmulator ./script.sh 'something with a space' 'nospace' (bug #5132).
-+ * exo-open --launch TerminalEmulator ssh -l username some.host.com
-+ **/
-
-+
-+
- static gboolean opt_help = FALSE;
- static gboolean opt_version = FALSE;
- static gchar *opt_launch = NULL;
-@@ -143,6 +153,8 @@
- {
- if (argc > 1)
- {
-+ /* NOTE: see the comment at the top of this document! */
-+
- /* combine all specified parameters to one parameter string */
- join = g_string_new (NULL);
- for (i = 1; argv[i] != NULL; i++)
-@@ -150,11 +162,18 @@
- /* separate the arguments */
- if (i > 1)
- join = g_string_append_c (join, ' ');
--
-- /* append the quoted argument */
-- quoted = g_shell_quote (argv[i]);
-- join = g_string_append (join, quoted);
-- g_free (quoted);
-+
-+ /* only quote arguments with spaces */
-+ if (strchr (argv[i], ' ') != NULL)
-+ {
-+ quoted = g_shell_quote (argv[i]);
-+ join = g_string_append (join, quoted);
-+ g_free (quoted);
-+ }
-+ else
-+ {
-+ join = g_string_append (join, argv[i]);
-+ }
- }
- parameter = g_string_free (join, FALSE);
- }
-@@ -163,6 +182,10 @@
- parameter = NULL;
- }
-
-+#ifndef NDEBUG
-+ g_message ("launch=%s, wd=%s, parameters (%d)=%s", opt_launch, opt_working_directory, argc, parameter);
-+#endif
-+
- /* run the preferred application */
- if (!exo_execute_preferred_application (opt_launch, parameter, opt_working_directory, NULL, &err))
- {
diff --git a/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff b/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff
deleted file mode 100644
index 4370281a3..000000000
--- a/source/xap/xfce/patches/launcher-plugin-migrate-icon-cat.diff
+++ /dev/null
@@ -1,48 +0,0 @@
-diff --git a/plugins/launcher/launcher.c b/plugins/launcher/launcher.c
-index 8edc66c..1e370c4 100644
---- a/plugins/launcher/launcher.c
-+++ b/plugins/launcher/launcher.c
-@@ -37,6 +37,30 @@
- #include "launcher-exec.h"
- #include "launcher-dialog.h"
-
-+/* for 4.4 settings migration */
-+static const gchar *icon_category_map[] = {
-+ "applications-other",
-+ "accessories-text-editor",
-+ "system-file-manager",
-+ "applications-accessories",
-+ "applications-games",
-+ "help-browser",
-+ "applications-multimedia",
-+ "applications-internet",
-+ "applications-graphics",
-+ "printer",
-+ "office-calendar",
-+ "applications-office",
-+ "audio-card",
-+ "utilities-terminal",
-+ "applications-development",
-+ "preferences-desktop",
-+ "applications-system",
-+ "applications-other",
-+ "applications-accessories",
-+};
-+#define ICON_CATEGORY_MAP_MAX (G_N_ELEMENTS (icon_category_map) - 1)
-+
- /* prototypes */
- static void launcher_utility_icon_theme_changed (GtkIconTheme *icon_theme,
- LauncherPlugin *launcher);
-@@ -1216,6 +1240,12 @@ launcher_plugin_read (LauncherPlugin *launcher)
- entry->name = launcher_plugin_read_entry (rc, "Name");
- entry->comment = launcher_plugin_read_entry (rc, "Comment");
- entry->icon = launcher_plugin_read_entry (rc, "Icon");
-+ if (G_UNLIKELY (!entry->icon))
-+ {
-+ gint icon_category = xfce_rc_read_int_entry (rc, "X-XFCE-IconCategory", -1);
-+ if (G_LIKELY (icon_category >= 0 && icon_category <= ICON_CATEGORY_MAP_MAX))
-+ entry->icon = g_strdup (icon_category_map[icon_category]);
-+ }
- entry->exec = launcher_plugin_read_entry (rc, "Exec");
- entry->path = launcher_plugin_read_entry (rc, "Path");
-
diff --git a/source/xap/xfce/patches/migrate-itheme-smartly.diff b/source/xap/xfce/patches/migrate-itheme-smartly.diff
deleted file mode 100644
index e9c66ed2e..000000000
--- a/source/xap/xfce/patches/migrate-itheme-smartly.diff
+++ /dev/null
@@ -1,92 +0,0 @@
-Index: scripts/xfconf-migration-4.6.pl.in
-===================================================================
---- a/scripts/xfconf-migration-4.6.pl.in (revision 29645)
-+++ b/scripts/xfconf-migration-4.6.pl.in (working copy)
-@@ -256,6 +256,77 @@
- return $mcs.'.xml';
- }
-
-+sub icon_theme_exists
-+{
-+ my ($dirref,$themename) = @_;
-+ my @dirs = @{$dirref};
-+
-+ foreach my $d (@dirs) {
-+ return 1 if(-f "$d/$themename/index.theme");
-+ }
-+
-+ return 0;
-+}
-+
-+sub migrate_icon_theme
-+{
-+ my ($ref,$chan) = @_;
-+ my %opts = %{$ref};
-+ my $opt = 'Net/IconThemeName';
-+
-+ return if(!defined($opts{$opt}));
-+ my $val = $opts{$opt}->{'value'};
-+
-+ if(lc($val) eq 'rodent') {
-+ # we don't ship rodent anymore, so try to find something suitable
-+ my @icondirs;
-+ if(defined($ENV{'XDG_DATA_HOME'})) {
-+ @icondirs = ( $ENV{'XDG_DATA_HOME'} . '/icons' );
-+ } else {
-+ @icondirs = ( $ENV{'HOME'} . '/.local/share/icons' );
-+ }
-+
-+ if(defined($ENV{'XDG_DATA_DIRS'})) {
-+ push(@icondirs, split(/:/, $ENV{'XDG_DATA_DIRS'}));
-+ } else {
-+ push(@icondirs, ( '/usr/share/icons', '/usr/local/share/icons' ));
-+ }
-+
-+ $val = undef;
-+ foreach my $itheme (('Tango', 'gnome', 'crystalsvg')) {
-+ if(icon_theme_exists(\@icondirs, $itheme)) {
-+ $val = $itheme;
-+ last;
-+ }
-+ }
-+
-+ if(!defined($val)) {
-+ # pick the first one that is not 'hicolor'
-+ foreach my $d (@icondirs) {
-+ opendir(DIR, $d) and do {
-+ my @subdirs = grep { $_ ne 'hicolor' && -d "$d/$_" } readdir(DIR);
-+ foreach my $sd (@subdirs) {
-+ if(-f "$d/$sd/index.theme") {
-+ $val = $sd;
-+ last;
-+ }
-+ }
-+ closedir(DIR);
-+ };
-+ last if(defined($val));
-+ }
-+
-+ if(!defined($val)) {
-+ # ok, their system is kinda b0rked; not much we can do
-+ warn("Couldn't find a suitable icon theme to migrate to");
-+ return;
-+ }
-+ }
-+ }
-+
-+ xfconf_set($chan, 'string', '/Net/IconThemeName', $val);
-+}
-+
- sub migrate_xsettings
- {
- my $mcs = 'gtk';
-@@ -283,8 +354,7 @@
- '/Net/CursorBlinkTime', 'int');
- save_xfconf_prop($ref, $chan, 'Net/DndDragThreshold',
- '/Net/DndDragThreshold', 'int');
-- save_xfconf_prop($ref, $chan, 'Net/IconThemeName',
-- '/Net/IconThemeName', 'string');
-+ migrate_icon_theme($ref, $chan);
- save_xfconf_prop($ref, $chan, 'Net/ThemeName',
- '/Net/ThemeName', 'string');
-
diff --git a/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff b/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff
deleted file mode 100644
index d9608470f..000000000
--- a/source/xap/xfce/patches/terminal-0.4.0-fixup_docdir.diff
+++ /dev/null
@@ -1,132 +0,0 @@
-diff -Nur Terminal-0.4.0.orig/Makefile.in Terminal-0.4.0/Makefile.in
---- Terminal-0.4.0.orig/Makefile.in 2009-07-20 13:04:04.000000000 -0500
-+++ Terminal-0.4.0/Makefile.in 2009-07-20 13:50:20.529864039 -0500
-@@ -986,7 +986,7 @@
-
- TerminalHelp: TerminalHelp.in Makefile
- rm -f TerminalHelp.gen TerminalHelp
-- sed -e "s,\@datadir\@,$(datadir),g" \
-+ sed -e "s,\@docdir\@,$(docdir),g" \
- < $(srcdir)/TerminalHelp.in \
- > TerminalHelp.gen
- mv TerminalHelp.gen TerminalHelp
-diff -Nur Terminal-0.4.0.orig/TerminalHelp.in Terminal-0.4.0/TerminalHelp.in
---- Terminal-0.4.0.orig/TerminalHelp.in 2009-07-20 13:03:50.000000000 -0500
-+++ Terminal-0.4.0/TerminalHelp.in 2009-07-20 13:50:20.529864039 -0500
-@@ -19,7 +19,7 @@
- # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- #
-
--HELPDIR="@datadir@/doc/Terminal/"
-+HELPDIR="@docdir@/"
-
- if test -n "$LC_ALL"; then
- LC=$LC_ALL
-diff -Nur Terminal-0.4.0.orig/doc/C/Makefile.in Terminal-0.4.0/doc/C/Makefile.in
---- Terminal-0.4.0.orig/doc/C/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/C/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -260,7 +260,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Terminal/C
-+TARGET_DIR = $(docdir)/C
- STYLESHEET = ../terminal.xsl
- DOCUMENT = Terminal.xml
-
-diff -Nur Terminal-0.4.0.orig/doc/C/images/Makefile.in Terminal-0.4.0/doc/C/images/Makefile.in
---- Terminal-0.4.0.orig/doc/C/images/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/C/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -240,7 +240,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--imagesdir = $(datadir)/doc/Terminal/C/images
-+imagesdir = $(docdir)/C/images
- images_DATA = \
- terminal-compose-shortcut.png \
- terminal-edit-preferences.png \
-diff -Nur Terminal-0.4.0.orig/doc/Makefile.in Terminal-0.4.0/doc/Makefile.in
---- Terminal-0.4.0.orig/doc/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/Makefile.in 2009-07-20 13:51:00.229192942 -0500
-@@ -286,7 +286,7 @@
- fr \
- ja
-
--cssdir = $(datadir)/doc/Terminal
-+cssdir = $(docdir)/
- css_DATA = \
- terminal.css
-
-diff -Nur Terminal-0.4.0.orig/doc/da/Makefile.in Terminal-0.4.0/doc/da/Makefile.in
---- Terminal-0.4.0.orig/doc/da/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/da/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -260,7 +260,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Terminal/da
-+TARGET_DIR = $(docdir)/da
- STYLESHEET = ../terminal.xsl
- DOCUMENT = Terminal.xml
-
-diff -Nur Terminal-0.4.0.orig/doc/da/images/Makefile.in Terminal-0.4.0/doc/da/images/Makefile.in
---- Terminal-0.4.0.orig/doc/da/images/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/da/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -240,7 +240,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--imagesdir = $(datadir)/doc/Terminal/da/images
-+imagesdir = $(docdir)/da/images
- images_DATA = \
- terminal-compose-shortcut.png \
- terminal-edit-preferences.png \
-diff -Nur Terminal-0.4.0.orig/doc/fr/Makefile.in Terminal-0.4.0/doc/fr/Makefile.in
---- Terminal-0.4.0.orig/doc/fr/Makefile.in 2009-07-20 13:04:02.000000000 -0500
-+++ Terminal-0.4.0/doc/fr/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -260,7 +260,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Terminal/fr
-+TARGET_DIR = $(docdir)/fr
- STYLESHEET = ../terminal.xsl
- DOCUMENT = Terminal.xml
-
-diff -Nur Terminal-0.4.0.orig/doc/fr/images/Makefile.in Terminal-0.4.0/doc/fr/images/Makefile.in
---- Terminal-0.4.0.orig/doc/fr/images/Makefile.in 2009-07-20 13:04:03.000000000 -0500
-+++ Terminal-0.4.0/doc/fr/images/Makefile.in 2009-07-20 13:50:20.533867320 -0500
-@@ -240,7 +240,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--imagesdir = $(datadir)/doc/Terminal/fr/images
-+imagesdir = $(docdir)/fr/images
- images_DATA = \
- terminal-compose-shortcut.png \
- terminal-edit-preferences.png \
-diff -Nur Terminal-0.4.0.orig/doc/ja/Makefile.in Terminal-0.4.0/doc/ja/Makefile.in
---- Terminal-0.4.0.orig/doc/ja/Makefile.in 2009-07-20 13:04:03.000000000 -0500
-+++ Terminal-0.4.0/doc/ja/Makefile.in 2009-07-20 13:50:20.537889876 -0500
-@@ -260,7 +260,7 @@
- SUBDIRS = \
- images
-
--TARGET_DIR = $(datadir)/doc/Terminal/ja
-+TARGET_DIR = $(docdir)/ja
- STYLESHEET = ../terminal.xsl
- DOCUMENT = Terminal.xml
-
-diff -Nur Terminal-0.4.0.orig/doc/ja/images/Makefile.in Terminal-0.4.0/doc/ja/images/Makefile.in
---- Terminal-0.4.0.orig/doc/ja/images/Makefile.in 2009-07-20 13:04:03.000000000 -0500
-+++ Terminal-0.4.0/doc/ja/images/Makefile.in 2009-07-20 13:50:20.537889876 -0500
-@@ -240,7 +240,7 @@
- top_build_prefix = @top_build_prefix@
- top_builddir = @top_builddir@
- top_srcdir = @top_srcdir@
--imagesdir = $(datadir)/doc/Terminal/ja/images
-+imagesdir = $(docdir)/ja/images
- images_DATA = \
- terminal-compose-shortcut.png \
- terminal-edit-preferences.png \
diff --git a/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff b/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff
new file mode 100644
index 000000000..69a9e70e8
--- /dev/null
+++ b/source/xap/xfce/patches/terminal.gtk.2.18.fix.diff
@@ -0,0 +1,101 @@
+From 028dc2efd846defe796c7fa097ed84818bb43431 Mon Sep 17 00:00:00 2001
+From: Nick Schermer <nick@xfce.org>
+Date: Sun, 21 Mar 2010 22:05:31 +0000
+Subject: Disconnect bindings before closing the dialog.
+
+This avoids possible problems when Gtk+ emits property
+changes before the widgets are destroyed. This is currently
+the case for text entries in some Gtk 2.18 releases.
+---
+diff --git a/terminal/terminal-preferences-dialog.c b/terminal/terminal-preferences-dialog.c
+index 587bd92..8f33628 100644
+--- a/terminal/terminal-preferences-dialog.c
++++ b/terminal/terminal-preferences-dialog.c
+@@ -64,24 +64,28 @@ terminal_preferences_dialog_class_init (TerminalPreferencesDialogClass *klass)
+
+
+ #define BIND_PROPERTIES(name, property) \
+- { object = gtk_builder_get_object (GTK_BUILDER (dialog), name); \
++ G_STMT_START { \
++ object = gtk_builder_get_object (GTK_BUILDER (dialog), name); \
+ terminal_return_if_fail (G_IS_OBJECT (object)); \
+- exo_mutual_binding_new (G_OBJECT (dialog->preferences), name, \
+- G_OBJECT (object), property); }
++ binding = exo_mutual_binding_new (G_OBJECT (dialog->preferences), name, \
++ G_OBJECT (object), property); \
++ dialog->bindings = g_slist_prepend (dialog->bindings, binding); \
++ } G_STMT_END
+
+
+
+ static void
+ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
+ {
+- GError *error = NULL;
+- guint i;
+- GObject *object, *object2;
+- GtkWidget *editor;
+- gchar palette_name[16];
+- GtkFileFilter *filter;
+- gchar *file;
+- const gchar *props_active[] = { "title-mode", "command-login-shell",
++ GError *error = NULL;
++ guint i;
++ GObject *object, *object2;
++ GtkWidget *editor;
++ gchar palette_name[16];
++ GtkFileFilter *filter;
++ gchar *file;
++ ExoMutualBinding *binding;
++ const gchar *props_active[] = { "title-mode", "command-login-shell",
+ "command-update-records", "scrolling-single-line",
+ "scrolling-on-output", "scrolling-on-keystroke",
+ "scrolling-bar", "font-allow-bold",
+@@ -94,9 +98,9 @@ terminal_preferences_dialog_init (TerminalPreferencesDialog *dialog)
+ , "font-anti-alias"
+ #endif
+ };
+- const gchar *props_color[] = { "color-foreground", "color-cursor",
+- "color-background", "tab-activity-color",
+- "color-selection" };
++ const gchar *props_color[] = { "color-foreground", "color-cursor",
++ "color-background", "tab-activity-color",
++ "color-selection" };
+
+ dialog->preferences = terminal_preferences_get ();
+
+@@ -248,6 +252,8 @@ terminal_preferences_dialog_response (GtkWidget *widget,
+ gint response,
+ TerminalPreferencesDialog *dialog)
+ {
++ GSList *li;
++
+ /* check if we should open the user manual */
+ if (G_UNLIKELY (response == 1))
+ {
+@@ -256,6 +262,11 @@ terminal_preferences_dialog_response (GtkWidget *widget,
+ }
+ else
+ {
++ /* disconnect all the bindings */
++ for (li = dialog->bindings; li != NULL; li = li->next)
++ exo_mutual_binding_unbind (li->data);
++ g_slist_free (dialog->bindings);
++
+ /* close the preferences dialog */
+ gtk_widget_destroy (widget);
+ }
+diff --git a/terminal/terminal-preferences-dialog.h b/terminal/terminal-preferences-dialog.h
+index b2db4f5..268d70a 100644
+--- a/terminal/terminal-preferences-dialog.h
++++ b/terminal/terminal-preferences-dialog.h
+@@ -48,6 +48,7 @@ struct _TerminalPreferencesDialog
+
+ TerminalPreferences *preferences;
+ guint signal_id;
++ GSList *bindings;
+ };
+
+ GType terminal_preferences_dialog_get_type (void) G_GNUC_CONST;
+--
+cgit v0.8.2.1
diff --git a/source/xap/xfce/patches/thunar-1.0.1-png14.diff b/source/xap/xfce/patches/thunar-1.0.1-png14.diff
new file mode 100644
index 000000000..6c67a407d
--- /dev/null
+++ b/source/xap/xfce/patches/thunar-1.0.1-png14.diff
@@ -0,0 +1,11 @@
+--- ./thunar-vfs/thunar-vfs-thumb.c.orig 2009-01-12 14:38:49.000000000 -0600
++++ ./thunar-vfs/thunar-vfs-thumb.c 2010-02-12 13:24:33.000000000 -0600
+@@ -1169,7 +1169,7 @@
+ goto done0;
+
+ /* verify the png signature */
+- if (G_LIKELY (png_check_sig ((png_bytep) signature, sizeof (signature))))
++ if (G_LIKELY (png_sig_cmp ((png_bytep) signature, 0, sizeof (signature)) == 0))
+ rewind (fp);
+ else
+ goto done0;
diff --git a/source/xap/xfce/patches/thunar-fix_umask_properly.diff b/source/xap/xfce/patches/thunar-fix_umask_properly.diff
new file mode 100644
index 000000000..2070b5802
--- /dev/null
+++ b/source/xap/xfce/patches/thunar-fix_umask_properly.diff
@@ -0,0 +1,52 @@
+commit eb58c6a6ba7f77c2c16016db064524df598ef421
+Author: Jannis Pohlmann <jannis@xfce.org>
+Date: Sat Oct 3 11:49:41 2009 +0200
+
+ Fix bugs #3532 (umask < 0022 not honoured) and #5813 properly (I hope).
+
+ The previous patch applied in e53de71e6add9b28ba034111a1d19db7def8f7e7
+ made things worse than before: it used DEFFILEMODE which seems to be
+ BSD-specific for creating files. It also reset the umask to 0 when
+ creating the first directory with _thunar_vfs_io_jobs_mkdir().
+
+ What we really want is to use 0777 (dirs) and 0666 (files) and let the
+ standard C system calls like open() apply the umask value. This should
+ work on all POSIX-compliant systems.
+
+ Patch provided by Craig Ringer <craig@postnewspapers.com.au>.
+
+diff --git a/thunar-vfs/thunar-vfs-io-jobs.c b/thunar-vfs/thunar-vfs-io-jobs.c
+index 8d70812..c94523a 100644
+--- a/thunar-vfs/thunar-vfs-io-jobs.c
++++ b/thunar-vfs/thunar-vfs-io-jobs.c
+@@ -432,8 +432,12 @@ _thunar_vfs_io_jobs_create (ThunarVfsJob *job,
+ absolute_path = thunar_vfs_path_dup_string (lp->data);
+
+ again:
+- /* try to create the file at the given path */
+- fd = g_open (absolute_path, O_CREAT | O_EXCL | O_WRONLY, DEFFILEMODE);
++ /* Try to create the file at the given path.
++ *
++ * Note that despite the 0666 mask, we won't really create a world-writable
++ * file unless the user's umask permits it (ie the umask is 0000).
++ */
++ fd = g_open (absolute_path, O_CREAT | O_EXCL | O_WRONLY, 0666);
+ if (G_UNLIKELY (fd < 0))
+ {
+ /* check if the file already exists */
+@@ -707,8 +711,13 @@ _thunar_vfs_io_jobs_mkdir (ThunarVfsJob *job,
+ /* update the progress information */
+ _thunar_vfs_job_process_path (job, lp);
+
+- /* try to create the target directory */
+- if (!_thunar_vfs_io_ops_mkdir (lp->data, 0777 & ~umask(0), THUNAR_VFS_IO_OPS_NONE, error))
++ /* try to create the target directory
++ *
++ * Note that the mode specified here is limited by the user's umask, so we will not
++ * actually be creating a world writable directory unless the user's umask permits
++ * it.
++ */
++ if (!_thunar_vfs_io_ops_mkdir (lp->data, 0777, THUNAR_VFS_IO_OPS_NONE, error))
+ return FALSE;
+ }
+
diff --git a/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff b/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff
new file mode 100644
index 000000000..a8d5b2a5f
--- /dev/null
+++ b/source/xap/xfce/patches/xfce-utils.xinitrc.consolekit.diff
@@ -0,0 +1,11 @@
+--- ./scripts/xinitrc.in.in.orig 2009-04-09 18:21:13.000000000 -0500
++++ ./scripts/xinitrc.in.in 2010-05-06 03:06:02.000000000 -0500
+@@ -131,7 +131,7 @@
+ x|xno*)
+ ;;
+ *)
+- $xfcesm
++ ck-launch-session $xfcesm
+
+ if test $kill_sshagent -eq 1; then
+ eval `$sshagent -k`
diff --git a/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff b/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff
new file mode 100644
index 000000000..d5f8ed8c6
--- /dev/null
+++ b/source/xap/xfce/patches/xfce4-settings.libxklavier5.diff
@@ -0,0 +1,11 @@
+--- ./dialogs/keyboard-settings/xfce-keyboard-settings.c.orig 2010-01-02 07:31:06.000000000 -0600
++++ ./dialogs/keyboard-settings/xfce-keyboard-settings.c 2010-02-12 02:11:05.000000000 -0600
+@@ -457,7 +457,7 @@
+
+ #ifdef HAVE_LIBXKLAVIER
+ /* Stop xklavier engine */
+- xkl_engine_stop_listen (settings->priv->xkl_engine);
++ xkl_engine_stop_listen (settings->priv->xkl_engine, XKLL_TRACK_KEYBOARD_STATE);
+ #endif /* HAVE_LIBXKLAVIER */
+
+ g_object_unref (settings->priv->provider);