]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - LinuxGUI/Ventoy2Disk/GTK/ventoy_gtk.c
1.1.07 release
[Ventoy.git] / LinuxGUI / Ventoy2Disk / GTK / ventoy_gtk.c
index b86d4fbc9acf8d840586fe6672b39a71ca55f19c..bb9215a221d2943ffba576f44d0dfc4ede63342d 100644 (file)
@@ -35,6 +35,7 @@
 #include <ventoy_http.h>
 
 #include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
 #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;