Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dliang
nautilus
nautilus-130796-bad-icon-placement.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File nautilus-130796-bad-icon-placement.diff of Package nautilus
--- nautilus/libnautilus-private/nautilus-icon-container.c 2006-02-23 21:16:32.000000000 -0600 +++ nautilus/libnautilus-private/nautilus-icon-container.c 2006-02-23 21:14:59.000000000 -0600 @@ -1135,19 +1135,19 @@ snap_position (NautilusIconContainer *co int icon_width; int icon_height; ArtDRect icon_position; - - if (*x < DESKTOP_PAD_HORIZONTAL) { - *x = DESKTOP_PAD_HORIZONTAL; - } - - if (*y < DESKTOP_PAD_VERTICAL) { - *y = DESKTOP_PAD_VERTICAL; - } icon_position = nautilus_icon_canvas_item_get_icon_rectangle (icon->item); icon_width = icon_position.x1 - icon_position.x0; icon_height = icon_position.y1 - icon_position.y0; - + + if (*x + icon_width / 2 < DESKTOP_PAD_HORIZONTAL + SNAP_SIZE_X) { + *x = DESKTOP_PAD_HORIZONTAL + SNAP_SIZE_X - icon_width / 2; + } + + if (*y + icon_height < DESKTOP_PAD_VERTICAL + SNAP_SIZE_Y) { + *y = DESKTOP_PAD_VERTICAL + SNAP_SIZE_Y - icon_height; + } + center_x = *x + icon_width / 2; *x = SNAP_NEAREST_HORIZONTAL (center_x) - (icon_width / 2); @@ -1477,11 +1477,9 @@ lay_down_icons_tblr (NautilusIconContain icon = p->data; icon_rect = nautilus_icon_canvas_item_get_icon_rectangle (icon->item); - icon_get_bounding_box (icon, - &x1, &y1, &x2, &y2); - /* Start the icon in the first column */ - x = DESKTOP_PAD_HORIZONTAL + SNAP_SIZE_X - ((x2 - x1) / 2); + /* Start the icon in the first column */ + x = DESKTOP_PAD_HORIZONTAL + (SNAP_SIZE_X / 2) - ((icon_rect.x1 - icon_rect.x0) / 2); y = DESKTOP_PAD_VERTICAL + SNAP_SIZE_Y - (icon_rect.y1 - icon_rect.y0); find_empty_location (container, @@ -5169,12 +5167,14 @@ finish_adding_new_icons (NautilusIconCon no_position_icons = semi_position_icons = NULL; for (p = new_icons; p != NULL; p = p->next) { icon = p->data; - if (!assign_icon_position (container, icon)) { + if (assign_icon_position (container, icon)) { + if (!container->details->auto_layout && icon->has_lazy_position) { + semi_position_icons = g_list_prepend (semi_position_icons, icon); + } + } else { no_position_icons = g_list_prepend (no_position_icons, icon); - } else if (!container->details->auto_layout && - icon->has_lazy_position) { - semi_position_icons = g_list_prepend (semi_position_icons, icon); } + finish_adding_icon (container, icon); } g_list_free (new_icons); @@ -5186,7 +5186,9 @@ finish_adding_new_icons (NautilusIconCon semi_position_icons = g_list_reverse (semi_position_icons); - grid = placement_grid_new (container, TRUE); + /* This is currently only used on the desktop. + * Thus, we pass FALSE for tight, like lay_down_icons_tblr */ + grid = placement_grid_new (container, FALSE); for (p = container->details->icons; p != NULL; p = p->next) { icon = p->data;
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor