summaryrefslogtreecommitdiff
path: root/src/caja-property-browser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/caja-property-browser.c')
-rw-r--r--src/caja-property-browser.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/src/caja-property-browser.c b/src/caja-property-browser.c
index 3351421e..8930cdcf 100644
--- a/src/caja-property-browser.c
+++ b/src/caja-property-browser.c
@@ -29,6 +29,7 @@
*/
#include <config.h>
+#include <limits.h>
#include <math.h>
#include <libxml/parser.h>
@@ -615,18 +616,18 @@ caja_property_browser_drag_data_get (GtkWidget *widget,
else if (strcmp (property_browser->details->drag_type,
"application/x-color") == 0)
{
- GdkColor color;
- guint16 colorArray[4];
-
/* handle the "reset" case as an image */
if (g_strcmp0 (property_browser->details->dragged_file, RESET_IMAGE_NAME) != 0)
{
- gdk_color_parse (property_browser->details->dragged_file, &color);
+ GdkRGBA color;
+ guint16 colorArray [4];
+
+ gdk_rgba_parse (&color, property_browser->details->dragged_file);
- colorArray[0] = color.red;
- colorArray[1] = color.green;
- colorArray[2] = color.blue;
- colorArray[3] = 0xffff;
+ colorArray [0] = (guint16) (color.red * 65535.0);
+ colorArray [1] = (guint16) (color.green * 65535.0);
+ colorArray [2] = (guint16) (color.blue * 65535.0);
+ colorArray [3] = USHRT_MAX;
gtk_selection_data_set(selection_data,
target, 16, (const char *) &colorArray[0], 8);
@@ -803,15 +804,16 @@ make_color_drag_image (CajaPropertyBrowser *property_browser, const char *color_
GdkPixbuf *color_square;
GdkPixbuf *ret;
int row, col, stride;
- char *pixels;
- GdkColor color;
+ guchar *pixels;
+ GdkRGBA color;
+ guchar red, green, blue;
color_square = gdk_pixbuf_new (GDK_COLORSPACE_RGB, TRUE, 8, COLOR_SQUARE_SIZE, COLOR_SQUARE_SIZE);
- gdk_color_parse (color_spec, &color);
- color.red >>= 8;
- color.green >>= 8;
- color.blue >>= 8;
+ gdk_rgba_parse (&color, color_spec);
+ red = (guchar) (color.red * 255.0);
+ green = (guchar) (color.green * 255.0);
+ blue = (guchar) (color.blue * 255.0);
pixels = gdk_pixbuf_get_pixels (color_square);
stride = gdk_pixbuf_get_rowstride (color_square);
@@ -819,16 +821,16 @@ make_color_drag_image (CajaPropertyBrowser *property_browser, const char *color_
/* loop through and set each pixel */
for (row = 0; row < COLOR_SQUARE_SIZE; row++)
{
- char *row_pixels;
+ guchar *row_pixels;
row_pixels = (pixels + (row * stride));
for (col = 0; col < COLOR_SQUARE_SIZE; col++)
{
- *row_pixels++ = color.red;
- *row_pixels++ = color.green;
- *row_pixels++ = color.blue;
- *row_pixels++ = 255;
+ *row_pixels++ = red;
+ *row_pixels++ = green;
+ *row_pixels++ = blue;
+ *row_pixels++ = UCHAR_MAX;
}
}