From 793099b1674d7d50eb2c5cdd08116447e16834fa Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Thu, 19 Feb 2026 13:24:54 +0600 Subject: [PATCH] Fixed crash on GNOME theme at rapid launching of multiple applications --- source/ubl-settings-manager-theme-gnome.c | 3 +++ source/ubl-settings-manager.c | 6 +++--- source/ubl-settings-manager.h | 2 ++ ubl-settings-manager.glade | 19 +++---------------- 4 files changed, 11 insertions(+), 19 deletions(-) diff --git a/source/ubl-settings-manager-theme-gnome.c b/source/ubl-settings-manager-theme-gnome.c index 8895316..0745b3b 100644 --- a/source/ubl-settings-manager-theme-gnome.c +++ b/source/ubl-settings-manager-theme-gnome.c @@ -12,6 +12,7 @@ void yon_gnome_section_search_show(gnome_section *section, const char *string); void on_gnome_plug_connected(GtkWidget *,gnome_theme_struct *theme){ gtk_widget_show(theme->SocketBox); + gtk_widget_set_sensitive(theme->AppsTree,1); gtk_widget_hide(theme->HideBox); } @@ -34,9 +35,11 @@ void on_gnome_activate(GtkWidget *,GtkListBoxRow *self, gnome_theme_struct *them char *load_socket = yon_get_load_socket(); char *main_socket_id = yon_char_from_long((long)gtk_socket_get_id(GTK_SOCKET(theme->Socket))); command_args = launch_args_command(main_socket_id,load_socket,save_socket); + gtk_widget_set_sensitive(theme->AppsTree,0); } else if (cur_app->Pluggable){ char *main_socket_id = yon_char_from_long((long)gtk_socket_get_id(GTK_SOCKET(theme->Socket))); command_args = yon_char_unite("--socket-id=",main_socket_id,NULL); + gtk_widget_set_sensitive(theme->AppsTree,0); } char *file_param = NULL; diff --git a/source/ubl-settings-manager.c b/source/ubl-settings-manager.c index 8e0dcd2..fde21d4 100644 --- a/source/ubl-settings-manager.c +++ b/source/ubl-settings-manager.c @@ -6,13 +6,13 @@ void on_reveal_banner(GtkWidget *, main_window *widgets){ if (gtk_revealer_get_reveal_child(GTK_REVEALER(widgets->BannerRevealer))){ gtk_revealer_set_transition_type(GTK_REVEALER(widgets->BannerRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT); gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->BannerRevealer),0); - gtk_menu_button_set_direction(GTK_MENU_BUTTON(widgets->BannerArrow),GTK_ARROW_RIGHT); + gtk_image_set_from_icon_name(GTK_IMAGE(widgets->BannerArrow),arrow_right_icon_path,GTK_ICON_SIZE_BUTTON); int banner = 1; yon_window_config_add_instant_parameter(hide_banner_parameter,settings_section,&banner,YON_TYPE_BOOLEAN); } else { gtk_revealer_set_transition_type(GTK_REVEALER(widgets->BannerRevealer),GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT); gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->BannerRevealer),1); - gtk_menu_button_set_direction(GTK_MENU_BUTTON(widgets->BannerArrow),GTK_ARROW_LEFT); + gtk_image_set_from_icon_name(GTK_IMAGE(widgets->BannerArrow),arrow_left_icon_path,GTK_ICON_SIZE_BUTTON); int banner = 0; yon_window_config_add_instant_parameter(hide_banner_parameter,settings_section,&banner,YON_TYPE_BOOLEAN); } @@ -214,7 +214,7 @@ main_window *yon_main_window_setup(){ yon_window_config_get_parameter(settings_section,hide_banner_parameter, &banner_hidden,YON_TYPE_BOOLEAN); gtk_revealer_set_transition_type(GTK_REVEALER(widgets->BannerRevealer),!banner_hidden?GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT:GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT); gtk_revealer_set_reveal_child(GTK_REVEALER(widgets->BannerRevealer),!banner_hidden); - gtk_menu_button_set_direction(GTK_MENU_BUTTON(widgets->BannerArrow),!banner_hidden?GTK_ARROW_LEFT:GTK_ARROW_RIGHT); + gtk_image_set_from_icon_name(GTK_IMAGE(widgets->BannerArrow),arrow_left_icon_path,GTK_ICON_SIZE_BUTTON); } gtk_widget_show(widgets->Window); yon_interface_update(widgets); diff --git a/source/ubl-settings-manager.h b/source/ubl-settings-manager.h index 2c31eba..578c729 100644 --- a/source/ubl-settings-manager.h +++ b/source/ubl-settings-manager.h @@ -43,6 +43,8 @@ #define CssPath "/com/ublinux/css/ubl-settings-manager.css" #define GlobalConfigPath "/etc/xdg/ubl-settings-manager/ubl-settings-manager.conf" #define UserConfigPath "/.config/ubl-settings-manager/ubl-settings-manager.conf" +#define arrow_right_icon_path "com.ublinux.libublsettingsui-gtk3.pan-right-symbolic" +#define arrow_left_icon_path "com.ublinux.libublsettingsui-gtk3.pan-left-symbolic" #define icon_path "com.ublinux.ubl-settings-manager" #define AppBannerPath "/com/ublinux/images/ubl-settings-manager-banner.png" #define DesktopPath "/usr/share/applications/" diff --git a/ubl-settings-manager.glade b/ubl-settings-manager.glade index 7df0891..9399fa6 100644 --- a/ubl-settings-manager.glade +++ b/ubl-settings-manager.glade @@ -97,23 +97,10 @@ True True - + True - True - False - True - center - center - left - - - - + False + com.ublinux.libublsettingsui-gtk3.pan-left-symbolic