[gtk/mcatanzaro/event-controller-porting-guide] Expand event controller API changes section of GTK 4 porting guide
- From: Michael Catanzaro <mcatanzaro src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/mcatanzaro/event-controller-porting-guide] Expand event controller API changes section of GTK 4 porting guide
- Date: Thu, 7 Jan 2021 16:53:19 +0000 (UTC)
commit 137f32f9eff3e022192539af9dabb966a1bb97ba
Author: Michael Catanzaro <mcatanzaro gnome org>
Date: Thu Jan 7 10:53:09 2021 -0600
Expand event controller API changes section of GTK 4 porting guide
There is more to say about changes to GtkEventController.
docs/reference/gtk/migrating-3to4.md | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
---
diff --git a/docs/reference/gtk/migrating-3to4.md b/docs/reference/gtk/migrating-3to4.md
index 9112ec2132..1762acdd53 100644
--- a/docs/reference/gtk/migrating-3to4.md
+++ b/docs/reference/gtk/migrating-3to4.md
@@ -533,6 +533,23 @@ Another is that #GtkGestureMultiPress has been renamed to #GtkGestureClick,
and has lost its area property. A #GtkEventControllerFocus has been
split off from #GtkEventcontrollerKey.
+In GTK 3, #GtkEventController:widget was a construct-only property, so
+a #GtkWidget was provided whenever constructing a #GtkEventController.
+In GTK 4, #GtkEventController:widget is now read-only. Use
+gtk_widget_add_controller() to add an event controller to a widget.
+
+In GTK 3, widgets did not own their event controllers, and event
+controllers did not own their widgets, so developers were responsible
+for manually keeping event controllers alive for the lifetime of their
+associated widgets. In GTK 4, widgets own their event controllers.
+gtk_widget_add_controller() takes ownership of the event controller, so
+there is no longer any need to store a reference to the event controller
+after it has been added to a widget.
+
+Although not normally needed, an event controller could be removed from
+a widget in GTK 3 by destroying the event controller with g_object_unref().
+In GTK 4, you must use gtk_widget_remove_controller().
+
### Focus handling changes
The semantics of the #GtkWidget:can-focus property have changed.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]