Initial port to GTK4
This is a massive, drop-the-bomb change. The main highlights of the changes are:
-
'gnome-desktop' dependency is dropped in favour of copying a couple of files (gnome-bg., gnome-bg-slide-show.) and porting them to GTK4.
-
Most of the changes to UI files are generated by gtk4-builder-tool, and manually adjusted after running it.
-
GdkWindow → GdkSurface
-
Manually call Xlib functions to set the foreign window transient parent, since GTK4 doesn't have foreign windows anymore.