]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - radiant/commands.cpp
Q3map2:
[xonotic/netradiant.git] / radiant / commands.cpp
index f608ea49709348fbc4574bdb7d062ccd7312b18f..0b802451e8f3be6a97186035b865f094a4d4f0eb 100644 (file)
@@ -226,6 +226,11 @@ void accelerator_edit_button_clicked( GtkButton *btn, gpointer dialogptr ){
        if ( !gtk_tree_selection_get_selected( sel, &model, &iter ) ) {
                return;
        }
+       if ( dialog.m_waiting_for_key ) {
+               // unhighlight highlit
+               dialog.m_waiting_for_key = false;
+               gtk_list_store_set( GTK_LIST_STORE( dialog.m_model ), &dialog.m_command_iter, 2, false, -1 );
+       }
        dialog.m_command_iter = iter;
        dialog.m_model = model;
 
@@ -239,6 +244,14 @@ void accelerator_edit_button_clicked( GtkButton *btn, gpointer dialogptr ){
        dialog.m_waiting_for_key = true;
 }
 
+gboolean accelerator_tree_butt_press( GtkWidget* widget, GdkEventButton* event, gpointer dialogptr ){
+       if ( event->type == GDK_2BUTTON_PRESS && event->button == 1 ) {
+               accelerator_edit_button_clicked( 0, dialogptr );
+               return TRUE;
+       }
+       return FALSE;
+}
+
 gboolean accelerator_window_key_press( GtkWidget *widget, GdkEventKey *event, gpointer dialogptr ){
        command_list_dialog_t &dialog = *(command_list_dialog_t *) dialogptr;
 
@@ -413,7 +426,9 @@ void DoCommandListDlg(){
                        GtkWidget* view = gtk_tree_view_new_with_model( GTK_TREE_MODEL( store ) );
                        dialog.m_list = GTK_TREE_VIEW( view );
 
-                       gtk_tree_view_set_enable_search( GTK_TREE_VIEW( view ), false ); // annoying
+                       //gtk_tree_view_set_enable_search( GTK_TREE_VIEW( view ), false ); // annoying
+
+                       g_signal_connect( G_OBJECT( view ), "button_press_event", G_CALLBACK( accelerator_tree_butt_press ), &dialog );
 
                        {
                                GtkCellRenderer* renderer = gtk_cell_renderer_text_new();