Commit Graph

74609 Commits

Author SHA1 Message Date
Matthias Clasen
a0de7884cd Merge branch 'another-flaky-reftest' into 'main'
ci: Declare a reftest as flaky

See merge request GNOME/gtk!5354
2022-12-20 05:07:51 +00:00
Matthias Clasen
b5b9cb189f Merge branch 'macos-ci-is-iffy' into 'main'
ci: Mark macos build as allow-fail

See merge request GNOME/gtk!5355
2022-12-20 05:02:25 +00:00
Matthias Clasen
ee2152ff5c ci: Mark macos build as allow-fail
It fails too often, and it never does us
any good.
2022-12-19 23:55:13 -05:00
Matthias Clasen
d8d5cace2a ci: Declare a reftest as flaky
fixed-widget-stacking is failing frequently due
to a blinking cursor showing up in one of the
windows in ci.
2022-12-19 23:52:51 -05:00
Matthias Clasen
21e9a508bd Merge branch 'fix-gtk_doc=true' into 'main'
meson: Require gi-docgen when gtk_doc is required

See merge request GNOME/gtk!5351
2022-12-20 04:17:22 +00:00
Matthias Clasen
3121f88265 build: Drop the install-tests option
We no longer use installed tests in CI,
so lets reap the benefit and simplify
our build setup for tests.
2022-12-19 23:12:47 -05:00
Matthias Clasen
b56224fc16 Merge branch 'fix-introspection-test-deps' into 'main'
build: Lift gir and build_gir to toplevel

See merge request GNOME/gtk!5350
2022-12-20 04:04:17 +00:00
Nirbheek Chauhan
4346a33a63 meson: Require gi-docgen when gtk_doc is required
Fixes build with only `-Dgtk_doc=true` without
`-Dintrospection=enabled`:

    Program gi-docgen found: NO
    Configuring gdk4.toml using configuration

    docs/reference/gdk/meson.build:13:2: ERROR: Tried to use not-found external program in "command"

`introspection` is `auto` by default.

The rest of the docs build is only contingent on
`if get_option('gtk_doc')` so we should use the same restriction here.

We check for `build_gir` below already, and the gi-docgen subproject
itself does not need gobject-introspection so it's fine to do it like
this.
2022-12-20 09:27:48 +05:30
Matthias Clasen
596f59f471 tests: Maybe skip introspection tests
If we don't find the python gi module,
skip the introspection test.
2022-12-19 22:38:38 -05:00
Matthias Clasen
d758754f20 build: Lift gir and build_gir to toplevel
build_gir is used in multiple subdirectories,
so it is a bit nasty that it is defined in
one too.
2022-12-19 22:38:38 -05:00
Emmanuele Bassi
e049b6992d Merge branch 'ebassi/ci-image-for-main' into 'main'
Various CI fixes

See merge request GNOME/gtk!5349
2022-12-20 03:37:43 +00:00
Emmanuele Bassi
ca0bae2196 ci: Don't cache subprojects
We're downloading them anyway.
2022-12-20 02:41:52 +00:00
Matthias Clasen
a920c0d2de Merge branch 'wip/gtk4-fix-delete-surrounding' into 'main'
gtkimcontextwayland: Convert byte based offset to char based offset in delete_surrounding_text

See merge request GNOME/gtk!5254
2022-12-20 02:40:14 +00:00
Emmanuele Bassi
0db3666d3c tests: Add shorthand-entry-border to the flaky suite
This test fairly consistently times out when running in a contended CI.
2022-12-20 02:18:25 +00:00
Emmanuele Bassi
2b808bf849 ci: Remove installed-tests job
Installed tests require access to the system prefix, and thus a
system-wide installation of Meson, which we don't have.

We're going to restore this job at a later date.
2022-12-20 01:56:28 +00:00
Emmanuele Bassi
737342ef23 ci: Don't use builddep to install Wayland build dependencies
We don't want to bring undefined dependencies into the image.

Additionally, Wayland depends on Meson, and we don't want to use
Fedora's version of Meson.
2022-12-20 01:54:57 +00:00
Emmanuele Bassi
cf709473f7 ci: Update the Fedora image 2022-12-20 01:54:57 +00:00
Alynx Zhou
ad83d616c4 gtkimcontextwayland: Convert byte based offset to char based offset in delete_surrounding_text
ClutterInputFocus/GtkIMContext uses char based offset for
delete_surrounding, however, text_input_v3 uses byte based offset for
it. Currently only GTK with mutter can work correctly via text_input_v3
because they both forget to convert between char based offset and byte
based offset.

This commit fixes it in GTK by converting byte based offset to char
based offset with the UTF-8 encoded surrounding text.

