Event Structures A common mistake is to forget to set the event mask of a widget so that the required events are received. See gtk_widget_set_events(). Contains the fields which are common to all event structs. Any event can safely be cast to a #GdkEventAny to access these fields. @type: the type of the event. @window: the window which received the event. @send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent). @type: @window: @send_event: @area: @count: @type: @window: @send_event: @type: @window: @send_event: @state: @GDK_VISIBILITY_UNOBSCURED: @GDK_VISIBILITY_PARTIAL: @GDK_VISIBILITY_FULLY_OBSCURED: @type: @window: @send_event: @time: @x: @y: @pressure: @xtilt: @ytilt: @state: @is_hint: @source: @deviceid: @x_root: @y_root: Used for button press and button release events. The type field will be one of %GDK_BUTTON_PRESS, %GDK_2BUTTON_PRESS, %GDK_3BUTTON_PRESS, and %GDK_BUTTON_RELEASE. Double and treble-clicks result in a sequence of events being received. For double-clicks the order of events will be: %GDK_BUTTON_PRESS %GDK_BUTTON_RELEASE %GDK_BUTTON_PRESS %GDK_2BUTTON_PRESS %GDK_BUTTON_RELEASE Note that the first click is received just like a normal button press, while the second click results in a %GDK_2BUTTON_PRESS being received just after the %GDK_BUTTON_PRESS. Treble-clicks are very similar to double-clicks, except that %GDK_3BUTTON_PRESS is inserted after the third click. The order of the events is: %GDK_BUTTON_PRESS %GDK_BUTTON_RELEASE %GDK_BUTTON_PRESS %GDK_2BUTTON_PRESS %GDK_BUTTON_RELEASE %GDK_BUTTON_PRESS %GDK_3BUTTON_PRESS %GDK_BUTTON_RELEASE @type: the type of the event. @window: the window which received the event. @send_event: TRUE if the event was sent explicitly (e.g. using XSendEvent). @time: the time of the event in milliseconds. This wraps around roughly every 50 days. @x: the x coordinate of the mouse relative to the window. @y: the y coordinate of the mouse relative to the window. @pressure: the pressure of the button press, intended for input devices such as graphics tablets. It defaults to 0.5. @xtilt: @ytilt: @state: @button: @source: @deviceid: @x_root: the x coordinate of the mouse relative to the root of the screen. @y_root: the y coordinate of the mouse relative to the root of the screen. @type: @window: @send_event: @time: @state: @keyval: @length: @string: @type: @window: @send_event: @subwindow: @time: @x: @y: @x_root: @y_root: @mode: @detail: @focus: @state: @GDK_CROSSING_NORMAL: @GDK_CROSSING_GRAB: @GDK_CROSSING_UNGRAB: @GDK_NOTIFY_ANCESTOR: @GDK_NOTIFY_VIRTUAL: @GDK_NOTIFY_INFERIOR: @GDK_NOTIFY_NONLINEAR: @GDK_NOTIFY_NONLINEAR_VIRTUAL: @GDK_NOTIFY_UNKNOWN: @type: @window: @send_event: @in: @type: @window: @send_event: @x: @y: @width: @height: @type: @window: @send_event: @atom: @time: @state: @type: @window: @send_event: @selection: @target: @property: @requestor: @time: @type: @window: @send_event: @time: @source: @deviceid: @type: @window: @send_event: @message_type: @data_format: @type: @window: @send_event: @context: @time: @x_root: @y_root: