diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-12-02 16:59:21 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2023-12-02 16:59:52 +0100 |
| commit | 0aa8e28be0af167929e72267c6e1d5588bc9c3ed (patch) | |
| tree | 6b06c7cc2a0dcd3117adc579745b8bf52c343f9b | |
| parent | d8dac2a0889cee0d5c81696e2f06b434119b7351 (diff) | |
Update libdecor to commit 060fe761 dated 1-dec-2023
| -rw-r--r-- | documentation/src/bundled-libs.dox | 2 | ||||
| -rw-r--r-- | libdecor/src/plugins/cairo/libdecor-cairo.c | 12 | ||||
| -rw-r--r-- | libdecor/src/plugins/gtk/libdecor-gtk.c | 18 |
3 files changed, 23 insertions, 9 deletions
diff --git a/documentation/src/bundled-libs.dox b/documentation/src/bundled-libs.dox index 57c75a510..f9858c3b1 100644 --- a/documentation/src/bundled-libs.dox +++ b/documentation/src/bundled-libs.dox @@ -30,7 +30,7 @@ Current versions of bundled libraries (as of November 29, 2023): nanosvg abcd277ea4 [1] 2022-12-22 1.4.0 png libpng-1.6.40 2023-06-21 1.4.0 zlib zlib-1.3 2023-08-18 1.4.0 - libdecor cc58dd2a [2] 2023-11-02 1.4.0 + libdecor 060fe761 [2] 2023-12-01 1.4.0 -------------------------------------------------------------------------- Previous versions of bundled libraries (FLTK 1.3.x): diff --git a/libdecor/src/plugins/cairo/libdecor-cairo.c b/libdecor/src/plugins/cairo/libdecor-cairo.c index 5951e93b5..f8beb7aa1 100644 --- a/libdecor/src/plugins/cairo/libdecor-cairo.c +++ b/libdecor/src/plugins/cairo/libdecor-cairo.c @@ -296,6 +296,9 @@ synthesize_pointer_leave(struct seat *seat); static bool own_proxy(struct wl_proxy *proxy) { + if (!proxy) + return false; + return (wl_proxy_get_tag(proxy) == &libdecor_cairo_proxy_tag); } @@ -387,7 +390,11 @@ libdecor_plugin_cairo_destroy(struct libdecor_plugin *plugin) wl_list_for_each_safe(output, output_tmp, &plugin_cairo->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); } @@ -2570,7 +2577,8 @@ init_wl_output(struct libdecor_plugin_cairo *plugin_cairo, output->id = id; output->wl_output = wl_registry_bind(plugin_cairo->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_cairo_proxy_tag); wl_output_add_listener(output->wl_output, &output_listener, output); 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; } |
