| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
At the moment, allow the task to fail, while we smooth out the
uncrustify configuration.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Borrowed from Tracker, this script has different mode usages:
* --sha allows specifying a commit SHA, HEAD^ by default.
* --dry-run shows suggested changes in stdout, by default
the local tree is changed.
* --rewrite amends the last commit, in addition to performing
the changes.
This allows from simple style checks in the development tree,
automatically rewriting with the suggested changes (e.g. with
`git rebase --exec ./check-style -r`) and CI integration.
The script has per-function granularity, and works by re-styling
individually every commit, and inside every commit every chunk.
|
|
|
|
|
|
| |
This config file seems like a good first stab at honoring the
Mutter code style. More changes might be required once this meets
real world testing.
|
|
|
|
|
|
| |
... instead of generating it ourselves from the regular meson logs.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1957>
|
|
|
|
|
|
|
| |
There's no alternative backend in sight for us, but it's nice to
only deal with a single build tool.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1957>
|
|
|
|
|
|
| |
They were deprecated in meson 0.56.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1957>
|
|
|
|
|
|
|
| |
This is more concise and produces output that is more consistent
with other meson output (and between projects).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1957>
|
|
|
|
|
|
| |
glib 2.36 hasn't met our minimum requirements for years.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1957>
|
|
|
|
|
|
|
| |
The test attempts to reproduce gnome-shell#4486, and is fixed by
"window-actor/x11: Don't cache the frame-drawn frame clock".
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1947>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We fetch a frame clock that we schedule update on when queuing
_NET_WM_FRAME_DRAWN events. In some situations this frame clock is the
one from the stage, and if there are multiple hotplugs in a row, we
failed to update it as there were no stage views changes on the window
actor itself. As an actor updates the stage views list on layout, When a
queue_frame_drawn() call was done (typically from an X11 event) after a
second hotplug, it'd attempt to schedule an update on the frame clock
from the previous hotplug, as it didn't get notified about any
stage-views changes since for itself there was none.
Fix this by not caching the frame clock at all and just fetch it every
time.
In the majority of cases, this fetching means iterating over a very
short list (most often a single entry, rarely more), so it's very
unlikely to be of any relevance. The only situations where it might be a
heavier operation is the short time between a hotplug and a layout, as
it will attempt to traverse up to the stage to find a clock, but that's
likely only a few levels, so even that is unlikely to be an issue.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4486
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1947>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make sure that when we've recreated views that we'll actually paint a
new frame for it. This was very rarely a problem, as views tend to
result in getting damage etc being queued as side effects of various
things, like layout, but e.g. when running certain tests, this might not
happen. There is no situation where we want to create a new view that
should remain unpainted, so just make sure we initialize it to become up
to date.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1947>
|
|
|
|
|
|
| |
Change 'GList *iter' to 'GList *l' in a few places.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1712>
|
|
|
|
|
|
|
|
|
| |
This is more in line with the protocol, and allows us to remove some
awkward code that tries to "combine" different metadata from different
monitors into one, which sometimes meant picking an arbitrary "main"
monitor, or "and" metadata together to find a common ground.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1712>
|
|
|
|
|
|
| |
Will be used to keep a monitor spec as a hash table key.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1712>
|
|
|
|
|
|
| |
Avoids leaking implementation details outside.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1712>
|
|
|
|
|
|
|
| |
Will be useful when wl_output gets tied to a MetaMonitor, instead of a
MetaLogicalMonitor.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1712>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1712>
|
|
|
|
|
|
|
| |
Used in the screenshot UI (and arguably should be used in the existing
gnome-shell screenshot drawing code).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1967>
|
|
|
|
|
|
| |
Used in the new screenshot UI.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1899>
|
| |
|
|
|
|
| |
Update NEWS.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Makes workspace transitions in gnome-shell look more seamless, since
both outgoing and incoming workspace have focused windows.
This is only done for click focus mode, since it's not known which
window would be focused for the other modes.
Track the state and recompute it when it changes, to avoid redrawing
the windows needlessly.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/850>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Each workspace has a window that will be focused when switching to that
workspace. Add a function to retrieve that window.
This is only relevant for click-to-focus focus mode, since with the two
other modes no window will be focused upon switching, and will only gain
focus when hovered.
This will be used in the next commit to make this window appear focused.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/850>
|
|
|
|
|
|
| |
Check against the window argument, instead of active workspace.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/850>
|
|
|
|
|
|
| |
The old one is deprecated and equivalent.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1941>
|
|
|
|
|
|
|
| |
The g_pattern_match_string() variant is deprecated, switch to the
properly namespaced one.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1941>
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
The setting was ignored in favor of whatever the backend
returned.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1953>
|
|
|
|
|
|
|
|
|
|
|
| |
The size request functions query the resource scale, which hits
an assert if headless. The returned sizes are already only used
when clutter_actor_has_allocation() is true, so this doesn't
change the condition for calling either redraw or relayout.
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4522
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1956>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was introduced by accident in commit 1467b6b02a73bca76
y-inverted textures in combination with shape masks appear to
be only commonly used with EGLstreams. However, as we draw the
shape mask ourselves, we don't want to apply the y-invert to it
as testified by the left over `cogl_pipeline_set_layer_matrix()`.
Note that we still allow to apply viemports and buffer transforms,
as the Xwayland mode setting emulation may use it (in fact only
the former, but it probably does not hurt to leave the later as well).
Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/1792
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1937>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows client to delegate titlebar gestures to the compositor,
which allows for better consistency with server-side decorations,
and a wider range of actions (including lower-on-middle-click).
The protocol addition is based on a suggestion from Carlos Garnacho
and Jonas Ådahl.
https://gitlab.gnome.org/GNOME/mutter/-/issues/602
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1944>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The only thing x11-specific about the existing code is that it is only
used to implement titlebar actions on server-side decorations.
We are about to bring that functionality to wayland, so move the code
into MetaWayland.
https://gitlab.gnome.org/GNOME/mutter/-/issues/602
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1944>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Monitor configuration check tests can be very complex and in case of
failures we can't easily catch where a failure happened without entering
in debug mode, something that isn't always an option in CI or external
builders.
So add more debug statements in configuration check functions and use
macros to ensure that we print the caller function and location on more
complex check functions.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
| |
Use the MONITOR_MATCH_VISIBLE match rule instead of doing the same check when
initializing the list of disabled monitor specs.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Primary monitor is just the same of the other monitors, but it has a
primary monitor flag. Since the computation of the scaling isn't
dependent anymore on the computed configuration we can now generate the
primary monitor config together with the others.
However, we've to ensure that the primary monitor is the first of the
configs list in order to properly compute the positioning.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
|
|
| |
Compute the monitor scaling in a separated function using the primary
monitor (not its config) and pass it to the creation function instead.
This will allow removing the special logic for the primary monitor.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
|
|
| |
Factorize the creation of a configuration inside one function that looks for
the primary monitor and the other monitors using the matching rules and
dispose them according to the chosen policy (checking if the result is valid
when using the suggested positioning).
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
| |
Monitor configuration structures can be used inside containers such as GList
and in order to have smart cleanups we need to define the relative free function
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a find_monitors function that allows to search for monitors that match
the MonitorMatchRule filter and use this to look for the primary monitor and
the other monitors that need to match the requested filter in order to be
configured.
Having just one function doing this kind of checks reduces the possibility
of unexpected results.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
| |
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
|
|
| |
Verify that the suggested monitor configuration contains only adjacent monitors,
and that if this is not the case we fallback to the linear configuration.
This can happen in case of multi-DPI setup, so add a test checking this too.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
|
|
|
|
|
| |
It could happen that monitors suggest to use coordinates that don't take
in consideration the scaling applied to one monitor, and such the
generated configuration is not valid because not all the monitors are
adjacent.
So enforce this check before accepting a suggested configuration as it
is.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
|
|
|
| |
We may need to check if rectangles region has adjacent neighbors and
so if there are no gaps in between monitors.
This can be done by checking if each monitor is adjacent to any other in
the same region.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
| |
Verify that when we've monitors with overlapping preferred configuration, we
fallback to the default linear configuration.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/522>
|
|
|
|
|
|
|
|
| |
This code sneaked unconditionally, even though we can disable
tracing code with -Dprofiler=false. Add some COGL_HAS_TRACING
checks so that this code is also optionally built.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1951>
|
|
|
|
|
|
|
|
| |
This code sneaked unconditionally, even though we can disable
tracing code with -Dprofiler=false. Add some COGL_HAS_TRACING
checks so that this code is also optionally built.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1951>
|