summaryrefslogtreecommitdiff
path: root/gtk/gtkeventcontrollerprivate.h
Commit message (Collapse)AuthorAgeFilesLines
* gtk: Bubble drag events like motion eventsBenjamin Otte2020-02-221-2/+5
| | | | | | | | Emit crossing events - with a new GTK_CROSSING_DROP type - like we do for motion events. There is no more special casing for them. Note that the gesture has not been updated yet, so some obscure behavior may occur.
* Keep more event controller api privateMatthias Clasen2020-02-211-0/+51
| | | | | | We don't want to expose the GtkCrossingData struct, and manually feeding events to event controllers is not something we want to encourage, going forward.
* Strip const from GdkEventMatthias Clasen2020-02-211-2/+2
| | | | | Events are refcounted structs, and we generally don't pass these as const.
* eventcontroller: Make the target widget availableMatthias Clasen2020-02-211-0/+2
| | | | | Make it possible for event controllers to obtain the target widget during handle_event.
* Explicitly pass the target to handle_eventMatthias Clasen2020-02-211-3/+0
| | | | | | Pass the event propagation target explicitly down to the event controllers. This is a step towards getting rid of gdk_event_set_target.
* Reinstate filtering for crossing eventsMatthias Clasen2020-02-211-0/+4
| | | | | The event propagation limit should apply to crossing events as well.
* New focus change handlingMatthias Clasen2020-02-211-0/+5
| | | | | | | | | | | | | | Instead of relying on gdk's antiquated crossing events, create a new GtkCrossingData struct that contains the actual widgets, and a new event controller vfunc that expects this struct. This also saves us from making sense of X's crossing modes and details, and makes for a generally simpler api. The ::focus-in and ::focus-out signals of GtkEventControllerKey have been replaced by a single ::focus-change signal that takes GtkCrossingData as an argument. All callers have been updated.
* Pass translated coordinates outside the eventMatthias Clasen2020-02-211-1/+3
| | | | | | We want to make events readonly, so stop translating their coordinates and instead pass the translated coordinates separately, when propagating events.
* eventcontroller: Add vfuncs to (un)set widgetBenjamin Otte2018-04-261-0/+3
| | | | | | | | | | | | | | | This is the first step towards refactoring how widgets deal with event controllers. In the future, the widget will treat controllers the same way it treats child widgets: 1. The controllers will be created without a widget. 2. There will be gtk_widget_add/remove_controller() functions to add or remove controllers. 3. The widget will hold a reference to all its controllers. This way we will ultimately be able to automate controllers with ui files.
* eventcontroller: Drop event_mask APICarlos Garnacho2017-09-191-4/+0
| | | | This is unchecked, we can remove it entirely as well.
* GtkEventController: Add some comment describing the filter_event private vfuncCarlos Garnacho2016-08-231-0/+3
| | | | | | It might not be entirely clear what the boolean return value means. https://bugzilla.gnome.org/show_bug.cgi?id=770026
* eventcontroller: Add private ::filter methodCarlos Garnacho2015-08-121-0/+3
| | | | | | | This will be used right before handle_event() in order to filter out events, useful to make the previous "no touchpad events" behavior the default, and have gesture subclasses include manually the touchpad events they handle.
* eventcontroller: Make the event-mask property and methods private.Carlos Garnacho2014-05-271-0/+4
| | | | | This will rarely have any use if no subclassing is allowed, so just make it private for our own.
* Prevent subclassing of gesturesMatthias Clasen2014-05-231-0/+42
For now, at least. We do this by hiding the instance and class structures in private headers.