diff --git a/docs/reference/gtk/migrating-3to4.xml b/docs/reference/gtk/migrating-3to4.xml index 2ee41aac75..b97b8f128b 100644 --- a/docs/reference/gtk/migrating-3to4.xml +++ b/docs/reference/gtk/migrating-3to4.xml @@ -291,11 +291,16 @@
- Stop accessing GdkEvent fields + Adapt to GdkEvent API changes - Direct access to GdkEvent structs is no longer possible in GTK 4. Some - frequently-used fields already had accessors in GTK 3, and the remaining - fields have gained accessors in GTK 4. + Direct access to GdkEvent structs is no longer possible in + GTK 4. Some frequently-used fields already had accessors + in GTK 3, and the remaining fields have gained accessors + in GTK 4. + + + GdkEvent is now a strictly read-only boxed type, and you + can no longer change any of its fields.
@@ -324,10 +329,51 @@ GTK 4 no longer provides the gdk_device_grab() or gdk_seat_grab() apis. - If you need to dismiss a popup when the user clicks outside (a common + If you need to dismiss a popup when the user clicks outside (the most common use for grabs), you can use the GdkSurface #GdkSurface:autohide property instead. GtkPopover also has a #GtkPopover:autohide property. + + If you need to prevent the user from interacting with a window + while a dialog is open, use #GtkDialog::modal. + + + +
+ Adapt to surface API changes + + In GTK 4, the two roles of a standalone toplevel window + and of a popup that is placed relative to a parent window + have been separated out into two interfaces, #GdkToplevel + and #GtkPopup. + + + Surfaces implementing these interfaces are created with + gdk_surface_new_toplevel() and gdk_surface_new_popup(), + respectively, and they are presented on screen using + gtk_toplevel_present() and gdk_popup_present(). The + present() functions take parameters in the form of an + auxiliary layout struct, #GdkPopupLayout or + #GdkToplevelLayout. + + + If your code is dealing directly with surfaces, you may + have to change it to call the API in these interfaces, + depending on whether the surface you are dealing with + is a toplevel or a popup. + + + As part of this reorganization, X11-only concepts such + as sticky or keep-below have been removed. If you need + to use them on your X11 windows, you will have to set + the corresponding X11 properties (as specified in the + EWMH) yourself. + + + A number of minor API cleanups have happened in GdkSurface + as well. For example, gdk_surface_input_shape_combine_region() + has been renamed to gdk_surface_set_input_region(). +
@@ -511,6 +557,14 @@
+
+ Don't use -gtk-outline-...-radius in your CSS + + These non-standard properties have been removed from GTK + CSS. Just use regular border radius. + +
+
Use gtk_widget_measure @@ -947,6 +1001,19 @@
+
+ Adapt to GtkIconTheme API changes + + gtk_icon_theme_lookup_icon() returns a #GtkIconPaintable + object now, instead of a #GtkIconInfo. It always returns + a paintable in the requested size, and never fails. + + + A number of no-longer-relevant lookup flags and API + variants have been removed. + +
+
Update to GtkFileChooser API changes