summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* input-settings: Set double click timeout from gsettingsArmin Krezović2017-03-242-1/+8
| | | | | | | | | | | | 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
* backends: Calculate output scale correctly on vertical transformsCarlos Garnacho2017-03-241-5/+19
| | | | | | | | | | | | | 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
* x11: Use EGL instead of GLX when drawing using GLESJonas Ådahl2017-03-255-11/+26
| | | | | | | 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
* window: Always sync window geometry on state changeJonas Ådahl2017-03-231-9/+19
| | | | | | | | | | | | | | | | | | | 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
* Bump version to 3.24.03.24.0Florian Müllner2017-03-202-2/+8
| | | | Update NEWS.
* Update Catalan translationJordi Mas2017-03-201-478/+403
|
* Update Latvian translationRūdolfs Mazurs2017-03-181-52/+96
|
* Updated Russian translationYuri Myasoedov2017-03-181-57/+67
|
* Bump version to 3.23.923.23.92Florian Müllner2017-03-142-1/+22
| | | | Update NEWS.
* build: Include missing fileFlorian Müllner2017-03-141-0/+1
|
* wayland: Use clutter_input_device_is_grouped() for tablet groupingCarlos Garnacho2017-03-131-17/+2
| | | | | | Instead of poking the internal libinput device. https://bugzilla.gnome.org/show_bug.cgi?id=779986
* clutter: Add clutter_input_device_is_grouped call/vfuncCarlos Garnacho2017-03-135-0/+38
| | | | | | This will be used to query grouped devices (eg. tablets and pads) https://bugzilla.gnome.org/show_bug.cgi?id=779986
* Update Slovak translationDušan Kazik2017-03-121-36/+35
|
* Update Galician translationFran Dieguez2017-03-111-55/+100
|
* monitor-manager-kms: Don't try to wait for EDID on hot plugJonas Ådahl2017-03-111-130/+0
| | | | | | | | | | | | | | 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
* monitor-manager-kms: Don't listen on hotplugs when pausedJonas Ådahl2017-03-113-3/+32
| | | | | | | | | | | | | | 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
* monitor-manager-kms: Improve EDID error reportingJonas Ådahl2017-03-111-2/+3
| | | | | | | 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
* monitor-manager-kms: Put uevent signal management in helpersJonas Ådahl2017-03-111-2/+19
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=779837
* backends/native: Move pause/resume handling to backendJonas Ådahl2017-03-103-39/+44
| | | | | | | Move the handling of pause/resume events from the launcher to the backend. https://bugzilla.gnome.org/show_bug.cgi?id=779837
* xwayland: Raise the dnd window each timeOlivier Fourdan2017-03-091-1/+1
| | | | | | | | | | | 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
* Updated Czech translationMarek Černocký2017-03-091-695/+35
|
* input-settings: Use logical monitors instead of outputsJonas Ådahl2017-03-096-96/+141
| | | | | | | | | 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
* input-settings: Don't use screen limits when keeping aspect ratioJonas Ådahl2017-03-092-5/+5
| | | | | | | | | | | 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
* backend/x11/nested: Enable emulating offscreen transform framebufferJonas Ådahl2017-03-093-5/+66
| | | | | | | 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
* monitor-manager: Expose whether the backend handles a transformJonas Ådahl2017-03-098-47/+91
| | | | | | | | | 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
* monitor-tiled: Derive the dimension from what was configuredJonas Ådahl2017-03-091-11/+11
| | | | | | | | | | 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
* monitor-manager-dummy: Add way to emulate tiled monitorsJonas Ådahl2017-03-091-1/+105
| | | | | | | | | 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
* monitor-manager-dummy: Add non-preferred modeJonas Ådahl2017-03-091-11/+21
| | | | | | | 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
* monitor-manager-dummy: Refactor monitor generationJonas Ådahl2017-03-091-49/+85
| | | | | | | | 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
* clutter/stage-view: Add getter for getting the offscreen blit transformJonas Ådahl2017-03-092-2/+14
| | | | | | | | 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
* monitor-manager: Split logical monitor creationJonas Ådahl2017-03-095-109/+150
| | | | | | | | | 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
* monitor-tiled: Generate non-tiled monitor modesJonas Ådahl2017-03-092-33/+119
| | | | | | | | 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
* logical-monitor: Don't set the CRTC logical monitor if not assignedJonas Ådahl2017-03-091-1/+2
| | | | | | | | | 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
* monitor-manager-dummy: Don't set up state at the wrong timeJonas Ådahl2017-03-091-11/+48
| | | | | | | | 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
* tests: Make test backend inherit MetaBackendX11NestedJonas Ådahl2017-03-094-11/+11
| | | | | | | The test backend must inherit the nested backend, as MetaBackendX11 is not complete. https://bugzilla.gnome.org/show_bug.cgi?id=779745
* xwayland: Use timestamp from XdndPosition/Drop on XConvertSelectionCarlos Garnacho2017-03-081-1/+6
| | | | | | | | 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
* xwayland: Check MetaDndBridge focus_window when updating X11 proxy windowCarlos Garnacho2017-03-081-3/+3
| | | | | | | | | | | | | | 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
* xwayland: Release xdnd grabs ASAPCarlos Garnacho2017-03-081-3/+24
| | | | | | | | | | | | | | 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
* cogl: Use pixel_format_to_gl_with_target on bitmap uploading pathsCarlos Garnacho2017-03-071-5/+6
| | | | | | | | | | | | 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
* cogl: Add pixel_format_to_gl_with_target driver vfuncCarlos Garnacho2017-03-074-11/+52
| | | | | | | | 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
* Update Scottish Gaelic translationGNOME Translation Robot2017-03-071-140/+157
| | | | (cherry picked from commit a27f8debcac442bf66bca32b828f158bb7b8b5cc)
* dnd: Implement DnD handling code in WaylandHyungwon Hwang2017-03-075-1/+146
| | | | | | | | | 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
* dnd: Implement MetaDndHyungwon Hwang2017-03-078-0/+262
| | | | | | | 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
* backends/x11: Fallback to the first logical monitor when out of focusJonas Ådahl2017-03-061-0/+3
| | | | | | | | | 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
* clutter-clone: Unset source when source actor is destroyedRui Matos2017-03-061-0/+12
| | | | | | | 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
* Updated Lithuanian translationAurimas Černius2017-03-041-167/+176
|
* MetaRendererNative: Properly handle EGLOutput acquire errorsMiguel A. Vico2017-03-041-9/+16
| | | | | | | | | | | 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
* egl: Add EGL_RESOURCE_BUSY_EXT errorMiguel A. Vico2017-03-042-0/+3
| | | | | | | | | | 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
* egl: Add stream-related error descriptionsMiguel A. Vico2017-03-041-0/+11
| | | | | | | | | | | | 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
* egl: Pass EGL errors via custom error domainJonas Ådahl2017-03-042-9/+14
| | | | | | Introduce META_EGL_ERROR and have the error code be EGL error codes. https://bugzilla.gnome.org/show_bug.cgi?id=779112