Commit graph

3136 commits

Author SHA1 Message Date
Dorota Czaplejewicz
f4ae9824f7 rootston/layer_shell: fix clicking after surface moved/resized
Layer surfaces are not notified of cursor position changes if the surface moves, only if the cursor moves. This workaround emits a cursor position event every time a cursor ends up over a newly resized layer surface to make sure the following clicks land in the right place.

This change doesn't address sending leave events when a cursor previously present over the surface becomes away.

There are 2 separate mechanisms in play, because a layer surface gets resized in 2 steps:

1. Layer surface resize & rearrange.
2. Underlying surface resize.

The first step may affect all layer surfaces. The cursor events are sent to cursors placed over all layer surfaces which have moved (not been resized). The second step affects any layer surface whose surface changed size. The cursor event is sent only to that surface.

Together, these events cover all surfaces: those which moves, and those which changed size, as long as each layer surface resize is accompanied by an immediate surface resize.
2018-08-23 11:29:03 +02:00
Scott Anderson
39ac21401f Replace generator with custom_target
This stops the protocol header constantly being regenerated for every
target using them.
2018-08-23 14:21:41 +12:00
Scott Anderson
f41c411980 Use input file for configure_file
This is so we can potentially add comments to it, and so if a user looks
at the installed header, they can see the /* #undef WLR_HAS_FEATURE */
line to see every option, even if not available.
2018-08-23 14:19:59 +12:00
Scott Anderson
653ea512c2 Use current_source_dir instead of source_root
This is so that log messages are printed properly when wlroots is build
as a subproject.
2018-08-23 14:19:59 +12:00
Scott Anderson
b1ed61b649 Use pkg-config to find wayland-scanner 2018-08-23 14:19:56 +12:00
Dorota Czaplejewicz
6db9c4b746 wlr_virtual_keyboard: use wlr_input_device_destroy 2018-08-22 14:43:29 +01:00
Dorota Czaplejewicz
2929f0f8dd wlr_input_device: fix keyboard destruction
After destroying a keyboard input device, seat's listeners could still be pointing to destroyed wlr_input_device signals. This patch makes sure the references are removed while the input device is being destroyed.
2018-08-22 14:43:29 +01:00
Scott Anderson
51892e0d74 Install headers explicitly 2018-08-22 21:16:16 +12:00
Scott Anderson
a2bbf2c1f7 Make style more consistent 2018-08-22 21:16:16 +12:00
Scott Anderson
869dca1bce Remove unnecessary project arguments
Meson handles rpath properly, and we don't need to use -I ourselves by
using include_directories with '.'.
2018-08-22 21:16:16 +12:00
Scott Anderson
1358d80ab9 Add link dependency on symbols file
So the library is rebuilt properly when it's updated.
2018-08-22 21:16:16 +12:00
Scott Anderson
584a3f8b6e Update examples to use new option
We use a dictionary to remove some code duplication.
2018-08-22 21:15:34 +12:00
Scott Anderson
560e96aa57 Update rootston to use new option 2018-08-22 20:41:25 +12:00
Scott Anderson
784c20c82f Use new options for X11 backend and Xwayland 2018-08-22 20:27:37 +12:00
Scott Anderson
94ed2fc7bb Use feature options for libcap/logind
We now use a combo choice between systemd/elogind as they are mutually
exclusive anyway.
2018-08-22 19:53:00 +12:00
Scott Anderson
3fa3dca6d5 Add new feature options
Bump minimum meson version to 0.47 for the feature.
2018-08-22 19:41:53 +12:00
Scott Anderson
66064a07a6 Remove unneeded mesa-specific header 2018-08-22 19:39:15 +12:00
Drew DeVault
d7c027d3e3
Merge pull request #1191 from emersion/drm-conn-dpi
backend/drm: add support for DRM_MODE_CONNECTOR_DPI
2018-08-21 08:16:02 -04:00
emersion
7a3f7b3c8a backend/drm: add support for DRM_MODE_CONNECTOR_DPI 2018-08-21 13:05:38 +01:00
emersion
24212df830 rootston: fix again FreeBSD build
Had an outdated copy of wlroots, so missed that one.
2018-08-16 11:22:42 +01:00
emersion
56600804ff
Merge pull request #1189 from agx/ctags-f
ctags: use -f instead of -o
2018-08-16 11:11:08 +01:00
emersion
d66d33f5a2
Merge pull request #1188 from emersion/freebsd-fixes
Fix build on FreeBSD
2018-08-16 11:02:21 +01:00
Guido Günther
570970db64 ctags: use -f instead of -o
The later does not exist on FreeBSD

