This part describes what you need to change in programs use older versions of GTK+ so that they can use the new features. It also mentions how to convert applications using widgets found in the libgnomeui library to use their counterparts in GTK+.
Table of Contents
- Migrating from GTK+ 2.x to GTK+ 4
- Migrating from GTK+ 3.x to GTK+ 4
- Preparation in GTK+ 3.x
- Do not use deprecated symbols
- Enable diagnostic warnings
- Do not use widget style properties
- Review your window creation flags
- Stop using non-RGBA visuals
- Stop using GtkBox:padding, GtkBox:fill and GtkBox:expand
- Stop using the state argument of GtkStyleContext getters
- Stop using
gdk_pixbuf_get_from_window()andgdk_cairo_set_source_surface() - Stop using GtkButton's image-related API
- Changes that need to be done at the time of the switch
- Stop using GdkScreen
- Stop using the root window
- Stop using GdkVisual
- Stop using GdkDeviceManager
- Adapt to GdkWindow API changes
- Stop accessing GdkEvent fields
- Stop using gdk_surface_set_event_compression
- Adapt to GdkKeymap API changes
- Adapt to GtkHeaderBar API changes
- Adapt to GtkStyleContext API changes
- Adapt to GtkCssProvider API changes
- Stop using GtkContainer::border-width
- Adapt to GtkWidget's size request changes
- Switch to GtkWidget's children APIs
- Don't use -gtk-gradient in your CSS
- Don't use -gtk-icon-effect in your CSS
- Use gtk_widget_measure
- Adapt to drawing model changes
- Stop using APIs to query GdkSurfaces
- Widgets are now visible by default
- Adapt to changes in animated hiding and showing of widgets
- Stop passing commandline arguments to gtk_init
- GdkPixbuf is deemphasized
- GtkWidget event signals are removed
- Invalidation handling has changed
- Stop using GtkWidget::draw
- Window content observation has changed
- The gtk_window_fullscreen_on_monitor API has changed
- Adapt to cursor API changes
- Adapt to icon size API changes
