diff -up scim-1.4.7/utils/scimkeyselection.h.fix-capslock scim-1.4.7/utils/scimkeyselection.h --- scim-1.4.7/utils/scimkeyselection.h.fix-capslock 2008-03-03 18:33:40.000000000 +0800 +++ scim-1.4.7/utils/scimkeyselection.h 2008-03-03 18:15:16.000000000 +0800 @@ -36,6 +36,7 @@ struct _ScimKeySelection GtkWidget *toggle_meta; GtkWidget *toggle_super; GtkWidget *toggle_hyper; + GtkWidget *toggle_capslock; GtkWidget *toggle_release; GtkWidget *key_code; diff -up scim-1.4.7/utils/scimkeyselection.cpp.fix-capslock scim-1.4.7/utils/scimkeyselection.cpp --- scim-1.4.7/utils/scimkeyselection.cpp.fix-capslock 2008-03-03 18:12:51.000000000 +0800 +++ scim-1.4.7/utils/scimkeyselection.cpp 2008-03-03 18:18:10.000000000 +0800 @@ -267,6 +267,11 @@ scim_key_selection_init (ScimKeySelectio gtk_widget_show (keyselection->toggle_hyper); gtk_box_pack_start (GTK_BOX (hbox), keyselection->toggle_hyper, TRUE, TRUE, 2); + + keyselection->toggle_capslock = gtk_check_button_new_with_mnemonic (_("Ca_psLock")); + gtk_widget_show (keyselection->toggle_capslock); + gtk_box_pack_start (GTK_BOX (hbox), keyselection->toggle_capslock, TRUE, TRUE, 2); + hbox = gtk_hbox_new (TRUE, 0); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (keyselection), hbox, FALSE, FALSE, 4); @@ -319,6 +324,8 @@ scim_key_selection_add_key_button_callba key += String ("Super+"); if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (keyselection->toggle_hyper))) key += String ("Hyper+"); + if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (keyselection->toggle_capslock))) + key += String ("CapsLock+"); key_code = String (gtk_entry_get_text (GTK_ENTRY (keyselection->key_code))); if (!key_code.length ()){ @@ -572,6 +579,9 @@ scim_key_selection_set_key_event (ScimKe GTK_TOGGLE_BUTTON (keyselection->toggle_hyper), event.is_hyper_down ()); gtk_toggle_button_set_active ( + GTK_TOGGLE_BUTTON (keyselection->toggle_capslock), + event.is_caps_lock_down ()); + gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (keyselection->toggle_release), event.is_key_release ());