summaryrefslogtreecommitdiff
path: root/libnautilus-private
diff options
context:
space:
mode:
authorJohn Sullivan <sullivan@src.gnome.org>2000-08-07 18:30:41 +0000
committerJohn Sullivan <sullivan@src.gnome.org>2000-08-07 18:30:41 +0000
commit45bdc495d223661f2f89f932733089461e621b3e (patch)
treeae626dd15947ceefae1214ecf2690f653e4eab52 /libnautilus-private
parent4e8cf79dd60f27dbb0a11b8ac88a459170bf7933 (diff)
downloadnautilus-45bdc495d223661f2f89f932733089461e621b3e.tar.gz
Fixed bug 1422 (dropping an icon at the edge doesn't update
the scrollable area) Start of bug 1969 (search controls need to adjust sensitivity appropriately) * libnautilus-extensions/nautilus-icon-container.c: (nautilus_icon_container_update_scroll_region): Renamed from "update_scroll_region" since it's now in a header file. (relayout), (nautilus_icon_container_clear): Updated for name change. (nautilus_icon_container_move_icon): Added FIXME about how update_scroll_region is handled at different levels at Darin's request. * libnautilus-extensions/nautilus-icon-private.h: Put prototype for nautilus_icon_container_update_scroll_region here so it could be called from drag-and-drop code. * libnautilus-extensions/nautilus-icon-dnd.c: (handle_local_move): Update scroll region after drag. * src/nautilus-complex-search-bar.c: (update_options_buttons_state): New function, updates the sensitivity of "Fewer Choices" button based on number of displayed criteria. Later it will also handle "More Choices" button and perhaps others. (nautilus_complex_search_bar_initialize): Call update_options_button_state after creating button widgets. (more_options_callback), (fewer_options_callback): Call update_options_button_state when number of criteria changes.
Diffstat (limited to 'libnautilus-private')
-rw-r--r--libnautilus-private/nautilus-icon-container.c15
-rw-r--r--libnautilus-private/nautilus-icon-dnd.c2
-rw-r--r--libnautilus-private/nautilus-icon-private.h2
3 files changed, 15 insertions, 4 deletions
diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c
index 9ae834759..26bce7073 100644
--- a/libnautilus-private/nautilus-icon-container.c
+++ b/libnautilus-private/nautilus-icon-container.c
@@ -422,8 +422,8 @@ get_all_icon_bounds (NautilusIconContainer *container,
x1, y1, x2, y2);
}
-static void
-update_scroll_region (NautilusIconContainer *container)
+void
+nautilus_icon_container_update_scroll_region (NautilusIconContainer *container)
{
double x1, y1, x2, y2;
GtkAdjustment *hadj, *vadj;
@@ -622,7 +622,7 @@ relayout (NautilusIconContainer *container)
lay_down_icons (container, container->details->icons, 0);
}
- update_scroll_region (container);
+ nautilus_icon_container_update_scroll_region (container);
}
static void
@@ -748,6 +748,13 @@ nautilus_icon_container_move_icon (NautilusIconContainer *container,
if (raise) {
icon_raise (icon);
}
+
+ /* FIXME: Handling of the scroll region is inconsistent here. In
+ * the scale-changing case, relayout is called, which updates the
+ * scroll region appropriately. In other cases, it's up to the
+ * caller to make sure the scroll region is updated. This could
+ * lead to hard-to-track-down bugs.
+ */
}
/* Implementation of rubberband selection. */
@@ -2670,7 +2677,7 @@ nautilus_icon_container_clear (NautilusIconContainer *container)
g_list_free (details->new_icons);
details->new_icons = NULL;
- update_scroll_region (container);
+ nautilus_icon_container_update_scroll_region (container);
}
/* utility routine to remove a single icon from the container */
diff --git a/libnautilus-private/nautilus-icon-dnd.c b/libnautilus-private/nautilus-icon-dnd.c
index 194ac848a..83ad7e24c 100644
--- a/libnautilus-private/nautilus-icon-dnd.c
+++ b/libnautilus-private/nautilus-icon-dnd.c
@@ -744,6 +744,8 @@ handle_local_move (NautilusIconContainer *container,
}
nautilus_icon_container_select_list_unselect_others
(container, moved_icons);
+ /* Might have been moved in a way that requires adjusting scroll region */
+ nautilus_icon_container_update_scroll_region (container);
g_list_free (moved_icons);
}
diff --git a/libnautilus-private/nautilus-icon-private.h b/libnautilus-private/nautilus-icon-private.h
index 4b9c7562e..7381eba30 100644
--- a/libnautilus-private/nautilus-icon-private.h
+++ b/libnautilus-private/nautilus-icon-private.h
@@ -202,4 +202,6 @@ gboolean nautilus_icon_container_emit_preview_signal (NautilusIconC
void nautilus_icon_container_scroll (NautilusIconContainer *container,
int delta_x,
int delta_y);
+
+void nautilus_icon_container_update_scroll_region (NautilusIconContainer *container);
#endif /* NAUTILUS_ICON_CONTAINER_PRIVATE_H */