diff --git a/thunar/thunar-gtk-extensions.c b/thunar/thunar-gtk-extensions.c
index fb617b5f165022c603b856074794880e84ccad34..1ad715a3434c624deda047fe4c8b067930e8bc6c 100644
--- a/thunar/thunar-gtk-extensions.c
+++ b/thunar/thunar-gtk-extensions.c
@@ -35,39 +35,6 @@
 
 #include <libxfce4ui/libxfce4ui.h>
 
-/**
- * thunar_gtk_action_set_tooltip:
- * @action : a #GtkAction.
- * @format : the format string for the tooltip.
- * @...    : the parameters for @format.
- *
- * Convenience function to set a tooltip for a #GtkAction.
- **/
-void
-thunar_gtk_action_set_tooltip (GtkAction   *action,
-                               const gchar *format,
-                               ...)
-{
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  va_list var_args;
-  gchar  *tooltip;
-
-  _thunar_return_if_fail (g_utf8_validate (format, -1, NULL));
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-
-  /* determine the tooltip */
-  va_start (var_args, format);
-  tooltip = g_strdup_vprintf (format, var_args);
-  va_end (var_args);
-
-  /* setup the tooltip for the action */
-  gtk_action_set_tooltip (action, tooltip);
-
-  /* release the tooltip */
-  g_free (tooltip);
-G_GNUC_END_IGNORE_DEPRECATIONS
-}
-
 
 
 /**
diff --git a/thunar/thunar-gtk-extensions.h b/thunar/thunar-gtk-extensions.h
index f0bc0f344ead90dc3e06fdb8c277961174883433..73a6b8f231f99ee7471d801d817920058a440fc9 100644
--- a/thunar/thunar-gtk-extensions.h
+++ b/thunar/thunar-gtk-extensions.h
@@ -24,9 +24,6 @@
 
 G_BEGIN_DECLS;
 
-void             thunar_gtk_action_set_tooltip                (GtkAction          *action,
-                                                               const gchar        *format,
-                                                               ...) G_GNUC_PRINTF (2, 3);
 
 void             thunar_gtk_label_set_a11y_relation           (GtkLabel           *label,
                                                                GtkWidget          *widget);
diff --git a/thunar/thunar-location-buttons.c b/thunar/thunar-location-buttons.c
index 8b44189cf11e00db69fdcc80b8f827b8e7763259..305eacb63c8ed1f5c67b14c22cca8ffff9a960e0 100644
--- a/thunar/thunar-location-buttons.c
+++ b/thunar/thunar-location-buttons.c
@@ -27,6 +27,7 @@
 
 #include <thunar/thunar-application.h>
 #include <thunar/thunar-clipboard-manager.h>
+#include <thunar/thunar-menu.h>
 #include <thunar/thunar-dialogs.h>
 #include <thunar/thunar-gio-extensions.h>
 #include <thunar/thunar-gobject-extensions.h>
@@ -122,22 +123,6 @@ static gboolean       thunar_location_buttons_context_menu                (Thuna
                                                                            ThunarLocationButtons      *buttons);
 static void           thunar_location_buttons_gone                        (ThunarLocationButton       *button,
                                                                            ThunarLocationButtons      *buttons);
-static void           thunar_location_buttons_action_create_folder        (GtkAction                  *action,
-                                                                           ThunarLocationButtons      *buttons);
-static void           thunar_location_buttons_action_down_folder          (GtkAction                  *action,
-                                                                           ThunarLocationButtons      *buttons);
-static void           thunar_location_buttons_action_empty_trash          (GtkAction                  *action,
-                                                                           ThunarLocationButtons      *buttons);
-static void           thunar_location_buttons_action_open                 (GtkAction                  *action,
-                                                                           ThunarLocationButtons      *buttons);
-static void           thunar_location_buttons_action_open_in_new_tab      (GtkAction                  *action,
-                                                                           ThunarLocationButtons      *buttons);
-static void           thunar_location_buttons_action_open_in_new_window   (GtkAction                  *action,
-                                                                           ThunarLocationButtons      *buttons);
-static void           thunar_location_buttons_action_paste_into_folder    (GtkAction                  *action,
-                                                                           ThunarLocationButtons      *buttons);
-static void           thunar_location_buttons_action_properties           (GtkAction                  *action,
-                                                                           ThunarLocationButtons      *buttons);
 
 
 
@@ -152,8 +137,6 @@ struct _ThunarLocationButtons
 {
   GtkContainer __parent__;
 
-  GtkActionGroup    *action_group;
-
   GtkWidget         *left_slider;
   GtkWidget         *right_slider;
   GtkWidget         *filler_widget;
@@ -163,6 +146,7 @@ struct _ThunarLocationButtons
   gint               slider_width;
   gboolean           ignore_click : 1;
 
+  ThunarLauncher    *launcher;
   GList             *list;
   GList             *fake_root_button;
   GList             *first_visible_button;
@@ -177,21 +161,6 @@ static GQuark thunar_file_quark = 0;
 
 
 
-static const GtkActionEntry action_entries[] =
-{
-  { "location-buttons-down-folder", NULL, "Down Folder", "<alt>Down", NULL, G_CALLBACK (thunar_location_buttons_action_down_folder), },
-  { "location-buttons-context-menu", NULL, "Context Menu", NULL, "", NULL, },
-  { "location-buttons-open", "document-open", N_("_Open"), "", NULL, G_CALLBACK (thunar_location_buttons_action_open), },
-  { "location-buttons-open-in-new-tab", NULL, N_("Open in New Tab"), "", NULL, G_CALLBACK (thunar_location_buttons_action_open_in_new_tab), },
-  { "location-buttons-open-in-new-window", NULL, N_("Open in New Window"), "", NULL, G_CALLBACK (thunar_location_buttons_action_open_in_new_window), },
-  { "location-buttons-create-folder", "folder-new", N_("Create _Folder..."), "", NULL, G_CALLBACK (thunar_location_buttons_action_create_folder), },
-  { "location-buttons-empty-trash", NULL, N_("_Empty Trash"), "", N_("Delete all files and folders in the Trash"), G_CALLBACK (thunar_location_buttons_action_empty_trash), },
-  { "location-buttons-paste-into-folder", "edit-paste", N_("Paste Into Folder"), "", NULL, G_CALLBACK (thunar_location_buttons_action_paste_into_folder), },
-  { "location-buttons-properties", "document-properties", N_("_Properties..."), "", NULL, G_CALLBACK (thunar_location_buttons_action_properties), },
-};
-
-
-
 G_DEFINE_TYPE_WITH_CODE (ThunarLocationButtons, thunar_location_buttons, GTK_TYPE_CONTAINER,
     G_IMPLEMENT_INTERFACE (THUNAR_TYPE_NAVIGATOR, thunar_location_buttons_navigator_init))
 
@@ -265,14 +234,6 @@ thunar_location_buttons_init (ThunarLocationButtons *buttons)
 {
   GtkWidget       *icon;
 
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  /* setup the action group for the location buttons */
-  buttons->action_group = gtk_action_group_new ("ThunarLocationButtons");
-  gtk_action_group_set_accel_group (buttons->action_group, gtk_accel_group_new ());
-  gtk_action_group_set_translation_domain (buttons->action_group, GETTEXT_PACKAGE);
-  gtk_action_group_add_actions (buttons->action_group, action_entries, G_N_ELEMENTS (action_entries), buttons);
-G_GNUC_END_IGNORE_DEPRECATIONS
-
   gtk_widget_set_has_window (GTK_WIDGET (buttons), FALSE);
   gtk_widget_set_redraw_on_allocate (GTK_WIDGET (buttons), FALSE);
 
