Brian Ashworth
c6955fa89c
Merge pull request #1199 from apreiml/farthest_output
...
introduce wlr_output_layout_farthest_output
2018-08-25 11:00:25 -04:00
Armin Preiml
5617d2bd60
introduce wlr_output_layout_farthest_output
...
Similar to wlr_output_layout_adjacent_output but will return the
one that is the farthest away from the reference in given direction.
2018-08-25 09:14:55 +02:00
Scott Anderson
fd3fa760d3
Revert "Revert "Merge pull request #1194 from ascent12/meson_feature""
...
This reverts commit 9c886f20b9
.
2018-08-24 19:35:02 +12:00
Drew DeVault
9c886f20b9
Revert "Merge pull request #1194 from ascent12/meson_feature"
...
This breaks wlroots when used as a meson subproject.
This reverts commit dea311992e
, reversing
changes made to 6db9c4b746
.
2018-08-23 21:00:58 -04: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
51892e0d74
Install headers explicitly
2018-08-22 21:16:16 +12:00
Ilia Bozhinov
4486b52aa8
move wlr_drm_connector_add_mode to wlr/backend/drm.h
2018-08-13 10:55:42 +03:00
Ilia Bozhinov
88e9dbe32e
remove dangling declaration of wlr_xdg_surface_popup_get_position()
2018-08-09 07:55:20 +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
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
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
Drew DeVault
1654fc80eb
Merge pull request #1157 from emersion/wlr-gamma-control
...
Implement wlr-gamma-control-unstable-v1
2018-08-02 18:48:09 -04:00
emersion
2ebecb6727
backend/drm: allow to pass empty gamma ramp to reset it
2018-08-02 23:33:59 +01:00
emersion
e21563ec76
output: document gamma functions
2018-08-02 23:33:59 +01:00
emersion
a5cab82a0f
rootston: fire up wlr-gamma-control-unstable-v1
2018-08-02 23:33:59 +01:00
emersion
a149c2370a
Implement wlr-gamma-control-unstable-v1
2018-08-02 23:33:04 +01:00
emersion
9dd4388ed9
xwayland: document SIGUSR1 handler
2018-08-02 23:29:34 +01:00
Drew DeVault
5642c5cc8f
Merge pull request #1053 from emersion/xdg-decoration
...
Add xdg-decoration-unstable-v1 support
2018-08-02 09:33:10 -04:00
Brian Ashworth
a3c33e93b8
Merge pull request #1167 from ammen99/master
...
rootston: focus newly-created surfaces
2018-07-29 22:03:53 -04:00
Drew DeVault
211ae764fd
Initial pass on API stability guarantees
...
This introduces -DWLR_USE_UNSTABLE and adds information regarding the
stability status to all headers. I started with a conservative set of
headers to mark as stable:
- types/wlr_matrix.h
- util/edges.h
- util/log.h
- util/region.h
- xcursor.h
2018-07-29 19:20:34 -04:00
Ilia Bozhinov
2e6eb097b6
rootston: focus newly-created surfaces
...
Whenever a new surface is created, we have to update the cursor focus,
even if there's no input event. So, we generate one motion event, and
reuse the code to update the proper cursor focus. We need to do this
for all surface roles - toplevels, popups, subsurfaces.
Fixes #1162
2018-07-29 21:58:33 +03:00
Markus Ongyerth
81cc842f8f
reintroduce xwayland is_unmanaged
...
153f37bdf5
(#1145 ) removed the
wlr_xwayland_is_unamanged function while fixing OR, because it was
belieived that it's supposed to work around the broken OR handling.
This was a misunderstanding. is_unmanaged is (while sort of a hack)
intended to work around inherent differences between "real" X sessions
and our Xwayland/wayland situation.
The main reason it exists is to support applications like rofi and dzen,
while not handing focus to other OR windows (which should *not* be
required).
Traditionally, these applications just grabbed input from X and didn't
need to be focused by any logic in the WM. Which of course doesn't work
in wayland compositors. So we have to give them focus in some way.
Giving *every* OR window focus, breaks other applications that don't
expect focus to change.
A testcase that was pointed out to me where wlr_xwayland_is_unamanged was
breaking things is https://github.com/swaywm/sway/issues/2128 (syncplay,
gitk, gitgui)
Supposedly it broke using keyboard to navigate the menus.
I can't reproduce this with this patch. The popups can be navigated as
long as the parent has focus.
2018-07-29 14:43:17 +02:00
emersion
555721f714
Add xdg-decoration-unstable-v1 support
2018-07-28 22:48:07 +01:00
Drew DeVault
f1b65b34a6
Merge pull request #1127 from emersion/surface-precommit
...
surface: add wlr_surface_role.precommit
2018-07-27 13:21:03 -04:00
Markus Ongyerth
d5950255de
tablet-v2 tablet_tool grab implementation
...
Implement the basic logic for tablet-v2 tablet_tool's grabs. And plug in
the default grab.
2018-07-23 10:08:10 +02:00
Ilia Bozhinov
8b7c85d765
xdg-shell(-v6): add set_title and set_app_id toplevel signals
...
This is useful for example when rendering decorations
2018-07-22 22:42:37 +03:00
emersion
5dbf0fe7f2
linux-dmabuf: add v1 suffix
...
This prevents some future conflicts with the stable version.
Fixes #1133
2018-07-19 21:50:05 +01:00
Ryan Dwyer
dc58c1356d
Introduce set_hints event for xwayland
2018-07-19 21:07:11 +10:00
Markus Ongyerth
454f2a84a8
tablet-v2 tablet_pad grab implementation
...
Implement the basic logic for tablet-v2 tablet_pad's grabs. And plug in
the default grab.
Features like "holding" the focus should be implemented via grabs, like
they are for pointer and keyboard.
2018-07-19 11:35:00 +02:00
emersion
153f37bdf5
xwayland: handle override_redirect flag changes
...
The override_redirect flag can change on configure notify and
on map notify. This adds an event to know when it changes.
This removes wlr_xwayland_surface_is_unmanaged which was wrongly
using the window type to decide whether the view should be
unmanaged.
A similar patch was proposed to Weston, but has never been
merged upstream [1].
[1]: https://patchwork.freedesktop.org/patch/211161/
2018-07-18 18:51:03 +01:00
emersion
16d7e09d99
surface: add wlr_surface_role.precommit
...
This allows to emit the unmap event before the surface becomes
actually unmapped for most shells.
2018-07-15 19:30:19 +01:00
Markus Ongyerth
9a6f77fc2c
tablet-v2: fix merge commits and test again
...
There were a few issues after rebase, that the merge algorithm didn't
throw at my face:
wlr_output did a check on the actual role, not a string anymore, so that
had to go to allow tablet-v2 to set cursor surfaces.
A few L_DEBUG/L_ERRORs were still around
There was a user-after-free in tablet-group free()ing, probably after
insufficient testing from a previous feedback pass
2018-07-14 10:29:22 +02:00
Markus Ongyerth
74ca2f8fcf
Another round of feedback from acrisci
2018-07-14 09:52:34 +02:00
Markus Ongyerth
43b20bfea2
First feedback pass from acrisci
2018-07-14 09:52:05 +02:00
Markus Ongyerth
9313ac1068
propagate rename to rootston code
2018-07-14 09:51:26 +02:00
Markus Ongyerth
d9e978e1b3
rename wlr_tablet_tool to wlr_tablet
...
The previous naming was based on the input-device capability names from
libinput.
With code that uses the libinput_tablet_tool and mapping into tablet-v2,
this is confusing, so the name is changed to follow the names used in
the protocol.
2018-07-14 09:49:58 +02:00
Markus Ongyerth
b84288af16
Remove unused tablet_pad list from tools
2018-07-14 09:48:57 +02:00
Markus Ongyerth
6b51f3b57a
use previous resource versions and destroy pads
2018-07-14 09:48:57 +02:00
Markus Ongyerth
48e2cba9b6
Handle relative motion for mouse tools
2018-07-14 09:48:57 +02:00
Markus Ongyerth
5cbdd13df8
remove unused wl_listener
2018-07-14 09:48:57 +02:00
Markus Ongyerth
2bc09d91c3
Silent conversion from double to int should be illegal
2018-07-14 09:48:57 +02:00
Markus Ongyerth
dc525a9c5f
Clean up serial handling and automate proximity acompaning events
2018-07-14 09:48:57 +02:00
Markus Ongyerth
25c2808153
Clean up serial handling
2018-07-14 09:48:57 +02:00
Markus Ongyerth
88a4b908d1
Hide pad auxiliary data in .c file
2018-07-14 09:48:57 +02:00
Markus Ongyerth
fa39fd178d
Split tablet_v2 implementation for easier maintainance
2018-07-14 09:48:57 +02:00
Markus Ongyerth
2c12011472
Send all tablet tool axis events
2018-07-14 09:47:16 +02:00
Markus Ongyerth
2155c976f6
Improve inert resource handling
2018-07-14 09:47:16 +02:00
Markus Ongyerth
b79d11395c
Hook up set_cursor in rootston
2018-07-14 09:47:16 +02:00
Markus Ongyerth
0c9a26828a
Use wlr_list for paths, and improve inert resource handling
2018-07-14 09:43:17 +02:00
Markus Ongyerth
adba68a3c1
Use tablet_tool impl in libinput backend
2018-07-14 09:43:16 +02:00
Markus Ongyerth
31cec36b74
1st feedback pass
...
Rename make_ functions to _create
Implement set_cursor and set_feedback
2018-07-14 09:43:16 +02:00
Markus Ongyerth
5c7a37f309
Add tool buttons
2018-07-14 09:40:39 +02:00
Markus Ongyerth
391eef6ea9
Propagate most axis events to clients
2018-07-14 09:40:39 +02:00
Markus Ongyerth
f375246657
Implement basic tablet_pad handling (bound to keyboard focus)
2018-07-14 09:40:39 +02:00
Markus Ongyerth
e235f7d336
Basic tablet_v2 object lifetime
2018-07-14 09:40:39 +02:00
Markus Ongyerth
77bac448cc
storage commit #2
2018-07-14 09:40:39 +02:00
Markus Ongyerth
000b305ecc
backend/libinput: Manage tablet tool livetimes
...
This adds the management code to manage tablet tools lifetimes from
libinput.
It follows the suggestion made in the tablet-unstable-v2.xml to destroy
tablet_tools once all tablets that it got into contact with were removed
from the system. This is implemented via a refcount.
If a tool is *not* unique, it will be destroyed on proximity out. This
is libinput specific and mentioned in libinput docs that tools will not
be found again, so we shouldn't keep a reference to them.
Also they can't be on other tablets as well, because they cannot be
tracked.
The naming in this commit is a bit off (to not break things).
The wlr names stay the same, tablet_tool is the libinput_device with
capaiblity LIBINPUT_DEVICE_CAP_TABLET_TOOL which is more akin to
"tablet" in the tablet-unstable-v2 protocol.
The struct that corresponds to the tablet_tool in tablet-unstable-v2 is
called tablet_tool_tool, a rename should be done at some point in the
future.
2018-07-14 09:40:39 +02:00
emersion
5bb272d7f3
surface: add wlr_surface.opaque_region
2018-07-13 10:54:51 +01:00
emersion
c4915d1492
render: add wlr_texture_is_opaque
2018-07-12 23:35:33 +01:00
Drew DeVault
c0b4217fce
Merge pull request #1116 from emersion/surface-role
...
surface: replace wlr_surface_set_role_committed with wlr_surface_role
2018-07-11 15:27:42 -07:00
emersion
7cbef15206
util: add wlr_ prefix to log symbols
2018-07-09 22:49:54 +01:00
emersion
deeca53e33
Rename wl_resources to resource, wl_global to global
2018-07-08 19:21:31 +01:00
emersion
c19d475753
xdg-output: don't send no-op updates
...
To begin with, no-op updates are unnecessary, so this patch is an
improvement on its own.
Then, this fixes hotplugging issues with xwayland. xwayland waits
for both wl_output and xdg_output to send a "done" event. However,
it doesn't handle well desynchronized "done" updates: if xdg-output
sends "done" twice, the second one will wait for the next wl_output
"done" event. This is an issue when the first is a no-op and the
second is a real update: the second isn't applied. I've considered
patching xwayland instead, but it seems pretty complicated.
2018-07-08 14:12:18 +01:00
emersion
33db4263a0
surface: replace wlr_surface_set_role_committed with wlr_surface_role
2018-07-07 22:45:16 +01:00
Drew DeVault
be54278207
Merge pull request #1095 from agx/output-add-mode
...
Allow to add additional modes to outputs
2018-07-07 08:58:17 -07:00
Guido Günther
709d7dd722
rootston: Handle modeline parameter
...
This allows to pass custom modes.
2018-07-07 17:31:42 +02:00
Guido Günther
8d72090afe
drm: Allow to add additional modes
...
This allows to add additional modes to the list of available video modes
using VESA Coordinated Video Timing information.
Closes #1080
2018-07-07 14:51:39 +02:00
emersion
226306ed45
surface: rename wlr_surface_state.buffer to buffer_resource
2018-07-04 19:12:18 +01:00
emersion
012e38fbe5
surface: add wlr_surface.previous
2018-07-04 19:12:18 +01:00
emersion
78555abba3
surface: move position and scale out of wlr_surface_state
2018-07-04 19:12:17 +01:00
emersion
233bfe2f4f
surface: do not monkey-patch state damage
2018-07-04 19:12:17 +01:00
emersion
adf0423f7c
surface: better buffer position handling
2018-07-04 19:12:17 +01:00
emersion
e6399c61b7
surface: fix WLR_SURFACE_STATE_BUFFER_DAMAGE value
2018-07-04 19:12:17 +01:00
emersion
3c0d672ebd
surface: make pending and current embedded structs
2018-07-04 19:12:17 +01:00
emersion
64836ddfe7
surface: remove wlr_surface_state.subsurface_position
2018-07-04 19:12:17 +01:00
emersion
3ee86b6105
surface: rename invalid state
2018-07-04 19:12:16 +01:00
Ryan Dwyer
86f401e827
Introduce wlr_xdg_surface_for_each_popup
...
It is common to want to iterate an xdg-surface's popups separately from
the toplevel and subsurfaces. For example, popups are typically rendered
on top of most other surfaces.
wlr_xdg_surface_for_each_surface continues to iterate both surfaces and
popups to maintain backwards compatibility.
2018-07-01 23:24:39 +10:00
emersion
dbb01cbcd0
screencopy: listen to buffer destroy
2018-06-30 22:18:04 +01:00
emersion
c421700f3d
screncopy: update protocol
2018-06-30 22:18:04 +01:00
emersion
bf7560b7cd
screencopy: add capture_output_region support
2018-06-30 22:18:04 +01:00
emersion
2b9cbaddf3
screencopy: add support for frame flags
2018-06-30 22:18:03 +01:00
emersion
73755ad348
screencopy-v1: add basic implementation
2018-06-30 22:17:59 +01:00
Dominique Martinet
c263f7ca29
s/wlr_subsurface_from_surface/wlr_subsurface_from_wlr_surface/
...
This was the only x_from_wlr_surface function that lacked the wlr_ prefix,
let's have an API as uniform as possible.
2018-06-30 21:21:13 +09:00
Dominique Martinet
0ced9df350
wlr_idle_inhibit_v1: add *data pointer to wlr structs
2018-06-28 20:29:44 +09:00
Dominique Martinet
d0b902b962
wlr_idle: add helper to enable/disable all timers
...
There was no way to tell wlr_idle to stop processing input events
and rearm timers all the time, such an API is required to have
some form of idle inhibitor.
2018-06-27 22:47:05 +09:00
Drew DeVault
e459fe0ec7
Merge pull request #992 from emersion/screencontent
...
Implement wlr_export_dmabuf_unstable_v1 protocol
2018-06-22 05:37:07 -07:00
emersion
0e3b35c87e
Merge pull request #1072 from emersion/surface-remove-matrices
...
surface: remove matrices
2018-06-20 21:29:17 +01:00
emersion
831b7297a4
surface: remove matrices
...
These were unused.
2018-06-20 21:01:35 +01:00
emersion
a6c0e25d36
surface: remove wlr_frame_callback
...
This removes the need to allocate a structure for frame callbacks.
wl_resource_get_link is used instead.
2018-06-20 20:00:23 +01:00
emersion
57548b557a
Merge branch 'master' into screencontent
2018-06-17 14:49:18 +01:00
Drew DeVault
fb118ac996
Merge pull request #1062 from emersion/wlr-buffer-comeback
...
Add back wlr_buffer
2018-06-16 13:43:14 -07:00
Drew DeVault
8e33deb0be
Merge pull request #1063 from ascent12/multi-seat
...
Multiseat fixes
2018-06-14 10:37:06 -07:00
Scott Anderson
47985d2dc5
Multiseat fixes
2018-06-14 20:46:16 +12:00
Drew DeVault
d27eeaa14c
Revert "Merge pull request #1050 from emersion/wlr-buffer"
...
This reverts commit 5e4af4862e
, reversing
changes made to 9a1f0e2d5f
.
2018-06-13 19:57:42 -04:00
emersion
0378d143d9
surface: remove wlr_surface.texture
...
The texture is managed by the surface's wlr_buffer now. In
particular, the buffer can destroy the texture early if it becomes
invalid.
2018-06-13 19:38:10 +01:00
emersion
d643361c48
Merge pull request #1047 from NotKit/gles2fix
...
Fix GLES2 renderer to use glGetUniformLocations locations
2018-06-13 15:37:16 +01:00
Drew DeVault
5e4af4862e
Merge pull request #1050 from emersion/wlr-buffer
...
Introduce wlr_buffer
2018-06-13 05:40:23 -07:00
NeKit
6f29db1044
gles2 renderer: introduce struct wlr_gles2_tex_shader
2018-06-13 13:43:01 +03:00
emersion
38d415dd20
buffer: make wlr_buffer_ref return the buffer
2018-06-11 08:13:35 +01:00
Vincent Vanlaer
f1a62a3200
Rename egl.exts to match the extension names
2018-06-09 19:11:51 +02:00
emersion
9ea5b1a85e
Merge branch 'master' into wlr-buffer
2018-06-09 17:54:47 +01:00
Vincent Vanlaer
5ec6d8230d
Split eglSwapBuffersWithDamage feature detection
...
Detecting whether eglSwapBuffersWithDamageEXT or
eglSwapBuffersWithDamageKHR is used should be based on the extension
string, not only on the availability of the function.
2018-06-09 11:39:14 +02:00
emersion
7d24af43e5
buffer: improve docs
2018-06-08 20:28:57 +01:00
emersion
e4933ab445
Introduce wlr_buffer
2018-06-08 20:06:13 +01:00
emersion
457bfcab19
render/egl: only request high priority context on DRM
2018-06-08 00:17:45 +01:00
emersion
d425edc96c
render/egl: consistent extension checking
2018-06-08 00:06:34 +01:00
emersion
cbfe0e834a
Request a high priority EGL context
2018-06-08 00:06:34 +01:00
emersion
32f9699359
Merge pull request #1029 from emersion/wl-backend-keyboard-focus-keys
...
backend/wayland: fix keyboard keys not pressed/released when focus changes
2018-06-08 00:04:33 +01:00
NeKit
de91c55ea9
Fix GLES2 renderer to use glGetUniformLocations locations
...
This is needed as uniform locations are driver implementation-specific.
2018-06-07 18:06:31 +03:00
emersion
6f895081e1
Merge pull request #1043 from acrisci/drag-icon-unmap
...
drag-icon map and unmap fixes
2018-06-07 11:18:58 +01:00
Ilia Bozhinov
a989104a6b
xdg-shells: add a set_parent signal to toplevel surfaces
2018-06-06 17:08:06 +03:00
Tony Crisci
9333acd68e
handle drag icon map in rootston
2018-06-05 23:01:43 -04:00
Tony Crisci
319ebdf476
add back map event
2018-06-05 22:50:29 -04:00
Tony Crisci
1c75d4e54a
rename drag-icon map to unmap
2018-06-05 18:17:42 -04:00
emersion
78966417f4
Merge pull request #1031 from martinetd/multibind-seat
...
seat: allow clients to bind to seat multiple times
2018-06-04 16:44:22 +01:00
Dominique Martinet
51b9883ea0
seat: allow clients to bind to seat multiple times
...
This lets clients bind to a seat multiple times by re-using the existing
wlr_seat_client whenever a duplicate request happens.
Previously, an independant wlr_seat_client would be created and only
events from one would be processed.
Fixes #1023 .
2018-06-04 22:31:36 +09:00
Tony Crisci
58d549c98a
add data to wlr_drag_icon
2018-06-03 20:11:59 -04:00
Silvan Jegen
736309c228
Remove redundant roots_seat_remove_device function
...
This function is unimplemented and is redundant because all devices added
with roots_seat_add_device get destruction handlers assigned already.
This fixes issue #998 .
2018-06-03 19:54:33 +02:00
emersion
551700e887
backend/wayland: fix keyboard keys not pressed/released when focus changes
2018-06-03 13:18:57 +01:00
Timidger
2eb8b240e1
Added data field to wlr_subsurface
2018-06-02 15:57:44 -07:00
Markus Ongyerth
3994762ae0
Add wlr_surface_get_geometry
...
This function defaults and clips the xdg-surface geometry to the
bounding box of the surface + its subsurfaces, as specified by the
protocol spec.
2018-06-01 15:21:18 +02:00
emersion
21928cbe61
Merge branch 'master' into screencontent
2018-05-31 12:33:27 +01:00
emersion
135721118a
render: remove wlr_renderer_check_import_dmabuf
...
It's possible to implement it outside the renderer, by creating a
texture and destroying it right away. This reduces the API surface
of the renderer.
2018-05-30 17:08:15 +01:00
emersion
28020ff577
Only allow one modifier per DMA-BUF, split attributes struct in render/
2018-05-30 09:29:12 +01:00
emersion
00e108f2fc
export-dmabuf: correctly finish wlr_linux_dmabuf_attribs
2018-05-29 18:47:18 +01:00
emersion
7901740f94
rootston: enable export-dmabuf
2018-05-29 18:47:17 +01:00
emersion
e26f4dff98
export-dmabuf: wait for the frame to be ready, send timestamp
2018-05-29 18:47:17 +01:00
emersion
5ba1a9af56
render: add wlr_texture_to_dmabuf
2018-05-29 18:47:17 +01:00
emersion
bd430b8620
backend/drm: support multi-planar DMA-BUFs when exporting
2018-05-29 18:47:17 +01:00
emersion
36bd4795d4
export-dmabuf: add basic and incomplete implementation
2018-05-29 18:47:17 +01:00
emersion
9e26808c28
output, backend/drm: add wlr_output_export_dmabuf
2018-05-29 18:45:45 +01:00
emersion
e1f56538a8
Merge pull request #999 from dcz-purism/virtual-keyboard
...
Support virtual keyboard protocol
2018-05-29 18:22:44 +01:00
Tony Crisci
044fa52be4
reword new_surface docs
2018-05-28 13:12:53 -04:00
Tony Crisci
c27cd5f065
document the map/unmap xdg-shell events
2018-05-28 11:16:33 -04:00
Dorota Czaplejewicz
5334ee8bfd
virtual-keyboard: add support for the virtual-keyboard-v1 protocol
2018-05-28 10:05:55 +02:00
emersion
47f097e09b
xdg-shell: add wlr_xdg_toplevel_set_tiled
2018-05-27 13:38:06 +01:00
Tony Crisci
9971d06afb
document key and modifier signals
2018-05-26 11:32:45 -04:00
emersion
6eb4b5b54d
Merge pull request #993 from emersion/bind-wl-drm-in-renderer
...
render: bind wl_drm in renderer
2018-05-25 13:54:16 +01:00
Ilia Bozhinov
24cf70ae96
backends: implement custom EGL and renderer initialization
...
Compositors now have more control over how the backend creates its
renderer. Currently all backends create an EGL/GLES2 renderer, so
the necessary attributes for creating the context are passed to a
user-provided callback function. It is responsible for initializing
provided wlr_egl and to return a renderer. On fail, return 0.
Fixes #987
2018-05-25 14:56:52 +03:00
emersion
41130fe54b
render: bind wl_drm in renderer
2018-05-21 19:07:08 +01:00
emersion
52bd8aa716
backend/multi: disallow multiple renderers at the same time
2018-05-19 09:09:03 +01:00
emersion
3036507463
xdg-shell: split into multiple files
2018-05-14 22:28:45 +01:00
emersion
c7480d5084
xdg-shell-v6: rename shared private functions to prevent conflicts with xdg-shell stable
2018-05-14 19:16:46 +01:00
emersion
facc5aa359
xdg-shell-v6: split into separate files
2018-05-13 22:32:03 +01:00
emersion
db84379242
Send axis source event
2018-05-12 13:53:21 +01:00
emersion
0b58579564
Add support for discrete axis values
2018-05-12 13:34:58 +01:00
emersion
cf5013416d
xdg-output: redesign resource destroy
2018-05-11 22:30:26 +01:00
Vincent Vanlaer
72a75b3a72
Fix Xwayland cleanup
...
Fixes #964
2018-05-10 01:44:17 +02:00
emersion
13098a18ea
Fix hardware cursors scale & transform
2018-05-09 19:58:18 +01:00
emersion
8e831cd416
Merge pull request #959 from VincentVanlaer/xwayland-lazy
...
Add the option to start Xwayland only when a client connects
2018-05-08 23:04:26 +01:00
Vincent Vanlaer
119a6cf35c
Make xwayland_finish* clean up wlr_xwayland
2018-05-08 22:22:35 +02:00
Markus Ongyerth
8931452e1d
add wlr_layer_surface_surface_at
...
Adds wlr_layer_surface_surface_at, this is consistent with the other
shell implementations, and simplifies handling in compositors.
2018-05-08 16:03:10 +02:00
Vincent Vanlaer
dbf4f9a231
Make startup command no longer wait for xwayland
2018-05-06 23:41:29 +02:00
Vincent Vanlaer
31861b3a7a
Add option to rootston to start xwayland lazy
2018-05-06 23:41:29 +02:00
Vincent Vanlaer
c80bf1591e
Allow xwayland to start lazily
...
Makes the xwayland startup process two phased.
The first phase just initialises the X11 sockets.
The second phase starts the Xwayland server itself.
When starting xwayland lazily the second phase will be postponed until
a client has connected to the X11 socket.
Changes in behaviour:
The DISPLAY environment is now set immediately after the X11 sockets
are created.
When the Xwayland server is killed or crashes, the sockets will not be
recreated, but reused.
Fixes #849 : Start up Xwayland lazily
2018-05-06 23:41:25 +02:00
emersion
5087199d5d
output-damage: limit the number of damaged rectangles
2018-05-05 14:28:55 +01:00
emersion
cf10cbc00c
Use UTF-8 xwayland window title if available
2018-05-04 20:44:00 +01:00
emersion
caf9f9022c
Merge pull request #936 from emersion/full-hardware-cursors
...
output: always use hardware cursors if available
2018-05-04 19:00:45 +01:00
Drew DeVault
57d03a3eda
Merge pull request #931 from emersion/redesign-resource-destroy
...
Redesign resource destruction
2018-05-04 11:48:41 -04:00
emersion
d136026a2c
seat: implement inert seat resources
2018-05-03 22:03:44 +01:00
morganamilo
6305e6327f
Fix typos in comments and strings
2018-05-03 21:59:43 +01:00
emersion
5d37b14116
data-device: make sure resources are correctly destroyed
2018-05-03 20:22:51 +01:00
emersion
ff4708d406
linux-dmabuf: correctly destroy resources
2018-05-03 18:45:30 +01:00
emersion
2cff6dbd63
seat: split into multiple files
2018-05-03 10:30:47 +01:00
emersion
1e563e7ecf
data-device: split into multiple files
2018-05-02 18:04:10 +01:00
emersion
225d182765
output: always use hardware cursors if available
...
This changes the `wlr_output_impl.set_cursor` function to take a
`wlr_texture` instead of a byte buffer. This simplifies the
DRM and Wayland backends since they were creating textures from
the byte buffer anyway.
With this commit, performance should be improved when moving the
cursor since outputs don't need to be re-rendered anymore.
2018-05-01 21:38:04 +01:00
emersion
62d7337d00
backend/x11: add one pointer per output
2018-04-29 14:46:29 +01:00
emersion
ddac792b61
backend/wayland: only set one pointer listener
2018-04-29 14:30:13 +01:00
emersion
9f8a7c8fc4
backend/wayland: create one virtual pointer per output
2018-04-29 14:30:13 +01:00
emersion
2551ef8871
input-device: add output_name field, populate it from libinput
2018-04-29 14:30:09 +01:00
Drew DeVault
a0f4903063
Merge pull request #926 from emersion/fix-x11-backend-memory-leaks
...
Fix some backend memory leaks
2018-04-29 08:00:59 -04:00
emersion
f8e0a03451
backend/x11: correctly destroy input devices
2018-04-28 12:55:36 +01:00
emersion
6e7c0b57f6
cursor: use NAN for unspecified axes, refactor absolute warping code
2018-04-28 09:24:38 +01:00
emersion
7f70d244a9
xwayland: fix some Chromium comboboxes
...
Some comboboxes (e.g. in chrome://flags) are advertized as…
Notifications of course! Yeah, notifications, the thing that
tells you you have mail, your battery is low, or the dog has
eaten your carpet. This isn't the first time we notice Chromium's
X11 backend is pretty shit.
Anyway, added notifications and splash screens to the list of
unmanaged windows. Also removed utility windows because those
should be managed, but maybe I'm wrong and I'll revert this.
2018-04-26 23:18:59 +01:00
emersion
43012f3740
compositor: redesign how resources are managed
...
All public resource creators now take a new ID for the resource
and an optional list where the resource link is added. When the
resource is destroyed it is its own responsibility to remove
itself from the list. This removes the need for the caller to add
a destroy listener.
This commit fixes a few segfaults with resources not removed from
the list when destroyed.
2018-04-26 17:51:06 +01:00
Ryan Dwyer
daa1ee35be
Make WLR_DIRECTION enum powers of 2
2018-04-26 19:51:11 +10:00
Drew DeVault
fecb971518
Merge pull request #902 from emersion/various-memory-leaks
...
Various memory leaks
2018-04-26 11:34:49 +02:00
Drew DeVault
25dddc0094
Merge pull request #911 from RyanDwyer/fix-output-direction
...
Fix WLR_DIRECTION enums
2018-04-26 11:20:25 +02:00
Ryan Dwyer
de97f90246
Fix WLR_DIRECTION enums.
...
Having 0 as an enum value causes wlr_output_layout_adjacent_output() to
never match WLR_DIRECTION_UP.
2018-04-26 19:09:55 +10:00
emersion
449f06556a
Destroy wlr_surface with wlr_renderer
2018-04-26 00:11:36 +01:00
emersion
d47713ac0f
compositor: destroy subsurface resources with wlr_subcompositor
2018-04-25 23:53:44 +01:00
emersion
89a9c96fab
compositor: make wlr_compositor_destroy destroy resources
2018-04-25 23:53:44 +01:00
emersion
71ca45e2c0
Make sure we don't use others' prefixes
2018-04-25 23:24:58 +01:00
emersion
b0d99f5c67
Remove wlr_ prefix from local symbols
2018-04-25 23:00:46 +01:00
Drew DeVault
097561d6bf
Merge pull request #901 from emersion/layer-shell-minor-memory-leak
...
layer-shell: fix small memory leak
2018-04-25 11:39:25 +02:00
emersion
018b82c01e
render/egl: allow passing NULL to surface and image destructors
2018-04-25 08:28:48 +01:00
emersion
eaed6bd03b
render/egl: add wlr_egl_destroy_surface
2018-04-24 23:44:43 +01:00
emersion
8e2f3056f8
layer-shell: fix small memory leak
2018-04-24 22:40:48 +01:00
Guido Günther
ad22e02310
rootston: Damage layer-shell popups
2018-04-23 11:24:31 +02:00
Drew DeVault
0a0627f5d0
Finish forward-porting @acrisci's positioner work
2018-04-23 11:24:06 +02:00
Drew DeVault
2e3d901ac5
Forward-port xdg-shell-v6 positioner improvements
2018-04-23 11:24:06 +02:00
Drew DeVault
278aa84619
Basic layer popup rendering
2018-04-23 11:24:06 +02:00
Drew DeVault
d3cdb00208
Add (shitty) support for popups to layer example
2018-04-23 11:24:06 +02:00
Drew DeVault
6b7b64ec1e
Generalize xdg-shell popups and add to layer-shell
2018-04-23 11:22:23 +02:00
Drew DeVault
edbf4a2f60
Implement output auto-selection in rootston
2018-04-22 19:15:49 +02:00
Drew DeVault
177b548b15
Update layer shell with optional wl_output
2018-04-22 18:57:45 +02:00
emersion
bfcd3f3707
Add wlr_subcompositor
2018-04-21 19:02:39 +01:00
emersion
fa84b267e0
Remove wlr_surface::subsurface
2018-04-21 18:40:25 +01:00
emersion
70d820be25
Add wlr_renderer_init_wl_shm to advertize supported renderer formats
2018-04-20 23:58:30 +01:00
Drew DeVault
dbdc63ddde
Merge pull request #873 from emersion/output-dont-emit-mode-twice
...
output: don't emit the mode event if it hasn't changed
2018-04-17 21:08:27 -04:00
emersion
94fa6c88f4
output: don't emit the mode event if it hasn't changed
...
This also fixes #535 .
2018-04-18 00:15:25 +01:00
Uli Schlachter
98f8ec6a08
x11_handle_input_event: Remove return value
...
handle_x11_event() and x11_handle_input_event() react to different kinds
of events, so it does not make much of a difference if
x11_handle_input_event() signals if it handled an event or not.
Signed-off-by: Uli Schlachter <psychon@znc.in>
2018-04-15 10:33:53 +02:00
Drew DeVault
63763d3279
Merge pull request #862 from emersion/renderer-scissor-upside-down
...
Make wlr_renderer_scissor take normal coords instead of upside-down ones
2018-04-13 09:32:41 -04:00
emersion
bcf5da5cd7
Merge pull request #866 from emersion/xwayland-unmapped-on-create
...
xwayland: emit new_surface when unmapped
2018-04-13 08:48:01 -04:00
emersion
fa02e30adf
xwayland: emit new_surface when unmapped
2018-04-13 14:37:13 +02:00
Drew DeVault
4dbf7f8b88
Merge pull request #865 from martinetd/str_truncation
...
Fix gcc string truncation warnings
2018-04-13 08:31:09 -04:00
Dominique Martinet
555206cf60
Fix gcc string truncation warnings
2018-04-13 14:37:53 +09:00
emersion
1b802d9251
Make wlr_renderer_scissor take normal coords instead of upside-down ones
2018-04-12 19:38:33 -04:00
emersion
8dec7036d0
Always unmap before destroying surface
2018-04-11 23:09:13 -04:00
emersion
17d0440b75
Add wlr_xwayland_surface_ping
2018-04-08 16:28:01 -04:00
emersion
c55ad11d96
xwayland: add _NET_WM_WINDOW_TYPE_MENU support
2018-04-08 12:02:52 -04:00
emersion
d2ebbd103c
backend: remove wlr_backend_get_egl
2018-04-08 11:00:56 -04:00
Drew DeVault
ae4cef9e41
Merge pull request #825 from emersion/surface-iterators
...
Add surface iterators
2018-04-05 23:06:29 -04:00
Drew DeVault
6710de9878
Merge branch 'master' into xwayland-dnd
2018-04-05 15:04:49 -04:00
emersion
4a9a9eae9a
Add surface iterators
2018-04-05 14:18:17 -04:00
emersion
19b576734e
Merge pull request #834 from emersion/surface-is-subsurface
...
Add wlr_surface_is_subsurface and wlr_subsurface_from_surface
2018-04-05 14:16:45 -04:00
emersion
aced024819
Add wlr_surface_is_subsurface and wlr_subsurface_from_surface
2018-04-05 14:00:53 -04:00
Drew DeVault
da73b4f60b
Merge pull request #830 from swaywm/xdg-output
...
Add wlr_xdg_output_manager
2018-04-05 13:58:01 -04:00
Drew DeVault
abfe7923c4
Add wlr_xdg_output_manager
2018-04-05 12:40:30 -04:00
Timidger
527cc702d9
Added userdata to wlr_output_layout
...
Needed for https://github.com/swaywm/wlroots-rs/issues/131
2018-04-05 11:47:12 -04:00
emersion
3ea425d4e2
Fix xdg-shell popups, add wlr_xdg_surface_surface_at
2018-04-04 17:45:24 -04:00
emersion
c9d21106b4
Add wlr_xdg_surface_v6_surface_at and wlr_wl_shell_surface_surface_at
2018-04-04 17:42:16 -04:00
emersion
1a8b24bdd2
rootston: fix view_at
2018-04-04 17:16:35 -04:00
emersion
d16127b3cb
Fix wlr_surface_subsurface_at, change it to be wlr_surface_surface_at
2018-04-04 16:48:23 -04:00
emersion
9b440edaf4
output: document wlr_output_set_custom_mode
2018-04-03 23:05:49 -04:00
emersion
2d6bbf12f8
backend/{x11,headless}: fix refresh rate
2018-04-03 22:54:01 -04:00
Drew DeVault
2ecce27dd5
Merge pull request #807 from swaywm/input-inhibit
...
Input inhibit
2018-04-03 15:58:47 -04:00
Drew DeVault
1e39c37b3c
Merge pull request #810 from emersion/x11-backend-configure-fix-cursor
...
backend/x11: fix cursor position when receiving configure event
2018-04-03 15:44:07 -04:00
Timidger
920ab9f108
Added user data field for wlr_cursor
...
This is required for wlroots-rs.
2018-04-03 15:23:37 -04:00
Drew DeVault
56deff41b6
Implement input inhibit in rootston
2018-04-03 15:09:53 -04:00
Drew DeVault
3a8c7f283d
Add input-inhibitor example client
2018-04-03 14:06:52 -04:00
Drew DeVault
ef4e833f13
Add wlr_input_inhibitor
2018-04-03 14:06:52 -04:00
emersion
41fccb8507
Merge branch 'master' into xwayland-dnd
2018-04-03 13:35:40 -04:00
emersion
9609985f29
backend/x11: fix cursor position when receiving configure event
2018-04-03 13:32:24 -04:00
emersion
591ea27cf9
xwayland: refactor selection code
2018-04-03 12:56:54 -04:00
Danilo Spinella
f83ad3f3ef
Install include directory into includedir
...
Follow includedir parameter when installing include directory.
2018-04-03 16:56:32 +02:00
emersion
58ac05c276
Merge branch 'master' into xwayland-dnd
2018-04-03 10:38:46 -04:00
emersion
8f84c5b05f
xwayland: only send one target at a time
2018-04-03 00:44:04 -04:00
Drew DeVault
506acbdecd
Missed a spot
2018-04-02 20:57:09 -04:00
Drew DeVault
333ab59902
Add wlr_surface_is_*_surface
...
And wlr_*_surface_from_wlr_surface
2018-04-02 20:42:02 -04:00
emersion
92b74071d0
xwayland: support multiple wayland → xwayland selection transfers
...
This fixes drag'n'drop support for Chromium.
2018-04-02 19:56:41 -04:00
Drew DeVault
37036df822
Handle layer surfaces below shell surfaces
2018-04-02 18:44:06 -04:00
emersion
8836b4f024
Merge branch 'master' into xwayland-dnd
2018-04-02 15:57:04 -04:00
Drew DeVault
a94f4d0edc
Always give keyboard focus to the topmost layer
2018-04-02 15:48:22 -04:00
Drew DeVault
1f4a4a8641
Merge pull request #800 from emersion/untie-gles2-renderer-texture
...
Untie wlr_gles2_renderer and wlr_gles2_texture
2018-04-02 10:32:04 -04:00
Drew DeVault
8b37e8f67a
Merge pull request #792 from emersion/x11-backend-blank-cursor
...
backend/x11: hide cursor
2018-04-02 10:21:07 -04:00
emersion
f3f61bed3e
Untie wlr_gles2_renderer and wlr_gles2_texture
2018-04-01 16:07:50 -04:00
Tony Crisci
5a47da1ea6
annotate wlr-output-layout coord variables
2018-04-01 00:17:27 -04:00
emersion
a7bb48b404
render/egl: add wlr_egl_create_image_from_wl_drm
...
This allows external renderers and potential future GL-based
renderers to re-use this function.
2018-03-31 23:20:00 -04:00
emersion
33a2eb4b77
Untie wlr_backend from wlr_renderer
2018-03-31 18:49:43 -04:00
emersion
7b88ace557
backend/x11: hide cursor
2018-03-31 12:10:43 -04:00
Drew DeVault
96c6091f80
Merge pull request #786 from emersion/x11-backend-multiple-outputs
...
backend/x11: add support for multiple outputs
2018-03-31 10:13:43 -04:00
emersion
90fbab6f39
xwyaland: fix style issues
2018-03-31 00:35:08 -04:00
emersion
aa6ae710f7
backend/x11: fix input events
2018-03-30 23:51:19 -04:00
emersion
0a7a8cbd1c
backend/x11: add WLR_X11_OUTPUTS support
2018-03-30 23:51:19 -04:00
emersion
d4f7ced6e2
backend/x11: refactor, prepare support for multiple outputs
2018-03-30 23:51:16 -04:00
Drew DeVault
e19ee6d469
Add wlr_surface_point_accepts_input
...
Ref https://github.com/swaywm/sway/pull/1674
2018-03-30 23:02:11 -04:00
Drew DeVault
dc412c514b
Find layer surfaces for input events
2018-03-30 17:27:10 -04:00
Drew DeVault
662f40b8ae
Refactor cursor event passhtrough
2018-03-30 17:27:10 -04:00
Tony Crisci
212d957c69
Merge pull request #779 from emersion/xwayland-map-consistency
...
xwayland: rename map_notify to map for consistency
2018-03-30 16:16:52 -04:00
emersion
47a529a69c
output-damage: fix missing wlr_box include
2018-03-30 12:31:16 -04:00
emersion
865b0aa123
xwayland: rename map_notify to map for consistency
2018-03-30 11:01:23 -04:00
emersion
cadfccf1fd
xwayland: use a separate window for drag'n'drop
2018-03-29 17:53:47 -04:00
emersion
d5f46f4db4
data-device: redesign wlr_data_source
2018-03-29 17:53:13 -04:00
Drew DeVault
4137d9fc80
Destroy layer surfaces on client destroyed
2018-03-29 16:30:09 -04:00
Drew DeVault
b887af9a60
Fix maximized windows interaction with layer shell
...
If there were no layer surfaces the usable area of the output would be
an empty box.
2018-03-29 12:18:50 -04:00
emersion
ca2a73b90d
xwayland: allow drag data source transfer after drag ends
2018-03-29 11:40:19 -04:00
emersion
743466d475
data-device: add seat.drag_source
2018-03-29 11:33:40 -04:00
emersion
a316396eab
Merge pull request #720 from acrisci/xdg-positioner
...
xdg-positioner
2018-03-29 01:02:40 -04:00
Tony Crisci
2e63d1a0ca
toplevel_box to toplevel_sx_box
2018-03-28 23:24:39 -04:00
emersion
6fd50947bd
xwayland: improve error handling
2018-03-28 21:36:53 -04:00
Tony Crisci
967bccffcd
remove xdg-positioner wlr wrappers
2018-03-28 19:42:17 -04:00
Tony Crisci
376d1cc0da
rename xdg-positioner structs
2018-03-28 18:30:38 -04:00
Tony Crisci
dbffda7549
xdg-positioner wlr abstractions
2018-03-28 16:27:08 -04:00
emersion
2a34b154e6
xwayland: send DND_DROP
2018-03-28 15:33:23 -04:00
emersion
73394deb76
xwayland: send DND_POSITION
2018-03-28 14:16:14 -04:00
emersion
5dd022da13
Merge pull request #765 from swaywm/transformed-events
...
Use libinput transformed events instead of width_mm/height_mm
2018-03-28 14:11:39 -04:00
emersion
0d7a81ccdf
xwayland: send DND_ENTER
2018-03-28 12:59:11 -04:00
Drew DeVault
52d621e097
Merge pull request #763 from emersion/x11-backend-kbd-modifiers
...
backend/x11: correctly update keyboard modifiers
2018-03-28 12:51:08 -04:00
Drew DeVault
32bdcdf719
Address review feedback
2018-03-28 12:33:17 -04:00
Drew DeVault
ac219cbda6
Remove width_mm from tablet events
2018-03-28 12:05:37 -04:00
Drew DeVault
324b9d910d
Remove width_mm from wlr_touch events
2018-03-28 11:04:40 -04:00
Drew DeVault
a35a5786b0
Remove width_mm from wlr_pointer events
2018-03-28 10:46:50 -04:00
emersion
f033f717a2
backend/x11: make xcb-xkb optional, remove global state
2018-03-28 00:26:15 -04:00
Tony Crisci
41e54ba632
Merge branch 'master' into xdg-positioner
2018-03-28 00:20:39 -04:00
Tony Crisci
330ee08126
Merge pull request #744 from emersion/texture-redesign
...
Redesign wlr_texture
2018-03-28 00:14:57 -04:00
Drew DeVault
96a8df2f9a
Fix ack configure/configure flow
...
Prevents FOUC/improves frame perfect rendering goal
2018-03-27 22:50:55 -04:00
Drew DeVault
52fe2688ea
Address @emersion's feedback
2018-03-27 18:51:41 -04:00
Drew DeVault
13edb19a6c
Fix issue starting up client EGL on X11 backend
2018-03-27 18:51:38 -04:00
Drew DeVault
776b81d499
Fix surface layer damage tracking
2018-03-27 18:50:32 -04:00
Drew DeVault
86ca4bea6d
Fix layer rendering/layout bugs
2018-03-27 18:50:32 -04:00
Drew DeVault
097e87ca9f
Handle usable area for maximized windows
...
Also fixes some bugs
2018-03-27 18:50:32 -04:00
Drew DeVault
ab6c2bf584
Reset exclusivity after shell layer
...
Also fixes an issue which was applying exclusivity to all edges
2018-03-27 18:50:32 -04:00
Drew DeVault
d1c0e6fe2c
Add layer_surface.close
2018-03-27 18:50:32 -04:00
Drew DeVault
8c98c18880
Gracefully deal with outputs being removed
2018-03-27 18:50:32 -04:00
Drew DeVault
f444a0d14c
Implement layer surface damage
2018-03-27 18:50:32 -04:00
Drew DeVault
4bf936360d
Arrange & render layer surfaces
2018-03-27 18:50:09 -04:00
Drew DeVault
b31ce4220c
Add broken test client and rootston stubs
2018-03-27 18:50:09 -04:00
Drew DeVault
88eec637a4
Address feedback
2018-03-27 18:50:09 -04:00
Drew DeVault
1628730b09
Add wlr_layer_surface_configure
2018-03-27 18:50:09 -04:00
Drew DeVault
b06105b564
Implement layer surface requests
2018-03-27 18:50:09 -04:00
Drew DeVault
3ba57fccd1
Wire up layer surface resources to stubs
2018-03-27 18:50:09 -04:00
Drew DeVault
f29d8b55ae
Initial scaffolding of layer shell
2018-03-27 18:50:09 -04:00
Tony Crisci
575bc81d54
Merge pull request #754 from emersion/popup-map-unmap-damage
...
[WIP] xdg-shell: damage view when popup is mapped/unmapped
2018-03-27 17:37:03 -04:00
emersion
4abca435cc
rootston: damage view when xdg-popup is mapped/unmapped
2018-03-27 17:27:58 -04:00
emersion
19a525f3b5
rootston: damage view when zxdg-popup-v6 is mapped/unmapped
2018-03-27 17:24:25 -04:00
emersion
c42fd1018b
render: remove GL calls from wlr_egl
2018-03-27 17:02:48 -04:00
Tony Crisci
8371e2f41d
implement flip_x
2018-03-27 14:49:31 -04:00
Drew DeVault
1ed90541f9
Merge pull request #753 from emersion/xdg-shell-unmap-destroy
...
xdg-shell-v6: don't destroy role resources on unmap
2018-03-27 13:15:32 -04:00
emersion
b6c1760de5
xwayland: create DND window, add DND atom helpers
2018-03-27 12:04:37 -04:00
emersion
171e28eaff
xdg-shell: don't destroy role resources on unmap, move toplevel fields
...
Ports 5233801530
and
334bab543d
to xdg-shell stable.
2018-03-27 10:25:02 -04:00
Drew DeVault
ac715969ac
Improve documentation of wlr_cursor
2018-03-27 09:24:23 -04:00
Dominique Martinet
a0b52a0dff
Fix x11 backend
...
Need to include wlr/config.h before using the various WLR_HAS_xxx defines
2018-03-27 09:20:21 +02:00
Tony Crisci
bbd0e23fa7
xdg-positioner constraint detection
2018-03-26 23:48:32 -04:00
emersion
a918ec877e
xdg-shell-v6, xdg-shell: explain what popup geometry is
2018-03-26 22:11:41 -04:00
emersion
334bab543d
xdg-shell-v6: move toplevel specific fields in wlr_xdg_toplevel_v6
2018-03-26 19:32:21 -04:00
emersion
adf4fb08dd
Merge branch 'master' into texture-redesign
2018-03-26 19:13:13 -04:00
emersion
5233801530
xdg-shell-v6: don't destroy role resources on unmap
...
The motivation for this is:
- `get_popup` and `get_toplevel` allocate role-specific resources.
- On the first non-null commit, the surface gets mapped.
- On a null commit, the surface gets unmapped. It can be mapped
again with a non-null commit.
- When the role object (xdg-toplevel or xdg-popup) is
destroyed, the surface is unmapped and role-specific resources
are destroyed. The client can call `get_popup` or `get_toplevel`
again on that surface.
- When the xdg-surface object is destroyed, the surface is
unmapped, role-specific resources are destroyed and the surface
itself is destroyed.
2018-03-26 18:35:45 -04:00
Drew DeVault
891610081f
Merge pull request #751 from emersion/rotated-surface-damage
...
Fix damage tracking for rotated surfaces
2018-03-26 18:05:35 -04:00
emersion
140bc19476
rootston: add -D flag to enable damage tracking debugging
2018-03-26 17:34:46 -04:00
emersion
4555fc8a54
Fix damage tracking for rotated surfaces
...
It was broken because the damage extents were rotated about its
own center, not about the center of the surface.
This adds a new wlr_region_rotated_bounds that rotates regions.
This allows us to have only one code path (for both non-rotated
views and rotated views) and optimizes rendering for rotated
views.
2018-03-26 15:31:08 -04:00
Tony Crisci
4da18f7fc3
xdg-positioner attrs
2018-03-26 12:46:04 -04:00
emersion
793c3b3047
render: add simple functions to render rectangles and ellipses
2018-03-26 12:41:51 -04:00
emersion
c63d94483b
Redesign wlr_texture
...
- Textures are now immutable (apart from those created from raw
pixels), no more invalid textures
- Move all wl_drm stuff in wlr_renderer
- Most of wlr_texture fields are now private
- Remove some duplicated DMA-BUF code in the DRM backend
- Add more assertions
- Stride is now always given as bytes rather than pixels
- Drop wl_shm functions
Fun fact: this patch has been written 10,000 meters up in the air.
2018-03-24 23:48:32 -04:00
Tony Crisci
f53575e3a3
unified xdg-surface close
2018-03-24 15:11:26 -04:00
Tony Crisci
30b8fb5572
Merge branch 'master' into xdg-positioner
2018-03-22 20:06:53 -04:00
emersion
a854c2f246
Merge branch 'master' into gles2-renderer-redesign
2018-03-23 00:55:55 +01:00
Drew DeVault
ef3769851f
Merge pull request #740 from emersion/egl-debug
...
render/egl: use EGL_KHR_debug
2018-03-22 18:54:21 -04:00
Dominique Martinet
d5e14ab247
wayland backend: fix use-after free on output destroy
...
==12021==ERROR: AddressSanitizer: heap-use-after-free on address 0x617000015698 at pc 0x7f1a9abe1c09 bp 0x7ffe9068f6b0 sp 0x7ffe9068f6a0
WRITE of size 4 at 0x617000015698 thread T0
#0 0x7f1a9abe1c08 in pointer_handle_leave ../backend/wayland/wl_seat.c:40
#1 0x7f1a96ae7d1d in ffi_call_unix64 (/lib64/libffi.so.6+0x5d1d)
#2 0x7f1a96ae768e in ffi_call (/lib64/libffi.so.6+0x568e)
#3 0x7f1a988e0d8a (/lib64/libwayland-client.so.0+0x8d8a)
#4 0x7f1a988dd927 (/lib64/libwayland-client.so.0+0x5927)
#5 0x7f1a988debe3 in wl_display_dispatch_queue_pending (/lib64/libwayland-client.so.0+0x6be3)
#6 0x7f1a9abdd6d6 in dispatch_events ../backend/wayland/backend.c:28
#7 0x7f1a9a968c11 in wl_event_loop_dispatch (/lib64/libwayland-server.so.0+0x9c11)
#8 0x7f1a9a967449 in wl_display_run (/lib64/libwayland-server.so.0+0x8449)
#9 0x418dff in main ../rootston/main.c:81
#10 0x7f1a99b5ef29 in __libc_start_main (/lib64/libc.so.6+0x20f29)
#11 0x4057c9 in _start (/home/shared/wayland/wlroots/build/rootston/rootston+0x4057c9)
0x617000015698 is located 664 bytes inside of 696-byte region [0x617000015400,0x6170000156b8)
freed by thread T0 here:
#0 0x7f1a9af754b8 in __interceptor_free (/lib64/libasan.so.4+0xde4b8)
#1 0x7f1a9abe01ee in wlr_wl_output_destroy ../backend/wayland/output.c:194
#2 0x7f1a9ac12918 in wlr_output_destroy ../types/wlr_output.c:299
#3 0x7f1a9abe061b in xdg_toplevel_handle_close ../backend/wayland/output.c:255
#4 0x7f1a96ae7d1d in ffi_call_unix64 (/lib64/libffi.so.6+0x5d1d)
#5 0x7f1a96ae768e in ffi_call (/lib64/libffi.so.6+0x568e)
#6 0x7f1a988e0d8a (/lib64/libwayland-client.so.0+0x8d8a)
#7 0x7f1a988dd927 (/lib64/libwayland-client.so.0+0x5927)
#8 0x7f1a988debe3 in wl_display_dispatch_queue_pending (/lib64/libwayland-client.so.0+0x6be3)
#9 0x7f1a9abdd6d6 in dispatch_events ../backend/wayland/backend.c:28
#10 0x7f1a9a968c11 in wl_event_loop_dispatch (/lib64/libwayland-server.so.0+0x9c11)
#11 0x7f1a9a967449 in wl_display_run (/lib64/libwayland-server.so.0+0x8449)
#12 0x418dff in main ../rootston/main.c:81
#13 0x7f1a99b5ef29 in __libc_start_main (/lib64/libc.so.6+0x20f29)
#14 0x4057c9 in _start (/home/shared/wayland/wlroots/build/rootston/rootston+0x4057c9)
previously allocated by thread T0 here:
#0 0x7f1a9af75a38 in __interceptor_calloc (/lib64/libasan.so.4+0xdea38)
#1 0x7f1a9abe0703 in wlr_wl_output_create ../backend/wayland/output.c:272
#2 0x7f1a9abdd8eb in wlr_wl_backend_start ../backend/wayland/backend.c:55
#3 0x7f1a9abbeb49 in wlr_backend_start ../backend/backend.c:28
#4 0x7f1a9abd8ce1 in multi_backend_start ../backend/multi/backend.c:24
#5 0x7f1a9abbeb49 in wlr_backend_start ../backend/backend.c:28
#6 0x418c32 in main ../rootston/main.c:58
#7 0x7f1a99b5ef29 in __libc_start_main (/lib64/libc.so.6+0x20f29)
#8 0x4057c9 in _start (/home/shared/wayland/wlroots/build/rootston/rootston+0x4057c9)
2018-03-22 21:27:49 +01:00
Dominique Martinet
de955a0f63
xdg_popup_grab: add listener on seat destroy
2018-03-22 21:25:41 +01:00
emersion
b1f93bc5cc
render/egl: use EGL_KHR_debug
2018-03-21 10:42:43 +01:00
emersion
cc5ef1d2ff
render/gles2: move list of supported WL formats to pixel_format.c
2018-03-21 08:50:59 +01:00
emersion
3581573bdc
render/gles2: make wlr_renderer_begin take viewport size
...
This allows raw GL calls outside wlr_renderer to be removed.
2018-03-21 07:37:09 +01:00
emersion
95e86e675a
render/gles2: remove global state, use OpenGL debug extension
2018-03-20 19:14:33 +01:00
Guido Günther
b3cb5a36c7
gles2: allow to specify texture target type
...
Allow to set the texture target type when generating/binding the
texture. This allows us to attach the texture type to the texture so we
don't have to keep the logic elsewhere.
2018-03-20 14:30:30 +01:00
emersion
c41de2d1be
render: split render.h into wlr_renderer.h and wlr_texture.h
2018-03-19 23:16:29 +01:00
Drew DeVault
a76cef475b
Merge pull request #733 from emersion/fix-matrix-transpose
...
Don't use OpenGL matrix transposition
2018-03-19 16:36:17 -04:00
Drew DeVault
8d490fdb34
Write some more docs
2018-03-19 15:46:28 -04:00
emersion
6ecb0eefcb
render/gles2: transpose matrices before binding them
...
Setting glUniformMatrix3fv's transpose parameter to GL_TRUE is
not allowed for OpenGL ES 2.
This adds a wlr_matrix_transpose function.
2018-03-19 20:21:02 +01:00
Drew DeVault
1956d3cedb
Merge pull request #722 from emersion/matrix-redesign
...
Matrix redesign
2018-03-17 15:22:00 -04:00
Tony Crisci
09413aa7f1
Merge pull request #711 from emersion/map-unmap
...
Add map/unmap to xdg-shell
2018-03-17 10:00:54 -04:00
emersion
7894fca224
matrix: rename wlr_matrix_texture to wlr_matrix_projection
2018-03-15 21:26:45 +01:00
emersion
e607d0f7ee
xdg-shell: add map/unmap support
2018-03-15 20:15:09 +01:00
emersion
876f07e9f1
renderer: replace wlr_texture_get_matrix by wlr_render_texture
2018-03-15 19:31:02 +01:00
emersion
1914a1aa2b
surface: drop wlr_surface_get_matrix
2018-03-15 18:35:22 +01:00
emersion
8b58e1a3ad
Merge branch 'master' into matrix-redesign
2018-03-15 15:48:09 +01:00
emersion
824a95ad19
matrix: use 2D matrices
2018-03-15 15:33:58 +01:00
emersion
de0e40d621
Merge pull request #698 from agx/linux-dmabuf
...
Add initial linux_dmabuf protocol support
2018-03-15 12:45:07 +01:00
Guido Günther
eb4337b5ee
Wire up linux_dmabuf in rootston
2018-03-15 12:40:18 +01:00
Guido Günther
14cdb6153f
Add initial linux_dmabuf protocol support
...
Tested with
./weston-simple-dmabuf-drm
./weston-simple-dmabuf-drm --import-immediate=1
./weston-simple-dmabuf-drm --y-inverted=1
(and combinations)
Supports only single plane XRGB dmabufs for now.
2018-03-15 12:40:18 +01:00
emersion
d26b67cb06
matrix: unify API, don't use array pointers
2018-03-15 11:10:56 +01:00
emersion
b6a3f240c7
matrix: move to types/
2018-03-15 09:11:27 +01:00
Tony Crisci
8836b167bf
store xdg-positioner properties on the popup
2018-03-13 19:21:08 -04:00
emersion
ace738dbca
xdg-shell-v6: next_geometry and geometry fields are not longer pointers in wlr_xdg_surface_v6
2018-03-13 22:17:25 +01:00
emersion
149209b72e
xdg-shell-v6: rename toplevel and popup fields in wlr_xdg_surface_v6 for consistency
2018-03-13 22:09:44 +01:00
emersion
657e5c8c0d
xdg-shell-v6: changed wlr_xdg_surface_v6_configure.toplevel_state to be NULL if surface isn't a toplevel
2018-03-13 22:05:35 +01:00
emersion
e74ddaaf10
xdg-shell-v6: redesign the configure/ack_configure workflow
2018-03-13 19:57:21 +01:00
emersion
c1c88bfe5d
rootston: destroy seat view on unmap
2018-03-13 12:31:45 +01:00
emersion
6ac3534df6
rootston: add destroy to view interface
2018-03-12 09:17:06 +01:00
Guido Günther
2d0db16942
render: Flip textures in case of inverted_y
2018-03-11 19:02:05 +01:00
emersion
3f072bedd9
xdg-shell-v6: add map signal
2018-03-10 11:18:50 +01:00
emersion
c27fd1e1ee
rootston: add view_map and view_unmap
2018-03-09 10:29:22 +01:00
Drew DeVault
bfc0e95d2c
Add mode support to libinput backend
...
And extend tablet example with tilt and ring support
2018-03-07 20:57:55 -05:00
Scott Anderson
3c9fc7c68e
Add const to x11 and input interfaces
2018-03-06 21:16:18 +13:00
Scott Anderson
902d6cc240
Use xcb atoms properly
2018-03-06 21:15:47 +13:00
Dominique Martinet
2910972b25
xwm.h: fix guard ifdef and remove wlr_ prefix from xwm_atoms_contains
2018-03-04 11:16:18 +01:00
Dominique Martinet
d9a724c4a2
xcb errors: init errors context at start
...
`xcb_errors_context_new` is more than just a malloc, it does a few
xcb requests so we benefit from not generating a new context everytime
2018-03-03 17:06:30 +01:00
Dominique Martinet
7d1870c6f1
move xwm.h out of include/wlr
...
xwm.h was meant to be private, so move it to include/xwayland/xwm.h
We had an ifdef WLR_HAS_XCB_ICCCM in xwayland.h which was easy to move
to xwm, it is not safe to use the WLR_HAS_* in the public headers.
I checked a few of our current users and none rely on xwm.h being
public as expected (rootston, sway, hsroots)
2018-03-03 17:03:21 +01:00
emersion
c2ba1869ce
Merge pull request #670 from Ongy/xwayland_unmanaged
...
add xwayland unmanaged tests to support dmenu
2018-02-27 09:47:23 +01:00
emersion
1171368cfc
Merge pull request #687 from agx/roots_view.alpha
...
rootston: drop saved.alpha from roots_view
2018-02-26 19:53:55 +01:00
Guido Günther
f97ef3f5d4
rootston: drop saved.alpha from roots_view
...
It's currently unused.
2018-02-26 19:45:24 +01:00
Markus Ongyerth
a65ef8ea86
restore dpms state on drm resume
...
If there is no current mode, set outputs to dpms off in drm resume.
Sets current mode to null on disable to ensure this can be checked.
2018-02-26 18:12:51 +01:00
Markus Ongyerth
bb676013ed
add xwayland unmanaged tests to support dmenu
...
This adds `wlr_xwayland_surface_is_unamanged`, to allow compositors more
fine grained control over XWayland focus.
A surface that is unmanaged should not receive focus, while other
windows that are just override redirect may want it (dmenu).
The way unamanged is determined is taken from wlc.
2018-02-26 12:02:49 +01:00
Drew DeVault
3296365ce5
Merge pull request #659 from agx/alpha
...
Make wlr_render_with_matrix use alpha
2018-02-25 13:16:35 -05:00
Guido Günther
e2ea1ebe48
rootston: Add alpha channel to views
2018-02-25 16:53:36 +01:00
Guido Günther
d08792bfff
Add alpha to wlr_render_with_matrix
...
so we can use the alpha channel to e.g. blend in textures
2018-02-25 13:47:48 +01:00
Guido Günther
e6ca78b0e4
rootston: add view_create
...
so we can do basic view setup. Will be used to initialize alpha.
2018-02-25 13:47:43 +01:00
Tony Crisci
b7b86a9591
Merge pull request #641 from Ongy/idle-inhibit
...
Add idle-inhibit implementation
2018-02-24 10:15:18 -05:00
Markus Ongyerth
67285c1d57
idle-inhibit: style adjustments and motivation
2018-02-23 13:18:05 +01:00
emersion
ca3a947864
rootston: fix user-after-free in output_handle_destroy
2018-02-23 10:29:18 +01:00
emersion
b1e2718dd7
xwayland: fix some use-after-free in xwm
2018-02-23 10:20:53 +01:00
emersion
bd9583a7e8
Merge pull request #652 from agx/symbols-file
...
Add symbols file
2018-02-23 09:54:49 +01:00
Markus Ongyerth
a715826751
move activity_notify into events in wlr_idle
...
This moves the `struct wl_signal activity_notify` in `struct wlr_idle`
into a local `struct {} events` to keep consistency with other modules
in the library.
2018-02-22 21:14:28 +01:00
Markus Ongyerth
87a7afb641
idle-inhibit: second feedback pass
2018-02-21 16:22:04 +01:00
Guido Günther
2688f6163f
Rename _strip_path to wlr_strip_path
...
since it's a public function
2018-02-21 10:25:52 +01:00
Markus Ongyerth
3016133f91
idle-inhibit: feedback pass
2018-02-20 13:41:10 +01:00
Drew DeVault
1d9be89e2d
Revert "ELF Visibility"
2018-02-19 18:01:27 -05:00
Drew DeVault
09cfa39392
Merge pull request #632 from acrisci/output-layout-adjacent
...
add wlr_output_layout_adjacent_output
2018-02-19 18:00:32 -05:00
Drew DeVault
868ad5af69
Merge pull request #647 from ascent12/elf_visibility
...
ELF Visibility
2018-02-18 21:49:23 -05:00
Scott Anderson
86269052eb
Explicitly export EFL symbols
2018-02-19 14:26:40 +13:00
Drew DeVault
566c98846a
Merge pull request #645 from agx/x11-window-title
...
x11 backend: set window title
2018-02-18 17:46:51 -05:00
Guido Günther
15afef6cbc
x11 backend: set window title
...
This makes windows identifiable in the window list
2018-02-18 23:42:04 +01:00
Scott Anderson
f27c0b44b8
Remove usec_to_msec from public API
2018-02-19 10:43:25 +13:00
Tony Crisci
9a8808f8cf
move direction to wlr_output_layout.h
2018-02-17 18:48:50 -05:00
Tony Crisci
d2c7defa10
Merge branch 'master' into output-layout-adjacent
2018-02-17 16:34:32 -05:00
Markus Ongyerth
50d573b2ca
implements the idle_inhibit protocol type
...
This adds the types/wlr_idle_inhibit_v1 implementation.
2018-02-17 12:37:12 +01:00
emersion
717bdccb6e
Merge remote-tracking branch 'upstream/master' into martinetd/xdg_shell
2018-02-16 18:25:58 +01:00
Tony Crisci
85871cb666
add wlr_output_layout_adjacent_output
2018-02-14 14:10:31 -05:00
Dominique Martinet
7d26a6debd
xdg-shell stable: copy-pasta implementation
2018-02-14 12:52:30 +01:00