| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This is an initial cut at providing a tool
for interactive exploration of constraints.
|
|
|
|
| |
We need to queue a resize here.
|
|
|
|
|
|
|
|
|
|
| |
I've seen a crash when the action muxer gets
disposed during widget destroy, and tries to
disconnect from widget signals too late.
There is no real need to disconnect, since the
only time an action muxer is going away is when
its widget is destroyed, so just don't do it.
|
|
|
|
|
| |
Otherwise, there is no way of getting rid of
vfl constraints.
|
|
|
|
|
| |
We should mark the layout as changed when
constraints are added or removed.
|
|
|
|
|
| |
The dictionary-based function is convenient for language bindings, but C
developers will feel more at home with a variadic arguments list.
|
|
|
|
|
| |
Shows how to describe constraints using VFL instead of constructing
objects manually.
|
| |
|
|
|
|
|
| |
Constraints can be expressed with a compact syntax, called VFL (visual
format language).
|
|
|
|
| |
The prefix and name are set at construction time.
|
| |
|
|
|
|
|
| |
Add a max size to the buttons, to force the
space to open up.
|
|
|
|
| |
This is meant to be a flexible space.
|
|
|
|
|
| |
Since GtkWidget implements GtkConstraintTarget, we can omit the explicit
cast, and validate the type at run time.
|
|
|
|
|
| |
This is in preparation for allowing non-widgets
to act as constraint targets.
|
| |
|
|
|
|
|
|
| |
This is an marker interface that we will
use to accept other things that widgets
in constraints.
|
|
|
|
| |
Changing the set of constraints should cause a relayout.
|
|
|
|
|
|
|
|
|
| |
We cannot use the given "for size" when querying our children, because
the constraint layout has no idea about the opposite size of its
children until the layout is complete.
Additionally, we should only suggest an opposite size for the layout if
we have one, instead of suggesting a weak zero size.
|
|
|
|
|
|
| |
The size constraints are transient to measurement and allocation, so
they don't really need to be stored inside the GtkLayoutChild subclass
created by a GtkConstraintLayout.
|
|
|
|
|
|
|
|
|
|
| |
The relations between left, right, width
and top, bottom, height are required for
internal consistency. It doesn't make sense
to ever drop these.
Changing the strength of these relations makes
my systems behave much more stable.
|
|
|
|
| |
Otherwise, you can't do many interesting things.
|
|
|
|
| |
We don't own the reference in the first place.
|
|
|
|
|
|
|
|
| |
When the solver is finalized with existing
constraints, we end up with criticals when
the constraints ref finalize code calls
back into the hash table. Avoid that by
emptying the hash table beforehand.
|
|
|
|
| |
There was an obviously wrong precondition here.
|
|
|
|
|
| |
Since the LayoutManager owns the LayoutChild it creates, it's also
responsible for mopping them up.
|
| |
|
|
|
|
|
| |
A layout manager using GtkConstraintSolver to measure and allocate
children.
|
|
|
|
|
| |
Layout managers may need to get access to data attached to the root of a
scene graph.
|
|
|
|
| |
Implement the GtkRoot getter for GtkConstraintSolver.
|
|
|
|
|
| |
Constraints need to work across different parents, so it's better to
have a single constraint solver per top level.
|
|
|
|
|
|
| |
We don't expect out of tree implementations of GtkRoot, and having the
interface structure private to the GTK code allows us to add virtual
functions involving private types.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GtkConstraintSolver is an implementation of the Cassowary constraint
solving algorithm:
http://constraints.cs.washington.edu/cassowary/
The Cassowary method allows to incrementally solve a tableau of linear
equations, in the form of:
x = y × coefficient + constant
with different weights, or strengths, applied to each one.
These equations can be used to describe constraints applied to a layout
of UI elements, which allows layout managers using the Cassowary method
to quickly, and efficiently, lay out widgets in complex relations
between themselves and their parent container.
|
|
|
|
|
|
| |
- Be more specific about the list row image buttons
Addresses corner case of https://gitlab.gnome.org/GNOME/gtk/issues/1748
|
|
|
|
|
|
| |
- addresses legibility concerns
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1819
|
|
|
|
|
|
| |
Fix popover_radius variable doesn't apply to .csd popover.
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1984
|
|
|
|
|
|
|
|
| |
- Apply menubar submenu style for .csd submenus;
- Remove child subemenu style (looks like it is inherited
from a parent).
Closes https://gitlab.gnome.org/GNOME/gtk/issues/1976
|
|
|
|
|
|
| |
- OSD background color was too close to $bg_color to make out outline
Fixes https://gitlab.gnome.org/GNOME/gtk/issues/1964
|
|\
| |
| |
| |
| | |
Fix a typo
See merge request GNOME/gtk!960
|
|/ |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
Add a non-varargs variant of activate_action
See merge request GNOME/gtk!959
|
|/
|
|
|
|
|
|
|
| |
I recently turned gtk_widget_activate_action()
into a varargs function. That is more convenient
from C, but we need a non-varargs variant for
bindings. So add the old API back, under the
name gtk_widget_activate_action_variant(),
with a rename-to annotation.
|
|\
| |
| |
| |
| | |
Provide GdkMonitor:connector
See merge request GNOME/gtk!954
|
| |
| |
| |
| |
| |
| |
| | |
Like we do on Wayland.
In this case, we copy it from the same source as the output name,
because it's going to match.
|
| |
| |
| |
| |
| |
| |
| | |
The xdg_output v2 interface has a `name` property that reflects the
output name coming from the compositor.
This is the closest thing we can get to a connector name.
|
|/
|
|
|
|
|
|
|
| |
The migration from GdkScreen's monitor API to GdkMonitor left out a way
to get the connector's name of a monitor.
While there's no real guarantee coming from the underlying graphics
system that the connector's name is stable, some system components may
use it to uniquely identify a monitor until the next plug in/out event.
|