Git Repositories

2006-03-16 Benedikt Meurer <benny@xfce.org>
authorBenedikt Meurer <benny@xfce.org>
Thu, 16 Mar 2006 00:31:38 +0000 (00:31 +0000)
committerBenedikt Meurer <benny@xfce.org>
Thu, 16 Mar 2006 00:31:38 +0000 (00:31 +0000)
* thunar/thunar-window.c: Add backspace as shortcut for "Back".
* thunar/thunar-application.c: Save accelerators on exit and restore
  them on startup. This way users can customize all shortcuts to their
  needs and Thunar will remember those shortcuts.
* FAQ, docs/manual/C/Thunar.xml.in: Update the documentation.
* po-doc/Thunar.pot, po-doc/*.po: Merge new strings.

(Old svn revision: 20451)

ChangeLog
FAQ
docs/manual/C/Thunar.xml.in
po-doc/Thunar.pot
po-doc/ja.po
thunar/thunar-application.c
thunar/thunar-window.c

index 2c6a04c..f5218d2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2006-03-16     Benedikt Meurer <benny@xfce.org>
 
+       * thunar/thunar-window.c: Add backspace as shortcut for "Back".
+       * thunar/thunar-application.c: Save accelerators on exit and restore
+         them on startup. This way users can customize all shortcuts to their
+         needs and Thunar will remember those shortcuts.
+       * FAQ, docs/manual/C/Thunar.xml.in: Update the documentation.
+       * po-doc/Thunar.pot, po-doc/*.po: Merge new strings.
+
+2006-03-16     Benedikt Meurer <benny@xfce.org>
+
        * thunar/thunar-location-buttons.c, thunar/thunar-standard-view-ui.xml,
          thunar/thunar-standard-view.c: Yet another attempt to set appropriate
          labels/tooltips for the cut/copy/paste actions. Cut/copy/paste in file
diff --git a/FAQ b/FAQ
index 015adfb..bd59a48 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -64,3 +64,47 @@ appropriate answers to these questions.
    * Right - opens the next visited folder
    * Down  - reload the current folder
 
+
+6. How do I assign different keyboard shortcuts?
+================================================
+
+  If you want to rebind a shortcut, Thunar supports the standard GTK+ way
+  of changing shortcuts: simply hover over the menu option with the mouse
+  pointer and press the keyboard shortcut you want to rebind it to.
+
+  To delete a keyboard assignment, press the Backspace key while you are
+  on the menu entry.
+
+  If the shortcut doesn't change, then you need to enable the feature in
+  GTK+. This can be achieved in 3 ways:
+
+   1. If you are running Xfce 4.3 or above then you can enable "Editable
+      menu accelerators" in the "User Interface Preferences" dialog.
+   2. If you are running GNOME then you can enable "Editable menu
+      accelerators" in the "Menu and Toolbars" control center dialog.
+   3. Otherwise put the following in your ~/.gtkrc-2.0 file (create the
+      file if it doesn't exist):
+
+       gtk-can-change-accels=1
+
+
+7. Where does Thunar store the keyboard shortcuts?
+==================================================
+
+  The custom keyboard shortcuts are stored in the standard Gtk accel map
+  format in a file located at
+
+    $XDG_CONFIG_HOME/Thunar/accels.scm
+
+  Lines starting with ; are comments. See the GTK+ documentation for details
+  about the file format. If you are a packager or a system administrator and
+  want to provide a system-wide default for the keyboard shortcuts, that is
+  different from the default shortcuts in Thunar, you can create a file
+  Thunar/accels.scm in one of the $XDG_CONFIG_DIRS. For example, if /etc/xdg
+  is part of $XDG_CONFIG_DIRS (most likely for most Linux distributions), you
+  can install system-wide defaults to
+
+    /etc/xdg/Thunar/accels.scm
+
+  Thunar will then load shortcuts from this file on first startup.
+
index a26339d..ac6af6b 100644 (file)
         <member><guilabel>Down</guilabel> - reloads the current folder</member>
       </simplelist>
     </sect3>
+
+    <sect3 id="faq-assign-keyboard-shortcuts">
+      <title>How do I assign different keyboard shortcuts?</title>
+
+      <para>
+        If you want to rebind a shortcut, Thunar supports the standard GTK+ way
+        of changing shortcuts: simply hover over the menu option with the mouse
+        pointer and press the keyboard shortcut you want to rebind it to.
+      </para>
+
+      <para>
+        To delete a keyboard assignment, press the <keycap>Backspace</keycap> key
+        while you are on the menu entry.
+      </para>
+
+      <para>
+        If the shortcut doesn't change, then you need to enable the feature in
+        GTK+. This can be achieved in 3 ways:
+      </para>
+
+      <itemizedlist>
+        <listitem>
+          <para>
+            If you are running Xfce 4.3 or above then you can enable <guilabel>Editable
+            menu accelerators</guilabel> in the <guilabel>User Interface Preferences</guilabel>
+            dialog.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            If you are running GNOME then you can enable <guilabel>Editable menu
+            accelerators</guilabel> in the <guilabel>Menu and Toolbars</guilabel> control
+            center dialog.
+          </para>
+        </listitem>
+
+        <listitem>
+          <para>
+            Otherwise put the following in your <filename>~/.gtkrc-2.0</filename> file
+            (create the file if it doesn't exist):<screen>gtk-can-change-accels=1</screen>
+          </para>
+        </listitem>
+      </itemizedlist>
+    </sect3>
+
+    <sect3 id="faq-store-keyboard-shortcuts">
+      <title>Where does Thunar store the keyboard shortcuts?</title>
+
+      <para>
+        The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a
+        file located at <filename>$XDG_CONFIG_HOME/Thunar/accels.scm</filename>. Lines starting
+        with <literal>;</literal> are comments. See the GTK+ documentation for details about the
+        file format.
+      </para>
+
+      <para>
+        If you are a packager or a system administrator and want to provide a system wide default
+        for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you
+        can create a file <filename>Thunar/accels.scm</filename> in one of the <envar>$XDG_CONFIG_DIRS</envar>.
+        For example, if <filename role="directory">/etc/xdg</filename> is part of <envar>$XDG_CONFIG_DIRS</envar>
+        (the default for most Linux distributions), you can install system wide defaults to
+        <filename>/etc/xdg/Thunar/accels.scm</filename>. Thunar will then load shortcuts from this file on first startup.
+      </para>
+    </sect3>
   </sect1>
 
 
index f5908bf..a210a10 100644 (file)
@@ -1,7 +1,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2006-03-04 13:45JST\n"
+"POT-Creation-Date: 2006-03-16 01:28+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -241,47 +241,87 @@ msgstr ""
 msgid "<placeholder-1/> - reloads the current folder"
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:256(title) 
+#: ../docs/manual/C/Thunar.xml.in:254(title) 
+msgid "How do I assign different keyboard shortcuts?"
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:256(para) 
+msgid "If you want to rebind a shortcut, Thunar supports the standard GTK+ way of changing shortcuts: simply hover over the menu option with the mouse pointer and press the keyboard shortcut you want to rebind it to."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:262(para) 
+msgid "To delete a keyboard assignment, press the <keycap>Backspace</keycap> key while you are on the menu entry."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:267(para) 
+msgid "If the shortcut doesn't change, then you need to enable the feature in GTK+. This can be achieved in 3 ways:"
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:274(para) 
+msgid "If you are running Xfce 4.3 or above then you can enable <guilabel>Editable menu accelerators</guilabel> in the <guilabel>User Interface Preferences</guilabel> dialog."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:282(para) 
+msgid "If you are running GNOME then you can enable <guilabel>Editable menu accelerators</guilabel> in the <guilabel>Menu and Toolbars</guilabel> control center dialog."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:290(para) 
+msgid "Otherwise put the following in your <filename>~/.gtkrc-2.0</filename> file (create the file if it doesn't exist):<screen>gtk-can-change-accels=1</screen>"
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:299(title) 
+msgid "Where does Thunar store the keyboard shortcuts?"
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:301(para) 
+msgid "The custom keyboard shortcuts are stored in the standard GTK+ accel map format in a file located at <filename>$XDG_CONFIG_HOME/Thunar/accels.scm</filename>. Lines starting with <literal>;</literal> are comments. See the GTK+ documentation for details about the file format."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:308(para) 
+msgid "If you are a packager or a system administrator and want to provide a system wide default for the keyboard shortcuts, that is different from the default shortcuts in Thunar, you can create a file <filename>Thunar/accels.scm</filename> in one of the <envar>$XDG_CONFIG_DIRS</envar>. For example, if <filename role=\"directory\">/etc/xdg</filename> is part of <envar>$XDG_CONFIG_DIRS</envar> (the default for most Linux distributions), you can install system wide defaults to <filename>/etc/xdg/Thunar/accels.scm</filename>. Thunar will then load shortcuts from this file on first startup."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:321(title) 
 msgid "Support"
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:258(para) 
+#: ../docs/manual/C/Thunar.xml.in:323(para) 
 msgid "To report a bug or to make a suggestion regarding this application or this manual, use the bug tracking system at <ulink url=\"http://bugzilla.xfce.org/enter_bug.cgi?product=Thunar&amp;format=guided\">http://bugzilla.xfce.org/</ulink>. Remember that useful bug reports are ones that get bugs fixed, so a useful bug report has two qualities:"
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:266(para) 
+#: ../docs/manual/C/Thunar.xml.in:331(para) 
 msgid "<emphasis role=\"bold\">Reproducible.</emphasis> If the developer cannot see the bug himself to prove that it exists, he will most probably not be able to fix it at all. Every detail you can provide helps."
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:273(para) 
+#: ../docs/manual/C/Thunar.xml.in:338(para) 
 msgid "<emphasis role=\"bold\">Specific.</emphasis> The quicker the developer can isolate the problem to a specific area, the more likely he will expediently fix it."
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:280(para) 
+#: ../docs/manual/C/Thunar.xml.in:345(para) 
 msgid "In case you want to request a new feature, please make clear why you consider it a worth addition for the application. It is more likely that a new feature gets added if you provide good arguments for the feature. It will increase the chance of addition even more if you provide a patch that implements the requested feature, but make sure that you read the file <ulink type=\"http\" url=\"http://svn.xfce.org/svn/xfce/terminal/trunk/HACKING\">HACKING</ulink> - especially the section labeled <emphasis>Coding Style</emphasis> - before you start hacking up the source."
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:290(para) 
+#: ../docs/manual/C/Thunar.xml.in:355(para) 
 msgid "Else, if you have questions about the use or installation of this software, please ask on the <ulink type=\"http\" url=\"http://foo-projects.org/mailman/listinfo/thunar-dev\">thunar-dev mailing list</ulink> or point your IRC client to <emphasis role=\"bold\">irc.freenode.net</emphasis>, join the channel <emphasis role=\"bold\">#thunar</emphasis> and ask for help."
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:299(title) 
+#: ../docs/manual/C/Thunar.xml.in:364(title) 
 msgid "About @PACKAGE_NAME@"
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:301(para) 
+#: ../docs/manual/C/Thunar.xml.in:366(para) 
 msgid "@PACKAGE_NAME@ was written by Benedikt Meurer (<email>benny@xfce.org</email>). Visit the <ulink url=\"http://thunar.xfce.org/\" type=\"http\">Thunar website</ulink> for more information."
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:306(para) 
+#: ../docs/manual/C/Thunar.xml.in:371(para) 
 msgid "This documentation was written by Benedikt Meurer (<email>benny@xfce.org</email>). The latest version of this document is always available from the <ulink type=\"http\" url=\"http://thunar.xfce.org/\">Thunar website</ulink>."
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:312(para) 
+#: ../docs/manual/C/Thunar.xml.in:377(para) 
 msgid "This software is distributed 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."
 msgstr ""
 
-#: ../docs/manual/C/Thunar.xml.in:318(para) 
+#: ../docs/manual/C/Thunar.xml.in:383(para) 
 msgid "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."
 msgstr ""
 
index 577cb50..e9f239d 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Thunar 0.2.1svn-r20203\n"
-"POT-Creation-Date: 2006-03-06 16:33+0100\n"
+"POT-Creation-Date: 2006-03-16 01:31+0100\n"
 "PO-Revision-Date: 2006-03-06 00:30+0900\n"
 "Last-Translator: Daichi Kawahata <daichi@xfce.org>\n"
 "Language-Team: Japanese <xfce-users-jp@ml.fdiary.net>\n"
@@ -457,11 +457,80 @@ msgstr "下"
 msgid "<placeholder-1/> - reloads the current folder"
 msgstr "<placeholder-1/> - 現在のフォルダをリロードします"
 
-#: ../docs/manual/C/Thunar.xml.in:256 (title)
+#: ../docs/manual/C/Thunar.xml.in:254 (title)
+msgid "How do I assign different keyboard shortcuts?"
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:256 (para)
+msgid ""
+"If you want to rebind a shortcut, Thunar supports the standard GTK+ way of "
+"changing shortcuts: simply hover over the menu option with the mouse pointer "
+"and press the keyboard shortcut you want to rebind it to."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:262 (para)
+msgid ""
+"To delete a keyboard assignment, press the <keycap>Backspace</keycap> key "
+"while you are on the menu entry."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:267 (para)
+msgid ""
+"If the shortcut doesn't change, then you need to enable the feature in GTK+. "
+"This can be achieved in 3 ways:"
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:274 (para)
+msgid ""
+"If you are running Xfce 4.3 or above then you can enable <guilabel>Editable "
+"menu accelerators</guilabel> in the <guilabel>User Interface Preferences</"
+"guilabel> dialog."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:282 (para)
+msgid ""
+"If you are running GNOME then you can enable <guilabel>Editable menu "
+"accelerators</guilabel> in the <guilabel>Menu and Toolbars</guilabel> "
+"control center dialog."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:290 (para)
+msgid ""
+"Otherwise put the following in your <filename>~/.gtkrc-2.0</filename> file "
+"(create the file if it doesn't exist):<screen>gtk-can-change-accels=1</"
+"screen>"
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:299 (title)
+#, fuzzy
+msgid "Where does Thunar store the keyboard shortcuts?"
+msgstr "ファイルに関連付けられているメタデータは何処に保存されていますか?"
+
+#: ../docs/manual/C/Thunar.xml.in:301 (para)
+msgid ""
+"The custom keyboard shortcuts are stored in the standard GTK+ accel map "
+"format in a file located at <filename>$XDG_CONFIG_HOME/Thunar/accels.scm</"
+"filename>. Lines starting with <literal>;</literal> are comments. See the GTK"
+"+ documentation for details about the file format."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:308 (para)
+msgid ""
+"If you are a packager or a system administrator and want to provide a system "
+"wide default for the keyboard shortcuts, that is different from the default "
+"shortcuts in Thunar, you can create a file <filename>Thunar/accels.scm</"
+"filename> in one of the <envar>$XDG_CONFIG_DIRS</envar>. For example, if "
+"<filename role=\"directory\">/etc/xdg</filename> is part of <envar>"
+"$XDG_CONFIG_DIRS</envar> (the default for most Linux distributions), you can "
+"install system wide defaults to <filename>/etc/xdg/Thunar/accels.scm</"
+"filename>. Thunar will then load shortcuts from this file on first startup."
+msgstr ""
+
+#: ../docs/manual/C/Thunar.xml.in:321 (title)
 msgid "Support"
 msgstr "サポート"
 
-#: ../docs/manual/C/Thunar.xml.in:258 (para)
+#: ../docs/manual/C/Thunar.xml.in:323 (para)
 msgid ""
 "To report a bug or to make a suggestion regarding this application or this "
 "manual, use the bug tracking system at <ulink url=\"http://bugzilla.xfce.org/"
@@ -475,7 +544,7 @@ msgstr ""
 "利用下さい。意味のあるバグ報告こそがバグを修正するのだという事を忘れないで下"
 "さい、ではどういったものが該当するかというと、二つの特質があります:"
 
-#: ../docs/manual/C/Thunar.xml.in:266 (para)
+#: ../docs/manual/C/Thunar.xml.in:331 (para)
 msgid ""
 "<emphasis role=\"bold\">Reproducible.</emphasis> If the developer cannot see "
 "the bug himself to prove that it exists, he will most probably not be able "
@@ -485,7 +554,7 @@ msgstr ""
 "を確認することができない場合は、それを修正するのはほぼ不可能に近くなります。"
 "どんな細かいことでも役立ちますので、詳細を余さず伝えて下さい。"
 
-#: ../docs/manual/C/Thunar.xml.in:273 (para)
+#: ../docs/manual/C/Thunar.xml.in:338 (para)
 msgid ""
 "<emphasis role=\"bold\">Specific.</emphasis> The quicker the developer can "
 "isolate the problem to a specific area, the more likely he will expediently "
@@ -494,7 +563,7 @@ msgstr ""
 "<emphasis role=\"bold\">具体的であること。</emphasis>開発者が問題を特定の箇所"
 "により早く絞れる程、その修正措置を取りやすくなります。"
 
-#: ../docs/manual/C/Thunar.xml.in:280 (para)
+#: ../docs/manual/C/Thunar.xml.in:345 (para)
 msgid ""
 "In case you want to request a new feature, please make clear why you "
 "consider it a worth addition for the application. It is more likely that a "
@@ -513,7 +582,7 @@ msgstr ""
 "で下さい。特に <emphasis>Coding Style</emphasis> と題されている箇所に目を通す"
 "ようにして下さい。"
 
-#: ../docs/manual/C/Thunar.xml.in:290 (para)
+#: ../docs/manual/C/Thunar.xml.in:355 (para)
 msgid ""
 "Else, if you have questions about the use or installation of this software, "
 "please ask on the <ulink type=\"http\" url=\"http://foo-projects.org/mailman/"
@@ -528,11 +597,11 @@ msgstr ""
 "<emphasis role=\"bold\">#thunar</emphasis> に参加して手助けを求めてみて下さ"
 "い。"
 
-#: ../docs/manual/C/Thunar.xml.in:299 (title)
+#: ../docs/manual/C/Thunar.xml.in:364 (title)
 msgid "About @PACKAGE_NAME@"
 msgstr "@PACKAGE_NAME@ について"
 
-#: ../docs/manual/C/Thunar.xml.in:301 (para)
+#: ../docs/manual/C/Thunar.xml.in:366 (para)
 msgid ""
 "@PACKAGE_NAME@ was written by Benedikt Meurer (<email>benny@xfce.org</"
 "email>). Visit the <ulink url=\"http://thunar.xfce.org/\" type=\"http"
@@ -542,7 +611,7 @@ msgstr ""
 "した。より詳しい情報を得るには <ulink url=\"http://thunar.xfce.org/\" type="
 "\"http\">Thunar のウェブサイト</ulink>を訪れて下さい。"
 
-#: ../docs/manual/C/Thunar.xml.in:306 (para)
+#: ../docs/manual/C/Thunar.xml.in:371 (para)
 msgid ""
 "This documentation was written by Benedikt Meurer (<email>benny@xfce.org</"
 "email>). The latest version of this document is always available from the "
@@ -552,7 +621,7 @@ msgstr ""
 "新版は <ulink type=\"http\" url=\"http://thunar.xfce.org/\">Thunar のウェブサ"
 "イト</ulink>にあります。"
 
-#: ../docs/manual/C/Thunar.xml.in:312 (para)
+#: ../docs/manual/C/Thunar.xml.in:377 (para)
 msgid ""
 "This software is distributed under the terms of the GNU General Public "
 "License as published by the Free Software Foundation; either version 2 of "
@@ -562,7 +631,7 @@ msgstr ""
 "の条件下に配布されています。第2版あるいは、あなたが選ぶそれ以降の版のいずれか"
 "が適用されます。"
 
-#: ../docs/manual/C/Thunar.xml.in:318 (para)
+#: ../docs/manual/C/Thunar.xml.in:383 (para)
 msgid ""
 "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 "
index 82936f5..07713dd 100644 (file)
@@ -175,8 +175,20 @@ thunar_application_class_init (ThunarApplicationClass *klass)
 static void
 thunar_application_init (ThunarApplication *application)
 {
+  gchar *path;
+
+  /* initialize the application */
   application->preferences = thunar_preferences_get ();
   application->show_dialogs_timer_id = -1;
