Commit 161115bb authored by Pavel Cisler's avatar Pavel Cisler Committed by Pavel Cisler
Browse files

New copy engine entry calls supporting New Folder creation. Pass NULL to

2000-05-30  Pavel Cisler  <pavel@eazel.com>

	* src/file-manager/dfos-xfer.h:
	* src/file-manager/dfos-xfer.c: (sync_xfer_callback), (fs_xfer),
	(new_folder_xfer_callback), (fs_new_folder), (fs_move_to_trash),
	(fs_empty_trash):
	New copy engine entry calls supporting New Folder creation.
	Pass NULL to sync_xfer_callback because it doesn't use any pass-thru
	state.

	* src/file-manager/fm-directory-view.h:
	* src/file-manager/fm-icon-view.c:
	* src/file-manager/fm-directory-view.c:
	(fm_directory_view_initialize_class),
	(bonobo_menu_new_folder_callback), (start_renaming_item),
	(new_folder_rename_later), (new_folder_done),
	(fm_directory_view_new_folder), (compute_menu_item_info),
	(fm_directory_view_real_create_selection_context_menu_items),
	(reset_bonobo_open_with_menu),
	(fm_directory_view_real_merge_menus),
	(fm_icon_view_start_renaming_item),
	(fm_icon_view_initialize_class):
	Add the "New Folder" command. Add a menu item that invokes it.
	Add code to allow me to select the new folder once it was
	created and start a rename on it.
