mirror of
https://github.com/labwc/labwc.git
synced 2025-11-05 13:29:58 -05:00
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
This commit is contained in:
parent
688abf7db1
commit
7ea733761b
7 changed files with 126 additions and 64 deletions
|
|
@ -234,6 +234,7 @@ struct view {
|
|||
#endif
|
||||
};
|
||||
struct wlr_surface *surface;
|
||||
struct wlr_scene_tree *scene_tree;
|
||||
struct wlr_scene_node *scene_node;
|
||||
|
||||
bool mapped;
|
||||
|
|
@ -419,11 +420,13 @@ void desktop_focus_topmost_mapped_view(struct server *server);
|
|||
bool isfocusable(struct view *view);
|
||||
|
||||
/**
|
||||
* desktop_surface_and_view_at - find view and surface at (lx, ly)
|
||||
* Note: If surface points to layer-surface, view will be set to NULL
|
||||
* desktop_node_and_view_at - find view and scene_node at (lx, ly)
|
||||
* Note: If node points to layer-surface, view_area will be set
|
||||
* to LAB_SSD_LAYER_SURFACE, if view points to another surface
|
||||
* view_area will be LAB_SSD_CLIENT
|
||||
*/
|
||||
struct view *desktop_surface_and_view_at(struct server *server, double lx,
|
||||
double ly, struct wlr_surface **surface, double *sx, double *sy,
|
||||
struct view *desktop_node_and_view_at(struct server *server, double lx,
|
||||
double ly, struct wlr_scene_node **scene_node, double *sx, double *sy,
|
||||
enum ssd_part_type *view_area);
|
||||
|
||||
struct view *desktop_view_at_cursor(struct server *server);
|
||||
|
|
|
|||
|
|
@ -26,6 +26,9 @@ enum ssd_part_type {
|
|||
LAB_SSD_CLIENT,
|
||||
LAB_SSD_FRAME,
|
||||
LAB_SSD_ROOT,
|
||||
LAB_SSD_MENU,
|
||||
LAB_SSD_OSD,
|
||||
LAB_SSD_LAYER_SURFACE,
|
||||
LAB_SSD_END_MARKER
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue