Port to GTK4

Despite being in very early stage, I'm opening an MR to track the progress and possibly get some tips for the port.

The goal is to purely port to GTK4 with as little visual/functional changes as possible. If some changes are done along the way, I'll try to split them out into separate MRs.


  • Compile
  • Launch
  • Move from libhandy to libadwaita
  • Re-enable application window menu
  • Re-enable preference window
  • Re-enable graphs (drawing)
    • Fix sizing of the graphs on window resize
    • Uncover & try to fix an oddity regarding the speed of graph drawing
      • Split it out into a separate MR (without opening an MR ^^; work for later me)
    • Fix x axis labels not to be drawn slightly out of frame
    • Resolve lack of focus in the Resources stack page and blurriness of graphs
  • Re-enable open files popup window
    • Fix content
  • Re-enable search
    • Prevent the search bar from being open by default
  • Properly port event controllers/handlers
  • Adjust use of StyleContext
  • Move GtkMenu to GtkPopoverMenu
    • Arbitrary position popups in process view
    • Explore porting from GtkTreeView to GtkColumnView (gtk#4806; not needed now)
  • Fix GsmColorButton
    • Re-enable hover state
    • Re-enable color selection dialog
    • Implement GtkDragSource
    • Implement GtkDragDropAsync
    • Fix sizing of the button (seems like the widget is overdrawing its area)
  • Re-enable popup windows (lsof,..)
  • Re-enable all widgets in preferences window
    • Fix bug when network traffic is shown in bits
  • Fix icon size in proctable
  • Re-add process table column selection on table header right click (Left out as it can be changed via preferences)
  • Use some default icons instead of missing icon (Not a problem in release)
  • Refit X11 APIs (will probably be dropped)
  • Ensure actions are still working
  • Cleanup
  • Clean git history & prep for review
Edited by Ondřej Míchal

Merge request reports