parent 65f27bf0
2000-05-30 Pavel Cisler <pavel@eazel.com>
* src/file-manager/dfos-xfer.h:
* src/file-manager/dfos-xfer.c: (sync_xfer_callback), (fs_xfer),
(new_folder_xfer_callback), (fs_new_folder), (fs_move_to_trash),
(fs_empty_trash):
New copy engine entry calls supporting New Folder creation.
Pass NULL to sync_xfer_callback because it doesn't use any pass-thru
state.
* src/file-manager/fm-directory-view.h:
* src/file-manager/fm-icon-view.c:
* src/file-manager/fm-directory-view.c:
(fm_directory_view_initialize_class),
(bonobo_menu_new_folder_callback), (start_renaming_item),
(new_folder_rename_later), (new_folder_done),
(fm_directory_view_new_folder), (compute_menu_item_info),
(fm_directory_view_real_create_selection_context_menu_items),
(reset_bonobo_open_with_menu),
(fm_directory_view_real_merge_menus),
(fm_icon_view_start_renaming_item),
(fm_icon_view_initialize_class):
Add the "New Folder" command. Add a menu item that invokes it.
Add code to allow me to select the new folder once it was
created and start a rename on it.
Tue May 30 11:21:31 2000 Raph Levien <raph@acm.org>
* librsvg/art_render.h:
......
......@@ -333,10 +333,6 @@ update_xfer_callback (GnomeVFSAsyncHandle *handle,
static int
sync_xfer_callback (GnomeVFSXferProgressInfo *progress_info, gpointer data)
{
XferInfo *xfer_info;
xfer_info = (XferInfo *) data;
if (progress_info->status == GNOME_VFS_XFER_PROGRESS_STATUS_OK) {
switch (progress_info->phase) {
case GNOME_VFS_XFER_PHASE_OPENTARGET:
......@@ -562,7 +558,7 @@ fs_xfer (const GList *item_uris,
move_options, GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_QUERY,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
}
g_free (target_dir_uri_text);
......@@ -573,6 +569,67 @@ fs_xfer (const GList *item_uris,
g_free (source_dir);
}
typedef struct {
GnomeVFSAsyncHandle *handle;
void (* done_callback)(const char *new_folder_uri, gpointer data);
gpointer data;
} NewFolderXferState;
static int
new_folder_xfer_callback (GnomeVFSAsyncHandle *handle,
GnomeVFSXferProgressInfo *progress_info, gpointer data)
{
NewFolderXferState *state;
char *old_name;
state = (NewFolderXferState *) data;
switch (progress_info->status) {
case GNOME_VFS_XFER_PROGRESS_STATUS_OK:
nautilus_file_changes_consume_changes (TRUE);
(state->done_callback) (progress_info->target_name, state->data);
g_free (state);
return 0;
case GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE:
old_name = progress_info->duplicate_name;
progress_info->duplicate_name = g_strdup_printf ("%s %d",
progress_info->duplicate_name,
progress_info->duplicate_count);
g_free (old_name);
return GNOME_VFS_XFER_ERROR_ACTION_SKIP;
default:
g_warning (_("Unknown GnomeVFSXferProgressStatus %d"),
progress_info->status);
return 0;
}
}
void
fs_new_folder (GtkWidget *parent_view, const char *parent_dir,
void (*done_callback)(const char *, gpointer), gpointer data)
{
NewFolderXferState *state;
GList *dest_names;
state = g_new (NewFolderXferState, 1);
state->done_callback = done_callback;
state->data = data;
dest_names = g_list_append (NULL, "New Folder");
gnome_vfs_async_xfer (&state->handle, NULL, NULL,
parent_dir, dest_names,
GNOME_VFS_XFER_USE_UNIQUE_NAMES,
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_QUERY,
&new_folder_xfer_callback, state,
&sync_xfer_callback, NULL);
g_list_free (dest_names);
}
void
fs_move_to_trash (const GList *item_uris, GtkWidget *parent_view)
{
......@@ -662,7 +719,7 @@ fs_move_to_trash (const GList *item_uris, GtkWidget *parent_view)
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
g_free (trash_dir_uri_text);
}
......@@ -714,7 +771,7 @@ fs_empty_trash (GtkWidget *parent_view)
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
nautilus_g_list_free_deep (trash_dir_list);
}
......
......@@ -45,6 +45,10 @@ void fs_xfer (const GList *item_uris,
void fs_move_to_trash (const GList *item_uris,
GtkWidget *parent_view);
void fs_empty_trash (GtkWidget *parent_view);
void fs_empty_trash (GtkWidget *parent_view);
void fs_new_folder (GtkWidget *parent_view,
const char *parent_dir,
void (*done_callback)(const char *new_folder_uri, gpointer data),
gpointer data);
#endif /* DFOS_XFER_H */
......@@ -333,10 +333,6 @@ update_xfer_callback (GnomeVFSAsyncHandle *handle,
static int
sync_xfer_callback (GnomeVFSXferProgressInfo *progress_info, gpointer data)
{
XferInfo *xfer_info;
xfer_info = (XferInfo *) data;
if (progress_info->status == GNOME_VFS_XFER_PROGRESS_STATUS_OK) {
switch (progress_info->phase) {
case GNOME_VFS_XFER_PHASE_OPENTARGET:
......@@ -562,7 +558,7 @@ fs_xfer (const GList *item_uris,
move_options, GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_QUERY,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
}
g_free (target_dir_uri_text);
......@@ -573,6 +569,67 @@ fs_xfer (const GList *item_uris,
g_free (source_dir);
}
typedef struct {
GnomeVFSAsyncHandle *handle;
void (* done_callback)(const char *new_folder_uri, gpointer data);
gpointer data;
} NewFolderXferState;
static int
new_folder_xfer_callback (GnomeVFSAsyncHandle *handle,
GnomeVFSXferProgressInfo *progress_info, gpointer data)
{
NewFolderXferState *state;
char *old_name;
state = (NewFolderXferState *) data;
switch (progress_info->status) {
case GNOME_VFS_XFER_PROGRESS_STATUS_OK:
nautilus_file_changes_consume_changes (TRUE);
(state->done_callback) (progress_info->target_name, state->data);
g_free (state);
return 0;
case GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE:
old_name = progress_info->duplicate_name;
progress_info->duplicate_name = g_strdup_printf ("%s %d",
progress_info->duplicate_name,
progress_info->duplicate_count);
g_free (old_name);
return GNOME_VFS_XFER_ERROR_ACTION_SKIP;
default:
g_warning (_("Unknown GnomeVFSXferProgressStatus %d"),
progress_info->status);
return 0;
}
}
void
fs_new_folder (GtkWidget *parent_view, const char *parent_dir,
void (*done_callback)(const char *, gpointer), gpointer data)
{
NewFolderXferState *state;
GList *dest_names;
state = g_new (NewFolderXferState, 1);
state->done_callback = done_callback;
state->data = data;
dest_names = g_list_append (NULL, "New Folder");
gnome_vfs_async_xfer (&state->handle, NULL, NULL,
parent_dir, dest_names,
GNOME_VFS_XFER_USE_UNIQUE_NAMES,
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_QUERY,
&new_folder_xfer_callback, state,
&sync_xfer_callback, NULL);
g_list_free (dest_names);
}
void
fs_move_to_trash (const GList *item_uris, GtkWidget *parent_view)
{
......@@ -662,7 +719,7 @@ fs_move_to_trash (const GList *item_uris, GtkWidget *parent_view)
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
g_free (trash_dir_uri_text);
}
......@@ -714,7 +771,7 @@ fs_empty_trash (GtkWidget *parent_view)
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
nautilus_g_list_free_deep (trash_dir_list);
}
......
......@@ -45,6 +45,10 @@ void fs_xfer (const GList *item_uris,
void fs_move_to_trash (const GList *item_uris,
GtkWidget *parent_view);
void fs_empty_trash (GtkWidget *parent_view);
void fs_empty_trash (GtkWidget *parent_view);
void fs_new_folder (GtkWidget *parent_view,
const char *parent_dir,
void (*done_callback)(const char *new_folder_uri, gpointer data),
gpointer data);
#endif /* DFOS_XFER_H */
......@@ -333,10 +333,6 @@ update_xfer_callback (GnomeVFSAsyncHandle *handle,
static int
sync_xfer_callback (GnomeVFSXferProgressInfo *progress_info, gpointer data)
{
XferInfo *xfer_info;
xfer_info = (XferInfo *) data;
if (progress_info->status == GNOME_VFS_XFER_PROGRESS_STATUS_OK) {
switch (progress_info->phase) {
case GNOME_VFS_XFER_PHASE_OPENTARGET:
......@@ -562,7 +558,7 @@ fs_xfer (const GList *item_uris,
move_options, GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_QUERY,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
}
g_free (target_dir_uri_text);
......@@ -573,6 +569,67 @@ fs_xfer (const GList *item_uris,
g_free (source_dir);
}
typedef struct {
GnomeVFSAsyncHandle *handle;
void (* done_callback)(const char *new_folder_uri, gpointer data);
gpointer data;
} NewFolderXferState;
static int
new_folder_xfer_callback (GnomeVFSAsyncHandle *handle,
GnomeVFSXferProgressInfo *progress_info, gpointer data)
{
NewFolderXferState *state;
char *old_name;
state = (NewFolderXferState *) data;
switch (progress_info->status) {
case GNOME_VFS_XFER_PROGRESS_STATUS_OK:
nautilus_file_changes_consume_changes (TRUE);
(state->done_callback) (progress_info->target_name, state->data);
g_free (state);
return 0;
case GNOME_VFS_XFER_PROGRESS_STATUS_DUPLICATE:
old_name = progress_info->duplicate_name;
progress_info->duplicate_name = g_strdup_printf ("%s %d",
progress_info->duplicate_name,
progress_info->duplicate_count);
g_free (old_name);
return GNOME_VFS_XFER_ERROR_ACTION_SKIP;
default:
g_warning (_("Unknown GnomeVFSXferProgressStatus %d"),
progress_info->status);
return 0;
}
}
void
fs_new_folder (GtkWidget *parent_view, const char *parent_dir,
void (*done_callback)(const char *, gpointer), gpointer data)
{
NewFolderXferState *state;
GList *dest_names;
state = g_new (NewFolderXferState, 1);
state->done_callback = done_callback;
state->data = data;
dest_names = g_list_append (NULL, "New Folder");
gnome_vfs_async_xfer (&state->handle, NULL, NULL,
parent_dir, dest_names,
GNOME_VFS_XFER_USE_UNIQUE_NAMES,
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_QUERY,
&new_folder_xfer_callback, state,
&sync_xfer_callback, NULL);
g_list_free (dest_names);
}
void
fs_move_to_trash (const GList *item_uris, GtkWidget *parent_view)
{
......@@ -662,7 +719,7 @@ fs_move_to_trash (const GList *item_uris, GtkWidget *parent_view)
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
g_free (trash_dir_uri_text);
}
......@@ -714,7 +771,7 @@ fs_empty_trash (GtkWidget *parent_view)
GNOME_VFS_XFER_ERROR_MODE_QUERY,
GNOME_VFS_XFER_OVERWRITE_MODE_REPLACE,
&update_xfer_callback, xfer_info,
&sync_xfer_callback, xfer_info);
&sync_xfer_callback, NULL);
nautilus_g_list_free_deep (trash_dir_list);
}
......
......@@ -45,6 +45,10 @@ void fs_xfer (const GList *item_uris,
void fs_move_to_trash (const GList *item_uris,
GtkWidget *parent_view);
void fs_empty_trash (GtkWidget *parent_view);
void fs_empty_trash (GtkWidget *parent_view);
void fs_new_folder (GtkWidget *parent_view,
const char *parent_dir,
void (*done_callback)(const char *new_folder_uri, gpointer data),
gpointer data);
#endif /* DFOS_XFER_H */
......@@ -122,6 +122,7 @@ static void fm_directory_view_duplicate_selection
GList *files);
static void fm_directory_view_trash_selection (FMDirectoryView *view,
GList *files);
static void fm_directory_view_new_folder (FMDirectoryView *view);
static void fm_directory_view_destroy (GtkObject *object);
static void fm_directory_view_activate_file_internal (FMDirectoryView *view,
NautilusFile *file,
......@@ -175,6 +176,8 @@ static void show_hidden_files_changed_callback
static void get_required_metadata_keys (FMDirectoryView *view,
GList **directory_keys_result,
GList **file_keys_result);
static void start_renaming_item (FMDirectoryView *view,
const char *uri);
static void metadata_ready_callback (NautilusDirectory *directory,
GList *files,
gpointer callback_data);
......@@ -261,6 +264,7 @@ fm_directory_view_initialize_class (FMDirectoryViewClass *klass)
klass->merge_menus = fm_directory_view_real_merge_menus;
klass->update_menus = fm_directory_view_real_update_menus;
klass->get_required_metadata_keys = get_required_metadata_keys;
klass->start_renaming_item = start_renaming_item;
/* Function pointers that subclasses must override */
......@@ -476,6 +480,14 @@ bonobo_menu_empty_trash_callback (BonoboUIHandler *ui_handler, gpointer user_dat
fs_empty_trash (GTK_WIDGET (FM_DIRECTORY_VIEW (user_data)));
}
static void
bonobo_menu_new_folder_callback (BonoboUIHandler *ui_handler, gpointer user_data, const char *path)
{
g_assert (FM_IS_DIRECTORY_VIEW (user_data));
fm_directory_view_new_folder (FM_DIRECTORY_VIEW (user_data));
}
static void
bonobo_menu_open_properties_window_callback (BonoboUIHandler *ui_handler, gpointer user_data, const char *path)
{
......@@ -1463,6 +1475,76 @@ trash_callback (GtkMenuItem *item, GList *files)
files);
}
static void
start_renaming_item (FMDirectoryView *view, const char *uri)
{
GList *selection;
NautilusFile *file;
selection = NULL;
file = nautilus_file_get (uri);
if (file == NULL) {
return;
}
selection = g_list_prepend (NULL, file);
fm_directory_view_set_selection (view, selection);
}
typedef struct {
FMDirectoryView *view;
char *uri;
} RenameLaterParameters;
static gboolean
new_folder_rename_later (void *data)
{
RenameLaterParameters *parameters = (RenameLaterParameters *)data;
(* FM_DIRECTORY_VIEW_CLASS (GTK_OBJECT (parameters->view)->klass)->start_renaming_item)
(parameters->view, parameters->uri);
g_free (parameters->uri);
g_free (parameters);
return FALSE;
}
static void
new_folder_done (const char *new_folder_uri, gpointer data)
{
FMDirectoryView *directory_view;
RenameLaterParameters *parameters;
directory_view = (FMDirectoryView *)data;
parameters = g_new0 (RenameLaterParameters, 1);
parameters->uri = g_strdup (new_folder_uri);
parameters->view = directory_view;
/* FIXME:
* runing the start_renaming_item with a delay because at this point
* it's not in the icon container's icon list.
* There are two problems with this besides clunkiness - by the time the
* timeout expires, the directory view could be dead and the delay value
* is arbitrary, if the machine is loaded up, it may not be enough.
* Need to add a mechanism here that ensures synchronously that the item
* is added to the icon container instead.
*/
gtk_timeout_add (100, new_folder_rename_later, parameters);
}
static void
fm_directory_view_new_folder (FMDirectoryView *directory_view)
{
char *parent_uri;
parent_uri = fm_directory_view_get_uri (directory_view);
fs_new_folder (GTK_WIDGET(directory_view), parent_uri, new_folder_done, directory_view);
g_free (parent_uri);
}
/* handle the open command */
static void
......@@ -1602,6 +1684,8 @@ compute_menu_item_info (const char *path,
name = g_strdup_printf (_("Open in %d _New Windows"), count);
}
*return_sensitivity = selection != NULL;
} else if (strcmp (path, FM_DIRECTORY_VIEW_MENU_PATH_NEW_FOLDER) == 0) {
name = g_strdup (_("New Folder"));
#if 0
/* FIXME bugzilla.eazel.com 634, 635:
* Delete should be used in directories that don't support moving to Trash
......@@ -1831,6 +1915,9 @@ fm_directory_view_real_create_selection_context_menu_items (FMDirectoryView *vie
append_gtk_menu_item_with_view (view, menu, files,
FM_DIRECTORY_VIEW_MENU_PATH_OPEN_IN_NEW_WINDOW,
open_in_new_window_callback);
append_gtk_menu_item_with_view (view, menu, files,
FM_DIRECTORY_VIEW_MENU_PATH_NEW_FOLDER,
bonobo_menu_new_folder_callback);
append_selection_menu_subtree (view, menu,
create_open_with_gtk_menu (view, files), files,
FM_DIRECTORY_VIEW_MENU_PATH_OPEN_WITH);
......@@ -1933,7 +2020,7 @@ reset_bonobo_open_with_menu (FMDirectoryView *view, BonoboUIHandler *ui_handler,
(ui_handler, selection,
FM_DIRECTORY_VIEW_MENU_PATH_OPEN_WITH,
_("Choose a program with which to open the selected item"),
bonobo_ui_handler_menu_get_pos (ui_handler, NAUTILUS_MENU_PATH_NEW_WINDOW_ITEM) + 3,
bonobo_ui_handler_menu_get_pos (ui_handler, NAUTILUS_MENU_PATH_NEW_WINDOW_ITEM) + 4,
0, 0);
for (i = 0; i < 3; ++i) {
......@@ -1980,21 +2067,27 @@ fm_directory_view_real_merge_menus (FMDirectoryView *view)
selection = fm_directory_view_get_selection (view);
ui_handler = fm_directory_view_get_bonobo_ui_handler (view);
insert_bonobo_menu_item
(ui_handler, selection,
FM_DIRECTORY_VIEW_MENU_PATH_NEW_FOLDER,
_("Create a new folder in this window"),
bonobo_ui_handler_menu_get_pos (ui_handler, NAUTILUS_MENU_PATH_NEW_WINDOW_ITEM) + 1,
0, 0, /* Accelerator will be inherited */
(BonoboUIHandlerCallbackFunc) bonobo_menu_new_folder_callback, view);
insert_bonobo_menu_item
(ui_handler, selection,
FM_DIRECTORY_VIEW_MENU_PATH_OPEN,
_("Open the selected item in this window"),
bonobo_ui_handler_menu_get_pos (ui_handler, NAUTILUS_MENU_PATH_NEW_WINDOW_ITEM) + 1,
bonobo_ui_handler_menu_get_pos (ui_handler, NAUTILUS_MENU_PATH_NEW_WINDOW_ITEM) + 2,
'O', GDK_CONTROL_MASK,
bonobo_menu_open_callback, view);
insert_bonobo_menu_item
(ui_handler, selection,
FM_DIRECTORY_VIEW_MENU_PATH_OPEN_IN_NEW_WINDOW,
_("Open each selected item in a new window"),
bonobo_ui_handler_menu_get_pos (ui_handler, NAUTILUS_MENU_PATH_NEW_WINDOW_ITEM) + 2,
bonobo_ui_handler_menu_get_pos (ui_handler, NAUTILUS_MENU_PATH_NEW_WINDOW_ITEM) + 3,
0, 0,
bonobo_menu_open_in_new_window_callback, view);
reset_bonobo_open_with_menu (view, ui_handler, selection);
bonobo_ui_handler_menu_new_separator
......
......@@ -43,6 +43,7 @@ typedef struct FMDirectoryViewClass FMDirectoryViewClass;
#define FM_DIRECTORY_VIEW_MENU_PATH_OPEN "/File/Open"
#define FM_DIRECTORY_VIEW_MENU_PATH_OPEN_IN_NEW_WINDOW "/File/OpenNew"
#define FM_DIRECTORY_VIEW_MENU_PATH_OPEN_WITH "/File/Open With"
#define FM_DIRECTORY_VIEW_MENU_PATH_NEW_FOLDER "/File/New Folder"
#define FM_DIRECTORY_VIEW_MENU_PATH_SEPARATOR_AFTER_CLOSE "/File/SeparatorAfterClose"
#define FM_DIRECTORY_VIEW_MENU_PATH_DELETE "/File/Delete"
#define FM_DIRECTORY_VIEW_MENU_PATH_TRASH "/File/Trash"
......@@ -185,6 +186,9 @@ struct FMDirectoryViewClass {
(FMDirectoryView *view,
GList **directory_metadata_keys,
GList **file_metadata_keys);
void (* start_renaming_item) (FMDirectoryView *view,
const char *uri);
};
/* GtkObject support */
......
......@@ -898,6 +898,16 @@ layout_changed_callback (NautilusIconContainer *container,
update_layout_menus (icon_view);
}
static void
fm_icon_view_start_renaming_item (FMDirectoryView *view, const char *uri)
{
/* call parent class to make sure the right icon is selected */
NAUTILUS_CALL_PARENT_CLASS (FM_DIRECTORY_VIEW_CLASS, start_renaming_item, (view, uri));
/* start renaming */
nautilus_icon_container_start_renaming_selected_item
(get_icon_container (FM_ICON_VIEW (view)));
}
static void
fm_icon_view_merge_menus (FMDirectoryView *view)
{
......@@ -1471,6 +1481,7 @@ fm_icon_view_initialize_class (FMIconViewClass *klass)
fm_icon_view_create_selection_context_menu_items;
fm_directory_view_class->merge_menus = fm_icon_view_merge_menus;
fm_directory_view_class->update_menus = fm_icon_view_update_menus;
fm_directory_view_class->start_renaming_item = fm_icon_view_start_renaming_item;
}
static void
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment