Sebastian Wick
4e088cac0e
core/window: Propagate focus appearance to all ancestors
...
The loop in meta_window_propagate_focus_appearance breaks if any
ancestor has attached_focus_window == focus_window but further ancestors
might still have a different attached_focus_window.
Continue the loop until the root ancestor instead.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2913
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3356 >
2023-11-03 14:20:39 +00:00
Sebastian Wick
6f6f16c2b1
tests/wayland-test-client-utils: Sync event serial in same dispatch
...
If multiple sync events are send in the same dispatch, a further call to
wait_for_sync_event will get stuck. Fix this by keeping track of the
latest sync event serial in the display and always compare against that.
This also means sync event sequences must start at 0 and increase by 1.
The wayland-x11 interop test is the only one where that wasn't already
the case.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3358 >
2023-11-03 12:02:29 +00:00
Bilal Elmoussaoui
c79332a5f8
build: Remove no longer existing config options
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3349 >
2023-11-03 11:36:07 +00:00
Bilal Elmoussaoui
57cfd1ab75
cleanup: Remove unneeded ifdef
...
As it is just a comment
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3349 >
2023-11-03 11:36:07 +00:00
Bilal Elmoussaoui
51abbb5d4f
cogl: Remove unnused include macro usage
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3349 >
2023-11-03 11:36:07 +00:00
Bilal Elmoussaoui
7a6a821ed0
cogl: Drop unnused experimental API config
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3349 >
2023-11-03 11:36:07 +00:00
Bilal Elmoussaoui
c683d971a1
compositor: Move region_to_cairo_path helper where it is used
...
The helper is X11 specific and only used once in that file. Moving
it there would help us in the future to build without cairo if x11 is disabled
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
Bilal Elmoussaoui
9f58fb121f
wayland: Rename peek_cairo_region to peek_region
...
So that grep 'cairo_' won't show these false positives and it is no longer
a cairo_region anymore.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
Bilal Elmoussaoui
156fe0fdd8
mtk: Make Rectangle no longer a typedef
...
Now that we provide our own Region type which uses
MtkRectangle directly, there is no longer a need to go through cairo
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
Bilal Elmoussaoui
655b4a9c75
Port to MtkRegion
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
Bilal Elmoussaoui
7c98910488
mtk: Add a Region type
...
Currently, we use cairo_region_t despite it being a thing wrapper around pixman_region_32
In order to push for a cairo-less and wayland only build in the future, replace
cairo_region_t with a thin wrapper that is almost a copy of the upstream cairo implementation
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
Bilal Elmoussaoui
058afb67f4
actor/frames: Check if frame bounds existing before copying them
...
Avoids a failure once we port to MtkRegion as we ensure that the region is not NULL
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
Bilal Elmoussaoui
f84733f791
meta/stage: Check if the swap region is not empty before transforming it
...
As cairo_region_create_rectangles would return NULL if n_rects=0 but the upcoming
commits which port to MtkRegion disallows that
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
Bilal Elmoussaoui
c01ffdb8ba
cogl/gir: Depend explicitly on Mtk
...
As it is used now for MtkRegion types making the GIR file not containing
the relevant dependency and not being able to resolve MtkRegion type
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3292 >
2023-11-03 11:27:52 +00:00
Sebastian Wick
c645b6c6fa
tests/wayland-unit-tests: Make toplevel_apply_limits easier to follow
...
Use the wait_for_sync_point method instead of the convoluted callback
and state handling.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3348 >
2023-11-03 10:34:27 +00:00
Sebastian Wick
8c3c29d0c0
tests/wayland-test-utils: Keep track of process exit
...
Whenever a MetaWaylandTestClient exists without success the calling test
will fail. This fixes a bunch of cases where the test would get stuck
waiting for some event from the client when it already died and won't be
able to send the event.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3348 >
2023-11-03 10:34:27 +00:00
Bilal Elmoussaoui
ac2f6e8b9e
cogl: Reduce the usage of _COGL_GET_CONTEXT
...
In cases where we already have the context where the function ends up
being called
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3353 >
2023-11-02 15:17:49 +00:00
Sebastian Wick
10a840c92d
kms/impl-device: Handle NULL gamma updates
...
We should not ever get one right now, but if we do, a NULL update means
we bypass the gamma LUT.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3309 >
2023-11-01 13:16:15 +00:00
Sebastian Wick
e21f839776
tests/dbus-runner: Detect nested invocations to skip mocking
...
The test and dist CI jobs run wrap the meson calls in dbus-runner to
avoid setting up dbus servers and mocking services for every test but
the dbus-runner invocation from meson test didn't actually skip all the
setup.
This nested mocking also doesn't work because the system bus is assumed
to be the host system bus and not a mocked one.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2618 >
2023-11-01 10:55:04 +00:00
Jonas Ådahl
e848f86514
tests/dbus-runner: Forward logind methods when not in KVM
...
This means one can run meta-dbus-runner.py effectively mocking
everything relevant except logind itself, meaning one can run from a TTY
and get permission to mode set etc, while still mocking things like
gsd-color, colord, etc.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2618 >
2023-11-01 10:55:04 +00:00
Jonas Ådahl
a174819b32
tests/dbus-runner: Move logind helper into a separate file
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2618 >
2023-11-01 10:55:04 +00:00
Bilal Elmoussaoui
5088f428ab
ci: Keep Mtk sources in the generated coverage
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3321 >
2023-10-31 09:56:23 +01:00
Bilal Elmoussaoui
2c4968fb41
cogl: Port Primitive away from CoglObject
...
- The associated CoglAttribute's are now stored in GPtrArray as suggested
by carlosg in
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193?commit_id=19b619073b3c7d311c64e0a997558f943b38c94a#note_1849281
- cogl_primitive_set_attributes was dropped for "simplicity"
especially that nothing uses it.
- As this is the last remaining CoglObject subclass, the commit also drops
all the CoglObject related macros/types
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
b4bd69e4e8
cogl/cleanup: Replace CoglUserDataDestroyCallback with GDestroyNotify
...
It is just a typedef
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
b044e26e62
cogl: Drop no longer used user data helpers
...
This also drops the test-object conform test as it doesn't do anything
interesting and the gobject qdata functionnality is already well tested
across the platform
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
9b9e12edb2
cogl: Port Node/Pipeline/PipelineLayer away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
80ce052a47
cogl/node: Stop taking a custom unparent function
...
As all the use cases end up chaining up anyways
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
6efd4a2282
cogl/cleanup: Use construct-only properties for CoglBuffer
...
Instead of a custom initialize function
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
739c59fefc
cogl: Port Buffer* away from CoglObject
...
Make CoglBuffer an abstract class and inherit the various Cogl*Buffer types from it.
As none of the subclasses is overriding the vtable functions, they were not turned into
vfuncs but plain function pointers in CoglBuffer.
We still use _cogl_buffer_initialize until we port the various params into actual construct-only
properties, similar to the previous commit for CoglTexture.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
1d47e809e4
cogl/cleanup: Use construct-only properties instead of a custom init function
...
It only made sense pre-GObjectified Texture types
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
863163cc6e
cogl: Port Texture* away from CoglObject
...
- Make Texture a parent GObject class and move the vtable funcs as vfuncs
instead of an interface as we would like to have dispose free the TextureLoader.
- Make the various texture sub-types inherit from it.
- Make all the sub-types constructors return a CoglTexture instead of their respective
specific type. As most of the times, the used functions accept a CoglTexture,
like all the GTK widgets constructors returning GtkWidget.
- Fix up the basics of gi-docgen for all these types.
- Remove CoglPrimitiveTexture as it is useless: It is just a texture underhood.
- Remove CoglMetaTexture: for the exact same reason as above.
- Switch various memory management functions to use g_ variant instead of the cogl_ one
Note we would still want to get rid of the _cogl_texture_init which is something
for the next commit
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
586c43d5a9
clutter/cogl: Use more of memory management helpers
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
75023d96bc
cogl: Port Renderer away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
4792db371a
cogl/cleanup: Stop using CoglHandle
...
We use a GParamSpecPointer for CoglPipeline until that
gets ported from CoglObject
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
c8b4568973
cogl: Drop no longer used define boxed macro
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
93216b3c11
cogl: Port MatrixEntry from Cogl boxed type
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
686081077a
cogl: Port Journal away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
82ca43c3b6
cogl: Port (OnscreenDirtyClosure|FrameClosure) away from Cogl boxed type
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
60dbceac4f
cogl/object: Drop no longer used Handle macros
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
bbdc0b42fc
cogl: Port Program away from CoglObject
...
This also switches from using CoglHandle to CoglProgram where
appropriate
which allowed dropping a duplicated function that had the wrong
signature...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
3aaae11d6b
cogl: Port Shader away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
c1e6948e42
cogl: Port Bitmap away from CoglObject
...
We still need to use set_qdata_full as CoglBitmapPixbuf would free
the data itself by unrefing the pixbuf
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
3c6c6a0ea5
cogl: Port Output away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
946b6c945a
cogl: Port Color to GBoxed
...
Also removes a part of the docs in the private structure as it ends up
being detected as the docs for the public structure causing conflict
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
4afc187062
cogl: Port MatrixStack away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
d71fe5c55e
cogl: Port OnscreenTemplate away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
df8ae83040
cogl: Port Indices away from CoglObject
...
Also renames Indices.get_type to Indices.get_indices_type to avoid
a conflict with the generated Object.get_type function
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
4ea3593ebf
cogl: Port Atlas away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
f0923aab44
cogl: Port Attribute away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00
Bilal Elmoussaoui
9d71949b26
cogl: Port SwapChain away from CoglObject
...
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3193 >
2023-10-29 21:16:24 +00:00