@@ -324,6 +285,10 @@ G_GNUC_END_IGNORE_DEPRECATIONS
                                "path-bar-button");
   gtk_style_context_add_class (gtk_widget_get_style_context (GTK_WIDGET (buttons->filler_widget)),
                                "path-bar-button");
+
+  buttons->launcher =  g_object_new (THUNAR_TYPE_LAUNCHER, "widget", GTK_WIDGET (buttons), NULL);
+  g_signal_connect_swapped (G_OBJECT (buttons->launcher), "change-directory", G_CALLBACK (thunar_location_buttons_set_current_directory), buttons);
+  g_signal_connect_swapped (G_OBJECT (buttons->launcher), "open-new-tab", G_CALLBACK (thunar_navigator_open_new_tab), buttons);
 }
 
 
@@ -341,9 +306,6 @@ thunar_location_buttons_finalize (GObject *object)
   /* release from the current_directory */
   thunar_navigator_set_current_directory (THUNAR_NAVIGATOR (buttons), NULL);
 
-  /* release our action group */
-  g_object_unref (G_OBJECT (buttons->action_group));
-
   (*G_OBJECT_CLASS (thunar_location_buttons_parent_class)->finalize) (object);
 }
 
@@ -1225,315 +1187,59 @@ static gboolean
 thunar_location_buttons_context_menu (ThunarLocationButton  *button,
                                       ThunarLocationButtons *buttons)
 {
-  ThunarClipboardManager *clipboard;
-  const gchar            *display_name;
-  ThunarFile             *file;
-  GtkAction              *action;
-  GtkWidget              *menu, *item;
+  ThunarFile *file;
+  GtkWidget  *window;
+  GList      *files;
+  ThunarMenu *context_menu;
+  gboolean    is_current_directory;
 
   _thunar_return_val_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons), FALSE);
   _thunar_return_val_if_fail (THUNAR_IS_LOCATION_BUTTON (button), FALSE);
 
   /* determine the file for the button */
   file = thunar_location_button_get_file (button);
