GTK+ 4 checklist

The initial list was produced at the GTK+ BOF at Guadec 2017 in Manchester. It has been updated since

Task

People

More info

Status

GTK

Constraint-based layout

Emmanuele

blog

todo, emeus exists

States and transitions in ui files

Christian Hergert

blog

todo, prototyped in libdazzle

Designer support

blog

todo

Keyboard handling with event controllers

Christian Hergert, Carlos

blog

todo, prototyped in libdazzle

Split size and position

Benjamin

todo

Add overlay blur

Matthias

overlay blur

done

Add fancy stack transition

branch

in progress

Flexible focus handling

Add a visible-focus state flags, :focus(visible) pseudo class, and render outline always, branch needs alignment with new css things: https://drafts.csswg.org/selectors-4/#the-focusring-pseudo http://www.scottohara.me/blog/2017/05/14/focus-within.html

done

Make GtkLabel use gsk

Matthias

done

Make GtkEntry use gsk

Matthias

done

Make GtkTextView use gsk

Matthias

todo

Make GtkGLArea use a texture

Needs an api like gdk_texture_new_for_gl (GdkGLContext, guint id)

todo

Investigate backdrop-filter

https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter implementing this will require splitting the current renderpass in half where a backdrop-filter node occurs, redirecting the bottom half to a texture, and then doing the complementary clip trick

undecided

Cache render nodes

Cache render nodes per widget, make queue-draw just delete the cached node. Partial redraws can them be implemented by diffing the previous and current render trees and finding changed parts

todo

Make GtkIconTheme return textures

Currently, we have a cache of pixbufs, but we duplicate textures

done

Fix symbolic svg rendering with shaders

Need to load them like gtk-encode-symbolic-svg

done

Reconsider immodules

Drop all the random ones, and keep the platform ones, but built-in

undecided

Reconsider printbackends

The papi and test ones are unmaintained, the cups one will have a license problem

todo

Replace GdkPixbuf by GdkTexture internally

in progress

Replace GdkPixbuf by GdkTexture in API

in progress

Clean up legacy event handlers

todo

Replace GtkDragSource by a gesture

todo

GSK

Add GskTextNode

Matthias

done

Add GskBlurNode

Matthias

branch

done

Make GskTextNode use texture atlas

Matthias

done

Make GskBlurNode use a shader

Matthias

branch

done

Support nodes as texture

Matthias, Benjamin

This requires using multiple renderpasses and ordering them correctly

done

Finish the GL renderer

Timm

blog branch

in progress

Implement blurred shadows in glsl

Benjamin

todo

Implement repeat nodes in vulkan

Benjamin

done

Implement shadow nodes in vulkan

Benjamin

todo

Make render nodes have parent-relative positions

This is needed for caching render nodes

todo

Share the glyph cache for all toplevels

undecided

Share textures for all toplevels

undecided

GDK

Clean support for subsurfaces in GDK

Benjamin, Matthias

Implement subsurfaces for X as 'connected toplevels' where gdk moves the window

todo

No more root window

Benjamin, Matthias

api is gone, internal cleanup still needed

in progress

Get rid of root coordinates

todo

Event cleanup

Carlos

branch

done

Get rid of unmanaged DND

branch

done

Convert win32 to managed DND

786509

in progress

Convert quartz to managed DND

todo

Move selection and clipboard handling to GDK

async apis instead of events branch

done

Remove gdkproperty.h

all apis in there are X-specific and only used by GtkSelection

done

Get rid of GdkDeviceManager

Matthias

done

Get rid of gdk_window_move

todo

Get rid of foreign windows

branch

in progress

Get rid of gdk_drag_context_get_source/dest_window

at least, make them not return foreign windows

todo

Get rid of gdk_selection_owner_get

done

Drop GdkScreen

API is gone, some backend cleanup left

done

Drop GdkVisual

done

Consider dropping the mir backend

Ask the mir team if it is still needed

undecided

Rewrite broadway backend for gsk

done

Remove gdkthreads.h

undecided

Remove gdkscreen.h

done

Projects/GTK+/Roadmap/GTK4 (last edited 2017-12-14 03:19:36 by MatthiasClasen)