+
+  /* check if we have a saved accel map */
+  path = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, "Thunar/accels.scm");
+  if (G_LIKELY (path != NULL))
+    {
+      /* load the accel map */
+      gtk_accel_map_load (path);
+      g_free (path);
+    }
 }
 
 
@@ -185,8 +197,18 @@ static void
 thunar_application_finalize (GObject *object)
 {
   ThunarApplication *application = THUNAR_APPLICATION (object);
+  gchar             *path;
   GList             *lp;
 
+  /* save the current accel map */
+  path = xfce_resource_save_location (XFCE_RESOURCE_CONFIG, "Thunar/accels.scm", TRUE);
+  if (G_LIKELY (path != NULL))
+    {
+      /* save the accel map */
+      gtk_accel_map_save (path);
+      g_free (path);
+    }
+
   /* drop any running "show dialogs" timer */
   if (G_UNLIKELY (application->show_dialogs_timer_id >= 0))
     g_source_remove (application->show_dialogs_timer_id);
index a70218c..edf577d 100644 (file)
@@ -62,6 +62,7 @@ enum
 /* Signal identifiers */
 enum
 {
+  BACK,
   RELOAD,
   ZOOM_IN,
   ZOOM_OUT,
@@ -82,6 +83,7 @@ static void     thunar_window_set_property                (GObject
                                                            guint                   prop_id,
                                                            const GValue           *value,
                                                            GParamSpec             *pspec);
+static gboolean thunar_window_back                        (ThunarWindow           *window);
 static gboolean thunar_window_reload                      (ThunarWindow           *window);
 static gboolean thunar_window_zoom_in                     (ThunarWindow           *window);
 static gboolean thunar_window_zoom_out                    (ThunarWindow           *window);
@@ -168,6 +170,7 @@ struct _ThunarWindowClass
   GtkWindowClass __parent__;
 
   /* internal action signals */
+  gboolean (*back)   (ThunarWindow *window);
   gboolean (*reload)   (ThunarWindow *window);
   gboolean (*zoom_in)  (ThunarWindow *window);
   gboolean (*zoom_out) (ThunarWindow *window);
@@ -320,6 +323,7 @@ thunar_window_class_init (ThunarWindowClass *klass)
   gtkwidget_class->unrealize = thunar_window_unrealize;
   gtkwidget_class->configure_event = thunar_window_configure_event;
 
+  klass->back = thunar_window_back;
   klass->reload = thunar_window_reload;
   klass->zoom_in = thunar_window_zoom_in;
   klass->zoom_out = thunar_window_zoom_out;
@@ -382,6 +386,23 @@ thunar_window_class_init (ThunarWindowClass *klass)
                                                       EXO_PARAM_READWRITE));
 
   /**
+   * ThunarWindow::back:
+   * @window : a #ThunarWindow instance.
+   *
+   * Emitted whenever the user requests to go to the
+   * previous visited folder. This is an internal
+   * signal used to bind the action to keys.
+   **/
+  window_signals[BACK] =
+    g_signal_new (I_("back"),
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+                  G_STRUCT_OFFSET (ThunarWindowClass, back),
+                  g_signal_accumulator_true_handled, NULL,
+                  _thunar_marshal_BOOLEAN__VOID,
+                  G_TYPE_BOOLEAN, 0);
+
+  /**
    * ThunarWindow::reload:
    * @window : a #ThunarWindow instance.
    *
@@ -432,6 +453,7 @@ thunar_window_class_init (ThunarWindowClass *klass)
 
   /* setup the key bindings for the windows */
   binding_set = gtk_binding_set_by_class (klass);
+  gtk_binding_entry_add_signal (binding_set, GDK_BackSpace, 0, "back", 0);
   gtk_binding_entry_add_signal (binding_set, GDK_F5, 0, "reload", 0);
   gtk_binding_entry_add_signal (binding_set, GDK_KP_Add, GDK_CONTROL_MASK, "zoom-in", 0);
   gtk_binding_entry_add_signal (binding_set, GDK_KP_Subtract, GDK_CONTROL_MASK, "zoom-out", 0);
@@ -792,6 +814,26 @@ thunar_window_set_property (GObject            *object,
 
 
 static gboolean
+thunar_window_back (ThunarWindow *window)
+{
+  GtkAction *action;
+
+  g_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE);
+
+  /* activate the "back" action */
+  action = thunar_gtk_ui_manager_get_action_by_name (window->ui_manager, "back");
+  if (G_LIKELY (action != NULL))
+    {
+      gtk_action_activate (action);
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+
+
+static gboolean
 thunar_window_reload (ThunarWindow *window)
 {
   g_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE);