Matthias Clasen [Mon, 8 May 2023 19:53:42 +0000 (15:53 -0400)]
Use GTK_COMPILATION throughout
It is a bit ugly that it doesn't fit the neat
namespace schema, but it is what we use everywhere.
Matthias Clasen [Mon, 8 May 2023 19:53:27 +0000 (15:53 -0400)]
Don't excessively define GDK_EXTERN
Once is enough.
Matthias Clasen [Mon, 8 May 2023 19:43:08 +0000 (15:43 -0400)]
Make it build
Fix the circular dependency by moving the generated
headers to gdk/version/, and build that directory
first.
Misc other fixes, such as putting the custom targets
as sources, not depedencies, and using the correct
major version in the generator script.
Emmanuele Bassi [Mon, 8 May 2023 18:39:35 +0000 (19:39 +0100)]
Generate version and deprecation macros at build time
Let's poach the same script used by GLib to avoid having to add all the
version macros by hand every time we increment the GTK version.
This is a work in progress:
- need to rename the GLIB_STATIC_COMPILATION check
- circular dependency: libgtkcss depends on gdkversionmacros.h, but libgdk
depends on libgtkcss
Benjamin Otte [Tue, 9 May 2023 15:16:43 +0000 (15:16 +0000)]
Merge branch 'wip/otte/no-vsync' into 'main'
Add GDK_DEBUG=no-vsync
See merge request GNOME/gtk!5944
Matthias Clasen [Tue, 9 May 2023 14:48:18 +0000 (14:48 +0000)]
Merge branch 'reftest-msvc' into 'main'
reftest-snapshot.c: Fix running reftests on Visual Studio
See merge request GNOME/gtk!5937
Matthias Clasen [Tue, 9 May 2023 14:47:51 +0000 (14:47 +0000)]
Merge branch 'inspect-a11y-bounds' into 'main'
Inspector accessibility pane improvements
See merge request GNOME/gtk!5941
Benjamin Otte [Tue, 9 May 2023 12:41:24 +0000 (14:41 +0200)]
wayland: Don't assert when requesting another frame
When GDK_DEBUG=no-vsync is on, we might have more than one outstanding
frame. Don't assert when that hapens. Just request a frame callback for
the first and skip the others.
Benjamin Otte [Tue, 9 May 2023 12:38:24 +0000 (14:38 +0200)]
frameclock: Keep more history
Not all frames get timing info with GDK_DEBUG=no-vsync, so make sure
that even when we render tons of frames, the one frame that does get
timing info is still there when the timing info arrives.
I set it to 128 from 16 now.
This is roughly good enough to go to 5000fps from on a 60Hz monitor.
Benjamin Otte [Tue, 9 May 2023 12:36:45 +0000 (14:36 +0200)]
gtk-demo: Update fps with higher priority
We want to make sure to always update it, so make sure it has a higher
priority than redraws.
Benjamin Otte [Tue, 9 May 2023 12:55:54 +0000 (14:55 +0200)]
gdk: Add GDK_DEBUG=no-vsync
That turns off waiting and freezing in the frame clock and in
surfaces and triggers redraws asap.
Benjamin Otte [Tue, 9 May 2023 12:55:59 +0000 (14:55 +0200)]
frameclock: Add gdk_frame_clock_idle_is_frozen()
This is in preparation for a future commit.
Also turn some macros into inline functions and pass the clock instead
of its priv pointer.
Matthias Clasen [Tue, 9 May 2023 12:51:29 +0000 (12:51 +0000)]
Merge branch 'fix-wgl' into 'main'
Few fixes for WGL after recent updates
Closes #5808
See merge request GNOME/gtk!5936
Matthias Clasen [Tue, 9 May 2023 11:29:11 +0000 (11:29 +0000)]
Merge branch 'fix-gsk-crash' into 'main'
Fix a refcounting mishap in gsk
Closes #5823
See merge request GNOME/gtk!5943
Matthias Clasen [Tue, 9 May 2023 10:51:53 +0000 (06:51 -0400)]
gsk: Fix a refcounting mishap
This may fix #5823
Chun-wei Fan [Tue, 9 May 2023 10:10:34 +0000 (18:10 +0800)]
gdkglcontext-win32-wgl.c: Always request alpha bits
...when we are using wglChoosePixelFormatARHB(). This ensures that we
hvae a HDC with a pixel format that will really support alpha bits, as
we did for the traditional ChoosePixelFormat().
Thanks to Patrick Zacharias for testing and pointing things out.
Benjamin Otte [Sat, 29 Apr 2023 05:00:45 +0000 (07:00 +0200)]
win32: Turn off multisampling
We know we draw beautiful Windows, but drawing them once is totally
enough.
Benjamin Otte [Wed, 26 Apr 2023 23:27:50 +0000 (01:27 +0200)]
win32: Actually increase the counter
We were sending random junk to ChoosePixelFormat().
Also assert that we don't overflow the array. That might be usefu to
know if we carelessly add attributes later.
Chun-wei Fan [Thu, 4 May 2023 16:09:43 +0000 (00:09 +0800)]
GDK/Win32: Use dummy WGL contexts more
... for creating the actual WGL contexts, so that we can cut down on the
number of times where we need to create the base, legacy WGL contexts in
order to create the WGL contexts with attributes. We could just use the
dummy context that we have to make it current to create the needed
WGL contexts.
Chun-wei Fan [Wed, 3 May 2023 09:58:54 +0000 (17:58 +0800)]
gdkglcontext-win32-wgl.c: Fix using wglChoosePixelFormatARB()
If we are querying the best supported pixel format for our HDC via
wglChoosePixelFormatARB() (i.e. we have the WGL_ARB_pixel_format extension),
it may return a pixel format that is different from the pixel format that we
used for the dummy context that we have setup, in order to, well, run
wglChoosePixelFormatARB(), which sadly requires a WGL context (HGLRC) to be
current in order to use it, which means the dummy HDC already has a pixel
format that has been set (notice that each HDC is only allowed to have its
pixel format to be set *once*). This is notably the case on Intel display
drivers.
Since we are emulating surfaceless GL contexts, we are using the dummy GL
context (and thus dummy HDC that is derived from the notification HWND used in
GdkWin32Display) for doing that, we would get into trouble if th actual HDC
from the GdkWin32Surface has a different pixel format set.
So, as a result, in order to fix this situation, we do the following:
* Create yet another dummy HWND in order to grab the HDC to query for the
capabilities the GL drivers support, and to call wglChoosePixelFormatARB() as
appropriate (or ChoosePixelFormat()) for the final pixel format that we use.
* Ditch the dummy GL context, HDC and HWND after obtaining the pixel format.
* Then set the final pixel format that we obtained onto the HDC that is derived
from the HWND used in GdkWin32Display for notifications, which will become our
new dummy HDC.
* Create a new dummy HGLRC for use with the new dummy HDC to emulate surfaceless
GL support.
Luca Bacci [Tue, 9 May 2023 07:59:17 +0000 (07:59 +0000)]
Merge branch 'fix-5808' into 'main'
gdkglcontext-win32-wgl.c: Fix WGL context realization on 32-bit
Closes #5808
See merge request GNOME/gtk!5942
Chun-wei Fan [Mon, 8 May 2023 02:59:51 +0000 (10:59 +0800)]
gdkglcontext-win32-wgl.c: Fix WGL context realization on 32-bit
We are currently using g_clear_pointer() on the intermediate WGL contexts
(HGLRC)'s that we need to create in the way, which means that we need to ensure
that the correct calling convention for wglDeleteContext() is being applied.
To be absolutely safe about it, use the gdk_win32_private_wglDeleteContext()
calls, which will in turn call wglDeleteContext() directly from opengl32.dll
(using the OpenGL headers from the Windows SDK) instead of going via libepoxy,
which will assure us that the correct calling convention is applied.
Fixes issue #5808.
Jason Francis [Tue, 9 May 2023 01:33:04 +0000 (21:33 -0400)]
inspector: show GtkAccessible bounds in a11y pane
Jason Francis [Tue, 9 May 2023 01:30:10 +0000 (21:30 -0400)]
inspector: hide a11y object path when not using AT-SPI backend
Benjamin Otte [Mon, 8 May 2023 18:19:03 +0000 (18:19 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
Revert "TEST TEST TEST"
See merge request GNOME/gtk!5940
Benjamin Otte [Mon, 8 May 2023 17:51:08 +0000 (19:51 +0200)]
Revert "TEST TEST TEST"
This reverts commit
97aff588d553b147220a1af8eb0d5fad08fefcf3.
That was a test commit for demonstrating things that shouldn't have made
it into main.
So throw it out again.
Emmanuele Bassi [Mon, 8 May 2023 15:07:26 +0000 (15:07 +0000)]
Merge branch 'new-align-value' into 'main'
filterchooser: Maintain filter combo visibility
See merge request GNOME/gtk!5939
Matthias Clasen [Mon, 8 May 2023 14:35:37 +0000 (10:35 -0400)]
filterchooser: Maintain filter combo visibility
This code broke when it was ported to listmodels
since we always have a non-NULL lis model of filters.
It can just be empty.
Matthias Clasen [Mon, 8 May 2023 13:28:15 +0000 (13:28 +0000)]
Merge branch 'new-align-value' into 'main'
Introduce GTK_ALIGN_BASELINE_FILL/CENTER
See merge request GNOME/gtk!5935
Matthias Clasen [Mon, 8 May 2023 11:00:34 +0000 (07:00 -0400)]
testsuite: Handle duplicate enum values
Our notify tests would fall over if there was
a duplicate enum value (within the first 10 values).
Make it handle that, by skipping the duplicate value.
Chun-wei Fan [Mon, 8 May 2023 07:10:17 +0000 (15:10 +0800)]
reftest-snapshot.c: Fix running reftests on Visual Studio
On Visual Studio-like builds, shove a ".dll" suffix for the reftest
module so that we look for the correct DLL when running the tests.
Matthias Clasen [Mon, 8 May 2023 01:26:09 +0000 (21:26 -0400)]
Introduce GTK_ALIGN_BASELINE_FILL/CENTER
It turns out that the old behavior of GTK_ALIGN_BASELINE
was actually used in libadwaita, so bring it back, and
introduce a new GtkAlign value for the new behavior.
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)
Benjamin Otte [Tue, 2 May 2023 18:09:13 +0000 (18:09 +0000)]
Merge branch 'wip/otte/for-main' into 'main'
build: Use generated SPIR-V files
Closes #5798
See merge request GNOME/gtk!5910