[digesting_libdecor] move libdecor_frame_gtk fields to libdecor_frame, eliminate 'gtk' frame and replace pass-throughts with regular frames
parent
babb2ccb59
commit
785b014580
1188
digesting_libdecor.c
1188
digesting_libdecor.c
File diff suppressed because it is too large
Load Diff
|
|
@ -122,7 +122,60 @@ struct libdecor_limits {
|
|||
int max_height;
|
||||
};
|
||||
|
||||
enum header_element {
|
||||
HEADER_NONE,
|
||||
HEADER_FULL, /* entire header bar */
|
||||
HEADER_TITLE, /* label */
|
||||
HEADER_MIN,
|
||||
HEADER_MAX,
|
||||
HEADER_CLOSE,
|
||||
};
|
||||
|
||||
enum titlebar_gesture_state {
|
||||
TITLEBAR_GESTURE_STATE_INIT,
|
||||
TITLEBAR_GESTURE_STATE_BUTTON_PRESSED,
|
||||
TITLEBAR_GESTURE_STATE_CONSUMED,
|
||||
TITLEBAR_GESTURE_STATE_DISCARDED,
|
||||
};
|
||||
|
||||
struct header_element_data {
|
||||
const char *name;
|
||||
enum header_element type;
|
||||
/* pointer to button or NULL if not found*/
|
||||
GtkWidget *widget;
|
||||
GtkStateFlags state;
|
||||
};
|
||||
|
||||
enum decoration_type {
|
||||
DECORATION_TYPE_NONE,
|
||||
DECORATION_TYPE_ALL,
|
||||
DECORATION_TYPE_TITLE_ONLY
|
||||
};
|
||||
|
||||
enum component {
|
||||
NONE = 0,
|
||||
SHADOW,
|
||||
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;
|
||||
|
|
@ -144,15 +197,15 @@ struct libdecor_frame {
|
|||
|
||||
struct libdecor_configuration *pending_configuration;
|
||||
|
||||
int content_width;
|
||||
int content_height;
|
||||
int frame_content_width;
|
||||
int frame_content_height;
|
||||
|
||||
enum libdecor_window_state window_state;
|
||||
enum libdecor_window_state frame_window_state;
|
||||
|
||||
bool has_decoration_mode;
|
||||
enum zxdg_toplevel_decoration_v1_mode decoration_mode;
|
||||
|
||||
enum libdecor_capabilities capabilities;
|
||||
enum libdecor_capabilities frame_capabilities;
|
||||
|
||||
enum libdecor_wm_capabilities wm_capabilities;
|
||||
|
||||
|
|
@ -161,7 +214,46 @@ struct libdecor_frame {
|
|||
|
||||
bool visible;
|
||||
|
||||
struct wl_list link;
|
||||
//struct libdecor_frame_gtk;
|
||||
int gtk_content_width;
|
||||
int gtk_content_height;
|
||||
|
||||
enum libdecor_window_state gtk_window_state;
|
||||
|
||||
enum decoration_type decoration_type;
|
||||
|
||||
char *title;
|
||||
|
||||
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"
|
||||
|
|
@ -206,42 +298,6 @@ static const char *cursor_names[] = {
|
|||
"bottom_right_corner"
|
||||
};
|
||||
|
||||
enum header_element {
|
||||
HEADER_NONE,
|
||||
HEADER_FULL, /* entire header bar */
|
||||
HEADER_TITLE, /* label */
|
||||
HEADER_MIN,
|
||||
HEADER_MAX,
|
||||
HEADER_CLOSE,
|
||||
};
|
||||
|
||||
enum titlebar_gesture_state {
|
||||
TITLEBAR_GESTURE_STATE_INIT,
|
||||
TITLEBAR_GESTURE_STATE_BUTTON_PRESSED,
|
||||
TITLEBAR_GESTURE_STATE_CONSUMED,
|
||||
TITLEBAR_GESTURE_STATE_DISCARDED,
|
||||
};
|
||||
|
||||
struct header_element_data {
|
||||
const char *name;
|
||||
enum header_element type;
|
||||
/* pointer to button or NULL if not found*/
|
||||
GtkWidget *widget;
|
||||
GtkStateFlags state;
|
||||
};
|
||||
|
||||
enum decoration_type {
|
||||
DECORATION_TYPE_NONE,
|
||||
DECORATION_TYPE_ALL,
|
||||
DECORATION_TYPE_TITLE_ONLY
|
||||
};
|
||||
|
||||
enum component {
|
||||
NONE = 0,
|
||||
SHADOW,
|
||||
HEADER,
|
||||
};
|
||||
|
||||
struct seat {
|
||||
char *name;
|
||||
|
||||
|
|
@ -295,19 +351,6 @@ 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;
|
||||
|
|
@ -318,50 +361,6 @@ struct cursor_output {
|
|||
struct wl_list link;
|
||||
};
|
||||
|
||||
struct libdecor_frame_gtk {
|
||||
struct libdecor_frame frame;
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
enum titlebar_gesture {
|
||||
TITLEBAR_GESTURE_DOUBLE_CLICK,
|
||||
TITLEBAR_GESTURE_MIDDLE_CLICK,
|
||||
|
|
|
|||
Loading…
Reference in New Issue