aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-11-21gtk-primary-selection: track resourcesemersion
2018-11-21gtk-primary-selection: support multiple devicesemersion
When a client was creating multiple data devices for the same seat, we were only creating one resource. This is a protocol error. Instead, create one offer per data device. This commit also makes offers inert when their source is destroyed. Fixes part of https://github.com/swaywm/wlroots/issues/1041 Supersedes https://github.com/swaywm/wlroots/pull/1113
2018-11-13Merge pull request #1366 from emersion/render-software-cursorsDrew DeVault
Render software cursors in compositor
2018-11-13output: make wlr_egl flip the damageemersion
2018-11-13output: add wlr_output_render_software_cursorsemersion
Rendering in wlr_output_swap_buffers has unfortunate side-effects.
2018-11-13output: remove wlr_output_set_fullscreen_surfaceemersion
This wasn't using direct scan-out. Direct scan-out will probably work differently with @ascent12's work anyway.
2018-11-13Merge pull request #1368 from ascent12/x11_backendemersion
X11 backend improvements
2018-11-13backend/x11: Hide cursor with XfixesScott Anderson
2018-11-13backend/x11: Remove old input functionsScott Anderson
This also allows us to remove xcb-xkb, since Xinput will now give us the appropriate XKB modifiers with each event.
2018-11-13backend/x11: Add new Xinput eventsScott Anderson
2018-11-13backend/x11: Check for xinput extensionScott Anderson
2018-11-13backend/x11: Move atom initilisation earlierScott Anderson
There isn't any real reason to delay this until the backend is started.
2018-11-13backend/x11: Make header order consistentScott Anderson
2018-11-13backend/x11: Rename xcb_conn to xcbScott Anderson
When the Xlib connection is removed, this _conn suffix is going to be pointless. I'm removing this preemtively for that.
2018-11-12Merge pull request #1373 from emersion/fix-teardown-segfaultsDrew DeVault
xdg-shell: don't destroy xdg role state on role destroy
2018-11-12Merge pull request #1372 from emersion/config10Drew DeVault
Use #if instead of #ifdef for wlroots config data
2018-11-12Merge pull request #1369 from ascent12/wayland_backendDrew DeVault
Wayland backend improvements
2018-11-12xdg-shell: don't destroy xdg role state on role destroyemersion
ie. don't destroy surface->toplevel on xdg_toplevel destroy. Instead do this on xdg_surface destroy. This allows compositors to add toplevel listeners when the surface appears and remove them when the surface is destroyed.
2018-11-12Use #if instead of #ifdef for wlroots config dataemersion
This prevents some annoying issues when e.g. not including wlr/config.h or making a typo in the guard name.
2018-11-11backend/wayland: handle WL_EVENT_WRITABLE for Wayland socketemersion
We need to flush when the connection is writable again. This is important in case the write buffer becomes full. This is also what Weston does [1]. [1]: https://gitlab.freedesktop.org/wayland/weston/blob/master/libweston/compositor-wayland.c#L2593
2018-11-11backend/wayland: Make header order consistentScott Anderson
2018-11-11backend/wayland: Move initilisation code earlierScott Anderson
The renderer redesign is going to need the render fd before the backend is fully started, so we have to move the wl registry code to when the backend is created instead of when it is started. We also need to stash the wl_keyboard and emit it to library users later, once they've added their listeners and started the backend.
2018-11-11backend/wayland: Use specific wl_global versionsScott Anderson
Explicitly use the version we support instead of accepting the compositor's version.
2018-11-11backend/wayland: Move registry into backendScott Anderson
Registry was a very small file, and is heavily related to the backend, so there is not point in keeping them separate.
2018-11-10Merge pull request #1356 from emersion/egl-renderable-typeDrew DeVault
render: correctly set EGL_RENDERABLE_TYPE
2018-11-10render: correctly set EGL_RENDERABLE_TYPEemersion
This should be set to EGL_OPENGL_ES2_BIT. Also fixes EGL config attributes in the headless and X11 backends.
2018-11-09Merge pull request #1364 from ManDay/masterDrew DeVault
Tell Mesa not to attempt X11 headers
2018-11-09Tell Mesa not to attempt X11 headersCedric Sodhi
If no X11 related things are being built, tell Mesa's eglplatform.h not to attempt inclusion of associated X11 header.
2018-11-09Merge pull request #1361 from sghctoma/fix-shmemersion
Force ftruncate for shared memory objects on FreeBSD
2018-11-09Remove WLR_HAS_POSIX_FALLOCATE from build systemsghctoma
2018-11-09Use ftruncate to set shared memory object's sizesghctoma
The posix_fallocate function should only be used with regular files.
2018-11-09Merge pull request #1362 from julio641742/patch-1emersion
Fix compilation error on musl
2018-11-09Fix compilation error on muslJulio Galvan
_XOPEN_SOURCE is needed for the strings.h ffs function on the musl libc implementation
2018-11-08Force ftruncate for shared mem. objects on FreeBSDsghctoma
FreeBSD does not allow to use posix_fallocate on shared memory objects.
2018-11-06Merge pull request #1358 from emersion/xcursor-heapDrew DeVault
xcursor: Fix heap overflows when parsing malicious files
2018-11-06xcursor: Fix heap overflows when parsing malicious filesTobias Stoeckmann
It is possible to trigger heap overflows due to an integer overflow while parsing images. The integer overflow occurs because the chosen limit 0x10000 for dimensions is too large for 32 bit systems, because each pixel takes 4 bytes. Properly chosen values allow an overflow which in turn will lead to less allocated memory than needed for subsequent reads. See also: https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/?id=4794b5dd34688158fb51a2943032569d3780c4b8 https://gitlab.freedesktop.org/wayland/wayland/commit/5d201df72f3d4f4cb8b8f75f980169b03507da38
2018-11-06Merge pull request #1357 from emersion/xopen-sourceDrew DeVault
Use _POSIX_C_SOURCE, use shm_open
2018-11-06examples: only link clients to wlroots if necessaryemersion
2018-11-06Use _POSIX_C_SOURCE, use shm_openemersion
2018-11-04Merge pull request #1261 from arandomhuman/damage-controlDrew DeVault
Fix damage tracking for surfaces with transforms
2018-11-04Merge pull request #1350 from emersion/check-gles2-bgra-extDrew DeVault
render/gles2: remove assumptions about supported formats
2018-11-04surface: fix wlr_surface_get_effective_damage to give surface coordsemersion
Transforms were applied, but scale wasn't.
2018-11-04render/gles2: check for GL_OES_EGL_image_externalemersion
2018-11-04backend/drm: specify minimum config attributesemersion
Since the format used by DRM is GBM_FORMAT_ARGB8888, we need at least a R, G, B and A channel.
2018-11-04render/gles2: remove assumptions about supported formatsemersion
We were assuming GL_BGRA_EXT was always supported. We now check that it's supported for rendering. We fail if it isn't because this format is specified as "always supported" by the Wayland protocol. We also check if it's supported for reading pixels. A new preferred_read_format function returns the preferred format that can be used to read pixels. This is used by the screencopy protocol.
2018-11-01Merge pull request #1341 from emersion/view-at-unmappedDrew DeVault
rootston: fix segfault in view_at
2018-10-30Merge pull request #1346 from emersion/fix-schedule-frame-mgpuDrew DeVault
backend/drm: fix frame scheduling on secondary GPUs
2018-10-29Merge pull request #1344 from emersion/no-atomic-gammaemersion
backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variable
2018-10-29backend/drm: fix frame scheduling on secondary GPUsemersion
There was a missing copy_drm_surface_mgpu call in drm_connector_schedule_frame so we asked for a pageflip with an unknown BO, resulting in ENOENT. Additionally, this commit makes schedule_frame return a bool indicating failures. This allows schedule_frame_handle_idle_timer to only set frame_pending to true if a frame has been successfully scheduled. Thus, if a pageflip fails, rendering won't be blocked forever anymore. In case a pageflip is already pending, true is returned because a frame has already been scheduled and will be sent sometime soon.
2018-10-28backend/drm: add WLR_DRM_NO_ATOMIC_GAMMA env variableemersion
This allows the legacy interface to be used instead of atomic if needed. This is a workaround to make some Intel GPUs work (if this variable is unset) as well as to make some AMD GPUs work (if this variable is set).