diff options
author | Alexander Larsson <alexl@redhat.com> | 2002-12-12 15:17:42 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@src.gnome.org> | 2002-12-12 15:17:42 +0000 |
commit | d6af09b81dcfdbbc1ca682730ac0875fbb4a8c08 (patch) | |
tree | 666e3a78443e54ab7a8d7dd578b2542492a6822a | |
parent | 5f0edb842ac7e833dc643763b94cf5f90b0bab3b (diff) | |
download | nautilus-d6af09b81dcfdbbc1ca682730ac0875fbb4a8c08.tar.gz |
Correctly do w2c transformations. Fixes struts.
2002-12-12 Alexander Larsson <alexl@redhat.com>
* libnautilus-private/nautilus-icon-container.c:
* libnautilus-private/nautilus-icon-canvas-item.c:
Correctly do w2c transformations. Fixes struts.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | libnautilus-private/nautilus-icon-canvas-item.c | 27 | ||||
-rw-r--r-- | libnautilus-private/nautilus-icon-container.c | 11 |
3 files changed, 27 insertions, 17 deletions
@@ -1,5 +1,11 @@ 2002-12-12 Alexander Larsson <alexl@redhat.com> + * libnautilus-private/nautilus-icon-container.c: + * libnautilus-private/nautilus-icon-canvas-item.c: + Correctly do w2c transformations. Fixes struts. + +2002-12-12 Alexander Larsson <alexl@redhat.com> + * data/preferences.desktop.in: * data/serverconfig.desktop.in: * data/serverconfig.directory.in: diff --git a/libnautilus-private/nautilus-icon-canvas-item.c b/libnautilus-private/nautilus-icon-canvas-item.c index 6e29a2a7a..d49f4c66b 100644 --- a/libnautilus-private/nautilus-icon-canvas-item.c +++ b/libnautilus-private/nautilus-icon-canvas-item.c @@ -483,8 +483,6 @@ static void recompute_bounding_box (NautilusIconCanvasItem *icon_item, double i2w_dx, double i2w_dy) { - double pixels_per_unit; - /* The bounds stored in the item is the same as what get_bounds * returns, except it's in canvas coordinates instead of the item's * parent's coordinates. @@ -499,11 +497,16 @@ recompute_bounding_box (NautilusIconCanvasItem *icon_item, &top_left.x, &top_left.y, &bottom_right.x, &bottom_right.y); - pixels_per_unit = item->canvas->pixels_per_unit; - item->x1 = (top_left.x + i2w_dx) * pixels_per_unit; - item->y1 = (top_left.y + i2w_dy) * pixels_per_unit; - item->x2 = (bottom_right.x + i2w_dx) * pixels_per_unit; - item->y2 = (bottom_right.y + i2w_dy) * pixels_per_unit; + top_left.x += i2w_dx; + top_left.y += i2w_dy; + bottom_right.x += i2w_dx; + bottom_right.y += i2w_dy; + eel_canvas_w2c_d (item->canvas, + top_left.x, top_left.y, + &item->x1, &item->y1); + eel_canvas_w2c_d (item->canvas, + bottom_right.x, bottom_right.y, + &item->x2, &item->y2); } static ArtIRect @@ -1656,16 +1659,16 @@ get_icon_canvas_rectangle (NautilusIconCanvasItem *item, ArtIRect *rect) { GdkPixbuf *pixbuf; - double pixels_per_unit; g_return_if_fail (NAUTILUS_IS_ICON_CANVAS_ITEM (item)); g_return_if_fail (rect != NULL); - pixels_per_unit = EEL_CANVAS_ITEM (item)->canvas->pixels_per_unit; + eel_canvas_w2c (EEL_CANVAS_ITEM (item)->canvas, + item->details->x, + item->details->y, + &rect->x0, + &rect->y0); - rect->x0 = floor (item->details->x * pixels_per_unit); - rect->y0 = floor (item->details->y * pixels_per_unit); - pixbuf = item->details->pixbuf; rect->x1 = rect->x0 + (pixbuf == NULL ? 0 : gdk_pixbuf_get_width (pixbuf)); diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c index 020b56085..f5e0c7fba 100644 --- a/libnautilus-private/nautilus-icon-container.c +++ b/libnautilus-private/nautilus-icon-container.c @@ -4981,8 +4981,7 @@ nautilus_icon_container_start_renaming_selected_item (NautilusIconContainer *con NautilusIcon *icon; ArtDRect icon_rect; const char *editable_text; - double pixels_per_unit; - int x, width; + int x, y, width; /* Check if it already in renaming mode. */ details = container->details; @@ -5035,12 +5034,14 @@ nautilus_icon_container_start_renaming_selected_item (NautilusIconContainer *con width = nautilus_icon_canvas_item_get_max_text_width (icon->item); - pixels_per_unit = EEL_CANVAS_ITEM (icon->item)->canvas->pixels_per_unit; - x = eel_round((icon_rect.x0 + icon_rect.x1) * pixels_per_unit / 2) - width / 2; + eel_canvas_w2c (EEL_CANVAS_ITEM (icon->item)->canvas, + (icon_rect.x0 + icon_rect.x1) / 2, + icon_rect.y1, + &x, &y); gtk_layout_move (GTK_LAYOUT (container), details->rename_widget, - x, eel_round (icon_rect.y1 * pixels_per_unit)); + x - width/2, y); gtk_widget_set_size_request (details->rename_widget, width, -1); gtk_widget_show (details->rename_widget); |