Johan Malm
6fd400b493
layers: put popups in separate node-tree
...
This allows popups to be rendered above views and other layers. Without
this, the popups of a layer-shell application in the bottom layer would
render below views, which does not seem right. For example, consider the
case of a panel with right-click popups.
2022-03-03 17:56:38 +00:00
Johan Malm
34bd1fb6da
layers: unconstrain popups correctly
...
...to show popups when using @Consolatis's example panel
https://github.com/Consolatis/wl_framework
2022-03-03 17:53:26 +00:00
Consolatis
8444ba4075
Convert menu to node_descriptors
2022-03-03 17:49:54 +00:00
Johan Malm
eb7645d0e0
node.c: use wlr_scene_node instead of node_descriptor
2022-03-02 22:24:30 +00:00
Johan Malm
b4cbc20e8c
node.c: add helpers for returning structs from node data
...
Support returning the following structs:
- view from LAB_NODE_DESC_VIEW or LAB_NODE_DESC_XDG_POPUP
- lab_layer_surface form LAB_NODE_DESC_LAYER_SURFACE
- lab_layer_popup from LAB_NODE_DESC_LAYER_POPUP
2022-03-02 22:05:41 +00:00
Johan Malm
30298228e3
Rename node-descriptor.c to node.c
...
...in anticipation of adding helpers like node_view_from_node()
2022-03-02 21:07:04 +00:00
Consolatis
51e02e2afa
src/desktop.c: Fix label error
...
Fixes "a label can only be part of a statement
and a declaration is not a statement".
2022-03-02 20:43:59 +00:00
Consolatis
db9a808dca
debug.c: use node descriptors
2022-03-02 20:43:59 +00:00
Johan Malm
d3918eec0a
layers: only define LAB_NR_LAYERS locally where needed
2022-03-02 20:39:46 +00:00
Johan Malm
98d5fd483d
layers: s/arrange_layers/layers_arrange/
...
Because we like to start public function names with the name of the
file.
Move prototype from labwc.h to layers.h
2022-03-02 20:29:29 +00:00
Johan Malm
04580fa825
layers: arrange layers on output-layout change
2022-03-02 20:26:09 +00:00
Johan Malm
99361d6ad8
layers.c: fix coding style
2022-03-02 20:23:20 +00:00
Johan Malm
a1d93cc97c
layers: position each layer_tree correctly relative to its output
2022-03-02 20:21:57 +00:00
Johan Malm
bd9ac3478a
Remove src/damage.c
2022-03-01 20:54:52 +00:00
Johan Malm
e289100a54
xwayland-unmanaged: fix dereference NULL pointer bug
...
Discovered when right-clicking names in hexchat
2022-03-01 20:45:31 +00:00
Johan Malm
c0f369aafb
Enable presentation time
2022-02-28 22:30:36 +00:00
Johan Malm
cec0c5cee6
desktop.c: set *view_area right for layer-popup
2022-02-26 23:30:02 +00:00
Johan Malm
49e8658a7b
layer: support popups
2022-02-26 22:36:16 +00:00
Johan Malm
2891ff245e
Add node-descriptor for wlr_scene_nodes
...
Support identification of wlr_scene_node role to enable simplification
of codebase including the avoidance of iterating over lists of
layer-surface, menuitems, and so on.
Use node-descriptors for xdg toplevels and popups
2022-02-26 22:35:51 +00:00
Consolatis
5f62f2ba99
xwayland.c: Fix positioning with multiple queued configure events
...
Prevents a single action like ToggleDecorations + ToggleMaximize to
position the view somewhere with negative coordinates when unmaximizing.
It may still position the view on negative coordinates but later commit
events will fix the position. This issue only exists on xwayland because
there are no configure serials which we could use to ignore all
repositioning until we are at the latest desired state.
2022-02-25 21:51:40 +00:00
Consolatis
00ff00d9f9
[style] use __func__ in log message
2022-02-24 21:17:51 +00:00
Consolatis
9c4bacc9b7
[style] fix open brace after function definition
2022-02-24 21:17:51 +00:00
Consolatis
953e8a4f9d
[style] rename action() to actions_run()
2022-02-24 21:17:51 +00:00
Consolatis
7d98bc7aa2
ssd/ssd_titlebar.c: Only store title state if title has been changed
2022-02-24 06:56:25 +00:00
Consolatis
c033667716
src/ssd/: Don't access view->surface->current directly
...
Instead use view->{w,h} which are set on client commit
2022-02-24 06:56:25 +00:00
Johan Malm
f4c9d1ba9f
Set node position in xdg/xwayland commit handlers
...
...in order to sync resize/move events to avoid left/bottom edge wobbling
when resizing with top/left resize edges
2022-02-23 22:39:57 +00:00
Johan Malm
581a2bb2f1
cursor+keyboard: chase wlroots master
...
Use wlr_input_device from input device base.
Use wlr_keyboard where possible.
2022-02-23 22:19:16 +00:00
Consolatis
29021dad6a
xdg/xwayland: Do not destroy scene node on unmap
...
This prevents segfaulting when unminimizing
2022-02-23 21:47:01 +00:00
Consolatis
c2f7e0be3d
debug.c: try to id important elements
2022-02-23 21:47:01 +00:00
Consolatis
17d83402ee
xwayland.c: Fix xwayland views activating themself before mapping
2022-02-23 21:47:01 +00:00
Consolatis
a2523081e2
Handle 'lost' unmanaged xsurfaces + improve cursor handling
2022-02-23 21:47:01 +00:00
Consolatis
5862b65f89
Convert SSD to scene nodes
2022-02-23 21:47:01 +00:00
Consolatis
f2d40a8d69
Scene Menu
2022-02-23 21:47:01 +00:00
Johan Malm
f26b61137d
layers.h: define LAB_NR_LAYERS (4)
2022-02-23 21:47:01 +00:00
Johan Malm
6488b933fa
layers.c: set output->usable_area
2022-02-23 21:47:01 +00:00
Consolatis
044388a5cd
Prepare to move from wlr_texture to lab_data_buffer
2022-02-23 21:47:01 +00:00
Consolatis
7ea733761b
Use view->scene_tree as toplevel for view + some legwork:
...
desktop.c move_to_front() calls wlr_scene_node_raise_to_top
desktop.c, ssd/include.h add LAB_SSD_{OSD, MENU, LAYER_SURFACE} enums
desktop.c desktop_surface_and_view_at() -> desktop_node_and_view_at()
cursor.c reenable cursor_rebase()
cursor.c reenable button click on layer surface
2022-02-23 21:47:01 +00:00
Johan Malm
688abf7db1
Handle layers under the scene-graph API
...
This excludes popups.
2022-02-23 21:47:01 +00:00
Johan Malm
9fed8e0998
Handle popups under xdg-toplevels in xdg-popup.c
...
...to make it easier to deal them separetely from layer-shell popups
2022-02-23 21:47:01 +00:00
Johan Malm
b79744e7b0
Chase wlroots master
...
We need it for wlr_scene_layer_surface_v1_create()
2022-02-23 21:47:01 +00:00
Johan Malm
04ca9fbdf5
buffer: use cairo_surface_destroy()
...
...rather than free(buffer->data)
2022-02-23 21:47:01 +00:00
Johan Malm
f22bfc96b2
buffer: create cairo_t inside buffer_create()
2022-02-23 21:47:01 +00:00
Johan Malm
ba909e4fc7
Refactor buffer implementation to take a cairo_t
...
Remove buffer_drop() and just destroy it.
2022-02-23 21:47:01 +00:00
Johan Malm
ebabc066ba
xwayland: in map() use wlr_scene_subsurface_tree_create()
2022-02-23 21:47:01 +00:00
Johan Malm
4593909744
osd: destroy old osd_tree children
2022-02-23 21:47:01 +00:00
Johan Malm
5934ed6682
Add debug_dump_scene()
...
Dump view_tree and osd_tree on calling debug-action. Example bind:
<keybind key="A-F12">
<action name="Debug"></action>
</keybind>
2022-02-23 21:47:01 +00:00
Johan Malm
532656ad5b
Use wlroots scene-graph API
...
Move xdg-shell and xwayland-shell surfaces to new API
Also render alt-tab on-screen-display by converting cairo-surface to
wlr_buffer
2022-02-23 21:46:48 +00:00
Johan Malm
d2552232c7
Add buffer.c to cover cairo-surface to wlr_buffer
2022-02-23 21:41:01 +00:00
Johan Malm
588f233151
output: render overlay lay popups
...
This enables sfwbar popups and fixes issue #239
https://github.com/LBCrion/sfwbar
2022-02-13 09:45:42 +00:00
ARDiDo
7c437eac2f
OSD: Use separate OSD texture for each output
2022-02-09 21:57:32 +00:00