aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
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-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-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: 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 #1372 from emersion/config10Drew DeVault
Use #if instead of #ifdef for wlroots config data
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: 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: 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-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-09Remove WLR_HAS_POSIX_FALLOCATE from build systemsghctoma
2018-11-04Merge pull request #1261 from arandomhuman/damage-controlDrew DeVault
Fix damage tracking for surfaces with transforms
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-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-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-28util: use shm_open for in-memory filesemersion
shm_open is a POSIX function creating an in-memory file. Using it simplifies the code and removes the dependency on XDG_RUNTIME_DIR. The only downside is that we need to generate a random name for the shm file.
2018-10-28render: on Wayland, make eglSwapBuffers non-blockingemersion
2018-10-27xwayland: fix typo to enable transparencyemersion
We spent literally hours trying to debug this. Turns out it's a typo. Kill me.
2018-10-19Merge pull request #1287 from emersion/source-seat-clientDrew DeVault
data-device: remove wlr_data_source.seat_client
2018-10-16Use enum wl_shm_format for gles2 texture formatsnyorain
Also rephrase the write_pixels comment.
2018-10-15Remove fmt parameter from wlr_texture_write_pixelsnyorain
It's not allowed to change the format of a texture so remove the confusing parameter.
2018-10-12Support older wlr_linux_dmabuf_v1 clientsnyorain
If a client uses an older version of the dmabuf protocol, use the `formats` event instead of `modifiers` (since that didn't exist in older versions). With a bit of necessary guessing, support dmabuf importing even when EGL_EXT_image_dma_buf_import_modifiers isn't present instead of failing up front.
2018-10-12input-method-v2: fix include guard nameemersion
2018-10-12Merge pull request #1203 from dcz-purism/inputDrew DeVault
Support input method and text input
2018-10-12Include wlr/config.h in x11.hScott Anderson
This fixes a warning from the linker when using LTO, due to mismatched types.
2018-10-09rootston: add support for text input and the basic of input methodDorota Czaplejewicz
The compositor acts as a relay between applications using the text-input protocol and input methods using the input-method protocol. This change implements the basic but useful support for input-method, leaving out grabs as well as popups.
2018-10-09wlroots: add basic support for zwp_input_method_v2Dorota Czaplejewicz
Implemented basic input method functionality. Not included: popups, grabbing.
2018-10-09wlroots: add support for zwp_text_input_unstable_v3Dorota Czaplejewicz
2018-10-08Merge pull request #1280 from emersion/drm-link-statusScott Anderson
backend/drm: add support for the link-status property
2018-10-07data-device: remove wlr_data_source.seat_clientemersion
Since the source doesn't always come from a client, this field doesn't make sense. It is replaced by a new "finalized" field in wlr_client_data_source. This is used to make sure set_actions is not sent after start_drag has been sent. A check in data_offer_choose_action has been removed: if an offer has been sent then start_drag has been called, no need to check. I also wanted to add a check for wl_data_source.offer, but it turns out (1) this isn't in the spec (2) it breaks GTK+. This is some preliminary work for Firefox on Wayland compatibility.
2018-10-05output: don't trigger a frame immediately in schedule_frameemersion
This desynchronizes our rendering loop with the vblank cycle. In case a compositor doesn't swap buffers but schedules a frame, emitting a frame event immediately enters a busy-loop. Instead, ask the backend to send a frame when appropriate. On Wayland we can just register a frame callback on our surface. On DRM we can do a no-op pageflip. Fixes #617 Fixes swaywm/sway#2748
2018-10-04output: add presentation refresh predictionemersion
2018-10-04rootston: send presentation eventsemersion
2018-10-04Rename get_present_clock to get_presentation clock, use itemersion
2018-10-04backend: add get_present_clockemersion
2018-10-04output: document signalsemersion
2018-10-04output: add present eventemersion
2018-10-04presentation-time: add protocol implementationemersion
2018-10-04backend/drm: add support for the link-status propertyemersion
2018-10-04Merge pull request #1281 from aereaux/edid-sizesemersion
Update sizes for new EDID database.
2018-10-04Merge pull request #1262 from nyorain/session_fixDrew DeVault
Improve session handling
2018-10-04Update sizes for new EDID database.Aidan Epstein
2018-10-04Use sd_bus_get_property_trivial & remove numberingnyorain
2018-10-04wlr_surface: add wlr_surface_get_effective_damagerandom human
This calculates and returns the effective damage of the surface in surface coordinates, including the client damage (in buffer coordinates), and damage induced by resize or move events.