[gimp] app: port to GtkWidget::draw()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: port to GtkWidget::draw()
- Date: Sun, 20 May 2018 19:14:40 +0000 (UTC)
commit 3b784075f327e85f848eb827e6f191e9c87fd5e3
Author: Michael Natterer <mitch gimp org>
Date: Thu Oct 21 13:36:45 2010 +0200
app: port to GtkWidget::draw()
app/widgets/gimpscalebutton.c | 30 +++++++++---------------------
1 files changed, 9 insertions(+), 21 deletions(-)
---
diff --git a/app/widgets/gimpscalebutton.c b/app/widgets/gimpscalebutton.c
index e19f6c9..7c5ae3e 100644
--- a/app/widgets/gimpscalebutton.c
+++ b/app/widgets/gimpscalebutton.c
@@ -30,8 +30,8 @@
static void gimp_scale_button_value_changed (GtkScaleButton *button,
gdouble value);
static void gimp_scale_button_update_tooltip (GimpScaleButton *button);
-static gboolean gimp_scale_button_image_expose (GtkWidget *widget,
- GdkEventExpose *event,
+static gboolean gimp_scale_button_image_draw (GtkWidget *widget,
+ cairo_t *cr,
GimpScaleButton *button);
@@ -62,8 +62,8 @@ gimp_scale_button_init (GimpScaleButton *button)
gtk_widget_hide (plusminus);
gtk_widget_set_no_show_all (plusminus, TRUE);
- g_signal_connect (image, "expose-event",
- G_CALLBACK (gimp_scale_button_image_expose),
+ g_signal_connect (image, "draw",
+ G_CALLBACK (gimp_scale_button_image_draw),
button);
/* GtkScaleButton doesn't emit "value-changed" when the adjustment changes */
@@ -110,14 +110,13 @@ gimp_scale_button_update_tooltip (GimpScaleButton *button)
}
static gboolean
-gimp_scale_button_image_expose (GtkWidget *widget,
- GdkEventExpose *event,
- GimpScaleButton *button)
+gimp_scale_button_image_draw (GtkWidget *widget,
+ cairo_t *cr,
+ GimpScaleButton *button)
{
GtkStyle *style = gtk_widget_get_style (widget);
GtkAllocation allocation;
GtkAdjustment *adj;
- cairo_t *cr;
gint value;
gint steps;
gint i;
@@ -136,25 +135,16 @@ gimp_scale_button_image_expose (GtkWidget *widget,
(gtk_adjustment_get_upper (adj) -
gtk_adjustment_get_lower (adj)));
- cr = gdk_cairo_create (gtk_widget_get_window (widget));
-
- gdk_cairo_rectangle (cr, &event->area);
- cairo_clip (cr);
-
cairo_set_line_width (cr, 0.5);
if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
{
- cairo_translate (cr,
- allocation.x + allocation.width - 0.5,
- allocation.y + allocation.height);
+ cairo_translate (cr, allocation.width - 0.5, allocation.height);
cairo_scale (cr, -2.0, -2.0);
}
else
{
- cairo_translate (cr,
- allocation.x + 0.5,
- allocation.y + allocation.height);
+ cairo_translate (cr, 0.5, allocation.height);
cairo_scale (cr, 2.0, -2.0);
}
@@ -176,8 +166,6 @@ gimp_scale_button_image_expose (GtkWidget *widget,
gdk_cairo_set_source_color (cr, &style->fg[GTK_STATE_INSENSITIVE]);
cairo_stroke (cr);
- cairo_destroy (cr);
-
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]