GTK4 seems to favor Gestures instead of using plain GDK events. Events seems to still exist, see
https://developer.gnome.org/gtk4/stable/GtkEventController.html#GtkEventController.object-hierarchy
https://developer.gnome.org/gtk4/stable/GtkEventControllerLegacy.html
but the term “Legacy” seems to indicate that we should avoid it.
Gestures may be simpler to use and may work better on touch devices. I have already played with a Nim version of ~/gtk/examples/drawing.c (formerly known as scribble window.)
But I still wonder if gestures works for applications like InkScape.
I have a simple CAD application which I wrote 10 years ago in Ruby, and rewrote partly in Nim. It is using GTK3 and plain GDK events. For porting to GTK4 I wonder if I should try hard to use only Gestures, or go on using Events with GtkEventControllerLegacy.
Gestures are fine for some operations like moving entities with drag operation. But I have many more operations to support. For example drawing a line is currently done by clicking on start position, moving mouse, clicking on end position. Of course we could do that with a drag gesture, but then we would have to hold the mouse button pressed for the whole operation. And then that gesture could not be used at the same time for moving objects. I would have to switch mode of operation when I want to move objects, or at least use a different mouse button or a keyboard qualifier. What I have for GTK3 is: click, move, click is drawing new line. Press, move, release is move object, i.e. for a line move whole line or move one of its endpoints. All with LMB and without mode switching. I like that mode of operation.
Currently I think that I would have to use GtkEventControllerLegacy, or that I would have to make the user interface more modal, so that user has to select mode of operation often. For touch devices Gestures may be a better solution, but doing CAD on a cellphone with fingers only is difficult. But maybe someone would use a Wacom tablet.