Browse Source

Added keypad keys home, end, up, down, left, right to key check expressions

merge-requests/365/head
eidheim 9 years ago
parent
commit
de879bc12d
  1. 4
      src/entrybox.cc
  2. 12
      src/selectiondialog.cc
  3. 8
      src/source.cc
  4. 8
      src/window.cc

4
src/entrybox.cc

@ -32,7 +32,7 @@ EntryBox::Entry::Entry(const std::string& content, std::function<void(const std:
} }
}); });
signal_key_press_event().connect([this](GdkEventKey* key){ signal_key_press_event().connect([this](GdkEventKey* key){
if(key->keyval==GDK_KEY_Up) { if(key->keyval==GDK_KEY_Up || key->keyval==GDK_KEY_KP_Up) {
auto &history=entry_histories[get_placeholder_text()]; auto &history=entry_histories[get_placeholder_text()];
if(history.size()>0) { if(history.size()>0) {
selected_history++; selected_history++;
@ -42,7 +42,7 @@ EntryBox::Entry::Entry(const std::string& content, std::function<void(const std:
set_position(-1); set_position(-1);
} }
} }
if(key->keyval==GDK_KEY_Down) { if(key->keyval==GDK_KEY_Down || key->keyval==GDK_KEY_KP_Down) {
auto &history=entry_histories[get_placeholder_text()]; auto &history=entry_histories[get_placeholder_text()];
if(history.size()>0) { if(history.size()>0) {
if(selected_history!=0) if(selected_history!=0)

12
src/selectiondialog.cc

@ -229,7 +229,7 @@ SelectionDialog::SelectionDialog(Gtk::TextView& text_view, Glib::RefPtr<Gtk::Tex
} }
bool SelectionDialog::on_key_press(GdkEventKey* key) { bool SelectionDialog::on_key_press(GdkEventKey* key) {
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(); auto it=list_view_text.get_selection()->get_selected();
if(it) { if(it) {
it++; it++;
@ -238,7 +238,7 @@ bool SelectionDialog::on_key_press(GdkEventKey* key) {
} }
return true; 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(); auto it=list_view_text.get_selection()->get_selected();
if(it) { if(it) {
it--; it--;
@ -257,7 +257,7 @@ bool SelectionDialog::on_key_press(GdkEventKey* key) {
hide(); hide();
return true; 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(); hide();
return false; return false;
} }
@ -347,7 +347,7 @@ void CompletionDialog::select(bool hide_window) {
} }
bool CompletionDialog::on_key_release(GdkEventKey* key) { 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; return false;
if(show_offset>text_view.get_buffer()->get_insert()->get_iter().get_offset()) { 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) 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; 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(); auto it=list_view_text.get_selection()->get_selected();
if(it) { if(it) {
it++; it++;
@ -395,7 +395,7 @@ bool CompletionDialog::on_key_press(GdkEventKey* key) {
select(false); select(false);
return true; 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(); auto it=list_view_text.get_selection()->get_selected();
if(it) { if(it) {
it--; it--;

8
src/source.cc

@ -1168,7 +1168,7 @@ bool Source::View::on_key_press_event(GdkEventKey* key) {
last_keyval=key->keyval; last_keyval=key->keyval;
//Move cursor one paragraph down //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 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()); auto iter=get_buffer()->get_iter_at_line(get_buffer()->get_insert()->get_iter().get_line());
bool empty_line=false; bool empty_line=false;
@ -1195,7 +1195,7 @@ bool Source::View::on_key_press_event(GdkEventKey* key) {
return true; return true;
} }
//Move cursor one paragraph up //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 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()); auto iter=get_buffer()->get_iter_at_line(get_buffer()->get_insert()->get_iter().get_line());
iter.backward_char(); 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 //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 //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_line_iter=get_iter_at_line_end(iter.get_line());
auto end_sentence_iter=end_line_iter; auto end_sentence_iter=end_line_iter;
while(!end_sentence_iter.starts_line() && 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()); scroll_to(get_buffer()->get_insert());
return true; 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_line_iter=get_buffer()->get_iter_at_line(iter.get_line());
auto start_sentence_iter=start_line_iter; auto start_sentence_iter=start_line_iter;
while(!start_sentence_iter.ends_line() && while(!start_sentence_iter.ends_line() &&

8
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 #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) { 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->keyval=GDK_KEY_Home;
event->state=event->state & GDK_SHIFT_MASK; event->state=event->state & GDK_SHIFT_MASK;
event->hardware_keycode=115; 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->keyval=GDK_KEY_End;
event->state=event->state & GDK_SHIFT_MASK; event->state=event->state & GDK_SHIFT_MASK;
event->hardware_keycode=119; 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->keyval=GDK_KEY_Home;
event->state=event->state & GDK_SHIFT_MASK; event->state=event->state & GDK_SHIFT_MASK;
event->state+=GDK_CONTROL_MASK; event->state+=GDK_CONTROL_MASK;
event->hardware_keycode=115; 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->keyval=GDK_KEY_End;
event->state=event->state & GDK_SHIFT_MASK; event->state=event->state & GDK_SHIFT_MASK;
event->state+=GDK_CONTROL_MASK; event->state+=GDK_CONTROL_MASK;

Loading…
Cancel
Save