diff options
Diffstat (limited to 'libdecor/src/plugins/gtk')
| -rw-r--r-- | libdecor/src/plugins/gtk/libdecor-gtk.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/libdecor/src/plugins/gtk/libdecor-gtk.c b/libdecor/src/plugins/gtk/libdecor-gtk.c index 12d40a2fd..a2019d5af 100644 --- a/libdecor/src/plugins/gtk/libdecor-gtk.c +++ b/libdecor/src/plugins/gtk/libdecor-gtk.c @@ -2211,6 +2211,7 @@ pointer_button(void *data, else if (state == WL_POINTER_BUTTON_STATE_RELEASED) { switch (frame_gtk->active->type) { case HEADER: + libdecor_frame_ref(&frame_gtk->frame); switch (frame_gtk->hdr_focus.type) { case HEADER_MIN: if (minimizable(frame_gtk)) @@ -2221,18 +2222,11 @@ pointer_button(void *data, toggle_maximized(&frame_gtk->frame); break; case HEADER_CLOSE: -#ifdef DONT_APPLY_FLTK_CHANGES - if (closeable(frame_gtk)) - libdecor_frame_close( - &frame_gtk->frame); -#else if (closeable(frame_gtk)) { - libdecor_frame_close( - &frame_gtk->frame); - seat->pointer_focus = NULL; - return; + libdecor_frame_close( + &frame_gtk->frame); + seat->pointer_focus = NULL; } -#endif break; default: break; @@ -2243,6 +2237,7 @@ pointer_button(void *data, draw_title_bar(frame_gtk); libdecor_frame_toplevel_commit(&frame_gtk->frame); } + libdecor_frame_unref(&frame_gtk->frame); break; default: break; @@ -2610,4 +2605,8 @@ libdecor_plugin_description = { .description = "GTK3 plugin", .priorities = priorities, .constructor = libdecor_plugin_new, + .conflicting_symbols = { + "png_free", + NULL, + }, }; |
