nautilus r14599 - in trunk: . libnautilus-private
- From: cneumair svn gnome org
- To: svn-commits-list gnome org
- Subject: nautilus r14599 - in trunk: . libnautilus-private
- Date: Mon, 8 Sep 2008 13:35:04 +0000 (UTC)
Author: cneumair
Date: Mon Sep 8 13:35:04 2008
New Revision: 14599
URL: http://svn.gnome.org/viewvc/nautilus?rev=14599&view=rev
Log:
2008-09-08 Christian Neumair <cneumair gnome org>
* libnautilus-private/nautilus-icon-container.c (select_range),
(keyboard_move_to), (handle_icon_button_press):
Allow to select range additively when pressing ctrl and shift, i.e.
don't unselect the old selection. Fixes #410497, at least for icon
view.
Modified:
trunk/ChangeLog
trunk/libnautilus-private/nautilus-icon-container.c
Modified: trunk/libnautilus-private/nautilus-icon-container.c
==============================================================================
--- trunk/libnautilus-private/nautilus-icon-container.c (original)
+++ trunk/libnautilus-private/nautilus-icon-container.c Mon Sep 8 13:35:04 2008
@@ -2297,7 +2297,8 @@
static gboolean
select_range (NautilusIconContainer *container,
NautilusIcon *icon1,
- NautilusIcon *icon2)
+ NautilusIcon *icon2,
+ gboolean unselect_outside_range)
{
gboolean selection_changed;
GList *p;
@@ -2322,8 +2323,10 @@
}
}
- selection_changed |= icon_set_selected
- (container, icon, select);
+ if (select || unselect_outside_range) {
+ selection_changed |= icon_set_selected
+ (container, icon, select);
+ }
if (unmatched_icon != NULL && icon == unmatched_icon) {
select = FALSE;
@@ -3517,7 +3520,7 @@
set_keyboard_focus (container, icon);
- if (select_range (container, start_icon, icon)) {
+ if (select_range (container, start_icon, icon, TRUE)) {
g_signal_emit (container,
signals[SELECTION_CHANGED], 0);
}
@@ -6303,7 +6306,6 @@
details->icon_selected_on_button_down = icon->is_selected;
if ((event->button == DRAG_BUTTON || event->button == MIDDLE_BUTTON) &&
- (event->state & GDK_CONTROL_MASK) == 0 &&
(event->state & GDK_SHIFT_MASK) != 0) {
NautilusIcon *start_icon;
@@ -6312,7 +6314,8 @@
start_icon = icon;
details->range_selection_base_icon = icon;
}
- if (select_range (container, start_icon, icon)) {
+ if (select_range (container, start_icon, icon,
+ (event->state & GDK_CONTROL_MASK) == 0)) {
g_signal_emit (container,
signals[SELECTION_CHANGED], 0);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]