-  if (G_LIKELY (file != NULL))
-    {
-      menu = gtk_menu_new ();
-
-      /* determine the display name of the file */
-      display_name = thunar_file_get_display_name (file);
-
-      /* be sure to keep a reference on the navigation bar */
-      g_object_ref (G_OBJECT (buttons));
-
-      /* grab a reference on the clipboard manager for this display */
-      clipboard = thunar_clipboard_manager_get_for_display (gtk_widget_get_display (GTK_WIDGET (buttons)));
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-      /* setup the "Open" action */
-      action = gtk_action_group_get_action (buttons->action_group, "location-buttons-open");
-      thunar_gtk_action_set_tooltip (action, _("Open \"%s\" in this window"), display_name);
-      g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref);
-      gtk_action_set_sensitive (action, (file != buttons->current_directory));
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_action_create_menu_item (action));
-
-      /* setup the "Open in New Tab" action */
-      action = gtk_action_group_get_action (buttons->action_group, "location-buttons-open-in-new-tab");
-      thunar_gtk_action_set_tooltip (action, _("Open \"%s\" in a new tab"), display_name);
-      g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref);
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_action_create_menu_item (action));
-
-      /* setup the "Open in New Window" action */
-      action = gtk_action_group_get_action (buttons->action_group, "location-buttons-open-in-new-window");
-      thunar_gtk_action_set_tooltip (action, _("Open \"%s\" in a new window"), display_name);
-      g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref);
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_action_create_menu_item (action));
-
-      /* setup the "Create Folder..." action */
-      action = gtk_action_group_get_action (buttons->action_group, "location-buttons-create-folder");
-      thunar_gtk_action_set_tooltip (action, _("Create a new folder in \"%s\""), display_name);
-      g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref);
-      gtk_action_set_sensitive (action, thunar_file_is_writable (file));
-      gtk_action_set_visible (action, !thunar_file_is_trashed (file));
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_action_create_menu_item (action));
-
-      /* setup the "Empty Trash" action */
-      action = gtk_action_group_get_action (buttons->action_group, "location-buttons-empty-trash");
-      gtk_action_set_visible (action, (thunar_file_is_root (file) && thunar_file_is_trashed (file)));
-      gtk_action_set_sensitive (action, (thunar_file_get_item_count (file) > 0));
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_action_create_menu_item (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-      item = gtk_separator_menu_item_new ();
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-      gtk_widget_show (item);
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-      /* setup the "Paste Into Folder" action */
-      action = gtk_action_group_get_action (buttons->action_group, "location-buttons-paste-into-folder");
-      thunar_gtk_action_set_tooltip (action, _("Move or copy files previously selected by a Cut or Copy command into \"%s\""), display_name);
-      g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref);
-      gtk_action_set_sensitive (action, thunar_clipboard_manager_get_can_paste (clipboard));
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_action_create_menu_item (action));
-
-      item = gtk_separator_menu_item_new ();
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
-      gtk_widget_show (item);
-
-      /* setup the "Properties..." action */
-      action = gtk_action_group_get_action (buttons->action_group, "location-buttons-properties");
-      thunar_gtk_action_set_tooltip (action, _("View the properties of the folder \"%s\""), display_name);
-      g_object_set_qdata_full (G_OBJECT (action), thunar_file_quark, g_object_ref (G_OBJECT (file)), (GDestroyNotify) g_object_unref);
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), gtk_action_create_menu_item (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-      /* run the menu (takes over the floating of menu) */
-      thunar_gtk_menu_run (GTK_MENU (menu));
-
-      /* cleanup */
-      g_object_unref (buttons);
-      g_object_unref (clipboard);
-
-      return TRUE;
-    }
-
-  return FALSE;
-}
-
-
-
-static void
-thunar_location_buttons_action_create_folder (GtkAction             *action,
-                                              ThunarLocationButtons *buttons)
-{
-  ThunarApplication *application;
-  ThunarFile        *directory;
-  GList              path_list;
-  gchar             *name;
-
-  _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons));
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* determine the directory for the action */
-  directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark);
-  if (G_UNLIKELY (directory == NULL))
-    return;
-
-  /* ask the user to enter a name for the new folder */
-  name = thunar_dialogs_show_create (GTK_WIDGET (buttons),
-                                     "inode/directory",
-                                     _("New Folder"),
-                                     _("Create New Folder"));
-  if (G_LIKELY (name != NULL))
-    {
-      /* fake the path list */
-      path_list.data = g_file_resolve_relative_path (thunar_file_get_file (directory), name);
-      path_list.next = path_list.prev = NULL;
-
-      /* launch the operation */
-      application = thunar_application_get ();
-      thunar_application_mkdir (application, GTK_WIDGET (buttons), &path_list, NULL);
-      g_object_unref (G_OBJECT (application));
-
-      /* release the path */
-      g_object_unref (path_list.data);
-
-      /* release the file name */
-      g_free (name);
-    }
-}
-
-
-
-static void
-thunar_location_buttons_action_down_folder (GtkAction             *action,
-                                            ThunarLocationButtons *buttons)
-{
-  GList *lp;
-
-  _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons));
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* lookup the active button */
-  for (lp = buttons->list; lp != NULL; lp = lp->next)
-    if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (lp->data)))
-      {
-        /* check if we have a folder below that one */
-        if (G_LIKELY (lp->prev != NULL))
-          {
-            /* enter that folder */
-            gtk_button_clicked (GTK_BUTTON (lp->prev->data));
-          }
-
-        break;
-      }
-}
-
-
-
-static void
-thunar_location_buttons_action_empty_trash (GtkAction             *action,
-                                            ThunarLocationButtons *buttons)
-{
-  ThunarApplication *application;
-
-  _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons));
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* launch the operation */
-  application = thunar_application_get ();
-  thunar_application_empty_trash (application, GTK_WIDGET (buttons), NULL);
-  g_object_unref (G_OBJECT (application));
-}
-
-
-
-static void
-thunar_location_buttons_action_open (GtkAction             *action,
-                                     ThunarLocationButtons *buttons)
-{
-  ThunarFile *directory;
-
-  _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons));
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* determine the directory for the action */
-  directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark);
-  if (G_LIKELY (directory != NULL && thunar_file_is_directory (directory)))
-    {
-      /* open the folder in this window */
-      thunar_navigator_change_directory (THUNAR_NAVIGATOR (buttons), directory);
-    }
-}
-
-
-
-static void
-thunar_location_buttons_action_open_in_new_tab (GtkAction             *action,
-                                                ThunarLocationButtons *buttons)
-{
-  ThunarFile *directory;
-
-  _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons));
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* determine the directory for the action */
-  directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark);
-  if (G_LIKELY (directory != NULL))
-    {
-      /* open tab in thsi window */
-      thunar_navigator_open_new_tab (THUNAR_NAVIGATOR (buttons), directory);
-    }
-}
-
-
-
-static void
-thunar_location_buttons_action_open_in_new_window (GtkAction             *action,
-                                                   ThunarLocationButtons *buttons)
-{
-  ThunarApplication *application;
-  ThunarFile        *directory;
-
-  _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons));
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
+  if (G_UNLIKELY (file == NULL))
+    return FALSE;
 
