aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-11-27gtk-primary-selection: refactor everything, untie from seatemersion
This commits completely refactors wlr_gtk_primary_selection. The goal is to remove gtk-primary-selection state from the seat and better handle inert resources where it makes sense. wlr_seat_client.primary_selection_devices has been removed and replaced by wlr_gtk_primary_selection_device. This allows us to make offers inert when the current selection is replaced. wlr_seat_set_primary_selection has been removed because it relied on wlr_seat instead of wlr_gtk_primary_selection_device_manager. A new function, wlr_gtk_primary_selection_device_manager_set_selection (candidate for the longest function name in wlroots) has been added. It doesn't take a serial anymore as serial checking only makes sense for set_selection requests coming from Wayland clients (serial checking is now done in the Wayland interface implementation). Since wlr_gtk_primary_selection_device_manager is now required to set the selection, a new function wlr_xwayland_set_gtk_primary_selection_device_manager (candidate number two for longest function name) has been added. Devices are now made inert when the seat goes away. Future work includes removing the last primary selection bits from the seat, mainly wlr_seat.primary_selection_source and wlr_seat.events.primary_selection, replacing those with new fields in wlr_gtk_primary_selection_device. Or maybe we could keep those in the seat and replace them with a re-usable interface (for future zwp_primary_selection_v1 support). We need to think how we'll sync these three protocols (GTK, X11 and wayland-protocols). See https://github.com/swaywm/wlroots/issues/1388
2018-11-26Merge pull request #1387 from emersion/rename-gtk-primary-selectionDrew DeVault
Rename wlr_primary_selection to wlr_gtk_primary_selection
2018-11-26Merge pull request #1384 from emersion/data-multiple-devicesDrew DeVault
data-device: allow multiple devices for the same seat
2018-11-26Merge pull request #1396 from emersion/fix-destroyed-subsurfaceDrew DeVault
surface: fix destroyed subsurfaces handling
2018-11-26surface: fix destroyed subsurfaces handlingemersion
wlr_subsurface_from_wlr_surface can return NULL if the wl_surface is still alive and if the wl_subsurface has been destroyed. Make sure we check for NULL. Fixes https://github.com/swaywm/sway/issues/3195
2018-11-26data-device: never cancel the source when offer is destroyedemersion
The source could be used in another offer.
2018-11-26data-device: allow multiple devices for the same seatemersion
This commit makes it possible for a single client to have multiple data devices for the same seat. This fixes issues with Firefox. This mainly removes wlr_data_source.offer. We make sure we create one data offer per device. We now make the offer inert when the source is destroyed. Fixes the second half of https://github.com/swaywm/wlroots/issues/1041
2018-11-26Merge pull request #1395 from emersion/text-input-log-newlineRyan Dwyer
text-input-v3: remove newline in log message
2018-11-26text-input-v3: remove newline in log messageemersion
2018-11-25Merge pull request #1392 from emersion/disable-static-analysisDrew DeVault
Disable Clang static analysis
2018-11-25Merge pull request #1375 from emersion/tablet-segfaultDrew DeVault
tablet-v2: fix segfault on display destroy
2018-11-25Disable Clang static analysisemersion
2018-11-24Merge pull request #1391 from buffet/fix-loc-countemersion
Fixed loc count in readme
2018-11-24Fixed loc count in readmebuffet
2018-11-24Merge pull request #1390 from ammen99/fix-preferred-read-formatemersion
output: add wlr_output_preferred_read_format()
2018-11-24output: add wlr_output_preferred_read_format()Ilia Bozhinov
The read format is dependent on the output, so we first need to make it current. This fixes a race condition in wlr-screencopy-v1 where a dmabuf client would cause EGL_NO_SURFACE to be bound at the time when screencopy needs to query for the preferred format, causing GL errors.
2018-11-23Rename wlr_primary_selection to wlr_gtk_primary_selectionemersion
2018-11-22Merge pull request #1385 from atomnuker/masteremersion
Fix interlaced mode rejection
2018-11-22Fix interlaced mode rejectionRostislav Pehlivanov
2018-11-21Merge pull request #1380 from emersion/gtk-primary-selection-multiple-devicesemersion
gtk-primary-selection: support multiple devices
2018-11-21Merge pull request #1382 from atomnuker/masteremersion
Skip interlaced modes during drm mode detection
2018-11-21Skip interlaced modes during drm mode detectionRostislav Pehlivanov
Fixes #3167 A better solution could be made if there's a need to.
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-12tablet-v2: fix segfault on display destroyemersion
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