gtk4.git
2 years agoCommit Debian 3.0 (quilt) metadata archive/raspbian/4.8.3+ds-2+rpi1 raspbian/4.8.3+ds-2+rpi1
Peter Michael Green [Sat, 11 Feb 2023 23:39:22 +0000 (23:39 +0000)]
Commit Debian 3.0 (quilt) metadata

[dgit (10.6) quilt-fixup]

2 years agoDisable linear-gradient-transition-to-other test
Peter Michael Green [Sat, 11 Feb 2023 22:32:17 +0000 (22:32 +0000)]
Disable linear-gradient-transition-to-other test

2 years agoMerge version 4.8.3+ds-1+rpi1 and 4.8.3+ds-2 to produce 4.8.3+ds-2+rpi1
Raspbian automatic forward porter [Sat, 11 Feb 2023 13:49:38 +0000 (13:49 +0000)]
Merge version 4.8.3+ds-1+rpi1 and 4.8.3+ds-2 to produce 4.8.3+ds-2+rpi1

2 years agoMake fast forward from 4.8.3+ds-1
Simon McVittie [Sat, 4 Feb 2023 15:14:39 +0000 (15:14 +0000)]
Make fast forward from 4.8.3+ds-1

[dgit --quilt=unapplied]

2 years agoDisable clipboard test
Simon McVittie [Fri, 3 Sep 2021 14:08:08 +0000 (15:08 +0100)]
Disable clipboard test

This regularly times out on buildds, but I can't reproduce the hang
locally.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/4229
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Disable-clipboard-test.patch

2 years agoDisable inscription-markup.ui reftest
Simon McVittie [Fri, 12 Aug 2022 09:44:17 +0000 (10:44 +0100)]
Disable inscription-markup.ui reftest

It's rendered 1px to the left of where it should be, which is not a
serious problem for practical use of GTK, but is a test failure.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5099
Forwarded: not-needed, workaround

Gbp-Pq: Topic debian
Gbp-Pq: Name Disable-inscription-markup.ui-reftest.patch

2 years agoreftests: Allow minor differences to be tolerated
Simon McVittie [Sat, 13 Feb 2021 16:19:10 +0000 (16:19 +0000)]
reftests: Allow minor differences to be tolerated

Based on an earlier patch by Michael Biebl, as used in Debian's GTK 3
packaging, with additional inspiration from librsvg's reftests.

Each .ui or .node reftest can have an accompanying .keyfile file
like this:

    [reftest]
    tolerated-diff-level=20
    tolerated-diff-pixels=1000

If the image differs, but the number of pixels that differ is no more
than tolerated-diff-pixels and the differences are no more than
tolerated-diff-level, then we treat it as a success with warnings, save
the .diff.png for analysis, and use g_test_incomplete() to record the
test-case as "TODO".

Signed-off-by: Simon McVittie <smcv@debian.org>
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3195
Applied-upstream: no, upstream want reftests to be a strict pass/fail with identical results required

Gbp-Pq: Topic debian
Gbp-Pq: Name reftests-Allow-minor-differences-to-be-tolerated.patch

2 years agoreftest_compare_surfaces: Report how much the images differ
Simon McVittie [Sat, 13 Feb 2021 18:26:24 +0000 (18:26 +0000)]
reftest_compare_surfaces: Report how much the images differ

In unattended/non-interactive/autobuilder environments where the images
are not trivially accessible, this provides a way to distinguish between
totally different rendering and more subtle issues.

Signed-off-by: Simon McVittie <smcv@debian.org>
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3195
Applied-upstream: no, upstream want reftests to be a strict pass/fail with identical results required

Gbp-Pq: Topic debian
Gbp-Pq: Name reftest_compare_surfaces-Report-how-much-the-images-diffe.patch

2 years agogdk/x11: Reset all scroll valuators on enter
Carlos Garnacho [Sat, 4 Feb 2023 12:10:42 +0000 (13:10 +0100)]
gdk/x11: Reset all scroll valuators on enter

We no longer need to make much distinction between multiple logical
devices, plus it breaks esp. with the Xwayland input device distribution.
Just iterate across all devices and reset their scroll valuators.

Origin: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5479
Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/4160
Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5202
Bug-Debian: https://bugs.debian.org/1029972
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gtk4/+bug/1993594
Applied-upstream: 4.9.3, commit:824e983372d939693f7eba5c394e647a9035a0f8

Gbp-Pq: Name gdk-x11-Reset-all-scroll-valuators-on-enter.patch

2 years agonode-editor: Save test data relative to current working directory
Simon McVittie [Tue, 6 Dec 2022 11:13:59 +0000 (11:13 +0000)]
node-editor: Save test data relative to current working directory

This avoids hard-coding the GTK source directory into the binary, which
would make the binary non-reproducible across different source paths,
particularly in a distro build environment where the source directory
used by autobuilders will often not exist on end-user systems. The node
editor can still be used to create new test-cases by running it with the
GTK source directory as its current working directory.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5403
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5297
Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Name node-editor-Save-test-data-relative-to-current-working-di.patch

2 years agotestsuite: Don't create .test files for flaky or failing tests
Simon McVittie [Wed, 23 Nov 2022 21:26:50 +0000 (21:26 +0000)]
testsuite: Don't create .test files for flaky or failing tests

These tests can be run manually, but are not suitable for use as an
acceptance test, so let's not make frameworks like Debian's autopkgtest
run these when they run ginsttest-runner in the most obvious way.

Signed-off-by: Simon McVittie <smcv@debian.org>
Applied-upstream: 4.9.2, commit:94b57a967c492ab18df8142557710ba0b1a02cee

Gbp-Pq: Name testsuite-Don-t-create-.test-files-for-flaky-or-failing-t.patch

2 years agotestsuite: Use separate setups for unstable tests instead of should_fail
Simon McVittie [Wed, 23 Nov 2022 19:13:32 +0000 (19:13 +0000)]
testsuite: Use separate setups for unstable tests instead of should_fail

There are two possible interpretations of "expected failure": either
the test *must* fail (exactly the inverse of an ordinary test, with
success becoming failure and failure becoming success), or the test
*may* fail (with success intended, but failure possible in some
environments). Autotools had the second interpretation, which seems
more useful in practice, but Meson has the first.

Instead of using should_fail, we can put the tests in one of two new
suites: "flaky" is intended for tests that succeed or fail unpredictably
according to the test environment or chance, while "failing" is for
tests that ought to succeed but currently never do as a result of a
bug or missing functionality. With a sufficiently new version of Meson,
the flaky and failing tests are not run by default, but can be requested
by running a setup that does not exclude them, with a command like:

    meson test --setup=x11_unstable --suite=flaky --suite=failing

As a bonus, now that we're setting up setups and their excluded suites
programmatically, the gsk-compare-broadway tests are also excluded by
default when running the test setup for a non-broadway backend.

When running the tests in CI, --suite=gtk overrides the default
exclude_suites, so we have to specify --no-suite=flaky and
--no-suite=failing explicitly.

This arrangement is inspired by GNOME/glib!2987, which was contributed
by Marco Trevisan.

Signed-off-by: Simon McVittie <smcv@debian.org>
Applied-upstream: 4.9.2, commit:957dd49ef7d371926f90212bdf52b92742062e3e

Gbp-Pq: Name testsuite-Use-separate-setups-for-unstable-tests-instead-.patch

2 years agoUpdate Turkish translation
Sabri Ünal [Sun, 15 Jan 2023 22:43:19 +0000 (22:43 +0000)]
Update Turkish translation

Origin: upstream, 4.8.4, commit:1ef03e6eb8f27d25b97df1b7bc766df402ad75a8

Gbp-Pq: Name Update-Turkish-translation-2.patch

2 years agogtkcssanimatedstyle: Fix return of new_advance()
Matteo Percivaldi [Fri, 13 Jan 2023 13:05:10 +0000 (14:05 +0100)]
gtkcssanimatedstyle: Fix return of new_advance()

This was causing animation and transition to stop randomly and reset
their state to initial state.

This issue has existed since commit
7b68bdb8316fc1bb96c4a5ad16c1885506131d22.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/4426
Origin: upstream, 4.8.4, commit:1ff3a26c9644fbcbd91107280ff1ef839d4ea2f2

Gbp-Pq: Name gtkcssanimatedstyle-Fix-return-of-new_advance.patch

2 years agofontchooser: Drop a few errant translations
Matthias Clasen [Tue, 18 Oct 2022 20:40:37 +0000 (16:40 -0400)]
fontchooser: Drop a few errant translations

No point in translating these properties, they
are not strings.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5146
Origin: upstream, 4.8.4, commit:92ebf8ab13ab7e24cb2d9971cafd52bc579ab3c3

Gbp-Pq: Name fontchooser-Drop-a-few-errant-translations.patch

2 years agogdk/surface: Handle clicks outside client surfaces
Carlos Garnacho [Fri, 23 Dec 2022 15:04:02 +0000 (16:04 +0100)]
gdk/surface: Handle clicks outside client surfaces

The owner_events=TRUE grab makes GDK on X11 see events happening
outside every client window as received on the grab window.
Additionally check that the pointer is inside the grab window
(i.e. it received GDK_CROSSING_NORMAL crossing events for the
core pointer) in order to handle clicks happening outside client
windows.

These new paths are expected to be a no-op on Wayland, and to
also work for touchscreen input on X11, due to emulated pointer
events.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5364
Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5400
Origin: upstream, 4.8.4, commit:826030dcc2e79dcd76d21c118c6a0a3f0994c284

Gbp-Pq: Name gdk-surface-Handle-clicks-outside-client-surfaces.patch

2 years agoUpdate Turkish translation
Emin Tufan Çetin [Wed, 11 Jan 2023 06:59:32 +0000 (06:59 +0000)]
Update Turkish translation

Origin: upstream, 4.8.4, commit:83284e6a9db63f84596a5c08c7d24b055df86b95

Gbp-Pq: Name Update-Turkish-translation-1.patch

2 years agoUpdate Turkish translation
Sabri Ünal [Wed, 11 Jan 2023 05:31:28 +0000 (05:31 +0000)]
Update Turkish translation

Origin: upstream, 4.8.4, commit:4a38d5d1d53326bf4444146c665e92800b827243

Gbp-Pq: Name Update-Turkish-translation.patch

2 years agogtkcolumnviewcolumn: Only create cells when the column is visible
Benjamin Otte [Thu, 29 Dec 2022 22:21:43 +0000 (22:21 +0000)]
gtkcolumnviewcolumn: Only create cells when the column is visible

Merge branch 'wip/corey/list-item-visible' into 'main'

listitemwidget: Setup factory only once the widget is visible

See merge request GNOME/gtk!5374

(cherry picked from commit 188f9269b7e25847d4d50ba12c004f5da81aa352)

Origin: upstream, 4.8.4, commit:2aaefd9ff67446bcd0fdee90fe0ed3ac8c02fb12

Gbp-Pq: Name gtkcolumnviewcolumn-Only-create-cells-when-the-column-is-.patch

2 years agoUpdate Abkhazian translation
Nart Tlisha [Thu, 5 Jan 2023 12:23:44 +0000 (12:23 +0000)]
Update Abkhazian translation

Origin: upstream, 4.8.4, commit:1e27563425094d40bbf14a2c0c38ebb134753baf

Gbp-Pq: Name Update-Abkhazian-translation.patch