-  /* determine the directory for the action */
-  directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark);
-  if (G_LIKELY (directory != NULL))
+  files = g_list_append (NULL, file);
+  g_object_set (G_OBJECT (buttons->launcher), "current-directory", file, NULL);
+  g_object_set (G_OBJECT (buttons->launcher), "selected-files", files, NULL);
+  g_list_free (files);
+  is_current_directory = g_file_equal (thunar_file_get_file (file), thunar_file_get_file (buttons->current_directory));
+  context_menu = g_object_new (THUNAR_TYPE_MENU, "menu-type", THUNAR_MENU_TYPE_CONTEXT,
+                                                 "launcher", buttons->launcher,
+                                                 "force-section-open", TRUE,
+                                                 "change_directory-support-disabled", is_current_directory, NULL);
+  if (is_current_directory)
     {
-      /* open a new window for the directory */
-      application = thunar_application_get ();
-      thunar_application_open_window (application, directory, gtk_widget_get_screen (GTK_WIDGET (buttons)), NULL, TRUE);
-      g_object_unref (G_OBJECT (application));
+      /* context menu on current directory */
+      thunar_menu_add_sections (context_menu, THUNAR_MENU_SECTION_OPEN
+                                            | THUNAR_MENU_SECTION_SENDTO
+                                            | THUNAR_MENU_SECTION_COPY_PASTE
+                                            | THUNAR_MENU_SECTION_CREATE_NEW_FILES
+                                            | THUNAR_MENU_SECTION_EMPTY_TRASH
+                                            | THUNAR_MENU_SECTION_RESTORE
+                                            | THUNAR_MENU_SECTION_RENAME
+                                            | THUNAR_MENU_SECTION_CUSTOM_ACTIONS
+                                            | THUNAR_MENU_SECTION_PROPERTIES);
     }
