nautilus r14326 - in branches/multiview: . src src/file-manager
- From: cneumair svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r14326 - in branches/multiview: . src src/file-manager
- Date: Mon, 7 Jul 2008 18:24:28 +0000 (UTC)
Author: cneumair
Date: Mon Jul 7 18:24:28 2008
New Revision: 14326
URL: http://svn.gnome.org/viewvc/nautilus?rev=14326&view=rev
Log:
2008-07-07 Christian Neumair <cneumair gnome org>
* src/file-manager/fm-tree-view.c (got_activation_uri_callback),
(button_pressed_callback), (fm_tree_view_activate_file):
* src/nautilus-places-sidebar.c (open_selected_bookmark),
(bookmarks_button_press_event_cb):
Open in new tab on middle-click. Fix middle-click selection
interaction.
Modified:
branches/multiview/ChangeLog
branches/multiview/src/file-manager/fm-tree-view.c
branches/multiview/src/nautilus-places-sidebar.c
Modified: branches/multiview/src/file-manager/fm-tree-view.c
==============================================================================
--- branches/multiview/src/file-manager/fm-tree-view.c (original)
+++ branches/multiview/src/file-manager/fm-tree-view.c Mon Jul 7 18:24:28 2008
@@ -338,18 +338,20 @@
char *uri, *file_uri;
FMTreeView *view;
GdkScreen *screen;
- NautilusWindowOpenMode mode;
GFile *location;
NautilusWindowSlotInfo *slot;
+ gboolean open_in_same_slot;
view = FM_TREE_VIEW (callback_data);
screen = gtk_widget_get_screen (GTK_WIDGET (view->details->tree_widget));
g_assert (file == view->details->activation_file);
-
- mode = ((view->details->activation_flags & NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW) != 0)
- ? NAUTILUS_WINDOW_OPEN_IN_NAVIGATION : NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE;
+
+ open_in_same_slot =
+ (view->details->activation_flags &
+ (NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW |
+ NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB)) == 0;
slot = nautilus_window_info_get_active_slot (view->details->window);
@@ -377,7 +379,7 @@
nautilus_window_slot_info_open_location
(slot,
location,
- mode,
+ NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
view->details->activation_flags,
NULL);
g_object_unref (location);
@@ -390,12 +392,16 @@
}
} else if (uri != NULL) {
- if (view->details->selection_location == NULL ||
+ if (!open_in_same_slot ||
+ view->details->selection_location == NULL ||
strcmp (uri, view->details->selection_location) != 0) {
- if (view->details->selection_location != NULL) {
- g_free (view->details->selection_location);
+ if (open_in_same_slot) {
+ if (view->details->selection_location != NULL) {
+ g_free (view->details->selection_location);
+ }
+ view->details->selection_location = g_strdup (uri);
}
- view->details->selection_location = g_strdup (uri);
+
nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_USER,
"tree view window_info_open_location window=%p: %s",
view->details->window, uri);
@@ -403,7 +409,7 @@
nautilus_window_slot_info_open_location
(slot,
location,
- mode,
+ NAUTILUS_WINDOW_OPEN_ACCORDING_TO_MODE,
view->details->activation_flags,
NULL);
g_object_unref (location);
@@ -783,6 +789,8 @@
file = sort_model_path_to_file (view, path);
if (file) {
fm_tree_view_activate_file (view, file,
+ (event->state & GDK_CONTROL_MASK) != 0 ?
+ NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW :
NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB);
nautilus_file_unref (file);
}
@@ -804,6 +812,13 @@
cancel_activation (view);
+ if (view->details->activation_flags & NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB &&
+ !eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS)) {
+ view->details->activation_flags &= ~NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB;
+ view->details->activation_flags |= NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW;
+ }
+
+
view->details->activation_file = nautilus_file_ref (file);
view->details->activation_flags = flags;
Modified: branches/multiview/src/nautilus-places-sidebar.c
==============================================================================
--- branches/multiview/src/nautilus-places-sidebar.c (original)
+++ branches/multiview/src/nautilus-places-sidebar.c Mon Jul 7 18:24:28 2008
@@ -1292,6 +1292,12 @@
return;
}
+ if (flags & NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB &&
+ !eel_preferences_get_boolean (NAUTILUS_PREFERENCES_ENABLE_TABS)) {
+ flags &= ~NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB;
+ flags |= NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW;
+ }
+
gtk_tree_model_get (model, &iter, PLACES_SIDEBAR_COLUMN_URI, &uri, -1);
if (uri != NULL) {
@@ -1825,10 +1831,14 @@
gtk_tree_view_get_path_at_pos (tree_view, (int) event->x, (int) event->y,
&path, NULL, NULL, NULL);
- open_selected_bookmark (sidebar, model, path, NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB);
+ open_selected_bookmark (sidebar, model, path,
+ event->state & GDK_CONTROL_MASK ?
+ NAUTILUS_WINDOW_OPEN_FLAG_NEW_WINDOW :
+ NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB);
if (path != NULL) {
gtk_tree_path_free (path);
+ return TRUE;
}
}
return FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]