summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorJohn Smith <john.smith7545@yahoo.com>2012-04-23 05:34:26 +0000
committerJohn Smith <removethis.john.q.public@bigmail.com>2012-04-23 05:34:26 +0000
commitdb628a4876731706c3b814b9f16321424431b0be (patch)
tree67fa6bbb3472c9e21f3ba89a1c58dbe5916727e6 /src/widgets
parentpdf import. modify criterion for applying scaling to gradientTransform (Bug 9... (diff)
downloadinkscape-db628a4876731706c3b814b9f16321424431b0be.tar.gz
inkscape-db628a4876731706c3b814b9f16321424431b0be.zip
Fix for 943207 : Replace deprecated gdk_draw_rgb_image with cairo drawing in sp-color-slider
(bzr r11284)
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/sp-color-slider.cpp58
1 files changed, 37 insertions, 21 deletions
diff --git a/src/widgets/sp-color-slider.cpp b/src/widgets/sp-color-slider.cpp
index b5b90f951..3b690afc9 100644
--- a/src/widgets/sp-color-slider.cpp
+++ b/src/widgets/sp-color-slider.cpp
@@ -544,12 +544,18 @@ sp_color_slider_paint (SPColorSlider *slider, GdkRectangle *area)
b = sp_color_slider_render_map (cpaint.x - carea.x, cpaint.y - carea.y, cpaint.width, cpaint.height,
slider->map, s, d,
slider->b0, slider->b1, slider->bmask);
- if (b != NULL) {
- gdk_draw_rgb_image(window, style->black_gc,
- cpaint.x, cpaint.y,
- cpaint.width, cpaint.height,
- GDK_RGB_DITHER_MAX,
- (guchar *) b, cpaint.width * 3);
+ if (b != NULL && cpaint.width > 0) {
+
+ GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB,
+ 0, 8, cpaint.width, cpaint.height, cpaint.width * 3, NULL, NULL);
+
+ cairo_t *ct = gdk_cairo_create(window);
+ gdk_cairo_set_source_pixbuf (ct, pb, cpaint.x, cpaint.y);
+ cairo_paint(ct);
+ cairo_destroy(ct);
+
+ g_object_unref(pb);
+
}
} else {
@@ -569,13 +575,18 @@ sp_color_slider_paint (SPColorSlider *slider, GdkRectangle *area)
c, dc,
slider->b0, slider->b1, slider->bmask);
- /* Draw pixelstore */
- if (b != NULL) {
- gdk_draw_rgb_image(window, style->black_gc,
- cpaint.x, cpaint.y,
- wi, cpaint.height,
- GDK_RGB_DITHER_MAX,
- (guchar *) b, wi * 3);
+ /* Draw pixelstore 1 */
+ if (b != NULL && wi > 0) {
+
+ GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB,
+ 0, 8, wi, cpaint.height, wi * 3, NULL, NULL);
+
+ cairo_t *ct = gdk_cairo_create(window);
+ gdk_cairo_set_source_pixbuf (ct, pb, cpaint.x, cpaint.y);
+ cairo_paint(ct);
+ cairo_destroy(ct);
+
+ g_object_unref(pb);
}
}
@@ -592,19 +603,24 @@ sp_color_slider_paint (SPColorSlider *slider, GdkRectangle *area)
c, dc,
slider->b0, slider->b1, slider->bmask);
- /* Draw pixelstore */
- if (b != NULL) {
- gdk_draw_rgb_image(window, style->black_gc,
- MAX(cpaint.x, carea.width/2 + carea.x), cpaint.y,
- wi, cpaint.height,
- GDK_RGB_DITHER_MAX,
- (guchar *) b, wi * 3);
+ /* Draw pixelstore 2 */
+ if (b != NULL && wi > 0) {
+
+ GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB,
+ 0, 8, wi, cpaint.height, wi * 3, NULL, NULL);
+
+ cairo_t *ct = gdk_cairo_create(window);
+ gdk_cairo_set_source_pixbuf (ct, pb, MAX(cpaint.x, carea.width/2 + carea.x), cpaint.y);
+ cairo_paint(ct);
+ cairo_destroy(ct);
+
+ g_object_unref(pb);
}
}
}
}
- /* Draw shadow */
+ /* Draw shadow */
if (!colorsOnTop) {
gtk_paint_shadow( style, window,
gtk_widget_get_state(widget), GTK_SHADOW_IN,