mirror of
https://github.com/labwc/labwc.git
synced 2025-11-04 13:30:07 -05:00
osd: prevent preview outlines from overlapping OSD in first output
Following code didn't consider multi-monitor setup: wlr_scene_node_raise_to_top(&server->menu_tree->node); wlr_scene_node_raise_to_top(&output->osd_tree->node); ...because when executed twice, server->menu_tree is raised above output->osd_tree for the first output. This resulted in a scene tree like (higher to lower): - output->osd_tree (for 2nd output) - output->server->osd_state.preview_outline (placed just above menu_tree) - sever->menu_tree - output->osd_tree (for 1st output) So the previous outline for window switcher is placed above the OSD in the first output.
This commit is contained in:
parent
bf02598098
commit
fa6bffa6c6
2 changed files with 8 additions and 11 deletions
14
src/output.c
14
src/output.c
|
|
@ -512,20 +512,22 @@ new_output_notify(struct wl_listener *listener, void *data)
|
|||
* bottom):
|
||||
* - session lock layer
|
||||
* - window switcher osd
|
||||
* - compositor menu
|
||||
* - (compositor menu)
|
||||
* - layer-shell popups
|
||||
* - overlay layer
|
||||
* - top layer
|
||||
* - views
|
||||
* - (views)
|
||||
* - bottom layer
|
||||
* - background layer
|
||||
*/
|
||||
wlr_scene_node_lower_to_bottom(&output->layer_tree[1]->node);
|
||||
wlr_scene_node_lower_to_bottom(&output->layer_tree[0]->node);
|
||||
wlr_scene_node_raise_to_top(&output->layer_tree[2]->node);
|
||||
wlr_scene_node_raise_to_top(&output->layer_tree[3]->node);
|
||||
wlr_scene_node_raise_to_top(&output->layer_popup_tree->node);
|
||||
wlr_scene_node_raise_to_top(&server->menu_tree->node);
|
||||
|
||||
struct wlr_scene_node *menu_node = &server->menu_tree->node;
|
||||
wlr_scene_node_place_below(&output->layer_tree[2]->node, menu_node);
|
||||
wlr_scene_node_place_below(&output->layer_tree[3]->node, menu_node);
|
||||
wlr_scene_node_place_below(&output->layer_popup_tree->node, menu_node);
|
||||
|
||||
wlr_scene_node_raise_to_top(&output->osd_tree->node);
|
||||
wlr_scene_node_raise_to_top(&output->session_lock_tree->node);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue