diff --git a/src/entrybox.cc b/src/entrybox.cc index 08a3a5e..eda6f42 100644 --- a/src/entrybox.cc +++ b/src/entrybox.cc @@ -32,7 +32,7 @@ EntryBox::Entry::Entry(const std::string& content, std::functionkeyval==GDK_KEY_Up) { + if(key->keyval==GDK_KEY_Up || key->keyval==GDK_KEY_KP_Up) { auto &history=entry_histories[get_placeholder_text()]; if(history.size()>0) { selected_history++; @@ -42,7 +42,7 @@ EntryBox::Entry::Entry(const std::string& content, std::functionkeyval==GDK_KEY_Down) { + if(key->keyval==GDK_KEY_Down || key->keyval==GDK_KEY_KP_Down) { auto &history=entry_histories[get_placeholder_text()]; if(history.size()>0) { if(selected_history!=0) diff --git a/src/selectiondialog.cc b/src/selectiondialog.cc index 3735072..86a0f62 100644 --- a/src/selectiondialog.cc +++ b/src/selectiondialog.cc @@ -229,7 +229,7 @@ SelectionDialog::SelectionDialog(Gtk::TextView& text_view, Glib::RefPtrkeyval==GDK_KEY_Down && list_view_text.get_model()->children().size()>0) { + if((key->keyval==GDK_KEY_Down || key->keyval==GDK_KEY_KP_Down) && list_view_text.get_model()->children().size()>0) { auto it=list_view_text.get_selection()->get_selected(); if(it) { it++; @@ -238,7 +238,7 @@ bool SelectionDialog::on_key_press(GdkEventKey* key) { } return true; } - else if(key->keyval==GDK_KEY_Up && list_view_text.get_model()->children().size()>0) { + else if((key->keyval==GDK_KEY_Up || key->keyval==GDK_KEY_KP_Up) && list_view_text.get_model()->children().size()>0) { auto it=list_view_text.get_selection()->get_selected(); if(it) { it--; @@ -257,7 +257,7 @@ bool SelectionDialog::on_key_press(GdkEventKey* key) { hide(); return true; } - else if(key->keyval==GDK_KEY_Left || key->keyval==GDK_KEY_Right) { + else if(key->keyval==GDK_KEY_Left || key->keyval==GDK_KEY_KP_Left || key->keyval==GDK_KEY_Right || key->keyval==GDK_KEY_KP_Right) { hide(); return false; } @@ -347,7 +347,7 @@ void CompletionDialog::select(bool hide_window) { } bool CompletionDialog::on_key_release(GdkEventKey* key) { - if(key->keyval==GDK_KEY_Down || key->keyval==GDK_KEY_Up) + if(key->keyval==GDK_KEY_Down || key->keyval==GDK_KEY_KP_Down || key->keyval==GDK_KEY_Up || key->keyval==GDK_KEY_KP_Up) return false; if(show_offset>text_view.get_buffer()->get_insert()->get_iter().get_offset()) { @@ -381,7 +381,7 @@ bool CompletionDialog::on_key_press(GdkEventKey* key) { } if(key->keyval==GDK_KEY_Shift_L || key->keyval==GDK_KEY_Shift_R || key->keyval==GDK_KEY_Alt_L || key->keyval==GDK_KEY_Alt_R || key->keyval==GDK_KEY_Control_L || key->keyval==GDK_KEY_Control_R || key->keyval==GDK_KEY_Meta_L || key->keyval==GDK_KEY_Meta_R) return false; - if(key->keyval==GDK_KEY_Down && list_view_text.get_model()->children().size()>0) { + if((key->keyval==GDK_KEY_Down || key->keyval==GDK_KEY_KP_Down) && list_view_text.get_model()->children().size()>0) { auto it=list_view_text.get_selection()->get_selected(); if(it) { it++; @@ -395,7 +395,7 @@ bool CompletionDialog::on_key_press(GdkEventKey* key) { select(false); return true; } - if(key->keyval==GDK_KEY_Up && list_view_text.get_model()->children().size()>0) { + if((key->keyval==GDK_KEY_Up || key->keyval==GDK_KEY_KP_Up) && list_view_text.get_model()->children().size()>0) { auto it=list_view_text.get_selection()->get_selected(); if(it) { it--; diff --git a/src/source.cc b/src/source.cc index 381b808..d1d1ebc 100644 --- a/src/source.cc +++ b/src/source.cc @@ -1168,7 +1168,7 @@ bool Source::View::on_key_press_event(GdkEventKey* key) { last_keyval=key->keyval; //Move cursor one paragraph down - if(key->keyval==GDK_KEY_Down && (key->state&GDK_CONTROL_MASK)>0) { + if((key->keyval==GDK_KEY_Down || key->keyval==GDK_KEY_KP_Down) && (key->state&GDK_CONTROL_MASK)>0) { auto selection_start_iter=get_buffer()->get_selection_bound()->get_iter(); auto iter=get_buffer()->get_iter_at_line(get_buffer()->get_insert()->get_iter().get_line()); bool empty_line=false; @@ -1195,7 +1195,7 @@ bool Source::View::on_key_press_event(GdkEventKey* key) { return true; } //Move cursor one paragraph up - else if(key->keyval==GDK_KEY_Up && (key->state&GDK_CONTROL_MASK)>0) { + else if((key->keyval==GDK_KEY_Up || key->keyval==GDK_KEY_KP_Up) && (key->state&GDK_CONTROL_MASK)>0) { auto selection_start_iter=get_buffer()->get_selection_bound()->get_iter(); auto iter=get_buffer()->get_iter_at_line(get_buffer()->get_insert()->get_iter().get_line()); iter.backward_char(); @@ -1451,7 +1451,7 @@ bool Source::View::on_key_press_event_basic(GdkEventKey* key) { } //Next two are smart home/end keys that works with wrapped lines //Note that smart end goes FIRST to end of line to avoid hiding empty chars after expressions - else if(key->keyval==GDK_KEY_End && (key->state&GDK_CONTROL_MASK)==0) { + else if((key->keyval==GDK_KEY_End || key->keyval==GDK_KEY_KP_End) && (key->state&GDK_CONTROL_MASK)==0) { auto end_line_iter=get_iter_at_line_end(iter.get_line()); auto end_sentence_iter=end_line_iter; while(!end_sentence_iter.starts_line() && @@ -1474,7 +1474,7 @@ bool Source::View::on_key_press_event_basic(GdkEventKey* key) { scroll_to(get_buffer()->get_insert()); return true; } - else if(key->keyval==GDK_KEY_Home && (key->state&GDK_CONTROL_MASK)==0) { + else if((key->keyval==GDK_KEY_Home || key->keyval==GDK_KEY_KP_Home) && (key->state&GDK_CONTROL_MASK)==0) { auto start_line_iter=get_buffer()->get_iter_at_line(iter.get_line()); auto start_sentence_iter=start_line_iter; while(!start_sentence_iter.ends_line() && diff --git a/src/window.cc b/src/window.cc index 521687e..7782413 100644 --- a/src/window.cc +++ b/src/window.cc @@ -1075,23 +1075,23 @@ bool Window::on_key_press_event(GdkEventKey *event) { } #ifdef __APPLE__ //For Apple's Command-left, right, up, down keys else if((event->state & GDK_META_MASK)>0 && (event->state & GDK_MOD1_MASK)==0) { - if(event->keyval==GDK_KEY_Left) { + if(event->keyval==GDK_KEY_Left || event->keyval==GDK_KEY_KP_Left) { event->keyval=GDK_KEY_Home; event->state=event->state & GDK_SHIFT_MASK; event->hardware_keycode=115; } - else if(event->keyval==GDK_KEY_Right) { + else if(event->keyval==GDK_KEY_Right || event->keyval==GDK_KEY_KP_Right) { event->keyval=GDK_KEY_End; event->state=event->state & GDK_SHIFT_MASK; event->hardware_keycode=119; } - else if(event->keyval==GDK_KEY_Up) { + else if(event->keyval==GDK_KEY_Up || event->keyval==GDK_KEY_KP_Up) { event->keyval=GDK_KEY_Home; event->state=event->state & GDK_SHIFT_MASK; event->state+=GDK_CONTROL_MASK; event->hardware_keycode=115; } - else if(event->keyval==GDK_KEY_Down) { + else if(event->keyval==GDK_KEY_Down || event->keyval==GDK_KEY_KP_Down) { event->keyval=GDK_KEY_End; event->state=event->state & GDK_SHIFT_MASK; event->state+=GDK_CONTROL_MASK;