static gint gtk_my_draw_widget_button_updown (GtkWidget *widget, GdkEventButton *event) { GtkMyDrawWidget * mdw; g_return_val_if_fail (widget != NULL, FALSE); g_return_val_if_fail (GTK_IS_MY_DRAW_WIDGET (widget), FALSE); mdw = GTK_MY_DRAW_WIDGET (widget); double pressure; if (!gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure)) { pressure = (event->state & GDK_BUTTON1_MASK) ? 0.5 : 0; } if (event->state & GDK_BUTTON1_MASK) gtk_my_draw_widget_process_motion_or_button (widget, event->time, event->x, event->y, 0); gtk_my_draw_widget_process_motion_or_button (widget, event->time, event->x, event->y, pressure); if ((event->state & GDK_BUTTON1_MASK) == 0) gtk_my_draw_widget_process_motion_or_button (widget, event->time, event->x, event->y, 0); return TRUE; }