diff options
author | Antenore Gatta <antenore@simbiosi.org> | 2019-08-21 17:50:53 +0300 |
---|---|---|
committer | Antenore Gatta <antenore@simbiosi.org> | 2019-08-21 17:50:53 +0300 |
commit | 9de5e9a1406d252a83ddfae85b7b19ec4ec8b3be (patch) | |
tree | 684dcfa55b81bbe008e390678037466e6895a095 | |
parent | 4add5f3ffde3bbe6d3779610248e6883fc670221 (diff) |
Fixing remminamain destroy issues
16 files changed, 64 insertions, 27 deletions
diff --git a/data/desktop/128x128/apps/remmina-panel-inverted.png b/data/desktop/128x128/apps/remmina-panel-inverted.png Binary files differnew file mode 100644 index 000000000..417a5e228 --- /dev/null +++ b/data/desktop/128x128/apps/remmina-panel-inverted.png diff --git a/data/desktop/128x128/apps/remmina-panel.png b/data/desktop/128x128/apps/remmina-panel.png Binary files differnew file mode 100644 index 000000000..3b28a00a3 --- /dev/null +++ b/data/desktop/128x128/apps/remmina-panel.png diff --git a/data/desktop/256x256/apps/remmina-panel-inverted.png b/data/desktop/256x256/apps/remmina-panel-inverted.png Binary files differnew file mode 100644 index 000000000..14d286b85 --- /dev/null +++ b/data/desktop/256x256/apps/remmina-panel-inverted.png diff --git a/data/desktop/256x256/apps/remmina-panel.png b/data/desktop/256x256/apps/remmina-panel.png Binary files differnew file mode 100644 index 000000000..f2d7852f1 --- /dev/null +++ b/data/desktop/256x256/apps/remmina-panel.png diff --git a/data/desktop/32x32/apps/remmina-panel-inverted.png b/data/desktop/32x32/apps/remmina-panel-inverted.png Binary files differnew file mode 100644 index 000000000..3e1fcf948 --- /dev/null +++ b/data/desktop/32x32/apps/remmina-panel-inverted.png diff --git a/data/desktop/32x32/apps/remmina-panel.png b/data/desktop/32x32/apps/remmina-panel.png Binary files differnew file mode 100644 index 000000000..dfbf5a13f --- /dev/null +++ b/data/desktop/32x32/apps/remmina-panel.png diff --git a/data/desktop/48x48/apps/remmina-panel-inverted.png b/data/desktop/48x48/apps/remmina-panel-inverted.png Binary files differnew file mode 100644 index 000000000..6fcc2618c --- /dev/null +++ b/data/desktop/48x48/apps/remmina-panel-inverted.png diff --git a/data/desktop/48x48/apps/remmina-panel.png b/data/desktop/48x48/apps/remmina-panel.png Binary files differnew file mode 100644 index 000000000..381158474 --- /dev/null +++ b/data/desktop/48x48/apps/remmina-panel.png diff --git a/data/desktop/64x64/apps/remmina-panel-inverted.png b/data/desktop/64x64/apps/remmina-panel-inverted.png Binary files differnew file mode 100644 index 000000000..c2c37f69d --- /dev/null +++ b/data/desktop/64x64/apps/remmina-panel-inverted.png diff --git a/data/desktop/64x64/apps/remmina-panel.png b/data/desktop/64x64/apps/remmina-panel.png Binary files differnew file mode 100644 index 000000000..53ac526ed --- /dev/null +++ b/data/desktop/64x64/apps/remmina-panel.png diff --git a/data/desktop/72x72/apps/remmina-panel-inverted.png b/data/desktop/72x72/apps/remmina-panel-inverted.png Binary files differnew file mode 100644 index 000000000..91efc4f82 --- /dev/null +++ b/data/desktop/72x72/apps/remmina-panel-inverted.png diff --git a/data/desktop/72x72/apps/remmina-panel.png b/data/desktop/72x72/apps/remmina-panel.png Binary files differnew file mode 100644 index 000000000..d60f82a0f --- /dev/null +++ b/data/desktop/72x72/apps/remmina-panel.png diff --git a/data/desktop/96x96/apps/remmina-panel-inverted.png b/data/desktop/96x96/apps/remmina-panel-inverted.png Binary files differnew file mode 100644 index 000000000..7fab28f20 --- /dev/null +++ b/data/desktop/96x96/apps/remmina-panel-inverted.png diff --git a/data/desktop/96x96/apps/remmina-panel.png b/data/desktop/96x96/apps/remmina-panel.png Binary files differnew file mode 100644 index 000000000..3b3a3dc91 --- /dev/null +++ b/data/desktop/96x96/apps/remmina-panel.png diff --git a/data/desktop/CMakeLists.txt b/data/desktop/CMakeLists.txt index 5e650b1dd..f7ac43fff 100644 --- a/data/desktop/CMakeLists.txt +++ b/data/desktop/CMakeLists.txt @@ -49,12 +49,6 @@ set(ICONSVG_DIR "${REMMINA_DATADIR}/icons/hicolor/scalable/apps") set(ICON16_DATA 16x16/apps/${REMMINA_ICON}.png) set(ICON22_DATA 22x22/apps/${REMMINA_ICON}.png) set(ICON24_DATA 24x24/apps/${REMMINA_ICON}.png) -set(ICON16_DATA_PANEL 16x16/apps/remmina-panel.png) -set(ICON22_DATA_PANEL 22x22/apps/remmina-panel.png) -set(ICON24_DATA_PANEL 24x24/apps/remmina-panel.png) -set(ICON16_DATA_PANEL_LIGHT 16x16/apps/remmina-panel-inverted.png) -set(ICON22_DATA_PANEL_LIGHT 22x22/apps/remmina-panel-inverted.png) -set(ICON24_DATA_PANEL_LIGHT 24x24/apps/remmina-panel-inverted.png) set(ICON32_DATA 32x32/apps/${REMMINA_ICON}.png) set(ICON48_DATA 48x48/apps/${REMMINA_ICON}.png) set(ICON64_DATA 64x64/apps/${REMMINA_ICON}.png) @@ -62,6 +56,26 @@ set(ICON72_DATA 72x72/apps/${REMMINA_ICON}.png) set(ICON96_DATA 96x96/apps/${REMMINA_ICON}.png) set(ICON128_DATA 128x128/apps/${REMMINA_ICON}.png) set(ICON256_DATA 256x256/apps/${REMMINA_ICON}.png) +set(ICON16_DATA_PANEL 16x16/apps/remmina-panel.png) +set(ICON22_DATA_PANEL 22x22/apps/remmina-panel.png) +set(ICON24_DATA_PANEL 24x24/apps/remmina-panel.png) +set(ICON32_DATA_PANEL 32x32/apps/remmina-panel.png) +set(ICON48_DATA_PANEL 48x48/apps/remmina-panel.png) +set(ICON64_DATA_PANEL 64x64/apps/remmina-panel.png) +set(ICON72_DATA_PANEL 72x72/apps/remmina-panel.png) +set(ICON96_DATA_PANEL 96x96/apps/remmina-panel.png) +set(ICON128_DATA_PANEL 128x128/apps/remmina-panel.png) +set(ICON256_DATA_PANEL 256x256/apps/remmina-panel.png) +set(ICON16_DATA_PANEL_LIGHT 16x16/apps/remmina-panel-inverted.png) +set(ICON22_DATA_PANEL_LIGHT 22x22/apps/remmina-panel-inverted.png) +set(ICON24_DATA_PANEL_LIGHT 24x24/apps/remmina-panel-inverted.png) +set(ICON32_DATA_PANEL_LIGHT 32x32/apps/remmina-panel-inverted.png) +set(ICON48_DATA_PANEL_LIGHT 48x48/apps/remmina-panel-inverted.png) +set(ICON64_DATA_PANEL_LIGHT 64x64/apps/remmina-panel-inverted.png) +set(ICON72_DATA_PANEL_LIGHT 72x72/apps/remmina-panel-inverted.png) +set(ICON96_DATA_PANEL_LIGHT 96x96/apps/remmina-panel-inverted.png) +set(ICON128_DATA_PANEL_LIGHT 128x128/apps/remmina-panel-inverted.png) +set(ICON256_DATA_PANEL_LIGHT 256x256/apps/remmina-panel-inverted.png) set(ICONSVG_DATA scalable/apps/remmina-panel.svg) set(ICONSVG_DATA scalable/apps/remmina-panel-inverted.svg) set(ICONSVG_DATA scalable/apps/${REMMINA_ICON}.svg) @@ -69,12 +83,6 @@ set(ICONSVG_DATA scalable/apps/${REMMINA_ICON}.svg) install(FILES ${ICON16_DATA} DESTINATION ${ICON16_DIR}) install(FILES ${ICON22_DATA} DESTINATION ${ICON22_DIR}) install(FILES ${ICON24_DATA} DESTINATION ${ICON24_DIR}) -install(FILES ${ICON16_DATA_PANEL} DESTINATION ${ICON16_DIR}) -install(FILES ${ICON22_DATA_PANEL} DESTINATION ${ICON22_DIR}) -install(FILES ${ICON24_DATA_PANEL} DESTINATION ${ICON24_DIR}) -install(FILES ${ICON16_DATA_PANEL_LIGHT} DESTINATION ${ICON16_DIR}) -install(FILES ${ICON22_DATA_PANEL_LIGHT} DESTINATION ${ICON22_DIR}) -install(FILES ${ICON24_DATA_PANEL_LIGHT} DESTINATION ${ICON24_DIR}) install(FILES ${ICON32_DATA} DESTINATION ${ICON32_DIR}) install(FILES ${ICON48_DATA} DESTINATION ${ICON48_DIR}) install(FILES ${ICON64_DATA} DESTINATION ${ICON64_DIR}) @@ -83,6 +91,26 @@ install(FILES ${ICON96_DATA} DESTINATION ${ICON96_DIR}) install(FILES ${ICON128_DATA} DESTINATION ${ICON128_DIR}) install(FILES ${ICON256_DATA} DESTINATION ${ICON256_DIR}) install(FILES ${ICONSVG_DATA} DESTINATION ${ICONSVG_DIR}) +install(FILES ${ICON16_DATA_PANEL} DESTINATION ${ICON16_DIR}) +install(FILES ${ICON22_DATA_PANEL} DESTINATION ${ICON22_DIR}) +install(FILES ${ICON24_DATA_PANEL} DESTINATION ${ICON24_DIR}) +install(FILES ${ICON32_DATA_PANEL} DESTINATION ${ICON32_DIR}) +install(FILES ${ICON48_DATA_PANEL} DESTINATION ${ICON48_DIR}) +install(FILES ${ICON64_DATA_PANEL} DESTINATION ${ICON64_DIR}) +install(FILES ${ICON72_DATA_PANEL} DESTINATION ${ICON72_DIR}) +install(FILES ${ICON96_DATA_PANEL} DESTINATION ${ICON96_DIR}) +install(FILES ${ICON128_DATA_PANEL} DESTINATION ${ICON128_DIR}) +install(FILES ${ICON256_DATA_PANEL} DESTINATION ${ICON256_DIR}) +install(FILES ${ICON16_DATA_PANEL_LIGHT} DESTINATION ${ICON16_DIR}) +install(FILES ${ICON22_DATA_PANEL_LIGHT} DESTINATION ${ICON22_DIR}) +install(FILES ${ICON24_DATA_PANEL_LIGHT} DESTINATION ${ICON24_DIR}) +install(FILES ${ICON32_DATA_PANEL_LIGHT} DESTINATION ${ICON32_DIR}) +install(FILES ${ICON48_DATA_PANEL_LIGHT} DESTINATION ${ICON48_DIR}) +install(FILES ${ICON64_DATA_PANEL_LIGHT} DESTINATION ${ICON64_DIR}) +install(FILES ${ICON72_DATA_PANEL_LIGHT} DESTINATION ${ICON72_DIR}) +install(FILES ${ICON96_DATA_PANEL_LIGHT} DESTINATION ${ICON96_DIR}) +install(FILES ${ICON128_DATA_PANEL_LIGHT} DESTINATION ${ICON128_DIR}) +install(FILES ${ICON256_DATA_PANEL_LIGHT} DESTINATION ${ICON256_DIR}) set(REMMINA_BINARY_PATH ${CMAKE_INSTALL_FULL_BINDIR}/remmina) diff --git a/src/remmina_main.c b/src/remmina_main.c index 92c300b1b..f25cc05ef 100644 --- a/src/remmina_main.c +++ b/src/remmina_main.c @@ -196,6 +196,27 @@ gboolean remmina_main_on_delete_event(GtkWidget *widget, GdkEvent *event, gpoint } /** + * Called after the main window is destroyed, will cleanup remminamain object and related data + */ +static gboolean remmina_main_rmodestroy(gpointer data) +{ + g_free(remmina_pref.expanded_group); + remmina_pref.expanded_group = remmina_string_array_to_string(remminamain->priv->expanded_group); + remmina_string_array_free(remminamain->priv->expanded_group); + remminamain->priv->expanded_group = NULL; + if (remminamain->priv->file_model) + g_object_unref(G_OBJECT(remminamain->priv->file_model)); + + g_object_unref(G_OBJECT(remminamain->priv->file_model_filter)); + g_object_unref(remminamain->builder); + g_free(remminamain->priv->selected_filename); + g_free(remminamain->priv->selected_name); + g_free(remminamain->priv); + g_free(remminamain); + remminamain = NULL; + return FALSE; +} +/** * Called when the main window is destroyed via a call from gtk_widget_destroy() */ void remmina_main_destroy() @@ -203,23 +224,11 @@ void remmina_main_destroy() TRACE_CALL(__func__); if (remminamain) { + /* Schedule remminamain object destruction after + * GTK will finish to destroy the main window */ if (remminamain->window) remmina_main_save_before_destroy(); - g_free(remmina_pref.expanded_group); - remmina_pref.expanded_group = remmina_string_array_to_string(remminamain->priv->expanded_group); - remmina_string_array_free(remminamain->priv->expanded_group); - remminamain->priv->expanded_group = NULL; - - if (remminamain->priv->file_model) - g_object_unref(G_OBJECT(remminamain->priv->file_model)); - g_object_unref(G_OBJECT(remminamain->priv->file_model_filter)); - g_object_unref(remminamain->builder); - g_free(remminamain->priv->selected_filename); - g_free(remminamain->priv->selected_name); - g_free(remminamain->priv); - g_free(remminamain); - - remminamain = NULL; + g_idle_add(remmina_main_rmodestroy, NULL); } } |