aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2019-04-01render: introduce wlr_drm_format_setScott Anderson
This types adds a container for formats + modifiers. A list that is of [format [modifier]] was chosen instead of [format modifer] because that is how GBM accepts them. Co-Authored-By: emersion <contact@emersion.fr>
2019-03-27wlr_xdg_toplevel_v6: store pending fullscreen outputBrian Ashworth
Since the fullscreen request may be made before the toplevel's surface is mapped, the requested fullscreen output needs to be stored so it can be retrieved on map (along with the existing fullscreen property). This commit makes the required changes for wlr_xdg_toplevel_v6.
2019-03-27wlr_xdg_toplevel: store pending fullscreen outputBrian Ashworth
Since the fullscreen request may be made before the toplevel's surface is mapped, the requested fullscreen output needs to be stored so it can be retrieved on map (along with the existing fullscreen property). This commit makes the required changes for wlr_xdg_toplevel.
2019-03-21wlr_output: Add preferred property (#1625)Guido Günther
* wlr_output: Indicate modes link * wlr_output: Introduce preferred flag This indicates an outputs preferred mode. * drm: Set preferred flag for an outputs preferred mode
2019-03-19s/lid_switch/switch_deviceRyan Walklin
Rename lid_switch to switch_device to disambiguate lid and tablet mode switches.
2019-03-15backend/noop: improve output number handlingBrian Ashworth
This improves the way the output numbers are handled for the noop backend. Instead of using the number of active outputs plus one, the last used number is stored and new outputs will increment it. This fixes the situation where you start with one output, create a second, close the first, and create a third. Without this, both outputs will be NOOP-2, which causes an issue since the identifier will also be identical. With this, the last output is NOOP-3 and the outputs can be distinguished.
2019-03-15backend/headless: improve output number handlingBrian Ashworth
This improves the way the output numbers are handled for the headless backend. Instead of using the number of active outputs plus one, the last used number is stored and new outputs will increment it. This fixes the situation where you start with one output, create a second, close the first, and create a third. Without this, both outputs will be HEADLESS-2, which causes an issue since the identifier will also be identical. With this, the last output is HEADLESS-3 and the outputs can be distinguished.
2019-03-15backend/x11: improve output number handlingBrian Ashworth
This improves the way the output numbers are handled for the x11 backend. Instead of using the number of active outputs plus one, the last used number is stored and new outputs will increment it. This fixes the situation where you start with one output, create a second, close the first, and create a third. Without this, both outputs will be X11-2, which causes an issue since the identifier will also be identical. With this, the last output is X11-3 and the outputs can be distinguished.
2019-03-15backend/wayland: improve output number handlingBrian Ashworth
This improves the way the output numbers are handled for the wayland backend. Instead of using the number of active outputs plus one, the last used number is stored and new outputs will increment it. This fixes the situation where you start with one output, create a second, close the first, and create a third. Without this, both outputs will be `WL-2`, which causes an issue since the identifier will also be identical. With this, the last output is `WL-3` and the outputs can be distinguished.
2019-03-04xwayland: don't set DISPLAYemersion
Let the compositor set it. This allows for multiple Xwayland instances to run at the same time. Fixes https://github.com/swaywm/wlroots/issues/1442
2019-03-02rootston: split rendering code into render.cemersion
2019-03-02rootston: refactor renderingemersion
This implements rootston surface iterators to ease rendering, sending frame/presentation events and accumulating damage.
2019-03-01seat: use wlr_button_state enum instead of uint32_temersion
2019-02-28Remove glEGLImageTargetTexture2DOESGuido Günther
It's declared via render/glapi.txt.
2019-02-28wlr_xdg_shell: Remove redundant declaration in the same fileGuido Günther
2019-02-28rootston/view: Remove redundant declaration in the same fileGuido Günther
2019-02-28Unbreak build with '-Wstrict-prototypes'Guido Günther
2019-02-23Merge pull request #1517 from emersion/refactor-dndDrew DeVault
Refactor drag-and-drop
2019-02-23rootston: make roots_view embedded and remove unionsemersion
2019-02-23rootston: add a view child interfaceemersion
2019-02-23rootston: move part of desktop.c to view.c, use an interface for viewsemersion
2019-02-20data-device: unbreak wl_data_source.cancel during drag-and-dropemersion
2019-02-20data-device: refactor wlr_dragemersion
2019-02-19backend/drm: fix modeset on drm fd resumeBrian Ashworth
On DRM resume, such as switching back to a TTY, the output needs to be modeset to the current mode. However, wlr_output_set_mode will return early when attempting to set the mode to the current mode. This just steps around wlr_output_set_mode and calls drm_connector_set_mode directly.
2019-02-19Merge pull request #1493 from emersion/primary-selection-v1Drew DeVault
primary-selection-v1: copy from gtk-primary-selection
2019-02-17subsurface: add map/unmap eventsemersion
Fixes https://github.com/swaywm/wlroots/issues/1414
2019-02-15xwm: Add _NET_CLIENT_LIST supportUli Schlachter
Fixes: https://github.com/swaywm/wlroots/issues/1469 Signed-off-by: Uli Schlachter <psychon@znc.in>
2019-02-13primary-selection-v1: copy from gtk-primary-selectionemersion
2019-02-13Add a wlr_output_set_subpixel()Geoff Greer
drmModeConnector.subpixel doesn't seem to detect subpixel order on many displays (especially laptops). Allow subpixel order to be manually set. The corresponding PR for sway adds a subpixel output option: https://github.com/swaywm/sway/pull/3645 Once both are merged, https://github.com/swaywm/sway/issues/3163 will be fixed.
2019-02-10data-control: add primary selection supportIvan Molodetskikh
data-control: separate out a data_offer struct This is a prerequisite to adding primary selection support. data-control: separate out data_control_source This is a prerequisite to adding primary selection support, since that doesn't use wlr_data_source, but rather wlr_primary_selection_source. Update the data-control protocol data-control: add primary selection support Merge create_offer and create_primary_offer Extract code into data_control_source_destroy() Fix pointer style Move resource neutralization to destructor Store wl_resource in the data_offer Extract data_offer destruction into a function
2019-02-09Deprecate old protocolsemersion
2019-02-05xdg-shell: destroy child popups on unmapemersion
It doesn't make sense to keep popups opened when unmapped. We also need to do so in wlr_xdg_popup_destroy so that popups are destroyed in the correct order.
2019-02-04Allow cursor render surface to be used as fbVincent Vanlaer
In order for a surface to be used as a cursor plane framebuffer, it appears that requiring the buffer to be linear is sufficient. GBM_BO_USE_SCANOUT is added in case GBM_BO_USE_LINEAR isn't sufficient on untested hardware. Fixes #1323 Removed wlr_drm_plane.cursor_bo as it does not serve any purpose anymore. Relevant analysis (taken from the PR description): While trying to implement a fix for #1323, I found that when exporting the rendered surface into a DMA-BUF and reimporting it with `GBM_BO_USE_CURSOR`, the resulting object does not appear to be valid. After some digging (turning on drm-kms debugging and switching to legacy mode), I managed to extract the following error: ``` [drm:__setplane_check.isra.1 [drm]] Invalid pixel format AR24 little-endian (0x34325241), modifier 0x100000000000001 ``` The format itself refers to ARGB8888 which is the same format as `renderer->gbm_format` used in master to create the cursor bo. However, using `gbm_bo_create` with `GBM_BO_USE_CURSOR` results in a modifier of 0. A modifier of zero represents a linear buffer while the modifier of the surface that is rendered to is `I915_FORMAT_MOD_X_TILED` (see https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/include/uapi/drm/drm_fourcc.h?h=v4.20.6#n263). In order to fix this mismatch in modifier, I added the `GBM_BO_USE_LINEAR` to the render surface and everything started to work just fine. I wondered however, whether the export and import is really necessary. I then decided to test if the back buffer of the render surface works as well, and at least on my hardware (Intel HD 530 and Intel UHD 620) it does. This is the patch in this PR and this requires no exporting and importing. I have to note that I cheated in order to import DMA_BUFs into a cursor bo when doing the first tests, since on import the Intel drivers check that the cursor is 64x64. This is strange since cursor sizes other than 64x64 have been around for quite some time now (https://lists.freedesktop.org/archives/mesa-commit/2014-June/050268.html). Removing this check made everything work fine. I later (while writing this PR) found out that `__DRI_IMAGE_USE_CURSOR` (to which `GBM_BO_USE_CURSOR` translates) has been deprecated in mesa (https://gitlab.freedesktop.org/mesa/mesa/blob/master/include/GL/internal/dri_interface.h#L1296), which makes me wonder what the usecase of `GBM_BO_USE_CURSOR` is. The reason we never encountered this is that when specifying `GBM_BO_USE_WRITE`, a dumb buffer is created trough DRM and the usage flag never reaches the Intel driver directly. The relevant code is in https://gitlab.freedesktop.org/mesa/mesa/blob/master/src/gbm/backends/dri/gbm_dri.c#L1011-1089 . From this it seems that as long as the size, format and modifiers are right, any surface can be used as a cursor.
2019-01-30relative-pointer-v1: time is in usec, not msecemersion
2019-01-30rootston: only allow one drag icon per seatemersion
2019-01-30seat: don't send motion if pointer hasn't movedemersion
2019-01-29Require libdrm >= 2.4.95emersion
2019-01-29Merge pull request #1509 from emersion/gbm-fmt-mismatchDrew DeVault
backend/drm: fix GBM format mismatch
2019-01-29backend/drm: fix GBM format mismatchemersion
We create the EGL config with GBM_FORMAT_ARGB8888, but then initialize GBM BOs with GBM_FORMAT_XRGB8888. This mismatch confuses Mesa. Instead, we can always use GBM_FORMAT_ARGB8888, and use DRM_FORMAT_XRGB8888 when calling drmModeAddFB2. Fixes https://github.com/swaywm/wlroots/issues/1438
2019-01-28Implement the pointer-gestures-unstable-v1 protocolGreg V
This protocol relays touchpad gesture events produced by libinput to supporting clients (e.g. Evince, Eye of GNOME).
2019-01-26pointer: add a frame eventemersion
Frame events group logically connected pointer events. It makes sense to make the backend responsible for sending frame events, since once the events are split (ie. once the frame events are stripped) it's not easy to figure out which events belongs to which frame again. This is also how Weston handles frame events. Fixes https://github.com/swaywm/wlroots/issues/1468
2019-01-24data-device: keep track of wlr_data_offer in wlr_seat listsemersion
2019-01-24data-device: add wlr_data_offer.typeemersion
2019-01-24data-device: unexport wlr_seat_client_send_selectionemersion
2019-01-24data-device: remove data_source_send_offeremersion
2019-01-24data-device: make sources inert, rename cancel to destroyemersion
2019-01-24data-device, primary-selection: add request_set_selectionemersion
This makes compositors able to block and/or customize set_selection requests coming from clients. For instance, it's possible for a compositor to disable rich selection content (by removing all MIME types except text/plain). This commit implements the design proposed in [1]. Two new events are added to wlr_seat: request_set_selection and request_set_primary_selection. Compositors need to listen to these events and either destroy the source or effectively set the selection. Fixes https://github.com/swaywm/wlroots/issues/1138 [1]: https://github.com/swaywm/wlroots/issues/1367#issuecomment-442403454
2019-01-21primary-selection: add a serial argumentemersion
The serial needs to be bumped when X11 clients set the selection, otherwise some Wayland clients (e.g. GTK) will overwrite it when they gain focus.
2019-01-21Fix indentation in various filesemersion
2019-01-20Add wlr_x11_output_set_titleJente Hidskes