Matthias goal: a plan for gtk4 - when, what, how
Benjamin: needs some selling feature
currently: slower, uses more memory
slower because it does many things automatically (hover)
unfinished tasks:
- - dnd - turn into gestures, drop signals, gtkselection - popovers
1. Looking over subsystems
GdkPaintable - generic drawing abstraction
GtkImage vs GtkPicture - image is an icon, picture is a main view for e.g. gnome photos
A story to tell: use GtkPicture
GtkVideo: picture + media controls
for short clips, vines, recordings - not meant for totem
GtkMediaStream, GtkMediaFile uses gstreamer or ffmpeg
gstreamer does sound, ffmpeg doesn't
Benjamin has a branch that can do dmabuf/gl transfers the right way
gstreamer backend can work across win32 and osx
need maybe a native osx or win32 mediafile implementation
need a webcam backend that uses pipewire
open question: how does gstreamer and gtk talk to each other
open tasks:
- figure out ui for media controls
- webcam mediastream
fun blog post: media stuff
rendering model: we cache render nodes now, and diff them, and queue draw is just discarding the cached node
no more clipping, widgets can draw anywhere
gsk needs 3d transforms. timms branch needs some cleanup, but should be mergable
what needs to happen to make the branch mergable: add a simple 3rd transition to revealer and stack, and make it work with all backends
to be done in gsk: share code across backends (texture cache, tree -> list)
have per-display gl contexts
work to be done:
- bring vulkan and gl drivers up to par
- vulkan could be used on win32 and osx (with shim layers)
- could get rid of the draw context / renderer split
- have a 'canvas' api
(event controller discussion)
Shortcuts - Benjamin has a branch that has a shortcuts controller
There are triggers and actions
shortcuts branch depends on listmodels (which are merged), but benjamin wants to have a listview based on them, that is not quite done
fun blog post: list models
layout managers: mostly a preparatory step for introducing constraints
looking at child properties:
drop GtkButtonBox - https://gitlab.gnome.org/GNOME/gtk/merge_requests/554
add GtkAssistantPage
bring back GtkNotebookPage
add a GtkStackPage
drop GtkPopoverMenu::position (done)