Opened 4 years ago
Last modified 16 months ago
#1977 assigned defect
GTK4
Reported by: | Antoine Martin | Owned by: | Antoine Martin |
---|---|---|---|
Priority: | major | Milestone: | future |
Component: | client | Version: | 2.3.x |
Keywords: | Cc: |
Description (last modified by )
Assuming that we don't jump ship by then (#1995, the python3 / gtk3 transition is hard enough: #1568), we'll need to handle Migrating from GTK+ 3.x to GTK+ 4, in particular:
- Stop using the root window - ouch?
- Stop using GdkScreen, GdkVisual, GdkDeviceManager
- Adapt to GdkWindow API changes: GdkWindow has been renamed to GdkSurface. The gdk_window_new() function has been replaced by a number of more specialized constructors: gdk_surface_new_toplevel(), gdk_surface_new_popup(), gdk_surface_new_temp(), gdk_surface_new_child(), gdk_surface_new_input(), gdk_wayland_surface_new_subsurface(). Use the appropriate ones to create your windows.
Native and foreign subwindows are no longer supported. These concepts were complicating the code and could not be supported across backends.
gdk_window_reparent() is no longer available.
- Adapt to drawing model changes: If you are using a GtkDrawingArea for custom drawing, you need to switch to using gtk_drawing_area_set_draw_func() to set a draw function instead of connnecting a handler to the “draw” signal.
- Invalidation handling has changed: Only gtk_widget_queue_draw() is left to mark a widget as needing redraw. Variations like gtk_widget_queue_draw_rectangle() or gtk_widget_queue_draw_region() are no longer available.
- Stop using GtkWidget::draw: The “draw” signal has been removed. Widgets need to implement the “snapshot” function now. Connecting draw signal handlers is no longer possible.
- Adapt to cursor API changes..
- Stop accessing GdkEvent fields: 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.
Change History (4)
comment:1 Changed 4 years ago by
Description: | modified (diff) |
---|---|
Status: | new → assigned |
comment:2 Changed 3 years ago by
Milestone: | 3.1 → 4.0 |
---|
comment:3 Changed 3 years ago by
Milestone: | 4.0 → future |
---|
comment:4 Changed 16 months ago by
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1977
Note: See
TracTickets for help on using
tickets.
Milestone renamed