Fixes <https://gitlab.gnome.org/GNOME/gtk/-/issues/4566>.
2022-12-20 09:51:08 +08:00
Matthias Clasen
98bb14a849 Merge branch 'meson-subproject-usage-fixes' into 'main'
Various fixes for using gtk4 as a meson subproject

See merge request GNOME/gtk!5347
2022-12-20 01:50:47 +00:00
António Fernandes
efbd228940 listbase: Cancel rubberband if not handling drag
If the drag events are claimed by another gesture (e.g. a GtkDragSource
in an item widget), list base still commits a rubberband selection, for
a rubberband which wasn't even visible yet. This is a problem for the
GNOME Files application which needs both rubberbanding and drag-n-drop.

My previous fix[0] was enough for the case where the event sequence is
claimed right before the first GtkDragGesture::drag-update emission,
but it's useless if the event is claimed later (e.g. after the drag
treashold), because a rubberband already exists by that time.

Therefore, the complete solution requres checking whether the event
sequence is no longer being handled by our gesture, and commit the
selection changes only if it is, but otherwise cleanup the rubberband.

This is what GtkFlowBox does already, so let's do the same here.

[0] commit dc4540fae9
2022-12-18 21:31:31 -10:00
Nirbheek Chauhan
64c8da1bdd ci: Always update subprojects to latest revision
Otherwise we're not actually updating anything. `meson subprojects
download` will skip subprojects that already exist.
2022-12-19 09:08:28 +05:30
Nirbheek Chauhan
7242408d60 ci: Fix fedora-mingw64 job 2022-12-19 03:09:11 +05:30
Nirbheek Chauhan
9c6dd9b3b5 ci: Update meson version used for vs2017 job 2022-12-19 03:09:11 +05:30
Nirbheek Chauhan
cd77936265 meson: Fix find_program and subproject usage
Dummy dependencies are not required to execute a subproject
automatically for providing a program, nor do you need to explicitly
call subproject() to do that.

A `[provide]` section in the wrap file is enough.
2022-12-19 03:09:11 +05:30
Nirbheek Chauhan
53c37cfc17 meson: Stop using fallback: kwarg for deps that don't need it
Subprojects that use meson.override_dependency() do not require the
caller to provide the dependency variable name inside the subproject.

We also don't want to provide the *subproject* name, because the
subproject name can be `pango-1.50.12` instead of `pango` when using
wrap-file to download the tarball instead of using wrap-git. This
causes the pango subproject to be executed twice when using gtk as
a subproject inside gstreamer (which uses pango-1.50.12 as
a wrap-file).

All the dependencies we use can be switched in this way, but the
remaining ones need to be changed to use meson.override_dependency()
first.
2022-12-19 03:09:11 +05:30
Nirbheek Chauhan
1a1f92178e meson: Update gitlab.gnome.org SSH server names
Also switch the wrap file style to use spaces around `=` which is the
canonical style used by wrapdb now.
2022-12-18 21:42:03 +05:30
Nirbheek Chauhan
6b111a9fda meson: Remove redundant, duplicate, harfbuzz check 2022-12-18 21:42:03 +05:30
Nirbheek Chauhan
cc6b0c5750 meson: Always look for both cmake and pkgconfig names
The is_msvc_like change is wrong; it used a false correlation between
"compiler being used" and "dependency method" by saying that on
Windows, when building with MSVC, you will only use CMake to find png,
jpeg, tiff.

You can use pkgconfig to find these deps on Windows with MSVC -- when
the deps have been built with Autotools or Meson (with MSVC). You can
also find these deps using CMake on other platforms like macOS or
Linux.

The solution is simple: just search for both names on all platforms,
and just search for the pkgconfig name first.
2022-12-18 21:42:03 +05:30
Matthias Clasen
235f01952c Merge branch 'nirbheek/fix-build-with-latest-glib' into 'main'
gdk: Fix g_set_str version check

See merge request GNOME/gtk!5348
2022-12-18 16:07:11 +00:00
Nirbheek Chauhan
e2291259bb gdk: Fix g_set_str version check
The function was added to glib in 2.75.1. This fixes gtk's build with
the glib main branch.
2022-12-18 11:29:10 +05:30
sunflowerskater
6b71ccdb43 GtkFileChooser: Tweak Grid View & List View button tooltips
The tooltips from the Grid View & List View buttons are unnecessarily long and look different from the tooltips used in Nautilus.

This commit makes the tooltips to be consistent with Nautilus and, consequently, makes them shorter.
2022-12-17 18:21:10 -03:00
Matthias Clasen
c81a793f63 Merge branch 'wip/cdavis/file-dialog-accept-label' into 'main'
gtkfiledialog: Allow devs to set custom accept labels

Closes #5421

See merge request GNOME/gtk!5339
2022-12-16 17:04:00 +00:00
Christopher Davis
143229f829 gtkfiledialog: Allow devs to set custom accept labels
Accept labels can be used for additional context regarding
the purpose of a file. The old GtkFileChooser APIs allowed
developers to set it, but the initial FileDialog API was missing
this functionality.

This commit adds `gtk_file_dialog_set_accept_label ()` to
restore the missing functionality.

Closes https://gitlab.gnome.org/GNOME/gtk/-/issues/5421
2022-12-16 10:16:52 -05:00
Christopher Davis
3e86bc65f5 gdkprivate: Add compatibility shim for g_set_str()
Allows us to make use of this API without depending
on bleeding-edge glib
2022-12-16 10:16:52 -05:00
Luca Bacci
b563736b66 Include hicolor index.theme as a resource
index.theme file copied from upstream xdg/default-icon-theme
repository at tag 0.17:

https://gitlab.freedesktop.org/xdg/default-icon-theme/-/tree/0.17

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5303
2022-12-16 14:58:59 +01:00
Matthias Clasen
2442ed87fe Merge branch 'matthiasc/for-main' into 'main'
Silence a compiler warning

See merge request GNOME/gtk!5340
2022-12-16 12:30:26 +00:00
Matthias Clasen
6cb5f20942 Silence a compiler warning 2022-12-16 00:12:44 -05:00
Matthias Clasen
aafc6279a3 Merge branch 'ebassi/ci-image-for-main' into 'main'
ci: Install Meson in the build jobs

See merge request GNOME/gtk!5335
2022-12-16 03:55:18 +00:00
Matthias Clasen
2154460139 Merge branch 'no-portals' into 'main'
Add GDK_DEBUG=no-portals

Closes #5441

See merge request GNOME/gtk!5336
2022-12-15 16:27:33 +00:00
Matthias Clasen
ef17a44876 Merge branch 'deprecate-show-hide' into 'main'
Deprecate gtk_widget_show/hide

See merge request GNOME/gtk!5278
2022-12-15 14:53:48 +00:00
Matthias Clasen
8eace1c385 Merge branch 'check-button-radio-docs' into 'main'
gtkcheckbutton: Document how to keep track of changes for radio buttons

See merge request GNOME/gtk!5328
2022-12-15 00:25:08 +00:00
Benjamin Otte
1f001a8f6a Merge branch 'wip/corey/listbase-focus' into 'main'
listbase: Use set_focus_child properly

Closes #5433 and #5432

See merge request GNOME/gtk!5169
2022-12-14 19:06:57 +00:00
Emmanuele Bassi
a2b00f7ea7 ci: Install tests in a separate prefix
Avoid using `sudo` in the installed-tests CI job, since we're installing
Meson as the current user.
2022-12-14 19:02:23 +00:00
Pablo Correa Gómez
42ba97eb5c gtkcheckbutton: Document how to keep track of changes for radio buttons 2022-12-14 20:02:07 +01:00
Matthias Clasen
e5560c1535 Add GDK_DEBUG=no-portals
Fixes: #5441
2022-12-14 13:50:20 -05:00
Emmanuele Bassi
7fca091371 ci: Redefine PATH 2022-12-14 18:39:34 +00:00
Corey Berla
93e591fdf1 listbase: Use set_focus_child properly
The EventControllerFocus on the list item, updates the list base focus
tracker and scrolled to position any time the list item enters focus.
This works when interacting within a single window, but has unexpected
results when changing focus between multiple windows.

Instead of using the focus controller workaround, just make
gtk_list_base_update_focus_tracker the set_focus_child vfunc

Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5433
Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/5432
2022-12-14 07:56:57 -10:00
Corey Berla
7081bfc614 listbase: Split scroll_to_item for reuse 2022-12-14 07:51:34 -10:00
Emmanuele Bassi
cd7627ed02 ci: Consistently use meson subcommands
meson setup:
  configuration
meson compile:
  compilation
meson install
  installation

Do not use ninja directly, and do not use `meson` as a synonym for
`meson setup`.
2022-12-14 17:44:27 +00:00
Emmanuele Bassi
ce9069c85f build: Add known to be failing gsk comparison tests
The unaligned-offscreen and upside-down-label-3d tests are failing after
upgrading our CI images, seemingly because of some font rendering issue
that is hard to track. Let's use the "failing" testsuite mechanism that
we also use for the reftests.
2022-12-14 17:40:04 +00:00