-}
-
-
-
-static void
-thunar_location_buttons_action_paste_into_folder (GtkAction             *action,
-                                                  ThunarLocationButtons *buttons)
-{
-  ThunarClipboardManager *clipboard;
-  ThunarFile             *directory;
-
-  _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons));
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* determine the directory for the action */
-  directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark);
-  if (G_LIKELY (directory != NULL))
+  else
     {
-      /* paste files from the clipboard to the folder represented by this button */
-      clipboard = thunar_clipboard_manager_get_for_display (gtk_widget_get_display (GTK_WIDGET (buttons)));
-      thunar_clipboard_manager_paste_files (clipboard, thunar_file_get_file (directory), GTK_WIDGET (buttons), NULL);
-      g_object_unref (G_OBJECT (clipboard));
+      /* context menu on some other pathbar element */
+      thunar_menu_add_sections (context_menu, THUNAR_MENU_SECTION_OPEN
+                                            | THUNAR_MENU_SECTION_SENDTO
+                                            | THUNAR_MENU_SECTION_COPY_PASTE
+                                            | THUNAR_MENU_SECTION_EMPTY_TRASH
+                                            | THUNAR_MENU_SECTION_RESTORE
+                                            | THUNAR_MENU_SECTION_RENAME
+                                            | THUNAR_MENU_SECTION_CUSTOM_ACTIONS
+                                            | THUNAR_MENU_SECTION_PROPERTIES);
     }
-}
+  thunar_menu_hide_accel_labels (context_menu);
+  gtk_widget_show_all (GTK_WIDGET (context_menu));
+  window = gtk_widget_get_toplevel (GTK_WIDGET (buttons));
+  thunar_window_redirect_menu_tooltips_to_statusbar (THUNAR_WINDOW (window), GTK_MENU (context_menu));
 
-
-
-static void
-thunar_location_buttons_action_properties (GtkAction             *action,
-                                           ThunarLocationButtons *buttons)
-{
-  ThunarFile *directory;
-  GtkWidget  *toplevel;
-  GtkWidget  *dialog;
-
-  _thunar_return_if_fail (THUNAR_IS_LOCATION_BUTTONS (buttons));
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
-  _thunar_return_if_fail (GTK_IS_ACTION (action));
-G_GNUC_END_IGNORE_DEPRECATIONS
-
-  /* determine the directory for the action */
-  directory = g_object_get_qdata (G_OBJECT (action), thunar_file_quark);
-  if (G_LIKELY (directory != NULL))
-    {
-      /* determine the toplevel window */
-      toplevel = gtk_widget_get_toplevel (GTK_WIDGET (buttons));
-      if (G_LIKELY (toplevel != NULL && gtk_widget_get_toplevel (toplevel)))
-        {
-          /* popup the properties dialog */
-          dialog = thunar_properties_dialog_new (GTK_WINDOW (toplevel));
-          thunar_properties_dialog_set_file (THUNAR_PROPERTIES_DIALOG (dialog), directory);
-          gtk_widget_show (dialog);
-        }
-    }
+  thunar_gtk_menu_run (GTK_MENU (context_menu));
+  return TRUE;
 }
-