Commit graph

691 commits

Author SHA1 Message Date
Guido Günther
47e1eda669 rootston: don't crash on shutdown
When e.g. running rootston under X11 it would otherwise crash when
closing rootston like:

    #0  0x00007f0197da7327 in wl_list_remove () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #1  0x000056306fcee7fb in handle_destroy (listener=0x5630723a2948, data=0x5630723a5d20) at ../rootston/layer_shell.c:273
    #2  0x00007f019800a552 in wlr_signal_emit_safe (signal=0x5630723a5e30, data=0x5630723a5d20) at ../util/signal.c:29
    #3  0x00007f0197fef808 in layer_surface_destroy (surface=0x5630723a5d20) at ../types/wlr_layer_shell.c:169
    #4  0x00007f0197ff0001 in client_handle_destroy (resource=0x56307229c4c0) at ../types/wlr_layer_shell.c:371
    #5  0x00007f0197da2f30 in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #6  0x00007f0197da77f9 in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #7  0x00007f0197da301d in wl_client_destroy () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #8  0x00007f0197da30d8 in  () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #9  0x00007f0197da4c12 in wl_event_loop_dispatch () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #10 0x00007f0197da344a in wl_display_run () at /usr/lib/x86_64-linux-gnu/libwayland-server.so.0
    #11 0x000056306fcef069 in main (argc=3, argv=0x7ffd22032528) at ../rootston/main.c:83

since the output_destroy got already removed in handle_output_destroy.
2018-04-16 15:51:03 +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
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
Drew DeVault
7efd9885b6
Merge pull request #853 from emersion/xwayland-client-timeout
Add wlr_xwayland_surface_ping
2018-04-08 16:30:45 -04:00
emersion
17d0440b75
Add wlr_xwayland_surface_ping 2018-04-08 16:28:01 -04:00
Drew DeVault
902d859c67 Fix syntax errors
Build before you commit, dumbass
2018-04-08 12:50:52 -04:00
Drew DeVault
7bb8512afb Fix assertions with side-effects
Fixes #1725
2018-04-08 12:49:48 -04:00
Drew DeVault
bef5c1fd56
Merge pull request #850 from emersion/remove-backend-egl
backend: remove wlr_backend_get_egl
2018-04-08 11:21:21 -04:00
emersion
d2ebbd103c
backend: remove wlr_backend_get_egl 2018-04-08 11:00:56 -04:00
Bruno
ba5c0903f9
rootston: fix compilation without XWayland support 2018-04-07 23:29:04 +01:00
emersion
285cf12e37
Remove rootston surface iterator 2018-04-05 14:18:21 -04:00
emersion
4a9a9eae9a
Add surface iterators 2018-04-05 14:18:17 -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
Tancredi Orlando
74a4b1702b Initialize rootston _surface 2018-04-05 19:13:21 +02:00
Drew DeVault
abfe7923c4 Add wlr_xdg_output_manager 2018-04-05 12:40:30 -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
f7539b9d14
rootston: send enter event for layer surfaces 2018-04-03 20:18:04 -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
d88f3c1eb3 Fix segfault when clicking rootston desktop 2018-04-03 11:30:37 -04:00
Drew DeVault
9ce53d7dc4
Merge pull request #804 from swaywm/keyboard-layers
Add keyboard input to layer surfaces
2018-04-02 20:45:39 -04:00
Drew DeVault
333ab59902 Add wlr_surface_is_*_surface
And wlr_*_surface_from_wlr_surface
2018-04-02 20:42:02 -04:00
Drew DeVault
9ae861c416 Address review feedback 2018-04-02 18:54:16 -04:00
Drew DeVault
37036df822 Handle layer surfaces below shell surfaces 2018-04-02 18:44:06 -04:00
Danilo Spinella
046d909e7a Change meson option names to use hypen
Replace underscore with hypen in meson option names, following style
recommendations.

http://mesonbuild.com/Style-guide.html#naming-options
2018-04-02 23:35:03 +02:00
Drew DeVault
a94f4d0edc Always give keyboard focus to the topmost layer 2018-04-02 15:48:22 -04:00
Drew DeVault
883d8d306c Identify topmost interactive layer surface 2018-04-02 15:16:14 -04:00
Drew DeVault
d466cc117f Don't reset exclusive between layer shell passes
This is not the intended behavior of exclusive zones, the second pass is
meant to respect the usable area.
2018-04-02 14:55:17 -04:00
Drew DeVault
937362b552 FIx crash on touch down 2018-03-31 09:55:41 -04:00
Orestis Floros
3f6823092a
Initialize roots_output to fix -Wmaybe-uninitialized
With -O2:
../rootston/desktop.c: In function ‘desktop_surface_at’:
../rootston/desktop.c:714:18: error: ‘roots_output’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
   if ((surface = layer_surface_at(roots_output,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      &roots_output->layers[ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM],
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      ox, oy, sx, sy))) {
      ~~~~~~~~~~~~~~~
2018-03-31 12:57:12 +03:00
emersion
692f1746cf
xwayland: specify xwm cursor stride in bytes 2018-03-31 00:22:58 -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
746e3759b7 Address review feedback 2018-03-30 20:34:00 -04:00
Drew DeVault
168f65fb7a Minor bugfixes 2018-03-30 18:28:21 -04:00
Drew DeVault
e3eb487dc2 Add pointer support to layer shell example 2018-03-30 18:23:57 -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
emersion
865b0aa123
xwayland: rename map_notify to map for consistency 2018-03-30 11:01:23 -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
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
Tony Crisci
27f450ac0e add todo for rotated unconstrained popup 2018-03-28 22:26:56 -04:00
Tony Crisci
71da20dbde add comment for output box in toplevel coords 2018-03-28 20:51:25 -04:00
Tony Crisci
67c8aec77f popup constraint handle empty output layout 2018-03-28 18:36:48 -04:00
Tony Crisci
0bfcce50a9 xdg-positioner: honor constraint flags 2018-03-28 16:55:16 -04:00
Tony Crisci
dbffda7549 xdg-positioner wlr abstractions 2018-03-28 16:27:08 -04:00
Tony Crisci
c5cd805098 positioner rootston cleanup and bugfix 2018-03-28 12:46:41 -04:00
Tony Crisci
e2c4e1ef54 fix xdg-positioner left constrain bug 2018-03-28 12:12:00 -04:00
Drew DeVault
ac219cbda6 Remove width_mm from tablet events 2018-03-28 12:05:37 -04:00
Tony Crisci
738f5e3344 cleanup xdg-positioner rootston code 2018-03-28 11:42:01 -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
Tony Crisci
41e54ba632 Merge branch 'master' into xdg-positioner 2018-03-28 00:20:39 -04:00
Drew DeVault
3e5131e664 Address further review feedback 2018-03-27 21:28:22 -04:00
Drew DeVault
a1d5d20914 Address some more feedback 2018-03-27 18:51:41 -04:00
Drew DeVault
52fe2688ea Address @emersion's feedback 2018-03-27 18:51:41 -04:00
Drew DeVault
776b81d499 Fix surface layer damage tracking 2018-03-27 18:50:32 -04:00
Drew DeVault
0e318df13d Add margin animation to the example demo 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
df9dbf3170 Fix rebase issues; rearrange layers on destroy 2018-03-27 18:50:32 -04:00
Drew DeVault
11c57d22b0 Use 0 for default width/height (rather than -1) 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
b73c4f48c1 Fix exclusive zone among other layers 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
fcf8c6c8a2 Fix issues preventing layer from getting allocated
Now all of the steps to get rootston a reference to the layer surface
are correctly wired up.
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
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
Tony Crisci
edb643fc6c basic xdg-positioner 2018-03-27 17:16:08 -04:00
Tony Crisci
9ff84db06d unconstrain stubs 2018-03-27 15:13:35 -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
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
e9ccb705fb
Merge pull request #758 from martinetd/unfullscreen
rootston: Fix segfault in seat unfullscreening
2018-03-27 08:35:49 -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
Dominique Martinet
0c4d347d1e rootston: Fix segfault in seat unfullscreening
==32557==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x000000425f96 bp 0x7fff8ac19de0 sp 0x7fff8ac19d20 T0)
==32557==The signal is caused by a READ memory access.
==32557==Hint: address points to the zero page.
    #0 0x425f95 in roots_seat_set_focus ../rootston/seat.c:737
    #1 0x40bcd6 in roots_cursor_press_button ../rootston/cursor.c:272
    #2 0x40c1f7 in roots_cursor_handle_button ../rootston/cursor.c:298
    #3 0x42179b in handle_cursor_button ../rootston/seat.c:58
    #4 0x7f1651062367 in wlr_signal_emit_safe ../util/signal.c:29
    #5 0x7f165101b532 in handle_pointer_button ../types/wlr_cursor.c:344
    #6 0x7f1651062367 in wlr_signal_emit_safe ../util/signal.c:29
    #7 0x7f1650ff633b in handle_pointer_button ../backend/libinput/pointer.c:85
    #8 0x7f1650ff5291 in wlr_libinput_event ../backend/libinput/events.c:215
    #9 0x7f1650ff3990 in wlr_libinput_readable ../backend/libinput/backend.c:35
    #10 0x7f1650d88c11 in wl_event_loop_dispatch (/lib64/libwayland-server.so.0+0x9c11)
    #11 0x7f1650d87449 in wl_display_run (/lib64/libwayland-server.so.0+0x8449)
    #12 0x418e90 in main ../rootston/main.c:81
    #13 0x7f164ff7ef29 in __libc_start_main (/lib64/libc.so.6+0x20f29)
    #14 0x405829 in _start (/home/shared/wayland/wlroots/build/rootston/rootston+0x405829)

introduced by #680
2018-03-27 09:17:47 +02:00
Tony Crisci
bbd0e23fa7 xdg-positioner constraint detection 2018-03-26 23:48:32 -04:00
Drew DeVault
d1d983a303
Merge pull request #680 from Ongy/roots_unfullscreen
unset fullscreen when surface is brought to front
2018-03-26 23:39:29 -04:00
Drew DeVault
b1c4f01bad
Merge pull request #713 from ManDay/master
Make X11 fully optional
2018-03-26 23:20:46 -04:00
Markus Ongyerth
07ca976489 only unfullscreen when necessary
Check whether the newly focused view is the same as the one currently
fullscreen on that output, or override redirect and don't unfullscreen
in these cases.
2018-03-26 23:18:50 -04:00
Markus Ongyerth
43d7459734 unset fullscreen when surface is brought to front
The output fullscreen surfaces are drawn in front of everything, without
consideration for view z-order.
If a view is brought to front, unset any fullscreen view that would
cover this view to make sure the view is visible.
2018-03-26 23:18:50 -04:00
Drew DeVault
706f77e3c7 Address review feedback 2018-03-26 23:15:21 -04:00
emersion
334bab543d
xdg-shell-v6: move toplevel specific fields in wlr_xdg_toplevel_v6 2018-03-26 19:32:21 -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
emersion
793c3b3047
render: add simple functions to render rectangles and ellipses 2018-03-26 12:41:51 -04:00