Commit Graph

694 Commits

Author SHA1 Message Date
Drew DeVault edbf4a2f60 Implement output auto-selection in rootston 2018-04-22 19:15:49 +02: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
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