2 years agoRelease to unstable
Simon McVittie [Sat, 4 Feb 2023 15:14:46 +0000 (15:14 +0000)]
Release to unstable

2 years agoUpdate changelog
Simon McVittie [Sat, 4 Feb 2023 15:13:51 +0000 (15:13 +0000)]
Update changelog

2 years agoAdd patch from 4.9.x to avoid scroll events being sent to more than one window under X11
Simon McVittie [Sat, 4 Feb 2023 15:11:38 +0000 (15:11 +0000)]
Add patch from 4.9.x to avoid scroll events being sent to more than one window under X11

Closes: #1029972
LP: #1993594

2 years agoStandards-Version: 4.6.2 (no changes required)
Simon McVittie [Sat, 4 Feb 2023 14:45:23 +0000 (14:45 +0000)]
Standards-Version: 4.6.2 (no changes required)

2 years agoAdd overrides for false positive lintian/lintian!452
Simon McVittie [Sat, 4 Feb 2023 14:44:41 +0000 (14:44 +0000)]
Add overrides for false positive lintian/lintian!452

2 years agoUpdate changelog
Simon McVittie [Sat, 4 Feb 2023 11:37:44 +0000 (11:37 +0000)]
Update changelog

2 years agod/patches: Update to gtk-4-8 branch commit 4.8.3-15-g1ef03e6eb8
Simon McVittie [Sat, 4 Feb 2023 11:23:49 +0000 (11:23 +0000)]
d/patches: Update to gtk-4-8 branch commit 4.8.3-15-g1ef03e6eb8

- Optimize column views by not creating list item widgets in columns
  that are not visible (GNOME/gtk!5374)
- In X11, make sure menus, popovers etc. don't interfere with ability
  to click/select in other applications' windows
  (GNOME/gtk#5364, GNOME/gtk#5400)
- Do not mark non-user-facing strings as translatable (GNOME/gtk#5146)
- Fix animations and transitions randomly stopping (GNOME/gtk#4426)
- Translation updates: ab, tr

2 years agoMerge gtk4 (4.8.3+ds-1+rpi1) import into refs/heads/workingbranch
Peter Michael Green [Thu, 19 Jan 2023 23:30:32 +0000 (23:30 +0000)]
Merge gtk4 (4.8.3+ds-1+rpi1) import into refs/heads/workingbranch

2 years agoDisable a couple more failing tests.
Peter Michael Green [Thu, 19 Jan 2023 23:31:24 +0000 (23:31 +0000)]
Disable a couple more failing tests.

Gbp-Pq: Name disable-a-couple-more-failing-tests.patch

2 years agoDisable a couple of faliing tests in Raspbian.
Peter Michael Green [Thu, 19 Jan 2023 23:30:32 +0000 (23:30 +0000)]
Disable a couple of faliing tests in Raspbian.

Last-Update: 2021-09-07

Gbp-Pq: Name disable-tests-raspbian.patch

2 years agoDisable clipboard test
Simon McVittie [Fri, 3 Sep 2021 14:08:08 +0000 (15:08 +0100)]
Disable clipboard test

This regularly times out on buildds, but I can't reproduce the hang
locally.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/4229
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Disable-clipboard-test.patch

2 years agoDisable inscription-markup.ui reftest
Simon McVittie [Fri, 12 Aug 2022 09:44:17 +0000 (10:44 +0100)]
Disable inscription-markup.ui reftest

It's rendered 1px to the left of where it should be, which is not a
serious problem for practical use of GTK, but is a test failure.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5099
Forwarded: not-needed, workaround

Gbp-Pq: Topic debian
Gbp-Pq: Name Disable-inscription-markup.ui-reftest.patch

2 years agoreftests: Allow minor differences to be tolerated
Simon McVittie [Sat, 13 Feb 2021 16:19:10 +0000 (16:19 +0000)]
reftests: Allow minor differences to be tolerated

Based on an earlier patch by Michael Biebl, as used in Debian's GTK 3
packaging, with additional inspiration from librsvg's reftests.

Each .ui or .node reftest can have an accompanying .keyfile file
like this:

    [reftest]
    tolerated-diff-level=20
    tolerated-diff-pixels=1000

If the image differs, but the number of pixels that differ is no more
than tolerated-diff-pixels and the differences are no more than
tolerated-diff-level, then we treat it as a success with warnings, save
the .diff.png for analysis, and use g_test_incomplete() to record the
test-case as "TODO".

Signed-off-by: Simon McVittie <smcv@debian.org>
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3195
Applied-upstream: no, upstream want reftests to be a strict pass/fail with identical results required

Gbp-Pq: Topic debian
Gbp-Pq: Name reftests-Allow-minor-differences-to-be-tolerated.patch

2 years agoreftest_compare_surfaces: Report how much the images differ
Simon McVittie [Sat, 13 Feb 2021 18:26:24 +0000 (18:26 +0000)]
reftest_compare_surfaces: Report how much the images differ

In unattended/non-interactive/autobuilder environments where the images
are not trivially accessible, this provides a way to distinguish between
totally different rendering and more subtle issues.

Signed-off-by: Simon McVittie <smcv@debian.org>
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3195
Applied-upstream: no, upstream want reftests to be a strict pass/fail with identical results required

Gbp-Pq: Topic debian
Gbp-Pq: Name reftest_compare_surfaces-Report-how-much-the-images-diffe.patch

2 years agonode-editor: Save test data relative to current working directory
Simon McVittie [Tue, 6 Dec 2022 11:13:59 +0000 (11:13 +0000)]
node-editor: Save test data relative to current working directory

This avoids hard-coding the GTK source directory into the binary, which
would make the binary non-reproducible across different source paths,
particularly in a distro build environment where the source directory
used by autobuilders will often not exist on end-user systems. The node
editor can still be used to create new test-cases by running it with the
GTK source directory as its current working directory.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5403
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5297
Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Name node-editor-Save-test-data-relative-to-current-working-di.patch

2 years agotestsuite: Don't create .test files for flaky or failing tests
Simon McVittie [Wed, 23 Nov 2022 21:26:50 +0000 (21:26 +0000)]
testsuite: Don't create .test files for flaky or failing tests

These tests can be run manually, but are not suitable for use as an
acceptance test, so let's not make frameworks like Debian's autopkgtest
run these when they run ginsttest-runner in the most obvious way.

Signed-off-by: Simon McVittie <smcv@debian.org>
Applied-upstream: 4.9.2, commit:94b57a967c492ab18df8142557710ba0b1a02cee

Gbp-Pq: Name testsuite-Don-t-create-.test-files-for-flaky-or-failing-t.patch

2 years agotestsuite: Use separate setups for unstable tests instead of should_fail
Simon McVittie [Wed, 23 Nov 2022 19:13:32 +0000 (19:13 +0000)]
testsuite: Use separate setups for unstable tests instead of should_fail

There are two possible interpretations of "expected failure": either
the test *must* fail (exactly the inverse of an ordinary test, with
success becoming failure and failure becoming success), or the test
*may* fail (with success intended, but failure possible in some
environments). Autotools had the second interpretation, which seems
more useful in practice, but Meson has the first.

Instead of using should_fail, we can put the tests in one of two new
suites: "flaky" is intended for tests that succeed or fail unpredictably
according to the test environment or chance, while "failing" is for
tests that ought to succeed but currently never do as a result of a
bug or missing functionality. With a sufficiently new version of Meson,
the flaky and failing tests are not run by default, but can be requested
by running a setup that does not exclude them, with a command like:

    meson test --setup=x11_unstable --suite=flaky --suite=failing

As a bonus, now that we're setting up setups and their excluded suites
programmatically, the gsk-compare-broadway tests are also excluded by
default when running the test setup for a non-broadway backend.

When running the tests in CI, --suite=gtk overrides the default
exclude_suites, so we have to specify --no-suite=flaky and
--no-suite=failing explicitly.

This arrangement is inspired by GNOME/glib!2987, which was contributed
by Marco Trevisan.

Signed-off-by: Simon McVittie <smcv@debian.org>
Applied-upstream: 4.9.2, commit:957dd49ef7d371926f90212bdf52b92742062e3e

Gbp-Pq: Name testsuite-Use-separate-setups-for-unstable-tests-instead-.patch

2 years agogtk4 (4.8.3+ds-1+rpi1) bookworm-staging; urgency=medium
Peter Michael Green [Thu, 19 Jan 2023 23:30:32 +0000 (23:30 +0000)]
gtk4 (4.8.3+ds-1+rpi1) bookworm-staging; urgency=medium

  [changes brought forward from 4.4.0+ds1-5+rpi1 by Peter Michael Green <plugwash@raspbian.org> at Tue, 07 Sep 2021 10:26:09 +0000]
  * Disable a couple of faliing tests in Raspbian.
  * Fix clean target.

  [changes introduced in 4.8.3+ds-1+rpi1 by Peter Michael Green]
  * Disable a couple more failing tests.

[dgit import unpatched gtk4 4.8.3+ds-1+rpi1]

2 years agoImport gtk4_4.8.3+ds-1+rpi1.debian.tar.xz
Peter Michael Green [Thu, 19 Jan 2023 23:30:32 +0000 (23:30 +0000)]
Import gtk4_4.8.3+ds-1+rpi1.debian.tar.xz

[dgit import tarball gtk4 4.8.3+ds-1+rpi1 gtk4_4.8.3+ds-1+rpi1.debian.tar.xz]

2 years agod/control.in: gtk-4-examples no longer contains installed-tests
Simon McVittie [Thu, 12 Jan 2023 19:22:57 +0000 (19:22 +0000)]
d/control.in: gtk-4-examples no longer contains installed-tests

Automated tests were split into gtk-4-tests during the move from GTK 3
to 4, but the package description for the examples still mentioned the
tests.

2 years agoRegenerate d/control
Simon McVittie [Thu, 12 Jan 2023 19:22:00 +0000 (19:22 +0000)]
Regenerate d/control

2 years agodebian/tests/python3-gi: stop using deprecated method
Jeremy Bicha [Thu, 12 Jan 2023 17:56:07 +0000 (12:56 -0500)]
debian/tests/python3-gi: stop using deprecated method

2 years agoRelease to unstable
Simon McVittie [Tue, 3 Jan 2023 12:45:39 +0000 (12:45 +0000)]
Release to unstable

2 years agoMake fast forward from 4.8.2+ds-4
Simon McVittie [Tue, 3 Jan 2023 12:45:21 +0000 (12:45 +0000)]
Make fast forward from 4.8.2+ds-4

[dgit --quilt=unapplied]

2 years agoImport gtk4_4.8.3+ds.orig.tar.xz
Simon McVittie [Tue, 3 Jan 2023 12:45:21 +0000 (12:45 +0000)]
Import gtk4_4.8.3+ds.orig.tar.xz

[dgit import orig gtk4_4.8.3+ds.orig.tar.xz]

2 years agoDisable clipboard test
Simon McVittie [Fri, 3 Sep 2021 14:08:08 +0000 (15:08 +0100)]
Disable clipboard test

This regularly times out on buildds, but I can't reproduce the hang
locally.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/4229
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Disable-clipboard-test.patch

2 years agoDisable inscription-markup.ui reftest
Simon McVittie [Fri, 12 Aug 2022 09:44:17 +0000 (10:44 +0100)]
Disable inscription-markup.ui reftest

It's rendered 1px to the left of where it should be, which is not a
serious problem for practical use of GTK, but is a test failure.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5099
Forwarded: not-needed, workaround

Gbp-Pq: Topic debian
Gbp-Pq: Name Disable-inscription-markup.ui-reftest.patch

2 years agoreftests: Allow minor differences to be tolerated
Simon McVittie [Sat, 13 Feb 2021 16:19:10 +0000 (16:19 +0000)]
reftests: Allow minor differences to be tolerated

Based on an earlier patch by Michael Biebl, as used in Debian's GTK 3
packaging, with additional inspiration from librsvg's reftests.

Each .ui or .node reftest can have an accompanying .keyfile file
like this:

    [reftest]
    tolerated-diff-level=20
    tolerated-diff-pixels=1000

If the image differs, but the number of pixels that differ is no more
than tolerated-diff-pixels and the differences are no more than
tolerated-diff-level, then we treat it as a success with warnings, save
the .diff.png for analysis, and use g_test_incomplete() to record the
test-case as "TODO".

Signed-off-by: Simon McVittie <smcv@debian.org>
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3195
Applied-upstream: no, upstream want reftests to be a strict pass/fail with identical results required

Gbp-Pq: Topic debian
Gbp-Pq: Name reftests-Allow-minor-differences-to-be-tolerated.patch

2 years agoreftest_compare_surfaces: Report how much the images differ
Simon McVittie [Sat, 13 Feb 2021 18:26:24 +0000 (18:26 +0000)]
reftest_compare_surfaces: Report how much the images differ

In unattended/non-interactive/autobuilder environments where the images
are not trivially accessible, this provides a way to distinguish between
totally different rendering and more subtle issues.

Signed-off-by: Simon McVittie <smcv@debian.org>
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/3195
Applied-upstream: no, upstream want reftests to be a strict pass/fail with identical results required

Gbp-Pq: Topic debian
Gbp-Pq: Name reftest_compare_surfaces-Report-how-much-the-images-diffe.patch

2 years agonode-editor: Save test data relative to current working directory
Simon McVittie [Tue, 6 Dec 2022 11:13:59 +0000 (11:13 +0000)]
node-editor: Save test data relative to current working directory

This avoids hard-coding the GTK source directory into the binary, which
would make the binary non-reproducible across different source paths,
particularly in a distro build environment where the source directory
used by autobuilders will often not exist on end-user systems. The node
editor can still be used to create new test-cases by running it with the
GTK source directory as its current working directory.

Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/5403
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/5297
Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Name node-editor-Save-test-data-relative-to-current-working-di.patch

2 years agotestsuite: Don't create .test files for flaky or failing tests
Simon McVittie [Wed, 23 Nov 2022 21:26:50 +0000 (21:26 +0000)]
testsuite: Don't create .test files for flaky or failing tests

These tests can be run manually, but are not suitable for use as an
acceptance test, so let's not make frameworks like Debian's autopkgtest
run these when they run ginsttest-runner in the most obvious way.

Signed-off-by: Simon McVittie <smcv@debian.org>
Applied-upstream: 4.9.2, commit:94b57a967c492ab18df8142557710ba0b1a02cee

Gbp-Pq: Name testsuite-Don-t-create-.test-files-for-flaky-or-failing-t.patch

2 years agotestsuite: Use separate setups for unstable tests instead of should_fail
Simon McVittie [Wed, 23 Nov 2022 19:13:32 +0000 (19:13 +0000)]
testsuite: Use separate setups for unstable tests instead of should_fail

There are two possible interpretations of "expected failure": either
the test *must* fail (exactly the inverse of an ordinary test, with
success becoming failure and failure becoming success), or the test
*may* fail (with success intended, but failure possible in some
environments). Autotools had the second interpretation, which seems
more useful in practice, but Meson has the first.

Instead of using should_fail, we can put the tests in one of two new
suites: "flaky" is intended for tests that succeed or fail unpredictably
according to the test environment or chance, while "failing" is for
tests that ought to succeed but currently never do as a result of a
bug or missing functionality. With a sufficiently new version of Meson,
the flaky and failing tests are not run by default, but can be requested
by running a setup that does not exclude them, with a command like:

    meson test --setup=x11_unstable --suite=flaky --suite=failing

As a bonus, now that we're setting up setups and their excluded suites
programmatically, the gsk-compare-broadway tests are also excluded by
default when running the test setup for a non-broadway backend.

When running the tests in CI, --suite=gtk overrides the default
exclude_suites, so we have to specify --no-suite=flaky and
--no-suite=failing explicitly.

This arrangement is inspired by GNOME/glib!2987, which was contributed
by Marco Trevisan.

Signed-off-by: Simon McVittie <smcv@debian.org>
Applied-upstream: 4.9.2, commit:957dd49ef7d371926f90212bdf52b92742062e3e

Gbp-Pq: Name testsuite-Use-separate-setups-for-unstable-tests-instead-.patch

2 years agod/copyright: Add details of run-with-display script
Simon McVittie [Tue, 3 Jan 2023 12:42:25 +0000 (12:42 +0000)]
d/copyright: Add details of run-with-display script

2 years agod/copyright: Move standalone license stanzas to the end
Simon McVittie [Tue, 3 Jan 2023 12:42:12 +0000 (12:42 +0000)]
d/copyright: Move standalone license stanzas to the end

2 years agod/tests/build: Avoid PWD bashism
Simon McVittie [Tue, 3 Jan 2023 12:37:13 +0000 (12:37 +0000)]
d/tests/build: Avoid PWD bashism

2 years agod/tests/build: Suppress D-Bus/a11y warnings
Simon McVittie [Tue, 3 Jan 2023 12:26:48 +0000 (12:26 +0000)]
d/tests/build: Suppress D-Bus/a11y warnings

2 years agod/tests/python3-gi: Explicitly disable a11y
Simon McVittie [Tue, 3 Jan 2023 12:25:21 +0000 (12:25 +0000)]
d/tests/python3-gi: Explicitly disable a11y

This version of GTK logs a warning (which makes the autopkgtest fail)
if we cannot contact the a11y bus provided by AT-SPI.

2 years agod/tests: Quote more defensively
Simon McVittie [Tue, 3 Jan 2023 12:24:45 +0000 (12:24 +0000)]
d/tests: Quote more defensively

2 years agod/run-tests.sh: Use dh_auto_test
Simon McVittie [Tue, 3 Jan 2023 10:22:42 +0000 (10:22 +0000)]
d/run-tests.sh: Use dh_auto_test

In particular this forces the C.UTF-8 locale, which should mean the tests
pass even when run under a non-UTF-8 locale like C (which official Debian
buildds do not do, but some other environments like reproducible-builds
might).

Closes: #1027680
2 years agod/tests/run-with-display: Use absolute path to WAYLAND_DISPLAY socket
Simon McVittie [Tue, 3 Jan 2023 11:15:07 +0000 (11:15 +0000)]
d/tests/run-with-display: Use absolute path to WAYLAND_DISPLAY socket

This means we can still use the Wayland display, even when dh_auto_test
changes our XDG_RUNTIME_DIR.

2 years agoUpdate changelog
Simon McVittie [Tue, 3 Jan 2023 09:47:52 +0000 (09:47 +0000)]
Update changelog

2 years agoDrop patches that were applied upstream
Simon McVittie [Tue, 3 Jan 2023 09:45:58 +0000 (09:45 +0000)]
Drop patches that were applied upstream

2 years agoNew upstream release
Simon McVittie [Tue, 3 Jan 2023 09:40:49 +0000 (09:40 +0000)]
New upstream release

2 years agoUpdate upstream source from tag 'upstream/4.8.3+ds'
Simon McVittie [Tue, 3 Jan 2023 09:40:49 +0000 (09:40 +0000)]
Update upstream source from tag 'upstream/4.8.3+ds'

Update to upstream version '4.8.3+ds'
with Debian dir 6122bb6b29c3012752f6dedab6935025ff82eee1

2 years agoNew upstream version 4.8.3+ds
Simon McVittie [Tue, 3 Jan 2023 09:40:21 +0000 (09:40 +0000)]
New upstream version 4.8.3+ds

2 years ago4.8.3
Matthias Clasen [Thu, 22 Dec 2022 18:35:11 +0000 (13:35 -0500)]
4.8.3

2 years agoMerge branch 'cherry-pick-acd7d739' into 'gtk-4-8'
Matthias Clasen [Thu, 22 Dec 2022 18:41:22 +0000 (18:41 +0000)]
Merge branch 'cherry-pick-acd7d739' into 'gtk-4-8'

[4.8] GdkWin32: Fix resizes with native decorations

See merge request GNOME/gtk!5368

2 years agoGdkWin32: Fix resizes with native decorations
Luca Bacci [Fri, 7 Oct 2022 16:15:29 +0000 (18:15 +0200)]
GdkWin32: Fix resizes with native decorations

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5142
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5088
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5090

2 years agoMerge branch 'hicolor-backport' into 'gtk-4-8'
Matthias Clasen [Wed, 21 Dec 2022 07:30:05 +0000 (07:30 +0000)]
Merge branch 'hicolor-backport' into 'gtk-4-8'

Merge branch 'include-hicolor-index-theme-as-resource-rebased' into 'main'

See merge request GNOME/gtk!5364

2 years agotests: Maybe skip introspection tests
Matthias Clasen [Tue, 20 Dec 2022 02:18:16 +0000 (21:18 -0500)]
tests: Maybe skip introspection tests

If we don't find the python gi module,
skip the introspection test.

2 years agoMerge branch 'include-hicolor-index-theme-as-resource-rebased' into 'main'
Luca Bacci [Tue, 20 Dec 2022 16:08:11 +0000 (16:08 +0000)]
Merge branch 'include-hicolor-index-theme-as-resource-rebased' into 'main'

Include hicolor index.theme as a resource (rebased)

Closes #5303

See merge request GNOME/gtk!5361

2 years agoMerge branch 'cherry-pick-ae097d96' into 'gtk-4-8'
Benjamin Otte [Wed, 21 Dec 2022 02:41:07 +0000 (02:41 +0000)]
Merge branch 'cherry-pick-ae097d96' into 'gtk-4-8'

listbase: Cancel rubberband if not handling drag

See merge request GNOME/gtk!5363

2 years agoMerge branch 'wip/antoniof/listbase-rubberband-better-fix' into 'main'
Benjamin Otte [Wed, 21 Dec 2022 01:14:57 +0000 (01:14 +0000)]
Merge branch 'wip/antoniof/listbase-rubberband-better-fix' into 'main'

listbase: Cancel rubberband if not handling drag

See merge request GNOME/gtk!4831

(cherry picked from commit ae097d9674177ea4d91d67c170f27fda8b337a1d)

efbd2289 listbase: Cancel rubberband if not handling drag

2 years agoUpdate Russian translation
Aleksandr Melman [Tue, 20 Dec 2022 09:21:34 +0000 (09:21 +0000)]
Update Russian translation

3 years agoMerge branch 'cherry-pick-1f001a8f' into 'gtk-4-8'
Matthias Clasen [Thu, 15 Dec 2022 17:10:33 +0000 (17:10 +0000)]
Merge branch 'cherry-pick-1f001a8f' into 'gtk-4-8'

Merge branch 'wip/corey/listbase-focus' into 'main'

See merge request GNOME/gtk!5338

3 years agoMerge branch 'cherry-pick-e8f70be2' into 'gtk-4-8'
Matthias Clasen [Thu, 15 Dec 2022 16:27:57 +0000 (16:27 +0000)]
Merge branch 'cherry-pick-e8f70be2' into 'gtk-4-8'

Merge branch 'wip/otte/for-5422' into 'main'

See merge request GNOME/gtk!5331

3 years agoMerge branch 'wip/corey/listbase-focus' into 'main'
Benjamin Otte [Wed, 14 Dec 2022 19:06:57 +0000 (19:06 +0000)]
Merge branch 'wip/corey/listbase-focus' into 'main'

listbase: Use set_focus_child properly

Closes #5433 and #5432

See merge request GNOME/gtk!5169

(cherry picked from commit 1f001a8f6af1c761d8b47e9f5eb0e8936d77d92a)

7081bfc6 listbase: Split scroll_to_item for reuse
93e591fd listbase: Use set_focus_child properly

3 years agoMerge branch 'x11-fixes-backports-4-8' into 'gtk-4-8'
Matthias Clasen [Thu, 15 Dec 2022 00:25:25 +0000 (00:25 +0000)]
Merge branch 'x11-fixes-backports-4-8' into 'gtk-4-8'

Assorted x11 fix backports

See merge request GNOME/gtk!5333

3 years agoMerge branch 'update-ci-image-4-8' into 'gtk-4-8'
Matthias Clasen [Thu, 15 Dec 2022 00:24:54 +0000 (00:24 +0000)]
Merge branch 'update-ci-image-4-8' into 'gtk-4-8'

text: Prevent unexpected notify::direction emissions

See merge request GNOME/gtk!5334

3 years agoGetting desperate
Matthias Clasen [Wed, 14 Dec 2022 20:09:04 +0000 (15:09 -0500)]
Getting desperate

3 years agoci: Another fixup
Matthias Clasen [Wed, 14 Dec 2022 19:02:53 +0000 (14:02 -0500)]
ci: Another fixup

3 years agoci: Add /home/user/.local/bin to PATH
Matthias Clasen [Wed, 14 Dec 2022 18:12:55 +0000 (13:12 -0500)]
ci: Add /home/user/.local/bin to PATH

3 years agoInstall meson 0.64 in ci jobs
Matthias Clasen [Wed, 14 Dec 2022 17:42:58 +0000 (12:42 -0500)]
Install meson 0.64 in ci jobs

3 years agoci: Try to defeat the caching
Matthias Clasen [Wed, 14 Dec 2022 16:36:53 +0000 (11:36 -0500)]
ci: Try to defeat the caching

Drop subprojects/glib from the caching, since it
fails to update.

3 years agovulkan: Add missing enumeration
Emmanuele Bassi [Sat, 26 Nov 2022 14:56:10 +0000 (14:56 +0000)]
vulkan: Add missing enumeration

Check for VK_ERROR_COMPRESSION_EXHAUSTED_EXT.

3 years agoDon't emit ::notify from a getter
Matthias Clasen [Sun, 27 Nov 2022 02:53:33 +0000 (21:53 -0500)]
Don't emit ::notify from a getter

GdkX11Keymap ddetermines the direction of the
keymap on demand, and was emitting notify::direction

3 years agomountoperation: Add a mnemonic to a button
Matthias Clasen [Thu, 6 Oct 2022 00:14:09 +0000 (20:14 -0400)]
mountoperation: Add a mnemonic to a button

This is a good practice, even if this is a rarely
used dialog.

3 years agomountoperation: Don't use a treeview
Matthias Clasen [Wed, 5 Oct 2022 01:24:16 +0000 (21:24 -0400)]
mountoperation: Don't use a treeview

Port the process list from GtkTreeView
to GtkListView, and fix a number of broken
things along the way.

3 years agotestmountoperation: Test process dialog
Matthias Clasen [Wed, 5 Oct 2022 01:25:26 +0000 (21:25 -0400)]
testmountoperation: Test process dialog

Without this, it is hard to trigger the
dialog. Event with this, we have to force
GtkMountOperation to use its own dialog.

3 years agomountoperation: Survive on Wayland
Matthias Clasen [Wed, 5 Oct 2022 00:15:43 +0000 (20:15 -0400)]
mountoperation: Survive on Wayland

The code was assuming it is dealing with an
X11 display, and trigger assertions. Fix that
to make it work at least as well as it does
on Windows.

3 years agotext: Prevent unexpected notify::direction emissions
Matthias Clasen [Fri, 25 Nov 2022 12:59:35 +0000 (07:59 -0500)]
text: Prevent unexpected notify::direction emissions

Calling gdk_device_get_direction can trigger a
notify::direction emissions, since the X11 backend
determines the direction on demand. Prevent that by
forcing the direction to be determined ahead of time.

Fixes: #5311
3 years agogdk/x11: Clear all data in GdkSurfaceX11 finalization
Carlos Garnacho [Wed, 7 Dec 2022 12:16:36 +0000 (13:16 +0100)]
gdk/x11: Clear all data in GdkSurfaceX11 finalization

Currently, the GdkSurfaceX11 implementation relies that the upper
layers hid the surface before destruction, and that no
GdkSurfaceClass.compute_resize happened between them. If these
circumstances happened, there would be a compute_size timeout left
dangling after the surface got destroyed, poking at incorrect data
later on. Something that looks like this was reported in the
recent mutter-x11-frames "SSD frames server":

    mutter-x11-frames:423016): GLib-GObject-WARNING **: 19:41:16.869: invalid unclassed pointer in cast to 'GtkWindow'

    Thread 1 "mutter-x11-fram" received signal SIGTRAP, Trace/breakpoint trap.
    g_logv (log_domain=0x7ffff7f7c4f8 "GLib-GObject", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=<optimized out>) at ../../../glib/gmessages.c:1433
    1433 ../../../glib/gmessages.c: No such file or directory.
    (gdb) bt
    #0  g_logv (log_domain=0x7ffff7f7c4f8 "GLib-GObject", log_level=G_LOG_LEVEL_WARNING, format=<optimized out>, args=<optimized out>) at ../../../glib/gmessages.c:1433
    #1  0x00007ffff73470ff in g_log (log_domain=log_domain@entry=0x7ffff7f7c4f8 "GLib-GObject", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0x7ffff7f84da8 "invalid unclassed pointer in cast to '%s'")
        at ../../../glib/gmessages.c:1471
    #2  0x00007ffff7f72892 in g_type_check_instance_cast (type_instance=type_instance@entry=0x5555558e04b0, iface_type=<optimized out>) at ../../../gobject/gtype.c:4144
    #3  0x00007ffff791e77d in toplevel_compute_size (toplevel=<optimized out>, size=0x7fffffffe170, widget=0x5555558e04b0) at ../../../gtk/gtkwindow.c:4227
    #4  0x00007ffff7f4f3b0 in g_closure_invoke (closure=0x555555898cc0, return_value=return_value@entry=0x0, n_param_values=2, param_values=param_values@entry=0x7fffffffdeb0, invocation_hint=invocation_hint@entry=0x7fffffffde30)
        at ../../../gobject/gclosure.c:832
    #5  0x00007ffff7f62076 in signal_emit_unlocked_R
        (node=node@entry=0x55555588feb0, detail=detail@entry=0, instance=instance@entry=0x55555560e990, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffdeb0)
        at ../../../gobject/gsignal.c:3796
    #6  0x00007ffff7f68bf5 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffe050) at ../../../gobject/gsignal.c:3549
    #7  0x00007ffff7f68dbf in <emit signal ??? on instance 0x55555560e990 [GdkX11Toplevel]> (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0) at ../../../gobject/gsignal.c:3606
    #8  0x00007ffff7a8de96 in gdk_toplevel_notify_compute_size (toplevel=<optimized out>, size=size@entry=0x7fffffffe170) at ../../../gdk/gdktoplevel.c:112
    #9  0x00007ffff7a4b15a in compute_toplevel_size (surface=surface@entry=0x55555560e990 [GdkX11Toplevel], update_geometry=update_geometry@entry=1, width=width@entry=0x7fffffffe220, height=height@entry=0x7fffffffe224)
        at ../../../gdk/x11/gdksurface-x11.c:281
    #10 0x00007ffff7a4c3b2 in compute_size_idle (user_data=0x55555560e990) at ../../../gdk/x11/gdksurface-x11.c:356
    #11 0x00007ffff733f67f in g_main_dispatch (context=0x55555563f6e0) at ../../../glib/gmain.c:3444
    #12 g_main_context_dispatch (context=context@entry=0x55555563f6e0) at ../../../glib/gmain.c:4162
    #13 0x00007ffff733fa38 in g_main_context_iterate (context=0x55555563f6e0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4238
    #14 0x00007ffff733fcef in g_main_loop_run (loop=loop@entry=0x5555560874a0) at ../../../glib/gmain.c:4438
    #15 0x0000555555557de0 in main (argc=<optimized out>, argv=<optimized out>) at ../src/frames/main.c:68

It perhaps makes sense to warn in these situations, but either way
it sounds like gdk_surface_x11_finalize() could enforce the correct
behavior by ensuring there is no dangling timeouts/data. This commit
does that.

3 years agoDon't emit ::notify from a getter
Matthias Clasen [Sun, 27 Nov 2022 02:53:33 +0000 (21:53 -0500)]
Don't emit ::notify from a getter

GdkX11Keymap ddetermines the direction of the
keymap on demand, and was emitting notify::direction

3 years agoUpdate Persian translation
Danial Behzadi [Wed, 14 Dec 2022 12:33:15 +0000 (12:33 +0000)]
Update Persian translation

3 years agomountoperation: Add a mnemonic to a button
Matthias Clasen [Thu, 6 Oct 2022 00:14:09 +0000 (20:14 -0400)]
mountoperation: Add a mnemonic to a button

This is a good practice, even if this is a rarely
used dialog.

3 years agomountoperation: Don't use a treeview
Matthias Clasen [Wed, 5 Oct 2022 01:24:16 +0000 (21:24 -0400)]
mountoperation: Don't use a treeview

Port the process list from GtkTreeView
to GtkListView, and fix a number of broken
things along the way.

3 years agotestmountoperation: Test process dialog
Matthias Clasen [Wed, 5 Oct 2022 01:25:26 +0000 (21:25 -0400)]
testmountoperation: Test process dialog

Without this, it is hard to trigger the
dialog. Event with this, we have to force
GtkMountOperation to use its own dialog.

3 years agomountoperation: Survive on Wayland
Matthias Clasen [Wed, 5 Oct 2022 00:15:43 +0000 (20:15 -0400)]
mountoperation: Survive on Wayland

The code was assuming it is dealing with an
X11 display, and trigger assertions. Fix that
to make it work at least as well as it does
on Windows.

3 years agoMerge branch 'wip/otte/for-5422' into 'main'
Corey Berla [Wed, 14 Dec 2022 01:56:04 +0000 (01:56 +0000)]
Merge branch 'wip/otte/for-5422' into 'main'

contentserializer: Serialize to file:// if possible

Closes #5422

See merge request GNOME/gtk!5330

(cherry picked from commit e8f70be2c1c0532666941db9049cdb7307633e13)

ea056d26 contentserializer: Serialize to file:// if possible

3 years agotext: Prevent unexpected notify::direction emissions
Matthias Clasen [Fri, 25 Nov 2022 12:59:35 +0000 (07:59 -0500)]
text: Prevent unexpected notify::direction emissions

Calling gdk_device_get_direction can trigger a
notify::direction emissions, since the X11 backend
determines the direction on demand. Prevent that by
forcing the direction to be determined ahead of time.

Fixes: #5311