mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-17 06:59:43 -05:00
xwayland: add wlr_xwayland_set_workareas()
This function allows compositors to set the _NET_WORKAREA property on the root window. XWayland clients use _NET_WORKAREA to determine how much of the screen is not covered by panels/docks. The property is used for example by Qt to determine areas of the screen that popup menus should not overlap (see QScreen::availableVirtualGeometry).
This commit is contained in:
parent
2410710a0f
commit
af165acb42
3 changed files with 34 additions and 0 deletions
|
|
@ -16,6 +16,7 @@
|
|||
#include <xcb/xcb_icccm.h>
|
||||
#include <wlr/util/addon.h>
|
||||
|
||||
struct wlr_box;
|
||||
struct wlr_xwm;
|
||||
struct wlr_data_source;
|
||||
struct wlr_drag;
|
||||
|
|
@ -285,4 +286,14 @@ bool wlr_xwayland_or_surface_wants_focus(
|
|||
enum wlr_xwayland_icccm_input_model wlr_xwayland_icccm_input_model(
|
||||
const struct wlr_xwayland_surface *xsurface);
|
||||
|
||||
/**
|
||||
* Sets the _NET_WORKAREA root window property. The compositor should set
|
||||
* one workarea per virtual desktop. This indicates the usable geometry
|
||||
* (relative to the virtual desktop viewport) that is not covered by
|
||||
* panels, docks, etc. Unfortunately, it is not possible to specify
|
||||
* per-output workareas.
|
||||
*/
|
||||
void wlr_xwayland_set_workareas(struct wlr_xwayland *wlr_xwayland,
|
||||
const struct wlr_box *workareas, size_t num_workareas);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ enum atom_name {
|
|||
DND_ACTION_PRIVATE,
|
||||
NET_CLIENT_LIST,
|
||||
NET_CLIENT_LIST_STACKING,
|
||||
NET_WORKAREA,
|
||||
ATOM_LAST // keep last
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue