| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
Clutter's evdev input backend has no support for setting double
click timeout set by gnome-settings-daemon. This results in
touchpad click events timing out on wayland, because the
default timeout value wasn't enough.
This patch moves timeout setting to mutter and removes X11
backend specific setting from clutter.
https://bugzilla.gnome.org/show_bug.cgi?id=771576
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code calculating the output scale involves calculations around pixel
and mm sizes, however we do compare post-transformation pixel sizes to
untransformed mm sizes, which breaks the DPI calculations. Fix this by
transforming back pixel sizes back to untransformed.
While we're at it, actually compare the output height to HIDPI_MIN_HEIGHT
instead of its width, it seems right according to the #define name and
comment.
https://bugzilla.gnome.org/show_bug.cgi?id=777687
|
|
|
|
|
|
|
| |
When running as a X11 CM we shouldn't use the GLX winsys when the
driver doesn't support it, i.e. OpenGL ES drivers.
https://bugzilla.gnome.org/show_bug.cgi?id=771636
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a state changed, e.g. a window went from unfullscreen to
fullscreen, always sync the window geometry, otherwise a compositor
application (e.g. gnome-shell) might end up with an unfinished window
state transition effect.
Without always syncing, the compositor plugin will see a 'size-change'
event, as a result of the state change, but if the size didn't change,
it would never see the 'size-changed' event. If an effect, for example
gnome-shell's fullscreen effect, is triggered on 'size-change' it might
rely on the actual size change to not get stuck. This commit allows it
to have this dependency.
This fixes a bug where a fullscreen effect gets "stuck" when a window
goes fullscreen without changing the window geometry.
https://bugzilla.gnome.org/show_bug.cgi?id=780292
|
|
|
|
| |
Update NEWS.
|
| |
|
| |
|
| |
|
|
|
|
| |
Update NEWS.
|
| |
|
|
|
|
|
|
| |
Instead of poking the internal libinput device.
https://bugzilla.gnome.org/show_bug.cgi?id=779986
|
|
|
|
|
|
| |
This will be used to query grouped devices (eg. tablets and pads)
https://bugzilla.gnome.org/show_bug.cgi?id=779986
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The mitigation to avoid missing EDID blob was incorrect; the reason it
sometimes failed to read was a race between different applications all
trying to read the EDID at the same time. E.g. gnome-shell as GDM would
at the same time as the session gnome-shell try to read the EDID of the
same connector at the same time, triggering a race in the kernel,
making the blob reading ioctl occationally fail with ENOENT.
Remove this mitigation, as it didn't really mitigate anything; the race
could just as well happen when doing the actual read later.
https://bugzilla.gnome.org/show_bug.cgi?id=779837
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When mutter is paused (i.e. not the DRM master), stop listening on
hotplug events. Instead read the current state and set modes when
resumed.
This avoids a race condition in the drm API which currently only
manages to properly deal with one application querying the EDID state
at the same time when there are multiple mutter instances running at
the same time (e.g. gnome-shell driving gdm at the same time as
gnome-shell as the session instance).
https://bugzilla.gnome.org/show_bug.cgi?id=779837
|
|
|
|
|
|
|
| |
Include the connector name in the error message, and only include the
reason in the GError message.
https://bugzilla.gnome.org/show_bug.cgi?id=779837
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=779837
|
|
|
|
|
|
|
| |
Move the handling of pause/resume events from the launcher to the
backend.
https://bugzilla.gnome.org/show_bug.cgi?id=779837
|
|
|
|
|
|
|
|
|
|
|
| |
If the dnd window ends up lower in the overall stack than the window
it's supposed to fence, the drop might end up in some other window
underneath the expected target window.
Maps and raises the dnd window each time it's shown so that it's always
placed above.
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=779800
|
| |
|
|
|
|
|
|
|
|
|
| |
A MetaOutput is a connector, not exactly a monitor or a region on the
stage; for example tiled monitors are split up into multiple outputs,
and for what is used in input settings, that makes no sense. Change
this to use logical monitors instead of outputs.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
|
|
|
| |
When no output was specified, the screen limit was used to calculate the
aspect ratio. The screen limit, however, is either just an arbitrary
number if no screen limit is applicable, or a hardware graphics buffer
limit, which has nothing to do with anything actually displayed. Change
it to use the screen size instead, to get something that makes more
sense when no output is found.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
| |
Enable the usage of an offscreen transform texture, as used in the
native backend when the GPU doesn't support the transform configured.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
|
| |
Expose via a new API whether the transform on a logical monitor is
handled by the backend. This was previously only exposed only in the
native backend. This will be used to emulate not supporting transforms
in the backend in the nested backend.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
|
|
| |
Previously, the size of the logical monitor was derived directly from
the tiling information. This works fine until we add transformations,
or set modes with a dimension different from the resulting resolution
when tiled. Fix this by traversing the assigned CRTC rects, as these
are already transformed by the configuration system.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
|
| |
By setting the environment variable MUTTER_DEBUG_TILED_DUMMY_MONITORS
to "1", the dummy MetaMonitorManager backend used when running mutter
nested will create tiled monitors instead of single-output/CRTC
monitors. This makes it possible to test tiled monitor configuration.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
| |
Add an extra mode besides the preferred one. This makes it possible to
test monitor configuration paths when running nested.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
| |
Refactor monitor generation by splitting the generation of modes, CRTCs
and outputs into a separate function. A side effect is that each output
will have its own set of possible modes.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
| |
This will be used to invert the transform in the nested mode, making it
possible to test offscreen texture based transform using the nested
backend.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
|
| |
Split up logical monitor cration into derived (when derived from
current underlying configuration) and non-derived (when creating from a
logical monitor configuration). This avoids that type of logic in the
logical monitor creation function.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
| |
Add support for non-tiled monitor modes on tiled monitors. This is done
by adding all the other supported modes, except the modes with the
same resolution as the tile dimensions.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
|
| |
When adding a monitor and all its outputs, don't try to set the logical
monitor of the outputs CRTC if none was assigned. This might happen if
a tiled monitor only uses a subset of the connectors it are connected
via.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
| |
Don't set the CRTC rect and screen size at in read_current(), as those
depends on how the configuration is done. Instead, don't set the CRTC
rect at all, and update the screen dimensions when being configured.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
| |
The test backend must inherit the nested backend, as MetaBackendX11 is
not complete.
https://bugzilla.gnome.org/show_bug.cgi?id=779745
|
|
|
|
|
|
|
|
| |
QT apps reject DnD if the timestamp received in the SelectionRequest
event isn't the same it gave in XdndPosition/Drop client messages.
Bookkeeping and using it in XConvertSelection makes it happy again.
https://bugzilla.gnome.org/show_bug.cgi?id=779757
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We are keeping accounting of the focus window as seen by the DnD bridge
right here, so use it instead of the MetaWaylandDragGrab focus as it may
lag behind the real focus (i.e. till the drag source notices the window
and sends XdndEnter to it).
This leads to the window trying to be repositioned more often than
necessary when the drag source takes long to send the XdndEnter client
message, and maybe not repositioned at all if the pointer leaves the
surface while no XdndEnter message was received.
https://bugzilla.gnome.org/show_bug.cgi?id=763246
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently wait for the selection being cleared by the drag source,
which might not happen on not quite educated clients. This may leave
a stuck XDND grab in the compositor side.
We can actually do a bit better, and clear the grab if:
1) The drag source sent XdndDrop to the wayland drag destination.
2) There's no accepting drag destination and all pointer buttons are
released.
3) As usual, whenever the drag source clears the selection data
https://bugzilla.gnome.org/show_bug.cgi?id=763246
|
|
|
|
|
|
|
|
|
|
|
|
| |
We already do have a texture with an internal format in these paths,
so we should check the required format according to it.
This fixes CoglAtlasTexture (and CoglPangoRenderer indirectly), as
it forces a RGBA format on its texture, but pixel_format_to_gl()
anyway assumed swizzling is performed on the texture, while it is
not the case.
https://bugzilla.gnome.org/show_bug.cgi?id=779234
|
|
|
|
|
|
|
|
| |
This is used by the GL driver in order to determine whether swizzling
actually applies given the bitmap and target texture internal format.
If both agree that they store BGRA, then swizzling may apply.
https://bugzilla.gnome.org/show_bug.cgi?id=779234
|
|
|
|
| |
(cherry picked from commit a27f8debcac442bf66bca32b828f158bb7b8b5cc)
|
|
|
|
|
|
|
|
|
| |
No XDnD events which notify DnD status change comes in Wayland. To emulate XDnD
behavior, MetaDnd checks whether there is a grab or not when the modal window
starts showing. When there is a grab, it processes the raw events from
compositor, and emits DnD signals for plugin.
https://bugzilla.gnome.org/show_bug.cgi?id=765003
|
|
|
|
|
|
|
| |
Implement MetaDnd for emitting DnD signals to plugins such as gnome-shell. The
xdnd handling code comes from gnome-shell, and it is hidden behind MetaDnd now.
https://bugzilla.gnome.org/show_bug.cgi?id=765003
|
|
|
|
|
|
|
|
|
| |
When running nested, the pointer can be outside of the stage, meaning
outside of any logical monitor. Handle this when getting the current
logical monitor by falling back to the first logical monitor when the
pointer coordinate is outside of any logical monitor.
https://bugzilla.gnome.org/show_bug.cgi?id=779001
|
|
|
|
|
|
|
| |
Otherwise we might be holding on to a source actor that's no longer
fully functioning and cause crashes if for example we try to paint it.
https://bugzilla.gnome.org/show_bug.cgi?id=779483
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Whenever an EGLOutput consumer is temporary unable to handle
eglStreamConsumerAcquire() operations (e.g. during a VT-switch),
an EGL_RESOURCE_BUSY_EXT error is generated.
This change adds the appropriate error handling to flip_egl_stream() in
order to recover from such errors.
https://bugzilla.gnome.org/show_bug.cgi?id=779112
|
|
|
|
|
|
|
|
|
|
| |
This change adds both the error code and description for
EGL_RESOURCE_BUSY_EXT, recently added to the EGL_EXT_stream_acquire_mode
extension:
https://github.com/aritger/eglstreams-kms-example/blob/master/proposed-extensions/EGL_EXT_stream_acquire_mode.txt
https://bugzilla.gnome.org/show_bug.cgi?id=779112
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change adds descriptions for the following errors to
get_egl_error_str():
- EGL_BAD_STREAM_KHR
- EGL_BAD_STATE_KHR
- EGL_BAD_DEVICE_EXT
- EGL_BAD_OUTPUT_LAYER_EXT
https://bugzilla.gnome.org/show_bug.cgi?id=779112
|
|
|
|
|
|
| |
Introduce META_EGL_ERROR and have the error code be EGL error codes.
https://bugzilla.gnome.org/show_bug.cgi?id=779112
|