[gtk+] testinput: Make this work again
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] testinput: Make this work again
- Date: Tue, 2 Jan 2018 23:16:18 +0000 (UTC)
commit 48bfc9badf066f810b80bf3158ed13ad80275fbb
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Jan 1 17:56:35 2018 -0500
testinput: Make this work again
This test was not updated to using a draw func instead
of the ::draw signal yet. At the same time, make it use
::size-allocate instead of ::configure-event.
tests/testinput.c | 55 ++++++++++++++++++++++++++++------------------------
1 files changed, 30 insertions(+), 25 deletions(-)
---
diff --git a/tests/testinput.c b/tests/testinput.c
index 20358f8..5143b11 100644
--- a/tests/testinput.c
+++ b/tests/testinput.c
@@ -32,39 +32,46 @@
static cairo_surface_t *surface = NULL;
/* Create a new backing surface of the appropriate size */
-static gint
-configure_event (GtkWidget *widget, GdkEventConfigure *event)
+static void
+size_allocate (GtkWidget *widget,
+ GtkAllocation *allocation,
+ int baseline,
+ GdkRectangle *clip,
+ gpointer data)
{
- GtkAllocation allocation;
- cairo_t *cr;
-
if (surface)
- cairo_surface_destroy (surface);
-
- gtk_widget_get_allocation (widget, &allocation);
+ {
+ cairo_surface_destroy (surface);
+ surface = NULL;
+ }
- surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget),
- CAIRO_CONTENT_COLOR,
- allocation.width,
- allocation.height);
- cr = cairo_create (surface);
+ if (gtk_widget_get_window (widget))
+ {
+ cairo_t *cr;
- cairo_set_source_rgb (cr, 1, 1, 1);
- cairo_paint (cr);
+ surface = gdk_window_create_similar_surface (gtk_widget_get_window (widget),
+ CAIRO_CONTENT_COLOR,
+ gtk_widget_get_width (widget),
+ gtk_widget_get_height (widget));
+ cr = cairo_create (surface);
- cairo_destroy (cr);
+ cairo_set_source_rgb (cr, 1, 1, 1);
+ cairo_paint (cr);
- return TRUE;
+ cairo_destroy (cr);
+ }
}
/* Refill the screen from the backing surface */
-static gboolean
-draw (GtkWidget *widget, cairo_t *cr)
+static void
+draw (GtkDrawingArea *drawing_area,
+ cairo_t *cr,
+ int width,
+ int height,
+ gpointer data)
{
cairo_set_source_surface (cr, surface, 0, 0);
cairo_paint (cr);
-
- return FALSE;
}
/* Draw a rectangle on the screen, size depending on pressure,
@@ -280,10 +287,8 @@ main (int argc, char *argv[])
/* Signals used to handle backing surface */
- g_signal_connect (drawing_area, "draw",
- G_CALLBACK (draw), NULL);
- g_signal_connect (drawing_area, "configure_event",
- G_CALLBACK (configure_event), NULL);
+ gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (drawing_area), draw, NULL, NULL);
+ g_signal_connect (drawing_area, "size-allocate", G_CALLBACK (size_allocate), NULL);
/* Event signals */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]