See #725
2018-08-16 12:01:06 +02:00
emersion
f86f1daf9a Fix build on FreeBSD 2018-08-16 10:54:45 +01:00
emersion
1a73baac94
Merge pull request #1187 from ammen99/master
move wlr_drm_connector_add_mode to wlr/backend/drm.h
2018-08-13 14:43:57 +01:00
Ilia Bozhinov
4486b52aa8 move wlr_drm_connector_add_mode to wlr/backend/drm.h 2018-08-13 10:55:42 +03:00
emersion
4ed6ee0a4d
Merge pull request #1184 from sdilts/add-default-output-size
Keep X11 backend windows from having an invalid size
2018-08-11 08:41:29 +01:00
sdilts
8e7df5eb88 Fix xcb_create_window parameters
Set the window width and height, not the location of the window.
2018-08-10 18:05:34 -06:00
Genki Sky
11d440972d rootston: Double fork for keyboard bindings
This avoids leaving around zombies, without having to setup SIGCHLD
handler (which interferes with other fork/waitpid calls).
2018-08-10 10:59:50 -04:00
sdilts
da79fef5f7 Add guard for changing the size of X11 backend windows
Events that set the window to either a width or height of zero are now
ignored and logged.
2018-08-09 22:09:48 -06:00
sdilts
55cca6deaa Set default output size for X11 backend
Fixes issue #1170
Also set the created window size to match the output size.
2018-08-09 22:05:18 -06:00
emersion
d2814c1795
Merge pull request #1183 from ammen99/master
remove dangling declaration of wlr_xdg_surface_popup_get_position()
2018-08-09 12:56:49 +01:00
Ilia Bozhinov
88e9dbe32e remove dangling declaration of wlr_xdg_surface_popup_get_position() 2018-08-09 07:55:20 +03:00
Scott Anderson
ce0ab4d4b5
Merge pull request #1182 from ammen99/master
session: load GPU devices even if they have zero connectors
2018-08-09 08:37:05 +12:00
Ilia Bozhinov
cb42e16f64 session: load GPU devices even if they have zero crtcs/connectors/encoders
On some systems (most notably laptops with two GPUs) there are GPUs that
don't have attached outputs. However, we still want to load those GPUs
because they could still be used by the compositor for rendering.
2018-08-08 07:34:12 +03:00
Drew DeVault
28b0a4065b
Merge pull request #1179 from emersion/rootston-toggle-decoration-mode
rootston: add keybinding to toggle decoration mode
2018-08-06 08:11:06 -04:00
emersion
9d0e37f768 rootston: add keybinding to toggle decoration mode 2018-08-06 08:35:14 +01:00
Markus Ongyerth
3ad7b146eb Fix typos/order in tablet-v2 2018-08-06 08:45:44 +02:00
Markus Ongyerth
f64962ace8 tablet-v2 tool: Implement implicit grab
Implement the tablet-v2 tablet tool's implicit grab semantics for
buttons and tip.

This avoids losing focus (to other [sub]surfaces) when a button is held,
or the tip is down.
This should help when the device is used close to a surface's border and
would otherwise have to be very precise.
2018-08-06 08:45:41 +02:00
emersion
84e87be6df
Merge pull request #1177 from ascent12/check_prime
Check for DRM prime
2018-08-05 07:46:29 +01:00
Scott Anderson
2d8f53affd Check for DRM prime
This will indicate the user properly when multi-GPU is not supported by
their GPU driver.
2018-08-05 18:25:25 +12:00
Drew DeVault
e8fa25e027
Merge pull request #1168 from manio/multi-gpu
Fix support for multiple GPU
2018-08-04 12:16:34 -04:00
Scott Anderson
1a2b3445dc Remove unused data from gbm_bo userdata
These aren't used anymore and crashes when the gbm_bo tries to get
destroyed (e.g. on hotplug).
2018-08-04 17:02:53 +12:00
Scott Anderson
4bee710c30 Fix hardware cursor on secondary GPU
Create rendering resources on parent GPU, so that we can sample the
passed in texture properly. The cursor buffer needs to remain on the
same GPU.
2018-08-04 15:08:28 +12:00
Ryan Dwyer
23e2c3c759
Merge pull request #1175 from emersion/fix-xdg-output-layout-destroy
xdg-output: fix segfault in handle_layout_destroy
2018-08-03 23:11:11 +10:00
emersion
c4522062f6 xdg-output: fix segfault in handle_layout_destroy 2018-08-03 14:03:53 +01:00
Mariusz Bialonczyk
e547e55be0 multi-gpu: do not flip screens on secondary GPU
All screens on secondary GPU in multiple GPU configurations
was flipped 180.

The flipped screens was always on secondary card (the primary card
was always correct).

Tested on nouveau with:
WLR_DRM_DEVICES=/dev/dri/card1:/dev/dri/card2
WLR_DRM_DEVICES=/dev/dri/card2:/dev/dri/card1

The commit is fixing this problem. Now all screens are "normal".
2018-08-03 07:43:22 +02:00
Mariusz Bialonczyk
ad406db21c gles2: change context when it is not current
Texture functions, that create and manipulate textures should switch
the current context if necessary.

thanks to: @emersion

Fixes #934
2018-08-03 07:43:22 +02:00
Mariusz Bialonczyk
15dacebc36 multi-backend: do not expose internal renderers
backend_get_renderer() is now returning the renderer of the primary GPU, instead
of its own renderer, since that's the thing which actually does all of the "real"
rendering

wlr_multi_backend_add() is now adding all subbackends (otherwise only one GPU
is handled).

credits: @ascent12
2018-08-03 07:43:22 +02:00
Scott Anderson
eb9c9d8852
Merge pull request #1173 from sdilts/add-missing-libinput
Add missing dependency libinput to types/meson.build
2018-08-03 14:58:22 +12:00