From 5b8cde343849b6b1616cbf95d4bdb47058a3d990 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 14 May 2025 16:05:36 +0600 Subject: [PATCH] Fixed app choosing --- source/ubl-settings-video.c | 32 +++++++++++++++++++------- ubl-settings-video-configuration.glade | 28 ++++++++++++++++++++-- ubl-settings-video.glade | 2 ++ 3 files changed, 52 insertions(+), 10 deletions(-) diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 977e06a..832a632 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -1063,7 +1063,7 @@ void *yon_proprietary_local_get(main_window *widgets){ g_idle_add((GSourceFunc)yon_proprietary_disconnect,widgets); for (int dr_desc=1;dr_desc-1)){ @@ -1078,9 +1078,14 @@ void *yon_proprietary_local_get(main_window *widgets){ g_idle_add((GSourceFunc)yon_proprietary_append,cur); } } - yon_debug_output("%s\n","Driver end"); + yon_debug_output("%s\n","Driver end"); + if (dr_desc==size-1) { + g_idle_add((GSourceFunc)yon_proprietary_connect,widgets); + } + } + if (!size){ + g_idle_add((GSourceFunc)yon_proprietary_connect,widgets); } - g_idle_add((GSourceFunc)yon_proprietary_connect,widgets); char *status_text = yon_char_unite(yon_char_get_localised_from_lib(SUCCESS_LABEL),". ", !getuid()? main_config.load_mode==1?yon_char_get_localised_from_lib(LOCAL_LOAD_SUCCESS_LABEL):yon_char_get_localised_from_lib(GLOBAL_LOAD_SUCCESS_LABEL):yon_char_get_localised_from_lib(ROOT_WARNING_LABEL),NULL); yon_ubl_status_box_render_thread(status_text,!getuid()?BACKGROUND_IMAGE_SUCCESS_TYPE:BACKGROUND_IMAGE_FAIL_TYPE); free(status_text); @@ -1178,14 +1183,23 @@ void yon_monitor_set_resolutions(){ void on_app_chooser_open(GtkWidget *self, main_window *widgets){ yon_app_chooser_window *window = yon_app_chooser_window_new(1); + const char *prev_selection = gtk_entry_get_text(GTK_ENTRY(self==widgets->OptirunButton?widgets->OptirunEntry:widgets->PrimusrunEntry)); + if (!yon_char_is_empty(prev_selection)){ + int size; + config_str parsed = yon_char_parse((char*)prev_selection,&size,","); + yon_app_chooser_window_select(window,parsed,size); + yon_char_parsed_free(parsed,size); + } int size; config_str parsed = yon_app_chooser_window_run(window,&size); - char *string = yon_char_parsed_to_string(parsed,size,","); - if (self==widgets->OptirunButton){ - gtk_entry_set_text(GTK_ENTRY(widgets->OptirunEntry),string); - } else if (self == widgets->PrimusrunButton){ - gtk_entry_set_text(GTK_ENTRY(widgets->PrimusrunEntry),string); + if (parsed&&size){ + char *string = yon_char_parsed_to_string(parsed,size,","); + if (self==widgets->OptirunButton){ + gtk_entry_set_text(GTK_ENTRY(widgets->OptirunEntry),string); + } else if (self == widgets->PrimusrunButton){ + gtk_entry_set_text(GTK_ENTRY(widgets->PrimusrunEntry),string); + } } } @@ -1423,7 +1437,9 @@ template_main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SaveGlobalMenuItem),"activate",G_CALLBACK(on_config_global_save),NULL); g_signal_connect(G_OBJECT(widgets->SaveCustomMenuItem),"activate",G_CALLBACK(on_config_custom_save),NULL); g_signal_connect(G_OBJECT(widgets->OptirunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->OptirunEntry); + g_signal_connect(G_OBJECT(widgets->OptirunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->OptirunButton); g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunEntry); + g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunButton); g_signal_connect(G_OBJECT(widgets->KernelsCombo),"changed",G_CALLBACK(on_kernel_filter_changed),widgets); g_signal_connect(G_OBJECT(widgets->FrameGapCombo),"changed",G_CALLBACK(on_gapfix_changed),widgets); g_signal_connect(G_OBJECT(widgets->OptirunButton),"clicked",G_CALLBACK(on_app_chooser_open),widgets); diff --git a/ubl-settings-video-configuration.glade b/ubl-settings-video-configuration.glade index 1041f82..17237a1 100644 --- a/ubl-settings-video-configuration.glade +++ b/ubl-settings-video-configuration.glade @@ -1,5 +1,5 @@ - + @@ -62,6 +62,20 @@ + + False + True + 0 + + + + + Manual port + True + True + False + True + False True @@ -112,6 +126,16 @@ 1 + + + True + + + False + True + 2 + + Main display @@ -123,7 +147,7 @@ False True - 2 + 3 diff --git a/ubl-settings-video.glade b/ubl-settings-video.glade index 3b9652a..b305a87 100644 --- a/ubl-settings-video.glade +++ b/ubl-settings-video.glade @@ -708,6 +708,7 @@ True + False True True image1 @@ -774,6 +775,7 @@ True + False True True image2