[gtk+/rendering-cleanup: 16/95] colorsel: Use gdk_pixbuf_get_from_drawable()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/rendering-cleanup: 16/95] colorsel: Use gdk_pixbuf_get_from_drawable()
- Date: Sun, 8 Aug 2010 02:15:47 +0000 (UTC)
commit 74e6de261502f5949bf2bab368da4d5941c73602
Author: Benjamin Otte <otte redhat com>
Date: Tue Jul 13 22:12:50 2010 +0200
colorsel: Use gdk_pixbuf_get_from_drawable()
Instead of fiddling with GdkImage directly.
gtk/gtkcolorsel.c | 28 +++++++++++++++++-----------
1 files changed, 17 insertions(+), 11 deletions(-)
---
diff --git a/gtk/gtkcolorsel.c b/gtk/gtkcolorsel.c
index 96382fa..9b60495 100644
--- a/gtk/gtkcolorsel.c
+++ b/gtk/gtkcolorsel.c
@@ -1637,33 +1637,39 @@ grab_color_at_pointer (GdkScreen *screen,
gint y_root,
gpointer data)
{
- GdkImage *image;
- guint32 pixel;
+ GdkPixbuf *pixbuf;
+ guchar *pixels;
GtkColorSelection *colorsel = data;
ColorSelectionPrivate *priv;
GdkColor color;
- GdkColormap *colormap = gdk_screen_get_system_colormap (screen);
GdkWindow *root_window = gdk_screen_get_root_window (screen);
priv = colorsel->private_data;
- image = gdk_drawable_get_image (root_window, x_root, y_root, 1, 1);
- if (!image)
+ pixbuf = gdk_pixbuf_get_from_drawable (NULL, root_window, NULL,
+ x_root, y_root,
+ 0, 0,
+ 1, 1);
+ if (!pixbuf)
{
gint x, y;
GdkDisplay *display = gdk_screen_get_display (screen);
GdkWindow *window = gdk_display_get_window_at_device_position (display, device, &x, &y);
if (!window)
return;
- image = gdk_drawable_get_image (window, x, y, 1, 1);
- if (!image)
+ pixbuf = gdk_pixbuf_get_from_drawable (NULL, window, NULL,
+ x, y,
+ 0, 0,
+ 1, 1);
+ if (!pixbuf)
return;
}
- pixel = gdk_image_get_pixel (image, 0, 0);
- g_object_unref (image);
+ pixels = gdk_pixbuf_get_pixels (pixbuf);
+ color.red = pixels[0] * 0x101;
+ color.green = pixels[1] * 0x101;
+ color.blue = pixels[2] * 0x101;
+ g_object_unref (pixbuf);
- gdk_colormap_query_color (colormap, pixel, &color);
-
priv->color[COLORSEL_RED] = SCALE (color.red);
priv->color[COLORSEL_GREEN] = SCALE (color.green);
priv->color[COLORSEL_BLUE] = SCALE (color.blue);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]