| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This avoids pspec lookup overhead in g_object_notify.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
Every call to g_object_add_weak_pointer must be matched with
a g_object_remove_weak_pointer call, or we will get invalid
writes inside GObject.
https://bugzilla.gnome.org/show_bug.cgi?id=746013
|
|
|
|
|
|
| |
The objects-finalize test constructs gestures with NULL as
a widget. The recent addition of weak references was not
ready for that.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=745225
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are two scenarios. A widget sub-class owns a GtkEventController
and passes itself to it, or a controller owned by something else is
passed a widget.
In the second case, if the widget is destroyed before the controller,
we will have a crash when destructing the controller because we will
be accessing invalid memory. Adding a weak reference on the widget
addresses that problem.
This leads to a crash in the first case. When the widget is getting
destroyed, it will drop the reference to its own controller. The
controller will skip touching the widget because the weak reference
would have turned it to NULL. However, when the widget sub-class chains
up to GtkWidget it will try to free all the controllers in its list.
Unfortunately, all these controllers have already been destroyed. So
we need to guard against this too.
https://bugzilla.gnome.org/show_bug.cgi?id=745225
|
| |
|
|
|
|
|
|
| |
This is in practice the most common value, so make that the default
https://bugzilla.gnome.org/show_bug.cgi?id=734285
|
| |
|
|
|
|
|
|
| |
Those might trigger the destruction of some widget that would dispose the
event controller while the event is still being handled, so keep an extra
ref on the controller during event processing.
|
|
|
|
|
|
| |
This prevents some of our generic object implementation tests
from working with gesture objects. Instead, add g_return_if_fail
checks in all the gesture constructors.
|
|
|
|
|
| |
Signals are left hidden, so the only entry point to handle_event/reset
is API.
|
|
|
|
|
|
|
|
| |
Event controllers now auto-attach, and the GtkCapturePhase only determines
when are events dispatched, but all controllers are managed by the widget wrt
grabs.
All callers have been updated.
|
|
|
|
|
| |
This will rarely have any use if no subclassing is allowed, so just make it
private for our own.
|
|
|
|
| |
Set transfer annotation on gtk_event_controller_get_widget()
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The propagation phase property/methods in GtkEventController are gone,
This is now set directly on the GtkWidget add/remove controller API,
which has been made private.
The only public bit now are the new functions gtk_gesture_attach() and
gtk_gesture_detach() that will use the private API underneath.
All callers have been updated.
|
|
|
|
|
| |
For now, at least. We do this by hiding the instance and
class structures in private headers.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This is so we don't have to specify the capture phase for
every controller. The default "bubble" value will be sane
on most situations.
|
|
This is a basic abstract type that handles GdkEvents.
|