static void gtk_switch_pan_gesture_drag_end (GtkGestureDrag *gesture, gdouble x, gdouble y, GtkSwitch *sw) { GtkSwitchPrivate *priv = sw->priv; GdkEventSequence *sequence; GtkAllocation allocation; gboolean active; sequence = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); if (gtk_gesture_get_sequence_state (GTK_GESTURE (gesture), sequence) == GTK_EVENT_SEQUENCE_CLAIMED) { gtk_widget_get_allocation (GTK_WIDGET (sw), &allocation); /* if half the handle passed the middle of the switch, then we * consider it to be on */ active = priv->handle_pos >= 0.5; } else if (!gtk_gesture_handles_sequence (priv->multipress_gesture, sequence)) active = priv->is_active; else return; priv->handle_pos = active ? 1.0 : 0.0; gtk_switch_set_active (sw, active); gtk_widget_queue_allocate (GTK_WIDGET (sw)); }
static void photos_preview_nav_buttons_multi_press_end (PhotosPreviewNavButtons *self, GdkEventSequence *sequence) { GtkEventSequenceState state; state = gtk_gesture_get_sequence_state (self->tap_gesture, sequence); if (state == GTK_EVENT_SEQUENCE_DENIED) return; gtk_gesture_set_state (GTK_GESTURE (self->tap_gesture), GTK_EVENT_SEQUENCE_CLAIMED); self->visible_internal = !self->visible_internal; photos_preview_nav_buttons_unqueue_auto_hide (self); photos_preview_nav_buttons_update_visibility (self); }
static void gtk_gesture_multi_press_end (GtkGesture *gesture, GdkEventSequence *sequence) { GtkGestureMultiPress *multi_press; GtkGestureMultiPressPrivate *priv; GdkEventSequence *current; gdouble x, y; gboolean interpreted; GtkEventSequenceState state; multi_press = GTK_GESTURE_MULTI_PRESS (gesture); priv = gtk_gesture_multi_press_get_instance_private (multi_press); current = gtk_gesture_single_get_current_sequence (GTK_GESTURE_SINGLE (gesture)); interpreted = gtk_gesture_get_point (gesture, current, &x, &y); state = gtk_gesture_get_sequence_state (gesture, current); if (state != GTK_EVENT_SEQUENCE_DENIED && interpreted) g_signal_emit (gesture, signals[RELEASED], 0, priv->n_release, x, y); priv->n_release = 0; }