Fixed terminal canceling

pull/132/head
parent 1a586a1727
commit 61ce9a19ce
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

@ -71,7 +71,16 @@ void on_pacman_db_unlock(void){
} }
void on_terminal_done(GtkWidget *, int , main_window *widgets){ void on_terminal_done(GtkWidget *, int , main_window *widgets){
vte_terminal_feed_child(VTE_TERMINAL(widgets->InstallTerminal),"^C",2); // GPid pid = (GPid)g_object_get_data(G_OBJECT(widgets->InstallTerminal),"pid");
// if (!pid) return;
const char cancel_signal = 3;
char *command = yon_char_new(" ");
command[0]=cancel_signal;
char *tmp = yon_char_unite(command,"tput reset; tput cup 0 0; tput ed; exit 0\n",NULL);
free(command);
vte_terminal_feed_child(VTE_TERMINAL(widgets->InstallTerminal),tmp,strlen(tmp));
free(tmp);
// vte_terminal_feed(VTE_TERMINAL(widgets->InstallTerminal),"tput reset; tput cup 0 0; tput ed; exit 0",1);
} }
void on_terminal_more(GtkWidget *, main_window *widgets){ void on_terminal_more(GtkWidget *, main_window *widgets){

@ -103,3 +103,11 @@ void on_install_check(GtkWidget *self,gint ,driver_struct *driver){
yon_driver_struct_update(widgets,driver); yon_driver_struct_update(widgets,driver);
g_signal_handlers_disconnect_by_func(G_OBJECT(self),G_CALLBACK(on_install_check),driver); g_signal_handlers_disconnect_by_func(G_OBJECT(self),G_CALLBACK(on_install_check),driver);
} }
void on_driver_child_ready(VteTerminal *terminal, GPid pid, GError *, gpointer ){
if (!terminal) return;
if (pid == -1) printf("Error\n\n\n");
// else g_object_set_data(G_OBJECT(terminal),"pid",(void*)pid);
}

@ -830,6 +830,7 @@ template_main_window *yon_main_window_complete(main_window *widgets){
g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets); g_signal_connect(G_OBJECT(widgets->MoreButton),"clicked",G_CALLBACK(on_terminal_revealer_open),widgets);
g_signal_connect(G_OBJECT(widgets->TerminalCancelButton),"clicked",G_CALLBACK(on_command_cancel),widgets); g_signal_connect(G_OBJECT(widgets->TerminalCancelButton),"clicked",G_CALLBACK(on_command_cancel),widgets);
g_signal_connect(G_OBJECT(widgets->UnlockPacmanButton),"clicked",G_CALLBACK(on_pacman_db_unlock),NULL); g_signal_connect(G_OBJECT(widgets->UnlockPacmanButton),"clicked",G_CALLBACK(on_pacman_db_unlock),NULL);
// g_signal_connect(G_OBJECT(widgets->InstallTerminal),"child-ready",G_CALLBACK(on_driver_child_ready),NULL);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_load(path); yon_window_config_load(path);
gtk_overlay_add_overlay(GTK_OVERLAY(widgets->MainOverlay),widgets->MainSpinner); gtk_overlay_add_overlay(GTK_OVERLAY(widgets->MainOverlay),widgets->MainSpinner);

@ -14,6 +14,7 @@
#include <libintl.h> #include <libintl.h>
#include <time.h> #include <time.h>
#include <json-c/json.h> #include <json-c/json.h>
#include <signal.h>
#include "ubl-strings.h" #include "ubl-strings.h"
#define VTE_INCLUDE #define VTE_INCLUDE
#include <libublsettings.h> #include <libublsettings.h>
@ -473,5 +474,6 @@ void yon_all_resolutions_update();
void yon_monitor_port_manual(GtkToggleButton *self,monitor_edit_window *monitors); void yon_monitor_port_manual(GtkToggleButton *self,monitor_edit_window *monitors);
int yon_string_compare(char **a, char **b); int yon_string_compare(char **a, char **b);
char *yon_char_extend(char *target, char symbol, size_t length); char *yon_char_extend(char *target, char symbol, size_t length);
void on_driver_child_ready(VteTerminal *terminal, GPid pid, GError *, gpointer );
#endif #endif
Loading…
Cancel
Save