Commit graph

2893 commits

Author SHA1 Message Date
Drew DeVault
4984ea49ee
Merge pull request #1132 from emersion/fix-screencopy-frame-error
screencopy: fix segfault when client supplies invalid buffer
2018-07-13 12:49:12 -07:00
Drew DeVault
b902c2bd7c Revert "Move side-effect out of assert statement"
This reverts commit a0afedcd8f.
2018-07-13 15:46:54 -04:00
emersion
935a3f2ebb screencopy: fix segfault when client supplies invalid buffer 2018-07-13 19:27:04 +01:00
Drew DeVault
a0afedcd8f Move side-effect out of assert statement 2018-07-13 13:54:09 -04:00
Drew DeVault
3ae423b0e3
Merge pull request #1130 from emersion/surface-opaque
Add wlr_surface.opaque_region
2018-07-13 04:09:31 -07: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
emersion
d8bbdf3bd5
Merge pull request #1128 from agx/unbreak-xvfb
Unbreak xvfb
2018-07-12 12:47:12 +01:00
Drew DeVault
e226e2c011 Missed some old wlr_log calls 2018-07-11 18:36:31 -04: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
Guido Günther
40fe252c2d x11: make sure event source is drained
Otherwise running under Xvfb will not deliver any events. This results
in e.g. weston-info reporting a 0x0 window size (which results in all
sorts of problems).
2018-07-11 17:34:43 +02:00
Guido Günther
8515b7c65b x11: use correct type for events in wl_event_loop_add_fd 2018-07-11 17:30:45 +02:00
Guido Günther
e463b49166 x11: Check if xcb_configure_window worked
So far we did not check for any errors
2018-07-11 17:29:41 +02:00
Drew DeVault
2518de655c
Merge pull request #1126 from emersion/wlr-log-prefix
util: add wlr_ prefix to log symbols
2018-07-09 16:12:20 -07:00
emersion
7cbef15206
util: add wlr_ prefix to log symbols 2018-07-09 22:49:54 +01:00
emersion
e78d72f42e
Merge pull request #1124 from 5nefarious/handle-32bit-time
fix: handle 32 bit time_t (or smaller)
2018-07-09 17:22:22 +01:00
Arvin Ignaci
fad62a3e1c fix: handle 32 bit time_t (or smaller) 2018-07-09 14:45:19 +00:00
Drew DeVault
ffc8780893
Merge pull request #1121 from emersion/rename-wl-resources-global
Rename wl_resources to resource, wl_global to global
2018-07-08 12:10:35 -07:00
emersion
deeca53e33
Rename wl_resources to resource, wl_global to global 2018-07-08 19:21:31 +01:00
emersion
66ac9e7f49
Merge pull request #1120 from vilhalmer/gamma-control-set-bail-on-destroyed-resource
Bail from setting gamma on destroyed resource
2018-07-08 19:08:29 +01:00
vilhalmer
0260f042d2
Bail from setting gamma on destroyed resource 2018-07-08 12:35:41 -04:00
Drew DeVault
c1a6422b33
Merge pull request #1118 from emersion/xdg-output-no-noop-updates
xdg-output: don't send no-op updates
2018-07-08 08:29:59 -07: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
Drew DeVault
024fc76eee
Merge pull request #1117 from emersion/inert-output
output: make wl_output resources inert
2018-07-07 17:45:27 -07:00
emersion
5fe50b9a28
output: make wl_output resources inert 2018-07-07 23:02:08 +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
60a83e99f4 rootston: use wl_list_empty instead of wl_list_length > 0 2018-07-07 17:31:42 +02: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
Drew DeVault
7c6588d7ae
Merge pull request #1076 from emersion/redesign-surface-state
surface: redesign state
2018-07-05 13:34:49 -07:00
emersion
515d682312
surface: fix damage when moving subsurfaces with scale > 1 2018-07-04 19:16:16 +01:00
emersion
e665a74122
surface: don't clip input and opaque regions
These can be set to e.g. regions larger than the surface. If the
surface resizes itself, it doesn't need to set again these regions.
2018-07-04 19:12:18 +01:00
emersion
226306ed45
surface: rename wlr_surface_state.buffer to buffer_resource 2018-07-04 19:12:18 +01:00
emersion
68c133da2f
surface: fix crash on NULL commit 2018-07-04 19:12:18 +01:00
emersion
6f0eb11024
surface: fix previous state eating current state resources 2018-07-04 19:12:18 +01:00
emersion
f440708274
output: fix cursor attach coords handling 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
Drew DeVault
5d1c5ff80b
Merge pull request #1112 from emersion/fix-debug-damage-tracking
Fix damage tracking debug mode
2018-07-04 08:35:18 -07:00
emersion
8c2b4244a1
Fix damage tracking debug mode 2018-07-04 15:37:04 +01:00
Drew DeVault
b0f7072737
Merge pull request #1111 from martinetd/wlr-seat-destroy
wlr_seat destroy: fix use-after-free when destroying clients
2018-07-04 06:41:10 -07:00
Dominique Martinet
48e8da851d wlr_seat destroy: fix use-after-free when destroying clients
wl_resource_for_each_safe isn't safe to use here because it accesses
the list's head memory one last time at the end of the loop. Work
around this by breaking out early.

==19880==ERROR: AddressSanitizer: heap-use-after-free on address 0x60d0000e6368 at pc 0x7fab68619de2 bp 0x7ffd5c91cee0 sp 0x7ffd5c91ced0
READ of size 8 at 0x60d0000e6368 thread T0
    #0 0x7fab68619de1 in wlr_seat_destroy ../types/seat/wlr_seat.c:179
    #1 0x7fab68619fb9 in handle_display_destroy ../types/seat/wlr_seat.c:196
    #2 0x7fab688e4f8f in wl_priv_signal_emit src/wayland-server.c:2024
    #3 0x7fab688e56ca in wl_display_destroy src/wayland-server.c:1092
    #4 0x40c11e in server_fini ../sway/server.c:138
    #5 0x40b1a8 in main ../sway/main.c:438
    #6 0x7fab67b5e18a in __libc_start_main ../csu/libc-start.c:308
    #7 0x409359 in _start (/opt/wayland/bin/sway+0x409359)

0x60d0000e6368 is located 24 bytes inside of 144-byte region [0x60d0000e6350,0x60d0000e63e0)
freed by thread T0 here:
    #0 0x7fab6a7d6880 in __interceptor_free (/lib64/libasan.so.5+0xee880)
    #1 0x7fab68619805 in seat_client_handle_resource_destroy ../types/seat/wlr_seat.c:97
    #2 0x7fab688e5025 in destroy_resource src/wayland-server.c:688

previously allocated by thread T0 here:
    #0 0x7fab6a7d6e50 in calloc (/lib64/libasan.so.5+0xeee50)
    #1 0x7fab686198df in seat_handle_bind ../types/seat/wlr_seat.c:127
    #2 0x7fab6530503d in ffi_call_unix64 (/lib64/libffi.so.6+0x603d)
2018-07-04 14:50:14 +09:00
Drew DeVault
12dd9544f9
Merge pull request #1110 from apreiml/fix-focus-stack-change
fix: add stack update on focus change
2018-07-03 06:21:00 -07:00