Draft: GSOC 2023: GTK4 Port

Open jainl28patel requested to merge jainl28patel/pitivi:GTK4-port into master

Update Pitivi to use GTK4 instead of GTK3

  • This MR is the extension of MR-442


  1. The official porting guide is at https://docs.gtk.org/gtk4/migrating-3to4.html
  2. GTK4 official docs : https://docs.gtk.org/gtk4/
  3. GTK4 API Reference (Python) : https://lazka.github.io/pgi-docs/#Gtk-4.0

Remaining high priority:

  • GtkLayout replacement
  • Implement Drag and Drop EventController
  • Viewer (Reliant on GtkSink port)
  • GtkPopover

Remaining low priority:

  • Drop the use of Dialog.run (Partially done)
  • Update to GtkFileChooser API changes
  • Adapt to drawing model changes (Partially done, remaining for Gtk.Widget)
  • Adapt to GtkHeaderBar API changes
  • Drop use of GdkScreen
  • Replace "configure-event" and "size-allocate" signals
  • GdkPixbuf is deemphasized, causing sizing issues and type mismatches (Partially done)
  • Symbolic icons colour change issue
  • Fix Unittests
  • Fix Interactive Intro (Reliant on GtkPopover changes)
  • Replace deprecated Gtk.ModelButton
Edited by jainl28patel

Merge request reports