diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-04-14 14:48:35 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-04-14 14:48:35 +0200 |
| commit | f9e60ac432c7ac72971b0c92db0698e848e3ad95 (patch) | |
| tree | b324fb1e610f31668349802bf171028c876caef9 /libdecor/src/plugins | |
| parent | d83d89679beb0d92b140684230936d264a182679 (diff) | |
Pull in last changes in upstream : gitlab.gnome.org/christian-rauch/libdecor/ branch gtk_cairo_single
Diffstat (limited to 'libdecor/src/plugins')
| -rw-r--r-- | libdecor/src/plugins/gtk/libdecor-gtk.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/libdecor/src/plugins/gtk/libdecor-gtk.c b/libdecor/src/plugins/gtk/libdecor-gtk.c index 928a18a0d..c5658bce9 100644 --- a/libdecor/src/plugins/gtk/libdecor-gtk.c +++ b/libdecor/src/plugins/gtk/libdecor-gtk.c @@ -298,7 +298,6 @@ struct libdecor_plugin_gtk { char *cursor_theme_name; int cursor_size; - GtkApplication *app; int double_click_time_ms; }; @@ -421,8 +420,6 @@ libdecor_plugin_gtk_destroy(struct libdecor_plugin *plugin) wl_compositor_destroy(plugin_gtk->wl_compositor); wl_subcompositor_destroy(plugin_gtk->wl_subcompositor); - g_object_unref(plugin_gtk->app); -// free(plugin_gtk->gtk_theme_name); free(plugin_gtk); } @@ -475,9 +472,7 @@ libdecor_plugin_gtk_dispatch(struct libdecor_plugin *plugin, int ret; int dispatch_count = 0; - while (g_main_context_pending(NULL)) { - g_main_context_iteration(NULL, timeout > 0); - } + while (g_main_context_iteration(NULL, FALSE)); while (wl_display_prepare_read(wl_display) != 0) dispatch_count += wl_display_dispatch_pending(wl_display); @@ -1401,7 +1396,7 @@ draw_title_bar(struct libdecor_frame_gtk *frame_gtk) gtk_widget_get_preferred_height(frame_gtk->header, NULL, &allocation.height); #if ! APPLY_FLTK_CHANGES - int pref_width; + int pref_width; gtk_widget_get_preferred_width(frame_gtk->header, NULL, &pref_width); libdecor_frame_set_min_content_size(&frame_gtk->frame, pref_width, 1); gtk_widget_size_allocate(frame_gtk->header, &allocation); @@ -1608,7 +1603,10 @@ libdecor_plugin_gtk_frame_property_changed(struct libdecor_plugin *plugin, if (!streq(frame_gtk->title, new_title)) #endif redraw_needed = true; - if (frame_gtk->title) free(frame_gtk->title); +#if APPLY_FLTK_CHANGES + if (frame_gtk->title) +#endif + free(frame_gtk->title); if (new_title) frame_gtk->title = strdup(new_title); else @@ -1865,8 +1863,9 @@ libdecor_plugin_gtk_frame_get_window_size_for( const int title_bar_height = (GTK_IS_WIDGET(frame_gtk->header) ? gtk_widget_get_allocated_height( frame_gtk->header) : 0); #else - const int title_bar_height = gtk_widget_get_allocated_height( - ((struct libdecor_frame_gtk *)frame)->header); + GtkWidget *header = ((struct libdecor_frame_gtk *)frame)->header; + + const int title_bar_height = header ? gtk_widget_get_allocated_height(header) : 0; #endif switch (window_state_to_decoration_type(window_state)) { @@ -2700,9 +2699,6 @@ static const struct wl_callback_listener globals_callback_listener = { globals_callback }; -static void -on_activate(GtkApplication* app, gpointer user_data) { } - #if APPLY_FLTK_CHANGES /* FLTK: replace export by static which makes GTK plugin do as Cairo plugin does */ static @@ -2744,9 +2740,7 @@ libdecor_plugin_new(struct libdecor *context) plugin_gtk); /* setup GTK context */ - plugin_gtk->app = gtk_application_new("org.libdecor.gtk", G_APPLICATION_NON_UNIQUE); - g_signal_connect (plugin_gtk->app, "activate", G_CALLBACK(on_activate), NULL); - g_application_run(G_APPLICATION(plugin_gtk->app), 0, NULL); + gtk_init(NULL, NULL); return &plugin_gtk->plugin; } |
