summaryrefslogtreecommitdiff
path: root/libdecor/src/plugins/gtk
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-12-02 16:59:21 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2023-12-02 16:59:52 +0100
commit0aa8e28be0af167929e72267c6e1d5588bc9c3ed (patch)
tree6b06c7cc2a0dcd3117adc579745b8bf52c343f9b /libdecor/src/plugins/gtk
parentd8dac2a0889cee0d5c81696e2f06b434119b7351 (diff)
Update libdecor to commit 060fe761 dated 1-dec-2023
Diffstat (limited to 'libdecor/src/plugins/gtk')
-rw-r--r--libdecor/src/plugins/gtk/libdecor-gtk.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/libdecor/src/plugins/gtk/libdecor-gtk.c b/libdecor/src/plugins/gtk/libdecor-gtk.c
index c510bc595..9a9bc5e26 100644
--- a/libdecor/src/plugins/gtk/libdecor-gtk.c
+++ b/libdecor/src/plugins/gtk/libdecor-gtk.c
@@ -330,6 +330,9 @@ static const char *libdecor_gtk_proxy_tag = "libdecor-gtk";
static bool
own_proxy(struct wl_proxy *proxy)
{
+ if (!proxy)
+ return false;
+
return (wl_proxy_get_tag(proxy) == &libdecor_gtk_proxy_tag);
}
@@ -423,7 +426,11 @@ libdecor_plugin_gtk_destroy(struct libdecor_plugin *plugin)
wl_list_for_each_safe(output, output_tmp,
&plugin_gtk->output_list, link) {
- wl_output_destroy(output->wl_output);
+ if (wl_output_get_version (output->wl_output) >=
+ WL_OUTPUT_RELEASE_SINCE_VERSION)
+ wl_output_release(output->wl_output);
+ else
+ wl_output_destroy(output->wl_output);
free(output);
}
@@ -2651,7 +2658,8 @@ init_wl_output(struct libdecor_plugin_gtk *plugin_gtk,
output->id = id;
output->wl_output =
wl_registry_bind(plugin_gtk->wl_registry,
- id, &wl_output_interface, 2);
+ id, &wl_output_interface,
+ MIN (version, 3));
wl_proxy_set_tag((struct wl_proxy *) output->wl_output,
&libdecor_gtk_proxy_tag);
wl_output_add_listener(output->wl_output, &output_listener, output);
@@ -2811,10 +2819,8 @@ libdecor_plugin_new(struct libdecor *context)
gtk_disable_setlocale();
if (!gtk_init_check(NULL, NULL)) {
- libdecor_notify_plugin_error(
- plugin_gtk->context,
- LIBDECOR_ERROR_COMPOSITOR_INCOMPATIBLE,
- "GTK cannot connect to Wayland compositor");
+ fprintf(stderr, "libdecor-gtk-WARNING: Failed to initialize GTK\n");
+ libdecor_plugin_gtk_destroy(&plugin_gtk->plugin);
return NULL;
}