Part V. Migrating from Previous Versions of GTK+

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() and gdk_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