X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/47797f0285ca1a1fc49bb969c51cbf5f421040d5..HEAD:/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c diff --git a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c index b86d4fb..bb9215a 100644 --- a/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c +++ b/LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c @@ -35,6 +35,7 @@ #include #include +#include #include "ventoy_gtk.h" int g_secure_boot_support = 0; @@ -261,7 +262,7 @@ void on_devlist_changed(GtkWidget *widget, gpointer data) } else { - if (g_secure_boot_support) + if (!g_secure_boot_support) { gtk_check_menu_item_set_active(g_menu_item_secure_boot, 1 - g_secure_boot_support); } @@ -494,12 +495,12 @@ void on_clear_ventoy(GtkMenuItem *menuItem, gpointer data) return; } - if (GTK_RESPONSE_CANCEL == msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP")) + if (GTK_RESPONSE_OK != msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP")) { return; } - if (GTK_RESPONSE_CANCEL == msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP2")) + if (GTK_RESPONSE_OK != msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP2")) { return; } @@ -660,6 +661,12 @@ void on_button_install_clicked(GtkWidget *widget, gpointer data) cur = g_disk_list + active; + if (cur->is4kn) + { + msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "STR_4KN_UNSUPPORTED"); + return; + } + if (ventoy_code_get_cur_part_style() == 0 && cur->size_in_byte > 2199023255552ULL) { msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "STR_DISK_2TB_MBR_ERROR"); @@ -687,12 +694,12 @@ void on_button_install_clicked(GtkWidget *widget, gpointer data) } } - if (GTK_RESPONSE_CANCEL == msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP")) + if (GTK_RESPONSE_OK != msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP")) { return; } - if (GTK_RESPONSE_CANCEL == msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP2")) + if (GTK_RESPONSE_OK != msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK_CANCEL, "STR_INSTALL_TIP2")) { return; } @@ -788,7 +795,7 @@ void on_button_update_clicked(GtkWidget *widget, gpointer data) return; } - if (GTK_RESPONSE_CANCEL == msgbox(GTK_MESSAGE_INFO, GTK_BUTTONS_OK_CANCEL, "STR_UPDATE_TIP")) + if (GTK_RESPONSE_OK != msgbox(GTK_MESSAGE_INFO, GTK_BUTTONS_OK_CANCEL, "STR_UPDATE_TIP")) { return; } @@ -935,7 +942,7 @@ void on_part_cfg_ok(GtkWidget *widget, gpointer data) for (pos = input; *pos; pos++) { - if (*pos < '0' || *pos >= '9') + if (*pos < '0' || *pos > '9') { msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "STR_SPACE_VAL_INVALID"); return; @@ -1020,9 +1027,16 @@ static void init_part_cfg_window(GtkBuilder *pBuilder) SIGNAL("part_cfg_dlg", "delete_event", on_part_cfg_close); } +static void add_accelerator(GtkAccelGroup *agMain, void *widget, const char *signal, guint accel_key) +{ + gtk_widget_add_accelerator(GTK_WIDGET(widget), signal, agMain, accel_key, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); + gtk_widget_add_accelerator(GTK_WIDGET(widget), signal, agMain, accel_key, GDK_SHIFT_MASK | GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); +} + void on_init_window(GtkBuilder *pBuilder) { GSList *pGroup = NULL; + GtkAccelGroup *agMain = NULL; char version[512]; vlog("on_init_window ...\n"); @@ -1096,6 +1110,15 @@ void on_init_window(GtkBuilder *pBuilder) SIGNAL("menu_item_part_cfg", "activate", on_part_config); SIGNAL("menu_item_clear", "activate", on_clear_ventoy); + agMain = gtk_accel_group_new(); + gtk_window_add_accel_group(GTK_WINDOW(g_topWindow), agMain); + add_accelerator(agMain, g_dev_combobox, "popup", GDK_KEY_d); + add_accelerator(agMain, g_install_button, "clicked", GDK_KEY_i); + add_accelerator(agMain, g_update_button, "clicked", GDK_KEY_u); + add_accelerator(agMain, g_refresh_button, "clicked", GDK_KEY_r); + + gtk_check_menu_item_set_active(g_menu_item_secure_boot, 1 - g_secure_boot_support); + fill_dev_list(NULL); return;