[nautilus] [ln-p] port nautilus-icon-dnd to cairo drawing
- From: Cosimo Cecchi <cosimoc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] [ln-p] port nautilus-icon-dnd to cairo drawing
- Date: Fri, 13 Aug 2010 17:00:36 +0000 (UTC)
commit 34a376c97717cb05187b3d880e991c2d23511109
Author: Benjamin Otte <otte redhat com>
Date: Fri Aug 13 18:08:58 2010 +0200
[ln-p] port nautilus-icon-dnd to cairo drawing
libnautilus-private/nautilus-icon-dnd.c | 44 ++++++------------------------
libnautilus-private/nautilus-icon-dnd.h | 8 +-----
2 files changed, 10 insertions(+), 42 deletions(-)
---
diff --git a/libnautilus-private/nautilus-icon-dnd.c b/libnautilus-private/nautilus-icon-dnd.c
index 7695c86..84d96e3 100644
--- a/libnautilus-private/nautilus-icon-dnd.c
+++ b/libnautilus-private/nautilus-icon-dnd.c
@@ -93,7 +93,6 @@ create_selection_shadow (NautilusIconContainer *container,
{
EelCanvasGroup *group;
EelCanvas *canvas;
- GdkBitmap *stipple;
int max_x, max_y;
int min_x, min_y;
GList *p;
@@ -108,9 +107,6 @@ create_selection_shadow (NautilusIconContainer *container,
return NULL;
}
- stipple = container->details->dnd_info->stipple;
- g_return_val_if_fail (stipple != NULL, NULL);
-
canvas = EEL_CANVAS (container);
gtk_widget_get_allocation (GTK_WIDGET (container), &allocation);
@@ -155,7 +151,6 @@ create_selection_shadow (NautilusIconContainer *container,
"x2", (double) x2,
"y2", (double) y2,
"outline_color", "black",
- "outline_stipple", stipple,
"width_pixels", 1,
NULL);
}
@@ -1477,6 +1472,7 @@ drag_highlight_expose (GtkWidget *widget,
{
gint x, y, width, height;
GdkWindow *window;
+ cairo_t *cr;
x = gtk_adjustment_get_value (gtk_layout_get_hadjustment (GTK_LAYOUT (widget)));
y = gtk_adjustment_get_value (gtk_layout_get_vadjustment (GTK_LAYOUT (widget)));
@@ -1489,11 +1485,13 @@ drag_highlight_expose (GtkWidget *widget,
NULL, widget, "dnd",
x, y, width, height);
- gdk_draw_rectangle (window,
- (gtk_widget_get_style(widget))->black_gc,
- FALSE,
- x, y, width - 1, height - 1);
-
+ cr = gdk_cairo_create (window);
+ cairo_set_line_width (cr, 1.0);
+ cairo_set_source_rgb (cr, 0, 0, 0);
+ cairo_rectangle (cr, x + 0.5, y + 0.5, width - 1, height - 1);
+ cairo_stroke (cr);
+ cairo_destroy (cr);
+
return FALSE;
}
@@ -1798,23 +1796,7 @@ drag_data_received_callback (GtkWidget *widget,
}
void
-nautilus_icon_dnd_set_stipple (NautilusIconContainer *container,
- GdkBitmap *stipple)
-{
- if (stipple != NULL) {
- g_object_ref (stipple);
- }
-
- if (container->details->dnd_info->stipple != NULL) {
- g_object_unref (container->details->dnd_info->stipple);
- }
-
- container->details->dnd_info->stipple = stipple;
-}
-
-void
-nautilus_icon_dnd_init (NautilusIconContainer *container,
- GdkBitmap *stipple)
+nautilus_icon_dnd_init (NautilusIconContainer *container)
{
GtkTargetList *targets;
int n_elements;
@@ -1862,10 +1844,6 @@ nautilus_icon_dnd_init (NautilusIconContainer *container,
G_CALLBACK (drag_drop_callback), NULL);
g_signal_connect (container, "drag_leave",
G_CALLBACK (drag_leave_callback), NULL);
-
- if (stipple != NULL) {
- container->details->dnd_info->stipple = g_object_ref (stipple);
- }
}
void
@@ -1876,10 +1854,6 @@ nautilus_icon_dnd_fini (NautilusIconContainer *container)
if (container->details->dnd_info != NULL) {
stop_auto_scroll (container);
- if (container->details->dnd_info->stipple != NULL) {
- g_object_unref (container->details->dnd_info->stipple);
- }
-
nautilus_drag_finalize (&container->details->dnd_info->drag_info);
container->details->dnd_info = NULL;
}
diff --git a/libnautilus-private/nautilus-icon-dnd.h b/libnautilus-private/nautilus-icon-dnd.h
index 72c8616..4a1fde1 100644
--- a/libnautilus-private/nautilus-icon-dnd.h
+++ b/libnautilus-private/nautilus-icon-dnd.h
@@ -38,19 +38,13 @@ typedef struct {
gboolean highlighted;
- /* Stipple for drawing icon shadows during DnD. */
- GdkBitmap *stipple;
-
/* Shadow for the icons being dragged. */
EelCanvasItem *shadow;
} NautilusIconDndInfo;
-void nautilus_icon_dnd_init (NautilusIconContainer *container,
- GdkBitmap *stipple);
+void nautilus_icon_dnd_init (NautilusIconContainer *container);
void nautilus_icon_dnd_fini (NautilusIconContainer *container);
-void nautilus_icon_dnd_set_stipple (NautilusIconContainer *container,
- GdkBitmap *stipple);
void nautilus_icon_dnd_begin_drag (NautilusIconContainer *container,
GdkDragAction actions,
gint button,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]