Notes from GUADEC 2015
1. Roadmap
- Themeing
- GSK
- Undo
- Gestures state (touchpad)
2. Outstanding GLib/GIO issues
FileMonitor rewrite issues
- GSlice is crashing with lots of threads
- Reproducer from GNOME Software
- Replace malloc?
- Use system malloc everywhere
- Apps should be able to replace the system malloc (tcmalloc, jemalloc) by themselves
- Test allocators
- Signal/property binding groups
- Written for Builder
- Set up delayed signal connections/property bindings
- Deals with signal disconnection
3. CSS nodes update
- Reworked the internal API/implementation
- CSSStyle object (immutable, fully resolved)
- Caching improvements
- GtkCSSNode API
- tree-like/CSS-DOM
- supersedes widget paths when computing the style
- validation
- private API at least for 3.18
- New API for adding more nodes per widget
- Adds more CSS properties
- Theme fallout of respecting CSS properties where we didn't
- Inherited CSS classes
- Theme designer input/feedback
Documentation & stability guarantees
- Elements/nodes for each widget
- Composite/complex widgets should probably not guarantee internal relationships
- Review the use of all style classes, document them, and drop the unnecessary ones
- Last planned themeing break
- Drop use of type names and move to per-class identifiers
- Inheritance of type names complicates the CSS matching
- GtkCSSNode API
4. GSK
- Separate library
- Core almost nailed down
Branch on GitHub because of constant rebasing
- Will start pushing to git.gnome.org
- Separate library
- Don't want to overload the GTK namespace
- Could be a semi-private library in the beginning
- alexl already started reviewing it
- Additional work on top of the core is happening in topic branches
- GL compositing
- Animation API
- Layout management
- Design team should be thinking of animated components for widgets
- First target: out of tree widgets
- No guarantees of stability like for internal widgets
- CSS transformations?
- Could we rewrite GNOME Shell on top of it?
- Only if you want to rewrite the whole Shell
- Also needs a KMS/libinput backend for GDK
5. Undo
Experimental, currently for GtkEntry
- applications in the GNOME stack
- Expectations and prior art
What do we do for GtkTextView?
- other apps have undo for that
- opt in/out
- How to display the state of the undo stack
- Undoing text editing is not entirely covered by action-based undo frameworks
Private API for GtkEntry only for the time being
6. Gestures (state)
- How close are we to be able to drop non-public internal GDK windows for input?
Some widgets need porting, but most widgets already use GtkGestures for pointer/touch/touchpad handling
- We should put some effort in porting the remaining widgets
- Touchpad gestures should go in before 3.18
- No settings yet
- Possible to rush it for 3.18
- No X11 support (needs a revised XInput 2 extension)
7. Inspector use
- Saving/restore state?
- Display properties that were changed from the inspector with a different style
8. Design patterns/widget requirements
- drop down completion pattern
GtkEntryCompletion vs GtkPopover + GtkListBox vs something better
- touch focus issues
- Combo box replacement
wip/combo → wip/ebassi/combo (rebased on master)
- In-app notification
Handled similar to popups to avoid additional GtkOverlay
- Do not specify widgets to attach to
- API similar to system notification
- Optional constraint to a specific area of the top-level for widgets with menu/tool bars