From 0bbe2aa134f0632a2106bf50050de1e08d88bb2b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 12 Dec 2024 09:48:29 +0600 Subject: [PATCH 1/3] Fixed crash at postsave function if it had widgets manipulations --- source/libublsettingsui-gtk3.c | 18 +++++++++++++++++- source/libublsettingsui-gtk3.h | 1 + 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 456d960..21eb02b 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -1,4 +1,5 @@ #include "libublsettingsui-gtk3.h" +#include "ubl-window-settings.h" static char *__yon_config_mode=NULL; @@ -166,6 +167,17 @@ template_debug_window *template_debugger_window_new(){ return window; } +struct save_return { + void *save_success_argument; + config_str file_return; + int file_save; +}; + +gboolean _yon_postsave_function_start(struct save_return *data){ + save_success_function(data->save_success_argument,data->file_return,data->file_save); + return G_SOURCE_REMOVE; +} + void _yon_saving_threaded(char *final_command){ FILE *file = popen(final_command,"r"); int file_save; @@ -174,7 +186,11 @@ void _yon_saving_threaded(char *final_command){ file_return = yon_char_parsed_append(file_return,&file_save,final_command); if (save_success_function) { - save_success_function(save_success_argument,file_return,file_save); + struct save_return *data = malloc(sizeof(struct save_return)); + data->save_success_argument = save_success_argument; + data->file_return = file_return; + data->file_save = file_save; + gdk_threads_add_idle((GSourceFunc)_yon_postsave_function_start,data); } } diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 2fbb1d0..05193c1 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -98,6 +98,7 @@ #define SAVE_MODE_HDD_HOME_LABEL _("HDD sandbox with profile saving") #define CUSTOM_CONFIG_CREATION_ERROR_LABEL _("New configuration file creation failed") #define ROOT_CHECK_LABEL _("Upgrade to root") + #define SETTINGS_TITLE_LABEL _("Settings") #endif #define dull_parameter_get_command "ubconfig --source global get users PARAMETER" From 95785fb4d3460b555617cc88c740a6961ed99ff6 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 12 Dec 2024 12:02:31 +0600 Subject: [PATCH 2/3] Fixed crash at postsave function if it had widgets manipulations --- source/libublsettingsui-gtk3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index 21eb02b..cb190d1 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -1,5 +1,5 @@ #include "libublsettingsui-gtk3.h" -#include "ubl-window-settings.h" +// #include "ubl-window-settings.h" static char *__yon_config_mode=NULL; From 511640871beb4236ef57c4fe6ae8e64e459e036c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 12 Dec 2024 12:51:06 +0600 Subject: [PATCH 3/3] Fixed scroll policy changing function --- libublsettingsui-gtk3.glade | 7 ++++--- source/libublsettingsui-gtk3.c | 12 ++++++++++++ source/libublsettingsui-gtk3.h | 2 ++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/libublsettingsui-gtk3.glade b/libublsettingsui-gtk3.glade index ba0a34d..2e204d8 100644 --- a/libublsettingsui-gtk3.glade +++ b/libublsettingsui-gtk3.glade @@ -227,10 +227,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - 800 - 600 + 640 + 440 False - 800 + 1024 + 720 com.ublinux.libublsettingsui-gtk3 diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index cb190d1..2f56656 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -637,6 +637,18 @@ template_main_window *setup_window(){ gtk_widget_show(widgets->Window); return widgets; } +void __yon_on_size_changed(GtkWindow *self, GtkScrolledWindow *target){ + int x,y; + gtk_window_get_size(self,&x,&y); + if (x<800) + gtk_scrolled_window_set_policy(target,GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); + else + gtk_scrolled_window_set_policy(target,GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC); +} + +void yon_gtk_scrolled_window_set_horizontal_at_desired_size(GtkWidget *window, GtkScrolledWindow *target){ + g_signal_connect(G_OBJECT(window),"check-resize",G_CALLBACK(__yon_on_size_changed),target); +} int yon_ubl_window_init(char *app_title, char *app_description, char *locale, char *css, char *tech_name, char *version, char *wiki){ template_app_information.app_title=app_title; diff --git a/source/libublsettingsui-gtk3.h b/source/libublsettingsui-gtk3.h index 05193c1..39d9c4b 100644 --- a/source/libublsettingsui-gtk3.h +++ b/source/libublsettingsui-gtk3.h @@ -306,4 +306,6 @@ void on_about(GtkWidget *self, char *version_application); void on_open_documentation_confirmation(GtkWidget *self, char *link); int yon_ubl_setup_arguments(int argc, char *argv[],config_str *unfound_arguments, int *arguments_size, char *additional_options_output); + +void yon_gtk_scrolled_window_set_horizontal_at_desired_size(GtkWidget *window, GtkScrolledWindow *target); #endif \ No newline at end of file