libdecor GTK plugin: update from upstream (7 Jun 2022 - 8fc5c88c)

This removes a bunch of FLTK changes.
This commit is contained in:
ManoloFLTK 2022-06-08 11:51:54 +02:00
parent 6add57d4bd
commit 88bc94c932

View File

@ -370,13 +370,6 @@ closeable(struct libdecor_frame_gtk *frame_gtk) {
LIBDECOR_ACTION_CLOSE);
}
#if APPLY_FLTK_CHANGES
/*FLTK : remove this useless forward declaration */
#else
struct libdecor_plugin *
libdecor_plugin_new(struct libdecor *context);
#endif
static void
buffer_free(struct buffer *buffer);
@ -673,9 +666,6 @@ libdecor_plugin_gtk_frame_free(struct libdecor_plugin *plugin,
if (!GTK_IS_WIDGET(frame_gtk->header)) return; /* happens with SSD (or not)*/
#endif
gtk_widget_destroy(frame_gtk->header);
#if APPLY_FLTK_CHANGES
if (GTK_IS_WIDGET(frame_gtk->window))
#endif
gtk_widget_destroy(frame_gtk->window);
free_border_component(&frame_gtk->headerbar);
@ -900,17 +890,11 @@ ensure_title_bar_surfaces(struct libdecor_frame_gtk *frame_gtk)
* the window and headerbar would not change style (e.g. backdrop)
* after construction. So we just destroy and re-create them.
*/
#if APPLY_FLTK_CHANGES
/* avoid warning when restoring previously turned off decoration */
if (GTK_IS_WIDGET(frame_gtk->header))
#else
if (frame_gtk->header)
#endif
gtk_widget_destroy(frame_gtk->header);
#if APPLY_FLTK_CHANGES
/* avoid warning when restoring previously turned off decoration */
if (GTK_IS_WIDGET(frame_gtk->window))
#else
if (frame_gtk->window)
#endif
gtk_widget_destroy(frame_gtk->window);
frame_gtk->window = gtk_offscreen_window_new();
frame_gtk->header = gtk_header_bar_new();
@ -949,11 +933,10 @@ calculate_component_size(struct libdecor_frame_gtk *frame_gtk,
content_width = libdecor_frame_get_content_width(frame);
content_height = libdecor_frame_get_content_height(frame);
#if APPLY_FLTK_CHANGES
const int title_height = GTK_IS_WIDGET(frame_gtk->header) ? gtk_widget_get_allocated_height(frame_gtk->header) : 0;
#else
const int title_height = frame_gtk->header ? gtk_widget_get_allocated_height(frame_gtk->header) : 0;
#endif
/* avoid warning when restoring previously turned off decoration */
const int title_height =
GTK_IS_WIDGET(frame_gtk->header)
? gtk_widget_get_allocated_height(frame_gtk->header) : 0;
switch (component) {
case NONE:
@ -970,17 +953,11 @@ calculate_component_size(struct libdecor_frame_gtk *frame_gtk,
return;
case HEADER:
*component_x = 0;
#if APPLY_FLTK_CHANGES
*component_y = -title_height;
#else
*component_y = -gtk_widget_get_allocated_height(frame_gtk->header);
#endif
/* reuse product of function call above */
*component_y = - title_height;
*component_width = gtk_widget_get_allocated_width(frame_gtk->header);
#if APPLY_FLTK_CHANGES
/* reuse product of function call above */
*component_height = title_height;
#else
*component_height = gtk_widget_get_allocated_height(frame_gtk->header);
#endif
return;
}
@ -1002,9 +979,7 @@ draw_header_background(struct libdecor_frame_gtk *frame_gtk,
/* background */
GtkAllocation allocation;
GtkStyleContext* style;
#if APPLY_FLTK_CHANGES
if (!frame_gtk->header) return; // was deleted
#endif
gtk_widget_get_allocation(GTK_WIDGET(frame_gtk->header), &allocation);
style = gtk_widget_get_style_context(frame_gtk->header);
gtk_render_background(style, cr, allocation.x, allocation.y, allocation.width, allocation.height);
@ -1409,6 +1384,10 @@ draw_title_bar(struct libdecor_frame_gtk *frame_gtk)
if (current_min_w < pref_width) {
current_min_w = pref_width;
libdecor_frame_set_min_content_size(&frame_gtk->frame, current_min_w, current_min_h);
if (!resizable(frame_gtk)) {
libdecor_frame_set_max_content_size(&frame_gtk->frame,
current_min_w, current_min_h);
}
}
W = libdecor_frame_get_content_width(&frame_gtk->frame);
H = libdecor_frame_get_content_height(&frame_gtk->frame);
@ -1541,29 +1520,19 @@ libdecor_plugin_gtk_frame_property_changed(struct libdecor_plugin *plugin,
struct libdecor_frame_gtk *frame_gtk =
(struct libdecor_frame_gtk *) frame;
#if APPLY_FLTK_CHANGES
if (!frame_gtk->header) return; /* happens with SSD */
if (!GTK_IS_WIDGET(frame_gtk->header)) return;
#endif
bool redraw_needed = false;
const char *new_title;
new_title = libdecor_frame_get_title(frame);
#if APPLY_FLTK_CHANGES
if (!frame_gtk->title || !streq(frame_gtk->title, new_title)) {
#else
if (!streq(frame_gtk->title, new_title))
#endif
redraw_needed = true;
#if APPLY_FLTK_CHANGES
if (frame_gtk->title)
#endif
free(frame_gtk->title);
if (new_title)
frame_gtk->title = strdup(new_title);
else
frame_gtk->title = NULL;
#if APPLY_FLTK_CHANGES
}
#endif
if (frame_gtk->capabilities != libdecor_frame_get_capabilities(frame)) {
frame_gtk->capabilities = libdecor_frame_get_capabilities(frame);
@ -1764,11 +1733,8 @@ libdecor_plugin_gtk_frame_get_border_size(struct libdecor_plugin *plugin,
GtkWidget *header = ((struct libdecor_frame_gtk *)frame)->header;
enum decoration_type type = window_state_to_decoration_type(window_state);
if (header && (type != DECORATION_TYPE_NONE)
#if APPLY_FLTK_CHANGES
&& GTK_IS_WIDGET(header)
#endif
)
/* avoid warnings after decoration has been turned off */
if (GTK_IS_WIDGET(header) && (type != DECORATION_TYPE_NONE))
*top = gtk_widget_get_allocated_height(header);
else
*top = 0;
@ -2158,10 +2124,8 @@ pointer_motion(void *data,
send_cursor(seat);
frame_gtk = wl_surface_get_user_data(seat->pointer_focus);
#if APPLY_FLTK_CHANGES
if (!frame_gtk->header) return;
#endif
if (frame_gtk->active->type == HEADER) {
/* avoid warnings after decoration has been turned off */
if (GTK_IS_WIDGET(frame_gtk->header) && frame_gtk->active->type == HEADER) {
struct header_element_data new_focus = get_header_focus(
GTK_HEADER_BAR(frame_gtk->header),
seat->pointer_x, seat->pointer_y);
@ -2278,7 +2242,7 @@ pointer_button(void *data,
state == WL_POINTER_BUTTON_STATE_PRESSED &&
seat->pointer_focus == frame_gtk->headerbar.wl_surface) {
#if APPLY_FLTK_CHANGES
const int title_height = frame_gtk->header && GTK_IS_WIDGET(frame_gtk->header) ? gtk_widget_get_allocated_height(frame_gtk->header) : 0;
const int title_height = GTK_IS_WIDGET(frame_gtk->header) ? gtk_widget_get_allocated_height(frame_gtk->header) : 0;
#else
const int title_height = gtk_widget_get_allocated_height(frame_gtk->header);
#endif
@ -2332,10 +2296,9 @@ seat_name(void *data,
struct wl_seat *wl_seat,
const char *name)
{
#if APPLY_FLTK_CHANGES
/* avoid warning messages when opening/closing popup window */
struct seat *seat = (struct seat*)data;
seat->name = strdup(name);
#endif
}
static struct wl_seat_listener seat_listener = {
@ -2583,13 +2546,7 @@ static const struct wl_callback_listener globals_callback_listener = {
globals_callback
};
#if APPLY_FLTK_CHANGES
/* FLTK: replace export by static which makes GTK plugin do as Cairo plugin does */
static
#else
LIBDECOR_EXPORT
#endif
struct libdecor_plugin *
static struct libdecor_plugin *
libdecor_plugin_new(struct libdecor *context)
{
struct libdecor_plugin_gtk *plugin_gtk;