Carlos Garnacho
71c3f4af31
x11: Update X11 focus before updating MetaDisplay focus
...
In a similar vein to commit 8fd55fef85
. This notably failed when setting
the focus on the stage (eg. to redirect key events to Clutter actors).
Deeper in MetaDisplay focus updating machinery, it would check
meta_stage_is_focused() which would still return FALSE at the time it's
called.
This would not typically have side effects, but our "App does not respond"
dialogs see the focus change under their feet, so they try to bring
themselves to focus again. This results in a feedback loop.
Changing the order results in later checks on the X11 POV of the focus
being correct, so focus is not mistakenly stolen from the close dialog,
and it actually succeeds in keeping the key focus.
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1607
https://gitlab.gnome.org/GNOME/mutter/merge_requests/876
2019-10-22 14:51:36 +02:00
Robert Mader
3078394951
ClutterStage: Use clutter_region_t for swap_region
...
We use `clutter_region_t` for the clip now, so lets also use it
for the swap region.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/692
2019-10-22 00:28:47 +02:00
Carlos Garnacho
a7f4f5b291
ClutterStage: Store clip area as a region
...
This will allow drawing optimizations as a region is more concrete
than the bounding rectangle.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/692
2019-10-22 00:28:47 +02:00
Adam Jackson
bd1630a12c
cogl: Remove unused CoglFeatureFlags
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
67d5ebb187
cogl: Remove unused COGL_FEATURE_PBOS
...
Almost there. The CoglFeatureFlags type is changed to "int"
momentarily.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
ba7b8a5de3
cogl: Remove unused COGL_FEATURE_TEXTURE_YUV
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
d54c548aac
clutter: Remove unused deprecated clutter_texture_set_from_yuv_data
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
f01db80387
cogl: Remove unused COGL_FEATURE_TEXTURE_READ_PIXELS
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
5e0989532e
clutter: Remove unused CLUTTER_FEATURE_TEXTURE_READ_PIXELS
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
673f4295e8
cogl: Remove unused COGL_FEATURE_ID_OFFSCREEN_MULTISAMPLE
...
This is a _little_ strange, as we still fill in the vtable slot for
glRenderbufferStorageMultisampleIMG, and can in principle still call it.
But that feature was weird to begin with as we were only checking for
that function in big-GL contexts despite that its extension is for GLES.
I'll leave cleaning that up to a future pass.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
1f04b1ae69
cogl: Remove unused COGL_FEATURE_OFFSCREEN_MULTISAMPLE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
26a7387f40
cogl: Remove unused COGL_FEATURE_FOUR_CLIP_PLANES
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
bd5266a05e
cogl: Remove unused COGL_FEATURE_STENCIL_BUFFER
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
eb3ffeff0a
cogl: Remove unused COGL_FEATURE_UNSIGNED_INT_INDICES
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
0731eb629c
cogl: Remove unused COGL_FEATURE_MAP_BUFFER_FOR_{READ,WRITE}
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
34a38827b7
cogl: Remove unused COGL_FEATURE_ID_ONSCREEN_MULTIPLE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
3076895e98
cogl: Remove unused COGL_FEATURE_ONSCREEN_MULTIPLE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
0e4c23c985
cogl: Remove unused depth texture API
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
fb49e9def7
cogl: Remove unused COGL_FEATURE_ID_DEPTH_TEXTURE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
45e77c1d87
cogl: Remove unused COGL_FEATURE_DEPTH_TEXTURE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
cf107c89b8
cogl: Remove always-set COGL_FEATURE_OFFSCREEN
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
6a8830a551
cogl: Remove always-set COGL_FEATURE_ID_OFFSCREEN
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
4523251849
cogl: Require {EXT,ARB}_framebuffer_object in the GL driver
...
This was only promoted to core in 3.0, but Mesa's supported it
unconditionally since around 7.0 even in 2.1 contexts, so this is not a
particularly onerous requirement.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
5f4e8789df
cogl: Remove unused COGL_FEATURE_POINT_SPRITE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
eaf0aa1f07
cogl: Remove unused COGL_FEATURE_DEPTH_RANGE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
96da0c60bd
cogl: Remove always-set COGL_FEATURE_ID_POINT_SPRITE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
da36575d7f
cogl: Remove always-set COGL_FEATURE_ID_PER_VERTEX_POINT_SIZE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
7716a418ce
cogl: Remove always-set COGL_PRIVATE_FEATURE_BLEND_CONSTANT
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
6ab2e30fff
cogl: Remove unused COGL_FEATURE_ID_MIRRORED_REPEAT
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
8b0289a5ba
cogl: Remove unused COGL_FEATURE_ID_DEPTH_RANGE
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
d810c0576d
cogl: Move some GL function pointers from in-gles-core to core
...
Now that we require GLES2 or GL 2.1 these are always available.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
82f56054d4
cogl: Remove some completely unused GL function pointers
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
de362537c6
cogl: VBOs are always available
...
ARB_vertex_buffer_object was promoted to core in GL 1.5 (and thus GLES
2.0).
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
ba9fb16048
cogl: Remove COGL_PRIVATE_FEATURE_FOUR_CLIP_PLANES
...
Again, just a difference between GL and GLES for no real reason.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:08 +00:00
Adam Jackson
148cba3270
cogl: Remove COGL_PRIVATE_FEATURE_QUADS
...
There's no real performance benefit to this, it's just a difference
between GL and GLES for no reason.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/866
2019-10-21 21:43:07 +00:00
Adam Jackson
c5bb2e3f56
cogl: Remove unused cogl_renderer_get_n_fragment_texture_units
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/874
2019-10-21 16:32:46 -04:00
Adam Jackson
049e7882b7
cogl: Move _cogl_bitmap_gl_{,un}bind into the GL driver
...
These are the only pieces of the cogl bitmap support that need GL driver
knowledge, so move them there like the TODO suggests.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/874
2019-10-21 16:32:46 -04:00
Adam Jackson
f297a5faa5
cogl: Remove unneeded driver/ includes from the core
...
https://gitlab.gnome.org/GNOME/mutter/merge_requests/874
2019-10-21 16:32:46 -04:00
Carlos Garnacho
40e6aa7d94
compositor: Plug cairo_region_t leak
...
The MetaBackgroundActor uses a region to find out the areas that need
repainting, but forgot to free it, oops.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/873
2019-10-21 19:01:37 +02:00
Carlos Garnacho
668be1f4bd
backends: Plug MetaKmsPageFlipData leak
...
If the page flip is postponed, keep a ref to it, but still unref it
on the page flip callback anyways. Fix suggested by Jonas Ådahl.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/873
2019-10-21 19:01:35 +02:00
Jan Alexander Steffens (heftig)
a444a4c5f5
EGL: Include EGL/eglmesaext.h
...
The eglext.h shipped by libglvnd does not include the Mesa extensions,
unlike the header shipped in Mesa.
Fixes https://gitlab.gnome.org/GNOME/mutter/issues/876
2019-10-21 14:04:30 +00:00
Georges Basile Stavracas Neto
05da4a6094
clutter/effect: Remove pick flags
...
As pointed out, they are now unused. Remove
the pick flags.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00
Georges Basile Stavracas Neto
db8fcc0537
clutter/actor: Remove pick code from paint
...
Now that they are properly split, remove the pick
code from paint paths.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00
Georges Basile Stavracas Neto
86a5358812
clutter/stage: Pick with clutter_actor_pick()
...
Use the new function to perform picking.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00
Georges Basile Stavracas Neto
ff8ed70f84
clutter/stage: Refactor view setup code
...
We'll share it between pick and paint, so refactor
the framebuffer and view setup code from paint
into a new function.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00
Georges Basile Stavracas Neto
179d5ba6a6
clutter: Split pick and paint
...
Add the corresponding clutter_actor_pick() and
clutter_actor_continue_pick() as public APIs,
and use them in pick overrides and ClutterEffect.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/865
2019-10-21 13:49:26 +00:00
Robert Mader
98892391d7
wayland/surface: Reset buffer_destroy_handler_id
...
Syncronized subsurfaces that call into `merge_pending_state` might
otherwise not create new destroy handlers, ending up with a invalid
handler ids, throwing errors and leaking.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/868
2019-10-21 12:54:36 +00:00
Carlos Garnacho
45a8806e65
x11: Iterate over selections in a safer manner for event handling
...
It might be the case that handling an event induces the stream to
trigger completion, hence removing itself from the list. In that
case we would operate on the no longer valid list element to fetch
the next one.
Keep a pointer to the next element beforehand, so we can tiptoe
over streams that did remove themselves.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/869
2019-10-21 13:19:48 +02:00
Carlos Garnacho
e1fa0734a9
x11: Detach selection streams on dispose
...
The streams were only detached from MetaX11Display (and its event handling)
on completion. This is too much to expect, and those might be in some
circumstances replaced while operating.
Make those streams detach themselves on dispose(), so we don't trip into
freed memory later on when trying to dispatch unrelated X11 selection events.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/869
2019-10-21 11:47:40 +02:00
Cosimo Cecchi
8665084df1
monitor-manager: check for underscan setting validity upfront
...
Instead of doing a roundtrip to the X server before setting it, rely on
the previous value fetched before the configuration was sent over DBus.
This matches the argument check we already do elsewhere, and will allow
us to more easily add an additional condition to determine if underscan
is supported.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/673
2019-10-16 14:34:14 +00:00