summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2002-12-12 15:17:42 +0000
committerAlexander Larsson <alexl@src.gnome.org>2002-12-12 15:17:42 +0000
commitd6af09b81dcfdbbc1ca682730ac0875fbb4a8c08 (patch)
tree666e3a78443e54ab7a8d7dd578b2542492a6822a
parent5f0edb842ac7e833dc643763b94cf5f90b0bab3b (diff)
downloadnautilus-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--ChangeLog6
-rw-r--r--libnautilus-private/nautilus-icon-canvas-item.c27
-rw-r--r--libnautilus-private/nautilus-icon-container.c11
3 files changed, 27 insertions, 17 deletions
diff --git a/ChangeLog b/ChangeLog
index 548de7f10..d4e5437ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);