summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Catanzaro <mcatanzaro@gnome.org>2021-01-07 10:53:09 -0600
committerMichael Catanzaro <mcatanzaro@gnome.org>2021-01-07 10:53:09 -0600
commit137f32f9eff3e022192539af9dabb966a1bb97ba (patch)
treef35fe869fef76f62ef0241c1d3e217db600c2c94
parentd8d832291250733ac49414a74d7d7476201b4403 (diff)
downloadgtk+-mcatanzaro/event-controller-porting-guide.tar.gz
Expand event controller API changes section of GTK 4 porting guidemcatanzaro/event-controller-porting-guide
There is more to say about changes to GtkEventController.
-rw-r--r--docs/reference/gtk/migrating-3to4.md17
1 files changed, 17 insertions, 0 deletions
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.