Compare commits
No commits in common. "4d9d8d1081614427eedd4b8aa93ff2aebeb3f4bf" and "b6797e9931091a36bc1644211774b1d2103c0a7d" have entirely different histories.
4d9d8d1081
...
b6797e9931
2
build.sh
2
build.sh
|
|
@ -1,2 +1,2 @@
|
|||
#!/bin/bash
|
||||
./digesting_libdecor.c
|
||||
./wayland_libdecor_egl__frame_commit_workaround.c
|
||||
2902
digesting_libdecor.c
2902
digesting_libdecor.c
File diff suppressed because it is too large
Load Diff
|
|
@ -33,6 +33,15 @@
|
|||
|
||||
// config.h
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "0.2.2"
|
||||
|
||||
/* Plugin directiory path */
|
||||
#define LIBDECOR_PLUGIN_DIR "/usr/local/lib/x86_64-linux-gnu/libdecor/plugins-1"
|
||||
|
||||
/* Plugin API version */
|
||||
#define LIBDECOR_PLUGIN_API_VERSION 1
|
||||
|
||||
#define HAS_DBUS
|
||||
|
||||
/* #undef HAVE_MKOSTEMP */
|
||||
|
|
@ -47,11 +56,9 @@
|
|||
|
||||
#define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
|
||||
|
||||
#define STREQL(a,b) (((a)==0 && (b)==0) || \
|
||||
((a)!=0 && (b)!=0 && strcmp((a),(b))==0))
|
||||
|
||||
// libdecor.h
|
||||
|
||||
struct libdecor_frame;
|
||||
struct libdecor_configuration;
|
||||
struct libdecor_state;
|
||||
|
||||
|
|
@ -106,6 +113,72 @@ enum libdecor_wm_capabilities {
|
|||
|
||||
// libdecor-plugin.h
|
||||
|
||||
struct libdecor_frame_private;
|
||||
|
||||
struct libdecor_frame {
|
||||
struct libdecor_frame_private *priv;
|
||||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct libdecor_plugin_private;
|
||||
|
||||
struct libdecor_plugin {
|
||||
struct libdecor_plugin_private *priv;
|
||||
};
|
||||
|
||||
#define LIBDECOR_PLUGIN_PRIORITY_HIGH 1000
|
||||
#define LIBDECOR_PLUGIN_PRIORITY_MEDIUM 100
|
||||
#define LIBDECOR_PLUGIN_PRIORITY_LOW 0
|
||||
|
||||
struct libdecor_plugin_priority {
|
||||
const char *desktop;
|
||||
int priority;
|
||||
};
|
||||
|
||||
struct libdecor_plugin_interface {
|
||||
void (* destroy)(struct libdecor_plugin *plugin);
|
||||
|
||||
int (* get_fd)(struct libdecor_plugin *plugin);
|
||||
int (* dispatch)(struct libdecor_plugin *plugin,
|
||||
int timeout);
|
||||
|
||||
void (* set_handle_application_cursor)(struct libdecor_plugin *plugin,
|
||||
bool handle_cursor);
|
||||
|
||||
struct libdecor_frame * (* frame_new)(struct libdecor_plugin *plugin);
|
||||
void (* frame_free)(struct libdecor_plugin *plugin,
|
||||
struct libdecor_frame *frame);
|
||||
void (* frame_commit)(struct libdecor_plugin *plugin,
|
||||
struct libdecor_frame *frame,
|
||||
struct libdecor_state *state,
|
||||
struct libdecor_configuration *configuration);
|
||||
void (*frame_property_changed)(struct libdecor_plugin *plugin,
|
||||
struct libdecor_frame *frame);
|
||||
void (* frame_popup_grab)(struct libdecor_plugin *plugin,
|
||||
struct libdecor_frame *frame,
|
||||
const char *seat_name);
|
||||
void (* frame_popup_ungrab)(struct libdecor_plugin *plugin,
|
||||
struct libdecor_frame *frame,
|
||||
const char *seat_name);
|
||||
|
||||
bool (* frame_get_border_size)(struct libdecor_plugin *plugin,
|
||||
struct libdecor_frame *frame,
|
||||
struct libdecor_configuration *configuration,
|
||||
int *left,
|
||||
int *right,
|
||||
int *top,
|
||||
int *bottom);
|
||||
};
|
||||
|
||||
// #include "libdecor.c"
|
||||
|
||||
struct libdecor_state {
|
||||
enum libdecor_window_state window_state;
|
||||
|
||||
int content_width;
|
||||
int content_height;
|
||||
};
|
||||
|
||||
struct libdecor_limits {
|
||||
int min_width;
|
||||
int min_height;
|
||||
|
|
@ -113,6 +186,90 @@ struct libdecor_limits {
|
|||
int max_height;
|
||||
};
|
||||
|
||||
struct libdecor_configuration {
|
||||
uint32_t serial;
|
||||
|
||||
bool has_window_state;
|
||||
enum libdecor_window_state window_state;
|
||||
|
||||
bool has_size;
|
||||
int window_width;
|
||||
int window_height;
|
||||
};
|
||||
|
||||
struct libdecor_frame_private {
|
||||
int ref_count;
|
||||
|
||||
struct wl_surface *wl_surface;
|
||||
|
||||
void *user_data;
|
||||
|
||||
struct xdg_surface *xdg_surface;
|
||||
struct xdg_toplevel *xdg_toplevel;
|
||||
struct zxdg_toplevel_decoration_v1 *toplevel_decoration;
|
||||
|
||||
bool pending_map;
|
||||
|
||||
struct {
|
||||
char *app_id;
|
||||
char *title;
|
||||
struct libdecor_limits content_limits;
|
||||
struct xdg_toplevel *parent;
|
||||
} state;
|
||||
|
||||
struct libdecor_configuration *pending_configuration;
|
||||
|
||||
int content_width;
|
||||
int content_height;
|
||||
|
||||
enum libdecor_window_state window_state;
|
||||
|
||||
bool has_decoration_mode;
|
||||
enum zxdg_toplevel_decoration_v1_mode decoration_mode;
|
||||
|
||||
enum libdecor_capabilities capabilities;
|
||||
|
||||
enum libdecor_wm_capabilities wm_capabilities;
|
||||
|
||||
/* original limits for interactive resize */
|
||||
struct libdecor_limits interactive_limits;
|
||||
|
||||
bool visible;
|
||||
};
|
||||
|
||||
struct libdecor_plugin_private {
|
||||
struct libdecor_plugin_interface *iface;
|
||||
};
|
||||
|
||||
// #include "libdecor-fallback.c"
|
||||
|
||||
struct libdecor_plugin_fallback {
|
||||
struct libdecor_plugin plugin;
|
||||
struct libdecor *context;
|
||||
};
|
||||
|
||||
// #include "desktop-settings.h"
|
||||
|
||||
enum libdecor_color_scheme {
|
||||
LIBDECOR_COLOR_SCHEME_DEFAULT,
|
||||
LIBDECOR_COLOR_SCHEME_PREFER_DARK,
|
||||
LIBDECOR_COLOR_SCHEME_PREFER_LIGHT,
|
||||
};
|
||||
|
||||
// #include "plugins/gtk/libdecor-gtk.c"
|
||||
|
||||
static const size_t SHADOW_MARGIN = 24;
|
||||
static const char *cursor_names[] = {
|
||||
"top_side",
|
||||
"bottom_side",
|
||||
"left_side",
|
||||
"top_left_corner",
|
||||
"bottom_left_corner",
|
||||
"right_side",
|
||||
"top_right_corner",
|
||||
"bottom_right_corner"
|
||||
};
|
||||
|
||||
enum header_element {
|
||||
HEADER_NONE,
|
||||
HEADER_FULL, /* entire header bar */
|
||||
|
|
@ -149,143 +306,9 @@ enum component {
|
|||
HEADER,
|
||||
};
|
||||
|
||||
struct border_component {
|
||||
enum component type;
|
||||
struct wl_surface *wl_surface;
|
||||
struct wl_subsurface *wl_subsurface;
|
||||
struct buffer *buffer;
|
||||
bool opaque;
|
||||
struct wl_list output_list;
|
||||
int scale;
|
||||
|
||||
struct wl_list child_components; /* border_component::link */
|
||||
struct wl_list link; /* border_component::child_components */
|
||||
};
|
||||
|
||||
struct libdecor_frame {
|
||||
//struct libdecor_frame;
|
||||
struct wl_list frame_link;
|
||||
|
||||
//struct libdecor_frame_private;
|
||||
int ref_count;
|
||||
|
||||
struct wl_surface *wl_surface;
|
||||
|
||||
void *user_data;
|
||||
|
||||
struct xdg_surface *xdg_surface;
|
||||
struct xdg_toplevel *xdg_toplevel;
|
||||
struct zxdg_toplevel_decoration_v1 *toplevel_decoration;
|
||||
|
||||
bool pending_map;
|
||||
|
||||
char *app_id;
|
||||
char *title;
|
||||
struct libdecor_limits content_limits;
|
||||
struct xdg_toplevel *parent;
|
||||
|
||||
struct libdecor_configuration *pending_configuration;
|
||||
|
||||
int frame_content_width;
|
||||
int frame_content_height;
|
||||
|
||||
enum libdecor_window_state frame_window_state;
|
||||
|
||||
bool has_decoration_mode;
|
||||
enum zxdg_toplevel_decoration_v1_mode decoration_mode;
|
||||
|
||||
enum libdecor_capabilities frame_capabilities;
|
||||
|
||||
enum libdecor_wm_capabilities wm_capabilities;
|
||||
|
||||
/* original limits for interactive resize */
|
||||
struct libdecor_limits interactive_limits;
|
||||
|
||||
bool visible;
|
||||
|
||||
//struct libdecor_frame_gtk;
|
||||
int gtk_content_width;
|
||||
int gtk_content_height;
|
||||
|
||||
enum libdecor_window_state gtk_window_state;
|
||||
|
||||
enum decoration_type decoration_type;
|
||||
|
||||
enum libdecor_capabilities gtk_capabilities;
|
||||
|
||||
struct border_component *active;
|
||||
struct border_component *touch_active;
|
||||
|
||||
struct border_component *focus;
|
||||
struct border_component *grab;
|
||||
|
||||
bool shadow_showing;
|
||||
struct border_component shadow;
|
||||
|
||||
GtkWidget *window; /* offscreen window for rendering */
|
||||
GtkWidget *header; /* header bar with widgets */
|
||||
struct border_component headerbar;
|
||||
struct header_element_data hdr_focus;
|
||||
|
||||
/* store pre-processed shadow tile */
|
||||
cairo_surface_t *shadow_blur;
|
||||
|
||||
struct wl_list gtk_link;
|
||||
|
||||
struct {
|
||||
enum titlebar_gesture_state state;
|
||||
int button_pressed_count;
|
||||
uint32_t first_pressed_button;
|
||||
uint32_t first_pressed_time;
|
||||
double pressed_x;
|
||||
double pressed_y;
|
||||
uint32_t pressed_serial;
|
||||
} titlebar_gesture;
|
||||
};
|
||||
|
||||
// #include "libdecor.c"
|
||||
|
||||
struct libdecor_state {
|
||||
enum libdecor_window_state window_state;
|
||||
|
||||
int content_width;
|
||||
int content_height;
|
||||
};
|
||||
|
||||
struct libdecor_configuration {
|
||||
uint32_t serial;
|
||||
|
||||
bool has_window_state;
|
||||
enum libdecor_window_state window_state;
|
||||
|
||||
bool has_size;
|
||||
int window_width;
|
||||
int window_height;
|
||||
};
|
||||
|
||||
// #include "desktop-settings.h"
|
||||
|
||||
enum libdecor_color_scheme {
|
||||
LIBDECOR_COLOR_SCHEME_DEFAULT,
|
||||
LIBDECOR_COLOR_SCHEME_PREFER_DARK,
|
||||
LIBDECOR_COLOR_SCHEME_PREFER_LIGHT,
|
||||
};
|
||||
|
||||
// #include "plugins/gtk/libdecor-gtk.c"
|
||||
|
||||
static const size_t SHADOW_MARGIN = 24;
|
||||
static const char *cursor_names[] = {
|
||||
"top_side",
|
||||
"bottom_side",
|
||||
"left_side",
|
||||
"top_left_corner",
|
||||
"bottom_left_corner",
|
||||
"right_side",
|
||||
"top_right_corner",
|
||||
"bottom_right_corner"
|
||||
};
|
||||
|
||||
struct seat {
|
||||
struct libdecor_plugin_gtk *plugin_gtk;
|
||||
|
||||
char *name;
|
||||
|
||||
struct wl_seat *wl_seat;
|
||||
|
|
@ -317,6 +340,8 @@ struct seat {
|
|||
};
|
||||
|
||||
struct output {
|
||||
struct libdecor_plugin_gtk *plugin_gtk;
|
||||
|
||||
struct wl_output *wl_output;
|
||||
uint32_t id;
|
||||
int scale;
|
||||
|
|
@ -338,6 +363,19 @@ struct buffer {
|
|||
int buffer_height;
|
||||
};
|
||||
|
||||
struct border_component {
|
||||
enum component type;
|
||||
struct wl_surface *wl_surface;
|
||||
struct wl_subsurface *wl_subsurface;
|
||||
struct buffer *buffer;
|
||||
bool opaque;
|
||||
struct wl_list output_list;
|
||||
int scale;
|
||||
|
||||
struct wl_list child_components; /* border_component::link */
|
||||
struct wl_list link; /* border_component::child_components */
|
||||
};
|
||||
|
||||
struct surface_output {
|
||||
struct output *output;
|
||||
struct wl_list link;
|
||||
|
|
@ -348,6 +386,70 @@ struct cursor_output {
|
|||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct libdecor_frame_gtk {
|
||||
struct libdecor_frame frame;
|
||||
|
||||
struct libdecor_plugin_gtk *plugin_gtk;
|
||||
|
||||
int content_width;
|
||||
int content_height;
|
||||
|
||||
enum libdecor_window_state window_state;
|
||||
|
||||
enum decoration_type decoration_type;
|
||||
|
||||
char *title;
|
||||
|
||||
enum libdecor_capabilities capabilities;
|
||||
|
||||
struct border_component *active;
|
||||
struct border_component *touch_active;
|
||||
|
||||
struct border_component *focus;
|
||||
struct border_component *grab;
|
||||
|
||||
bool shadow_showing;
|
||||
struct border_component shadow;
|
||||
|
||||
GtkWidget *window; /* offscreen window for rendering */
|
||||
GtkWidget *header; /* header bar with widgets */
|
||||
struct border_component headerbar;
|
||||
struct header_element_data hdr_focus;
|
||||
|
||||
/* store pre-processed shadow tile */
|
||||
cairo_surface_t *shadow_blur;
|
||||
|
||||
struct wl_list link;
|
||||
|
||||
struct {
|
||||
enum titlebar_gesture_state state;
|
||||
int button_pressed_count;
|
||||
uint32_t first_pressed_button;
|
||||
uint32_t first_pressed_time;
|
||||
double pressed_x;
|
||||
double pressed_y;
|
||||
uint32_t pressed_serial;
|
||||
} titlebar_gesture;
|
||||
};
|
||||
|
||||
struct libdecor_plugin_gtk {
|
||||
struct libdecor_plugin plugin;
|
||||
|
||||
struct wl_subcompositor *wl_subcompositor;
|
||||
|
||||
struct wl_shm *wl_shm;
|
||||
bool has_argb;
|
||||
|
||||
struct wl_list visible_frame_list;
|
||||
struct wl_list seat_list;
|
||||
struct wl_list output_list;
|
||||
|
||||
int double_click_time_ms;
|
||||
int drag_threshold;
|
||||
|
||||
bool handle_cursor;
|
||||
};
|
||||
|
||||
enum titlebar_gesture {
|
||||
TITLEBAR_GESTURE_DOUBLE_CLICK,
|
||||
TITLEBAR_GESTURE_MIDDLE_CLICK,
|
||||
|
|
@ -358,13 +460,25 @@ enum titlebar_gesture {
|
|||
// libdecor.h
|
||||
void libdecor_frame_ref(struct libdecor_frame *frame);
|
||||
void libdecor_frame_unref(struct libdecor_frame *frame);
|
||||
void *libdecor_frame_get_user_data(struct libdecor_frame *frame);
|
||||
void libdecor_frame_set_user_data(struct libdecor_frame *frame, void *user_data);
|
||||
void libdecor_frame_set_visibility(struct libdecor_frame *frame,
|
||||
bool visible);
|
||||
bool libdecor_frame_is_visible(struct libdecor_frame *frame);
|
||||
|
||||
void libdecor_frame_set_parent(struct libdecor_frame *frame,
|
||||
struct libdecor_frame *parent);
|
||||
void libdecor_frame_set_title(struct libdecor_frame *frame,
|
||||
const char *title);
|
||||
const char * libdecor_frame_get_title(struct libdecor_frame *frame);
|
||||
void libdecor_frame_set_app_id(struct libdecor_frame *frame,
|
||||
const char *app_id);
|
||||
void libdecor_frame_set_capabilities(struct libdecor_frame *frame,
|
||||
enum libdecor_capabilities capabilities);
|
||||
void libdecor_frame_unset_capabilities(struct libdecor_frame *frame,
|
||||
enum libdecor_capabilities capabilities);
|
||||
bool libdecor_frame_has_capability(struct libdecor_frame *frame,
|
||||
enum libdecor_capabilities capability);
|
||||
void libdecor_frame_show_window_menu(struct libdecor_frame *frame,
|
||||
struct wl_seat *wl_seat,
|
||||
uint32_t serial,
|
||||
|
|
@ -378,7 +492,18 @@ void libdecor_frame_popup_ungrab(struct libdecor_frame *frame,
|
|||
void libdecor_frame_translate_coordinate(struct libdecor_frame *frame,
|
||||
int surface_x, int surface_y,
|
||||
int *frame_x, int *frame_y);
|
||||
|
||||
void libdecor_frame_set_min_content_size(struct libdecor_frame *frame,
|
||||
int content_width,
|
||||
int content_height);
|
||||
void libdecor_frame_set_max_content_size(struct libdecor_frame *frame,
|
||||
int content_width,
|
||||
int content_height);
|
||||
void libdecor_frame_get_min_content_size(const struct libdecor_frame *frame,
|
||||
int *content_width,
|
||||
int *content_height);
|
||||
void libdecor_frame_get_max_content_size(const struct libdecor_frame *frame,
|
||||
int *content_width,
|
||||
int *content_height);
|
||||
void libdecor_frame_resize(struct libdecor_frame *frame,
|
||||
struct wl_seat *wl_seat,
|
||||
uint32_t serial,
|
||||
|
|
@ -398,7 +523,9 @@ void libdecor_frame_unset_fullscreen(struct libdecor_frame *frame);
|
|||
bool libdecor_frame_is_floating(struct libdecor_frame *frame);
|
||||
void libdecor_frame_close(struct libdecor_frame *frame);
|
||||
void libdecor_frame_map(struct libdecor_frame *frame);
|
||||
|
||||
struct xdg_surface * libdecor_frame_get_xdg_surface(struct libdecor_frame *frame);
|
||||
struct xdg_toplevel * libdecor_frame_get_xdg_toplevel(struct libdecor_frame *frame);
|
||||
enum libdecor_wm_capabilities libdecor_frame_get_wm_capabilities(struct libdecor_frame *frame);
|
||||
struct libdecor_state * libdecor_state_new(int width, int height);
|
||||
void libdecor_state_free(struct libdecor_state *state);
|
||||
bool libdecor_configuration_get_content_size(struct libdecor_configuration *configuration,
|
||||
|
|
@ -408,16 +535,46 @@ bool libdecor_configuration_get_content_size(struct libdecor_configuration *conf
|
|||
bool libdecor_configuration_get_window_state(struct libdecor_configuration *configuration,
|
||||
enum libdecor_window_state *window_state);
|
||||
|
||||
struct libdecor_frame* libdecor_decorate(struct wl_surface *wl_surface, void *user_data);
|
||||
int libdecor_dispatch(int timeout);
|
||||
|
||||
// libdecor-plugin.h
|
||||
|
||||
struct wl_surface * libdecor_frame_get_wl_surface(struct libdecor_frame *frame);
|
||||
|
||||
int libdecor_frame_get_content_width(struct libdecor_frame *frame);
|
||||
|
||||
int libdecor_frame_get_content_height(struct libdecor_frame *frame);
|
||||
|
||||
enum libdecor_window_state libdecor_frame_get_window_state(struct libdecor_frame *frame);
|
||||
|
||||
enum libdecor_capabilities libdecor_frame_get_capabilities(const struct libdecor_frame *frame);
|
||||
|
||||
void libdecor_frame_dismiss_popup(struct libdecor_frame *frame,
|
||||
const char *seat_name);
|
||||
|
||||
void libdecor_frame_toplevel_commit(struct libdecor_frame *frame);
|
||||
|
||||
void libdecor_notify_plugin_ready(void);
|
||||
|
||||
void libdecor_notify_plugin_error(enum libdecor_error error,
|
||||
const char *__restrict fmt,
|
||||
...);
|
||||
|
||||
int libdecor_state_get_content_width(struct libdecor_state *state);
|
||||
|
||||
int libdecor_state_get_content_height(struct libdecor_state *state);
|
||||
|
||||
enum libdecor_window_state libdecor_state_get_window_state(struct libdecor_state *state);
|
||||
|
||||
int libdecor_plugin_init(struct libdecor_plugin *plugin, struct libdecor_plugin_interface *iface);
|
||||
|
||||
void libdecor_plugin_release(struct libdecor_plugin *plugin);
|
||||
|
||||
// #include "libdecor-fallback.h"
|
||||
|
||||
struct libdecor_plugin * libdecor_fallback_plugin_new(void);
|
||||
|
||||
// #include "libdecor-cairo-blur.h"
|
||||
|
||||
int blur_surface(cairo_surface_t *surface, int margin);
|
||||
|
|
@ -429,20 +586,19 @@ void render_shadow(cairo_t *cr, cairo_surface_t *surface,
|
|||
bool libdecor_get_cursor_settings(char **theme, int *size);
|
||||
enum libdecor_color_scheme libdecor_get_color_scheme();
|
||||
|
||||
|
||||
// #include "os-compatibility.h"
|
||||
|
||||
int libdecor_os_create_anonymous_file(off_t size);
|
||||
|
||||
// #include "libdecor.c"
|
||||
|
||||
static void init_shell_surface(struct libdecor_frame *frame);
|
||||
|
||||
static void set_capabilities(struct libdecor_frame *frame, const enum libdecor_capabilities new_capabilities);
|
||||
|
||||
static void do_map(struct libdecor_frame *frame);
|
||||
static void notify_error(enum libdecor_error error, const char *message);
|
||||
static void finish_init(void);
|
||||
|
||||
//#include "plugins/gtk/libdecor-gtk.c"
|
||||
|
||||
static void libdecor_plugin_gtk_destroy(struct libdecor_plugin *plugin);
|
||||
|
||||
static void init_wl_output( uint32_t id, uint32_t version);
|
||||
|
||||
|
|
@ -450,18 +606,6 @@ static void output_removed(struct output *output);
|
|||
|
||||
static const char *libdecor_gtk_proxy_tag = "libdecor-gtk";
|
||||
|
||||
static int libdecor_plugin_gtk_get_fd(void);
|
||||
static int libdecor_plugin_gtk_get_fd(void);
|
||||
static int libdecor_plugin_gtk_dispatch(int timeout);
|
||||
static void libdecor_plugin_gtk_set_handle_application_cursor(bool handle_cursor);
|
||||
static void libdecor_plugin_gtk_frame_free(struct libdecor_frame *frame);
|
||||
static void libdecor_plugin_gtk_frame_commit(struct libdecor_frame *frame, struct libdecor_state *state, struct libdecor_configuration *configuration);
|
||||
static void libdecor_plugin_gtk_frame_popup_grab(struct libdecor_frame *frame, const char *seat_name);
|
||||
static void libdecor_plugin_gtk_frame_popup_ungrab(struct libdecor_frame *frame, const char *seat_name);
|
||||
static bool libdecor_plugin_gtk_frame_get_border_size(struct libdecor_frame *frame, struct libdecor_configuration *configuration, int *left, int *right, int *top, int *bottom);
|
||||
|
||||
static void draw_decoration(struct libdecor_frame *frame);
|
||||
|
||||
// digesting_libdecor
|
||||
|
||||
typedef struct Ctx{
|
||||
|
|
@ -474,27 +618,20 @@ typedef struct Ctx{
|
|||
struct wl_display *wl_display;
|
||||
struct wl_registry *wl_registry;
|
||||
struct wl_compositor *wl_compositor;
|
||||
struct wl_subcompositor *wl_subcompositor;
|
||||
struct wl_shm *wl_shm;
|
||||
struct xdg_wm_base *xdg_wm_base;
|
||||
struct zxdg_decoration_manager_v1 *decoration_manager;
|
||||
struct wl_callback *wl_callback;
|
||||
|
||||
struct wl_list visible_frame_list;
|
||||
struct wl_list seat_list;
|
||||
struct wl_list output_list;
|
||||
|
||||
struct wl_list frames;
|
||||
struct wl_callback *wl_callback;
|
||||
struct libdecor_plugin_gtk *plugin_gtk;
|
||||
struct libdecor_plugin *plugin;
|
||||
bool plugin_ready;
|
||||
bool init_done;
|
||||
bool has_error;
|
||||
|
||||
bool has_argb;
|
||||
int double_click_time_ms;
|
||||
int drag_threshold;
|
||||
bool handle_cursor;
|
||||
|
||||
/* window */
|
||||
struct wl_surface *wl_surface;
|
||||
struct libdecor_frame *frame;
|
||||
struct libdecor_frame *libdecor_frame;
|
||||
struct wl_egl_window *wl_egl_window;
|
||||
int configured;
|
||||
int w;
|
||||
|
|
@ -503,9 +640,6 @@ typedef struct Ctx{
|
|||
EGLDisplay egl_display;
|
||||
EGLContext egl_context;
|
||||
EGLSurface egl_surface;
|
||||
|
||||
int has_cached_config;
|
||||
struct libdecor_configuration cached_config;
|
||||
} Ctx;
|
||||
|
||||
#endif //DIGESTING_LIBDECOR_H
|
||||
|
|
|
|||
Loading…
Reference in New Issue