Hello everyone,

I am trying to catch the gtk "rotate" and "zoom" gestures. I wrote a small
program just to test how they work in gtk. However both callback functions
for "zoom" and "rotate" gesture are getting called even if I make only one
type of gesture, but this shouldn't be correct, Could anyone please explain
me what am I missing here ?
Thank you very much

#include <gtk/gtk.h>
static void
zoom_gesture_update(GtkGestureZoom* gesture,GdkEventSequence
*sequence,GtkWidget* window)
{
    static int i=1;
    g_print("\nzoom gesture update %d",i);
    i++;
}
static void
rotate_gesture_update(GtkGestureRotate* gesture, GdkEventSequence
*sequence, GtkWidget* window)
{
    static int i=1;
    g_print("\nrotate_gesture_update %d",i);
    ++i;
}
int
main (int    argc,
      char **argv)
{

  GtkWidget *window;
  gtk_init(&argc,&argv);
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  gtk_window_set_title (GTK_WINDOW (window), "Window");
  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
  GtkGesture* gesture_zoom = gtk_gesture_zoom_new(window);

  gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER
(gesture_zoom), GTK_PHASE_BUBBLE);

g_signal_connect(gesture_zoom,"update",G_CALLBACK(zoom_gesture_update),window);

  GtkGesture* gesture_rotate = gtk_gesture_rotate_new(window);

  gtk_event_controller_set_propagation_phase (GTK_EVENT_CONTROLLER
(gesture_rotate), GTK_PHASE_BUBBLE);

g_signal_connect(gesture_rotate,"update",G_CALLBACK(rotate_gesture_update),window);

  gtk_widget_show_all (window);

  gtk_main();
}
_______________________________________________
gtk-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to