From 1898a5c5cf60fbb1ad8face323ae43eae934f8e7 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 6 Mar 2025 18:03:48 +0600 Subject: [PATCH] Fixed gapfix parameter --- source/ubl-settings-video.c | 51 +++++++++++++++++++++++++++---------- source/ubl-settings-video.h | 8 ++++-- 2 files changed, 44 insertions(+), 15 deletions(-) diff --git a/source/ubl-settings-video.c b/source/ubl-settings-video.c index 6218e0f..51f579e 100644 --- a/source/ubl-settings-video.c +++ b/source/ubl-settings-video.c @@ -381,10 +381,6 @@ void on_resolutions_unsupported_show(GtkToggleButton *self, monitor_edit_window } void on_save_done(main_window *, config_str output, int size){ - // char *gapfix1 = yon_config_get_by_key(KWIN_TRIPLE_BUFFER); - // char *gapfix2 = yon_config_get_by_key(GL_YIELD); - // int gapfix1_status = yon_config_get_status(KWIN_TRIPLE_BUFFER); - // int gapfix2_status = yon_config_get_status(GL_YIELD); char *final_output = yon_char_parsed_to_string(output,size,""); printf("%s\n",final_output); free(final_output); @@ -536,9 +532,19 @@ void yon_interface_update(){ char *optirun = yon_config_get_by_key(OPTIRUN); char *primusrun = yon_config_get_by_key(PRIMUSRUN); char *discrete = yon_config_get_by_key(INTEGRATEDVGA); - // char *gapfix1 = yon_config_get_by_key(GL_YIELD); - // char *gapfix2 = yon_config_get_by_key(KWIN_TRIPLE_BUFFER); - + char *gapfix1 = config(GAPFIX1_parameter); + char *gapfix2 = config(GAPFIX2_parameter); + + if (!yon_char_is_empty(gapfix1)){ + gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo),2); + + } else if (!yon_char_is_empty(gapfix2)){ + gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo),3); + + } else { + gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FrameGapCombo),0); + } + if (!yon_char_is_empty(autodrivers)&&!strcmp(autodrivers,"yes")) gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->AutoDriverCombo),2); else if (!yon_char_is_empty(autodrivers)&&!strcmp(autodrivers,"no")) @@ -621,12 +627,6 @@ void yon_interface_update(){ else gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->DisplayDiscreteOnly),0); - // if (!yon_char_is_empty(gapfix1)) - // gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FailsafeNvidiaCombo),2); - // else if (!yon_char_is_empty(gapfix2)) - // gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FailsafeNvidiaCombo),3); - // else - // gtk_combo_box_set_active(GTK_COMBO_BOX(main_config.widgets->FailsafeNvidiaCombo),1); yon_monitor_view_update(); } @@ -1294,6 +1294,30 @@ void on_database_update(void *,void *widgets){ yon_terminal_window_launch(GTK_WINDOW(((main_window*)widgets)->Window),install_proprietary_command(""),yon_char_get_localised_from_lib(SUCCESS_LABEL),OPERATION_FAIL_LABEL); } +void on_gapfix_changed(GtkWidget*, main_window *widgets){ + int active = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->FrameGapCombo)); + switch(active){ + case 0: { + yon_config_remove_by_key(GAPFIX1_parameter); + yon_config_remove_by_key(GAPFIX2_parameter); + } break; + case 1: { + yon_config_remove_by_key(GAPFIX2_parameter); + yon_config_remove_by_key(GAPFIX2_parameter); + } break; + case 2:{ + + yon_config_register(GAPFIX1_parameter,GAPFIX1_command,"USLEEP"); + yon_config_remove_by_key(GAPFIX2_parameter); + } break; + case 3:{ + yon_config_register(GAPFIX2_parameter,GAPFIX2_command,"1"); + yon_config_remove_by_key(GAPFIX1_parameter); + + } break; + } +} + /** void yon_setup_widgets(main_window *widgets) * [EN] * Sets up every element on main window @@ -1374,6 +1398,7 @@ template_main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->OptirunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->OptirunEntry); g_signal_connect(G_OBJECT(widgets->PrimusrunCombo),"changed",G_CALLBACK(yon_set_sensitive_from_combo_box),widgets->PrimusrunEntry); 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); // yon_gtk_tree_view_column_minimal_fixed_size_set(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),0)); // yon_gtk_tree_view_column_minimal_fixed_size_set(gtk_tree_view_get_column(GTK_TREE_VIEW(widgets->DriversTree),1)); diff --git a/source/ubl-settings-video.h b/source/ubl-settings-video.h index a080180..2dcfbca 100644 --- a/source/ubl-settings-video.h +++ b/source/ubl-settings-video.h @@ -98,8 +98,11 @@ #define OPTIRUN "OPTIRUN" #define PRIMUSRUN "PRIMUSRUN" #define INTEGRATEDVGA "INTEGRATEDVGA" -#define KWIN_TRIPLE_BUFFER "export KWIN_TRIPLE_BUFFER" -#define GL_YIELD "export __GL_YIELD" + +#define GAPFIX1_parameter "ENVIRONMENT[profile:__GL_YIELD]" +#define GAPFIX1_command "ubconfig --source global get [environment] ENVIRONMENT[profile:__GL_YIELD]" +#define GAPFIX2_parameter "ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]" +#define GAPFIX2_command "ubconfig --source global get [environment] ENVIRONMENT[profile:KWIN_TRIPLE_BUFFER]" #define VGADRV_AUTO_command "ubconfig --source global get [video] VGADRV_AUTO" #define VGADRV_NOFREE_command "ubconfig --source global get [video] VGADRV_NOFREE" @@ -389,4 +392,5 @@ gboolean yon_proprietary_append_kernels(struct proprietary_kernel_append_struct gboolean yon_proprietary_append(struct proprietary_struct *target); gboolean yon_proprietary_clear(main_window *widgets); gboolean on_command_execute_success(GtkWidget *,gint status,main_window *widgets); +void on_gapfix_changed(GtkWidget*self, main_window *widgets); #endif \ No newline at end of file