Browse Source

Fixed select word on double mouse click such that it works on all platforms.

merge-requests/365/head
Ole 10 years ago
parent
commit
7601e0d646
  1. 25
      src/source.cc

25
src/source.cc

@ -660,20 +660,19 @@ bool Source::View::on_key_press_event(GdkEventKey* key) {
bool Source::View::on_button_press_event(GdkEventButton *event) { bool Source::View::on_button_press_event(GdkEventButton *event) {
if(event->type==GDK_2BUTTON_PRESS) { if(event->type==GDK_2BUTTON_PRESS) {
Gtk::TextIter start, end; Gtk::TextIter start, end;
if(get_buffer()->get_selection_bounds(start, end)) { get_buffer()->get_selection_bounds(start, end);
auto iter=start; auto iter=start;
while((*iter>=48 && *iter<=57) || (*iter>=65 && *iter<=90) || (*iter>=97 && *iter<=122) || *iter==95) { while((*iter>=48 && *iter<=57) || (*iter>=65 && *iter<=90) || (*iter>=97 && *iter<=122) || *iter==95) {
start=iter; start=iter;
if(!iter.backward_char()) if(!iter.backward_char())
break; break;
}
while((*end>=48 && *end<=57) || (*end>=65 && *end<=90) || (*end>=97 && *end<=122) || *end==95) {
if(!end.forward_char())
break;
}
get_buffer()->select_range(start, end);
return true;
} }
while((*end>=48 && *end<=57) || (*end>=65 && *end<=90) || (*end>=97 && *end<=122) || *end==95) {
if(!end.forward_char())
break;
}
get_buffer()->select_range(start, end);
return true;
} }
return Gsv::View::on_button_press_event(event); return Gsv::View::on_button_press_event(event);

Loading…
Cancel
Save