diff options
author | John Sullivan <sullivan@src.gnome.org> | 2000-08-07 18:30:41 +0000 |
---|---|---|
committer | John Sullivan <sullivan@src.gnome.org> | 2000-08-07 18:30:41 +0000 |
commit | 45bdc495d223661f2f89f932733089461e621b3e (patch) | |
tree | ae626dd15947ceefae1214ecf2690f653e4eab52 /libnautilus-private | |
parent | 4e8cf79dd60f27dbb0a11b8ac88a459170bf7933 (diff) | |
download | nautilus-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.c | 15 | ||||
-rw-r--r-- | libnautilus-private/nautilus-icon-dnd.c | 2 | ||||
-rw-r--r-- | libnautilus-private/nautilus-icon-private.h | 2 |
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 */ |