Re: leave_notify after click

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Wilms. The following C program works as expected:
#include <gtk/gtk.h>
intmain (int argc, char *argv[]){  GtkWidget *window, *darea;
  gtk_init (&argc, &argv);
  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);  g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
  darea = gtk_drawing_area_new ();  gtk_container_add (GTK_CONTAINER (window), darea);
  gtk_widget_set_events (darea, GDK_ENTER_NOTIFY_MASK |GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK |GDK_BUTTON_RELEASE_MASK);  g_signal_connect_swapped (G_OBJECT (darea), "enter_notify_event",G_CALLBACK (g_print), "enter_notify_event\n");  g_signal_connect_swapped (G_OBJECT (darea), "leave_notify_event",G_CALLBACK (g_print), "leave_notify_event\n");  g_signal_connect_swapped (G_OBJECT (darea), "button_press_event",G_CALLBACK (g_print), "button_press_event\n");  g_signal_connect_swapped (G_OBJECT (darea), "button_release_event",G_CALLBACK (g_print), "button_release_event\n");
  gtk_widget_show_all (window);
  gtk_main();  return 0;}
Button click on the drawing area propagates only two events (buttonpress and release). I am using GTK+ 2.12.9. Please try it and tell usyour results.
On Mon, 2008-04-07 at 21:59 +0200, Thorsten Wilms wrote:> Hi!> > I'm trying to write a custom widget using PyGTK and stumbled over a> strange issue: Clicking a drawingarea triggers leave_notify and> enter_notify (before button press and release can happen). That is,here> on Ubuntu with GTK+/PyGTK 2.12.0, but not on someone else's systemwith> 2.12.5/2.12.1.> > I've been told it's not an PyGTK issue.> > Which one is the desired behaviour? I hope it's to not trigger leaveby> clicking, as I need a way to check if the mouse cursor just moved onto> the widget or not.> > My stripped down test code:> -----> #!/usr/bin/env python> > import pygtk> pygtk.require('2.0')> import gtk> from gtk import gdk> import gobject> > # Create new widget, inherit from gtk.DrawingArea> class PopupScroller(gtk.DrawingArea):> >       def __init__(self):>               super(PopupScroller, self).__init__()>               >               # gtk.Widget signals>               self.connect("enter_notify_event", self.enter_notify)>               self.connect("leave_notify_event", self.leave_notify)>               >               # unmask events>               self.add_events(gtk.gdk.ENTER_NOTIFY_MASK |gtk.gdk.LEAVE_NOTIFY_MASK)>                               >       def enter_notify(self, widget, event):>               print "enter">               #self.queue_draw()>       >       def leave_notify(self, widget, event):>               print "leave">               #self.queue_draw()>                                                                        > def main():>       window = gtk.Window()>       scroller = PopupScroller()> >       window.add(scroller)>       scroller.set_size_request(100, 200)>       >       # Connect       >       window.connect("destroy", gtk.main_quit)>       #scroller.connect(signal, signal_cb)> >       window.show_all()>     >       gtk.main()>    > if __name__ == "__main__":>     main()> > > 
_______________________________________________gtk-list mailing listgtk-list@xxxxxxxxxxxxx://mail.gnome.org/mailman/listinfo/gtk-list

[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux