Sync layersurface with Phosh

Copy layersurface & layer shell protocol from phosh
(https://gitlab.gnome.org/World/Phosh/phosh/)
This commit is contained in:
David96
2023-01-14 18:04:02 +01:00
committed by Dorota Czaplejewicz
parent 5f12199de1
commit 6e46512044
3 changed files with 379 additions and 173 deletions

View File

@ -1,22 +1,17 @@
/*
* Copyright (C) 2018 Purism SPC
*
* SPDX-License-Identifier: GPL-3.0+
* SPDX-License-Identifier: GPL-3.0-or-later
*/
/*
WARNING: this file is taken directly from phosh, with no modificaions apart from this message. Please update phosh instead of changing this file. Please copy the file back here afterwards, with the same notice.
*/
#pragma once
#include <gtk/gtk.h>
/* TODO: We use the enum constants from here, use glib-mkenums */
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
G_BEGIN_DECLS
#define PHOSH_TYPE_LAYER_SURFACE (phosh_layer_surface_get_type ())
G_DECLARE_DERIVABLE_TYPE (PhoshLayerSurface, phosh_layer_surface, PHOSH, LAYER_SURFACE, GtkWindow)
@ -24,6 +19,7 @@ G_DECLARE_DERIVABLE_TYPE (PhoshLayerSurface, phosh_layer_surface, PHOSH, LAYER_S
/**
* PhoshLayerSurfaceClass
* @parent_class: The parent class
* @configured: invoked when layer surface is configured
*/
struct _PhoshLayerSurfaceClass
{
@ -39,15 +35,26 @@ GtkWidget *phosh_layer_surface_new (gpointer layer_shell,
struct zwlr_layer_surface_v1 *phosh_layer_surface_get_layer_surface(PhoshLayerSurface *self);
struct wl_surface *phosh_layer_surface_get_wl_surface(PhoshLayerSurface *self);
void phosh_layer_surface_set_size(PhoshLayerSurface *self,
gint width,
gint height);
int width,
int height);
void phosh_layer_surface_set_margins(PhoshLayerSurface *self,
gint top,
gint right,
gint bottom,
gint left);
int top,
int right,
int bottom,
int left);
void phosh_layer_surface_set_exclusive_zone(PhoshLayerSurface *self,
gint zone);
int zone);
void phosh_layer_surface_set_kbd_interactivity(PhoshLayerSurface *self,
gboolean interactivity);
void phosh_layer_surface_set_layer (PhoshLayerSurface *self,
guint32 layer);
void phosh_layer_surface_wl_surface_commit (PhoshLayerSurface *self);
void phosh_layer_surface_get_margins (PhoshLayerSurface *self,
int *top,
int *right,
int *bottom,
int *left);
int phosh_layer_surface_get_configured_width (PhoshLayerSurface *self);
int phosh_layer_surface_get_configured_height (PhoshLayerSurface *self);
G_END_DECLS