Commit Graph

2892 Commits

Author SHA1 Message Date
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
Drew DeVault 979b1b22d5
Merge pull request #914 from emersion/misc-segfault-fixes
Misc segfault fixes
2018-04-26 17:37:27 +02:00
emersion c119c43b48
xwayland/selection: fix little memory leak on error 2018-04-26 15:59:58 +01:00
emersion 874909dca6
xdg-shell: fix invalid wlr_xdg_positioner alloc 2018-04-26 15:59:23 +01:00
emersion fcb7ad925d
layer-shell: fix use-after-free when client requests an invalid layer 2018-04-26 15:58:41 +01:00
Drew DeVault 93ebd33aa8
Merge pull request #890 from agx/layer-shell-empty-output-crash
layer-shell: Fix crash when cursor is intially outside any output
2018-04-26 14:31:35 +02:00
Guido Günther d81f0170a3 layer-shell: Don't crash when the compositor didn't find a suitable output
In that case it must have closed the surface.
2018-04-26 14:08:30 +02:00
Guido Günther b1bd0e2557 layer-shell: Fix crash when cursor is intially outside any output
On the X11 backend the cursor position might be outside the output
window so no output is returned leading to the assert to trigger. Use
sane fallback instead of crashing.
2018-04-26 14:08:30 +02:00
Drew DeVault ce64bb7d83
Merge pull request #912 from RyanDwyer/remove-bitchecks
Remove bitchecks from wlr_output_layout_adjacent_output()
2018-04-26 12:32:52 +02:00
Drew DeVault 5b50fc9fd9
Merge pull request #913 from emersion/log-require-extension
Log required extension name if unavailable
2018-04-26 12:32:38 +02:00
emersion 5a87712ca8
Log required extension name if unavailable 2018-04-26 11:11:28 +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
Drew DeVault fac2c3e25f
Merge pull request #882 from emersion/unprefix-local-symbols
Remove wlr_ prefix from local symbols
2018-04-26 11:18:01 +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 31857c9ed4
Merge pull request #910 from agx/printf-ssize_t
Use correct prinf format specifiers for ssize_t
2018-04-26 09:49:39 +01:00
Guido Guenther 085452f9d9 Use correct printf format specifiers for ssize_t
This unbreaks the build on armhf that otherwise fails like

    ../xwayland/selection/incoming.c: In function 'xwm_data_source_write':
    ../include/wlr/util/log.h:34:17: error: format '%ld' expects argument of type 'long int', but argument 6 has type 'ssize_t {aka int}' [-Werror=format=]
      _wlr_log(verb, "[%s:%d] " fmt, wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__)
                     ^
    ../xwayland/selection/incoming.c:34:2: note: in expansion of macro 'wlr_log'
      wlr_log(L_DEBUG, "wrote %zd (chunk size %ld) of %d bytes",
      ^~~~~~~
    ../xwayland/selection/incoming.c:34:44: note: format string is defined here
      wlr_log(L_DEBUG, "wrote %zd (chunk size %ld) of %d bytes",
                                              ~~^
                                              %d
2018-04-26 10:46:11 +02: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 cd9f25711c
backend: destroy renderer when destroying backend 2018-04-25 23:53:43 +01:00
emersion 625a7a48dc
Don't use the wlr_ prefix for static functions 2018-04-25 23:51:00 +01:00
emersion 71ca45e2c0
Make sure we don't use others' prefixes 2018-04-25 23:24:58 +01:00
emersion f9f75a1362
Add prefix policy to CONTRIBUTING.md 2018-04-25 23:00:47 +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 99e9f08c4a
Merge pull request #903 from emersion/wlr-egl-destroy-surface
render/egl: add wlr_egl_destroy_surface
2018-04-25 08:33:41 +01: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
Drew DeVault c40f86d27f
Merge pull request #900 from emersion/cursor-wrap-absolute-zero
cursor: allow to call wlr_cursor_wrap_absolute with zero
2018-04-24 21:18:08 +02:00
emersion bc0bfde5ee
cursor: allow to call wlr_cursor_wrap_absolute with zero 2018-04-24 19:46:29 +01:00
Drew DeVault a6790d45b2
Merge pull request #895 from agx/layer-shell-popup-damage
layer-shell: use output_damage_{whole,from}_local_surface
2018-04-24 13:16:44 +02:00
Guido Günther 24fa07565d layer-shell: use output_damage_{whole,from}_local_surface on map/unmap
These handle rotation and scaling
2018-04-24 13:11:42 +02:00
Guido Günther c4dff67e00 layer-shell: use output_damage_{whole,from}_local_surface for popups
Reuse what already handles rotation and scaling. This unbreaks popups
on rotated or scaled outputs.
2018-04-24 13:11:42 +02:00
emersion 09b491f36c
Merge pull request #893 from emersion/fix-subsurface-recreate
Fix protocol error when a client destroys and re-creates a subsurface
2018-04-24 09:01:48 +01:00
emersion 38064f1d18
Fix protocol error when a client destroys and re-creates a subsurface 2018-04-23 21:50:15 +01:00
Drew DeVault c0831344aa
Merge pull request #891 from agx/layer-shell-popup-grab
examples/layer-shell: take grab on the popup
2018-04-23 18:21:51 +02:00
Guido Günther 67a10cc1f6 examples/layer-shell: take an explicit grab on the popup
This demonstrates popups can be closed by clicking on the area outside
the popup and parent.
2018-04-23 18:11:47 +02:00
Drew DeVault e2ed7be0ba
Merge pull request #877 from agx/layer-popups
Layer popups: work on top of PR 867
2018-04-23 13:00:57 +02:00
Guido Günther 32e043f996 examples: Allow to close the popup
So we can the xdg_popup_destroy path.
2018-04-23 12:52:05 +02:00
Guido Günther 5209c79702 examples: Handle input entering popup in layer-shell
Change the cursor when entering the popup and make mouse buttons change
the red component of the square. This makes sure we can handle input
correctly.
2018-04-23 11:24:31 +02:00
Guido Günther 57cc4c319d rootston: Send frame_done for popups too
Thanks @emersion
2018-04-23 11:24:31 +02:00
Guido Günther 421652a450 examples: Animate popup in layer-shell 2018-04-23 11:24:31 +02:00
Guido Günther ad22e02310 rootston: Damage layer-shell popups 2018-04-23 11:24:31 +02:00
Guido Günther d4cb33c9fc rootston: Let layer_surface_at look at popups
This allows them to receive input as well.
2018-04-23 11:24:31 +02:00
Guido Günther d1e82a8ede examples: Drop unused variable 2018-04-23 11:24:31 +02:00
Drew DeVault 941f88ce23 Fix popup positioning & double popups 2018-04-23 11:24:06 +02:00
Drew DeVault 52baf3dd8a Move get_geometry call back to xdg-shell 2018-04-23 11:24:06 +02:00