Benjamin Otte [Wed, 12 Apr 2023 15:00:08 +0000 (17:00 +0200)]
listview: Make inertness not depend on factory
The inertness concept introduced in
62e9d1e470b assumed a listview was
inert when no factory was set. This has 2 problems:
1. columnview uses a listview without factories.
2. header factory being set but factory not being set technically makes
the listiew inert - but should it?
So for now, make inertness only depend on visibility and root.
A side benefit is that this matches columnview semantics.
Benjamin Otte [Mon, 8 May 2023 18:47:39 +0000 (20:47 +0200)]
gtk-demo: Add alternative settings demo
This one displays a long list of all settings with sections and allows
filtering the list to quickly search for keys.
Benjamin Otte [Tue, 11 Apr 2023 02:46:40 +0000 (04:46 +0200)]
gtk-demo: Split out code from the settings demo
I want to add another demo using settings and share relevant code.
Benjamin Otte [Tue, 11 Apr 2023 02:46:24 +0000 (04:46 +0200)]
theme: Add some random CSS for section headers
Benjamin Otte [Tue, 11 Apr 2023 02:45:30 +0000 (04:45 +0200)]
listitemmanager: Create header items for sections
Now, finally, listitemmanager has all the necessary support to make
section headers work.
Benjamin Otte [Mon, 10 Apr 2023 12:32:24 +0000 (14:32 +0200)]
listview: GtkListHeader and gtk_list_view_set_header_factory()
Adds infrastructure for handling factories for list headers.
For now, listitemmanager doesn't instantiate them, so they aren't used.
Benjamin Otte [Mon, 10 Apr 2023 21:18:56 +0000 (23:18 +0200)]
listitemmanager: Add GtkListItemChange
... for tracking widgets during changes.
This just pulls all the different disjointed parts into one struct with
a sensible API.
Benjamin Otte [Sun, 9 Apr 2023 12:24:26 +0000 (14:24 +0200)]
listitemmanager: Add GtkListHeaderBase and vfuncs
This is plumbing for section handling.
The vfuncs don't do anything, this is just the infrastructure.
Benjamin Otte [Mon, 10 Apr 2023 21:17:41 +0000 (23:17 +0200)]
listitembase: exit early
When update() is called but no values are changed, exit early.
Benjamin Otte [Sun, 9 Apr 2023 03:29:14 +0000 (05:29 +0200)]
listitemmanager: Make sections configurable
Add a gtk_list_item_manager_set_has_sections() (default: FALSE) that
requires explicit turning on for the listitemmanager to gain section
support.
Benjamin Otte [Sun, 9 Apr 2023 02:26:51 +0000 (04:26 +0200)]
listitemmanager: Add/remove sections as needed
When ensuring widgets, ensure that their section is known. This will
be relevant when we use section widgets.
Also ensure that sections that don't cover any widget get destroyed.
Benjamin Otte [Sun, 9 Apr 2023 02:24:47 +0000 (04:24 +0200)]
testsuite: assert widgets are in matched sections
All widgets that we display should have their sections known, so assert
that that is the case.
Benjamin Otte [Sun, 9 Apr 2023 02:23:35 +0000 (04:23 +0200)]
testsuite: Add a print function for the listitemmanager
This is very useful when debugging.
Benjamin Otte [Sat, 8 Apr 2023 01:59:17 +0000 (03:59 +0200)]
listitemmanager: Add gtk_list_tile_get_next_skip()
... and gtk_list_tile_get_previous_skip() and use them.
Allows skipping over REMOVED and FILLER tiles which makes the code a lot
more readable.
Benjamin Otte [Sat, 8 Apr 2023 01:47:13 +0000 (03:47 +0200)]
listitemmanager: Add gtk_list_tile_set_type()
Benjamin Otte [Sun, 9 Apr 2023 02:42:12 +0000 (04:42 +0200)]
testsuite: Add verbose output to listitemmanager test
Benjamin Otte [Fri, 7 Apr 2023 18:50:08 +0000 (20:50 +0200)]
listitemmanager: Properly handle sections during add/remove
We don't insert sections ourselves yet, but we handle the existing one
when items get added or removed.
Benjamin Otte [Fri, 7 Apr 2023 18:49:06 +0000 (20:49 +0200)]
listitemmanager: Augment header/footer info
Benjamin Otte [Fri, 7 Apr 2023 02:00:00 +0000 (04:00 +0200)]
listitemmanager: Add section tiles
For now, we just have a HEADER at the start and a FOOTER at the end.
That's hard enough to get right.
Benjamin Otte [Thu, 6 Apr 2023 00:28:26 +0000 (02:28 +0200)]
testsuite: Improve listitemmanager test
It now has trackers!
Benjamin Otte [Wed, 5 Apr 2023 13:10:16 +0000 (15:10 +0200)]
listitemmanager: Add tile types
We have a FILLER and a REMOVED type now.
Also makes gc() more sensitive to types.
Benjamin Otte [Wed, 5 Apr 2023 00:49:03 +0000 (02:49 +0200)]
listitemmanager: Add a type to tiles
There's only one type for now, but hey, you have to start somewhere.
Benjamin Otte [Sat, 26 Feb 2022 20:46:42 +0000 (21:46 +0100)]
testsuite: Add tests for sections to filterlistmodel
Matthias Clasen [Sat, 26 Feb 2022 23:55:16 +0000 (18:55 -0500)]
Add a test for filterlistmodel sections
Matthias Clasen [Sat, 26 Feb 2022 19:59:43 +0000 (14:59 -0500)]
filterlistmodel: Support sections
Propagate sections from the child model to
the filter model.
Benjamin Otte [Sat, 19 Feb 2022 02:39:13 +0000 (03:39 +0100)]
sortlistmodel: add a fast path for get_section()
Benjamin Otte [Sat, 19 Feb 2022 01:37:53 +0000 (02:37 +0100)]
testsuite: Add section tests to sortlistmodel test
Matthias Clasen [Sat, 26 Feb 2022 23:52:49 +0000 (18:52 -0500)]
Add a test for sortlistmodel sections
Benjamin Otte [Fri, 18 Feb 2022 02:21:48 +0000 (03:21 +0100)]
sortlistmodel: Implement GtkSectionModel
The get_section() implementation is a slow and steady implementation
that has to be careful to not screw up when an incremental sort is only
partially sorted.
Benjamin Otte [Sat, 26 Feb 2022 03:52:16 +0000 (04:52 +0100)]
flattenlistmodel: Implement GtkSectionModel
Each child model is reported as one section.
Benjamin Otte [Tue, 15 Feb 2022 01:03:00 +0000 (02:03 +0100)]
Implement GtkSectionModel for all selection models
Benjamin Otte [Mon, 14 Feb 2022 02:18:36 +0000 (03:18 +0100)]
Add GtkSectionModel
Prototyping the interface to be used for sections in listview, so people
can review and play with it.
Benjamin Otte [Wed, 5 Apr 2023 23:55:18 +0000 (01:55 +0200)]
testsuite: Add a listitemmanager test
Matthias Clasen [Sun, 7 May 2023 13:59:42 +0000 (13:59 +0000)]
Merge branch 'node-editor-smarts' into 'main'
node-editor: Add some editor smarts
See merge request GNOME/gtk!5934
Matthias Clasen [Sun, 7 May 2023 13:32:09 +0000 (09:32 -0400)]
Cleanup
Matthias Clasen [Sun, 7 May 2023 02:31:58 +0000 (22:31 -0400)]
node-editor: Add some editor smarts
Allow control-clicks on some fields to bring up
a more specific UI. This functionality is also
available via Ctrl-E and the context menu.
At this point, it can edit colors, fonts and
files in some places, as well as a few enums.
Matthias Clasen [Sun, 7 May 2023 02:29:44 +0000 (22:29 -0400)]
Fix a typo in the node format definition
Matthias Clasen [Sun, 7 May 2023 12:12:57 +0000 (12:12 +0000)]
Merge branch 'wip/exalm/action-fixes' into 'main'
modelbutton: Fix a use after free when unsetting accel
See merge request GNOME/gtk!5933
Alice Mikhaylenko [Sun, 7 May 2023 11:21:16 +0000 (15:21 +0400)]
modelbutton: Fix a use after free when unsetting accel
gtk_widget_remove_controller() already destroys the controller.
Matthias Clasen [Sun, 7 May 2023 00:58:05 +0000 (00:58 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
rendernodeparser: Handle shader nodes better
See merge request GNOME/gtk!5930
Matthias Clasen [Sat, 6 May 2023 18:33:30 +0000 (14:33 -0400)]
rendernodeparser: Handle shader nodes better
Avoid criticals when editing shader nodes in
the node editor.
Matthias Clasen [Sat, 6 May 2023 13:28:06 +0000 (13:28 +0000)]
Merge branch 'headless-test-logging' into 'main'
ci: Improve headless test logging
See merge request GNOME/gtk!5929
Matthias Clasen [Sat, 6 May 2023 00:47:38 +0000 (20:47 -0400)]
Add a test for quick key events
Matthias Clasen [Sat, 6 May 2023 13:00:27 +0000 (09:00 -0400)]
ci: Improve headless test logging
Benjamin Otte [Sat, 6 May 2023 00:59:25 +0000 (00:59 +0000)]
Merge branch 'wip/otte/update-texture' into 'main'
Add texture update regions
See merge request GNOME/gtk!5880
Matthias Clasen [Fri, 5 May 2023 23:58:08 +0000 (23:58 +0000)]
Merge branch 'tiled-states' into 'main'
Fix a corner-case in window states
Closes #5809
See merge request GNOME/gtk!5926
Matthias Clasen [Fri, 5 May 2023 23:55:34 +0000 (23:55 +0000)]
Merge branch 'wip/kabus/column-id-leak' into 'main'
gtk/columnviewcolumn: Fix id leak
See merge request GNOME/gtk!5927
Matthias Clasen [Fri, 5 May 2023 23:40:42 +0000 (19:40 -0400)]
Handle the opposite case too
Just in case.
Khalid Abu Shawarib [Fri, 5 May 2023 22:18:16 +0000 (22:18 +0000)]
gtk/columnviewcolumn: Fix id leak
Add a free that was missing in commit
3e2b962a
Matthias Clasen [Fri, 5 May 2023 20:46:39 +0000 (16:46 -0400)]
Fix a corner-case in window states
Remove detailed tiled states when not tiled.
Fixes: #5809
Matthias Clasen [Fri, 5 May 2023 20:34:39 +0000 (20:34 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
ci: Bump timeouts for headless tests
See merge request GNOME/gtk!5925
Matthias Clasen [Fri, 5 May 2023 20:07:06 +0000 (16:07 -0400)]
ci: Bump timeouts for headless tests
Matthias Clasen [Fri, 5 May 2023 20:12:12 +0000 (20:12 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
Add a masked variation to gsk tests
See merge request GNOME/gtk!5924
Matthias Clasen [Fri, 5 May 2023 19:03:27 +0000 (15:03 -0400)]
Add a masked variation to gsk tests
This improves test coverage for mask nodes.
Matthias Clasen [Fri, 5 May 2023 18:50:16 +0000 (18:50 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
node-editor: Be a bit better about saving
See merge request GNOME/gtk!5923
Matthias Clasen [Fri, 5 May 2023 17:58:34 +0000 (13:58 -0400)]
node-editor: Be a bit better about saving
When we have a file, suggest it for saving.
This has the side benefit of giving us a test case
for gtk_file_dialog_set_initial_file.
Matthias Clasen [Fri, 5 May 2023 17:48:14 +0000 (17:48 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
gsk: Add a few assertions
See merge request GNOME/gtk!5922
Matthias Clasen [Fri, 5 May 2023 15:57:10 +0000 (11:57 -0400)]
ci: Bump timeouts of headless tests
Matthias Clasen [Fri, 5 May 2023 13:42:54 +0000 (09:42 -0400)]
gsk: Introduce a constant
We need this number in a couple of places,
so pull it out as a constant.
Matthias Clasen [Fri, 5 May 2023 13:42:34 +0000 (09:42 -0400)]
gsk: Add a few assertions
Make sure we don't overflow our fixed-size arrays.
Matthias Clasen [Fri, 5 May 2023 10:57:08 +0000 (06:57 -0400)]
gsk: Add some debug helpers
Matthias Clasen [Fri, 5 May 2023 15:56:16 +0000 (15:56 +0000)]
Merge branch 'better-masks' into 'main'
gsk: Avoid some offscreens
See merge request GNOME/gtk!5921
Matthias Clasen [Fri, 5 May 2023 15:39:46 +0000 (15:39 +0000)]
Merge branch 'fix-typo' into 'main'
gtkapplication-quartz: fix typo
Closes #5807
See merge request GNOME/gtk!5920
Matthias Clasen [Fri, 5 May 2023 15:35:35 +0000 (11:35 -0400)]
gsk: Better handling of offscreens
Take the scale into account for sizing the
offscreens for masks, blends and cross-fades.
Luca Bacci [Fri, 5 May 2023 14:26:26 +0000 (16:26 +0200)]
gtkapplication-quartz: fix typo
Fixes #5807
Matthias Clasen [Fri, 5 May 2023 02:30:12 +0000 (22:30 -0400)]
gsk: Avoid some offscreens
We don't have to be too conservative when checking
if a rect is contained in a rounded rect, we have
a precise api for this.
Matthias Clasen [Fri, 5 May 2023 00:53:15 +0000 (20:53 -0400)]
Remove a no longer building test
Matthias Clasen [Thu, 4 May 2023 21:12:40 +0000 (21:12 +0000)]
Merge branch 'smalltexture-plus-gles' into 'main'
Merge wayland_smalltexture and wayland_gles
See merge request GNOME/gtk!5917
Matthias Clasen [Thu, 4 May 2023 19:36:57 +0000 (15:36 -0400)]
Skip another failing gsk test with small textures
Matthias Clasen [Thu, 4 May 2023 18:56:51 +0000 (14:56 -0400)]
Merge wayland_smalltexture and wayland_gles
We don't really need to have two full separate
test runs for these conditions, so combine them
into one test setup.
Matthias Clasen [Thu, 4 May 2023 15:51:21 +0000 (15:51 +0000)]
Merge branch 'headless-tests' into 'main'
Get the headless monitor test to work in ci
See merge request GNOME/gtk!5915
Matthias Clasen [Thu, 4 May 2023 15:39:35 +0000 (11:39 -0400)]
ci: Mark headless monitor test as working
Matthias Clasen [Thu, 4 May 2023 10:55:53 +0000 (06:55 -0400)]
ci: Make run-docker run work
We want to have a writable volume and the same user
inside the container.
Matthias Clasen [Thu, 4 May 2023 11:32:57 +0000 (07:32 -0400)]
More debug spew
Lets see what MUTTER_DEBUG=screen-cast says.
Matthias Clasen [Thu, 4 May 2023 10:53:35 +0000 (06:53 -0400)]
Add generous waits
These tests work in the smae container locally.
Perhaps this is down to timing?
Matthias Clasen [Thu, 4 May 2023 04:20:11 +0000 (04:20 +0000)]
Merge branch 'headless-tests' into 'main'
Add headless tests using mutter
See merge request GNOME/gtk!5908
Matthias Clasen [Thu, 4 May 2023 03:53:14 +0000 (23:53 -0400)]
Mark the headless monitor test as failing
This is failing because I can't figure out
how to make wireplumber and pipewire work
in ci enough to let me add a new monitor :(
As usual, the test works fine locally.
Matthias Clasen [Thu, 4 May 2023 03:18:43 +0000 (23:18 -0400)]
Try to fix dnd tests
Matthias Clasen [Thu, 4 May 2023 00:20:43 +0000 (20:20 -0400)]
Typo fix
Matthias Clasen [Wed, 3 May 2023 23:54:41 +0000 (19:54 -0400)]
headless tests: Add debug spew
Trying to track down what is going on with our
missing monitors.
Matthias Clasen [Wed, 3 May 2023 22:45:56 +0000 (18:45 -0400)]
ci: Launch pipewire and wireplumber
The headless tests require pipewire and wireplumber
for screencast sessions to work. So launch them.
Matthias Clasen [Wed, 3 May 2023 18:50:14 +0000 (14:50 -0400)]
Use python3
No /usr/bin/python in our CI image :(
Matthias Clasen [Wed, 3 May 2023 14:48:32 +0000 (10:48 -0400)]
Make the headless input tests work
These needed some updates and workarounds.
They are now part of the testsuite and can
be run like this:
meson test -Cbuild --suite headless
Matthias Clasen [Wed, 3 May 2023 12:49:23 +0000 (08:49 -0400)]
Disable a11y for the headless tests
Otherwise, we go off activating things and end up
failing to launch systemd.
Matthias Clasen [Wed, 28 Apr 2021 10:29:41 +0000 (06:29 -0400)]
Add a dnd test to the headless tests
Matthias Clasen [Sun, 21 Mar 2021 12:31:25 +0000 (08:31 -0400)]
Use headless mutter for input tests
Add some input tests that are using headless
mutter, and python with our in-tree gir files.
So far, test that we can roundtrip key events,
and move the pointer around.
Matthias Clasen [Sat, 20 Mar 2021 20:23:36 +0000 (16:23 -0400)]
Use headless mutter for monitor tests
Add some monitor tests that are using headless
mutter, and python with our in-tree gir files.
So far, we test that we get expected signals
when monitors are added and removed.
Matthias Clasen [Thu, 4 May 2023 02:57:23 +0000 (02:57 +0000)]
Merge branch 'ci-update-meson' into 'main'
ci: Use newer meson
See merge request GNOME/gtk!5914
Matthias Clasen [Thu, 4 May 2023 02:32:00 +0000 (22:32 -0400)]
ci: Remove the hack
Matthias Clasen [Thu, 4 May 2023 00:01:20 +0000 (20:01 -0400)]
ci: Use newer meson
Matthias Clasen [Thu, 4 May 2023 00:18:24 +0000 (20:18 -0400)]
ci: Add meson back to the fedora image
Matthias Clasen [Wed, 3 May 2023 23:26:04 +0000 (19:26 -0400)]
ci: Add pipewire-gstreamer too
Matthias Clasen [Wed, 3 May 2023 22:49:45 +0000 (18:49 -0400)]
ci: Add pipewire to the image
And its buddy, wireplumber.
But we don't need gnome-desktop-testing
anymore, now that installed tests are gone.
Matthias Clasen [Wed, 3 May 2023 19:54:24 +0000 (19:54 +0000)]
Merge branch 'matthiasc/for-main' into 'main'
ci: Stop running failing tests
See merge request GNOME/gtk!5913
Matthias Clasen [Wed, 3 May 2023 19:33:35 +0000 (19:33 +0000)]
Merge branch 'stop-running-failing-tests' into 'main'
ci: Stop running failing tests
See merge request GNOME/gtk!5912
Matthias Clasen [Wed, 3 May 2023 19:32:50 +0000 (15:32 -0400)]
ci: Produce less terminal output
Pass --quiet to meson test.
Less is more, in this case.
Matthias Clasen [Tue, 2 May 2023 23:30:30 +0000 (19:30 -0400)]
Fix scan-build warning
Matthias Clasen [Wed, 3 May 2023 19:10:17 +0000 (15:10 -0400)]
ci: Stop running the unstable test setups
This is just duplicating all our test runs,
for no discernible gain.
Matthias Clasen [Wed, 3 May 2023 18:41:37 +0000 (14:41 -0400)]
ci: Stop running failing tests
This makes the test output much harder to read,
and is just a waste of time.
Danial Behzadi [Wed, 3 May 2023 09:00:53 +0000 (09:00 +0000)]
Update Persian translation
(cherry picked from commit
954011ef807538b2b38b7881554f10d4788f1425)