Browse Source

Select all now works in terminal as well

merge-requests/181/head^2
eidheim 8 months ago
parent
commit
14b3317eee
  1. 13
      src/source_base.cpp
  2. 6
      src/source_base.hpp
  3. 3
      src/terminal.cpp

13
src/source_base.cpp

@ -10,6 +10,12 @@
#include <gtksourceview/gtksource.h> #include <gtksourceview/gtksource.h>
#include <regex> #include <regex>
#ifdef __APPLE__
GdkModifierType Source::CommonView::primary_modifier_mask = GDK_MOD2_MASK;
#else
GdkModifierType Source::CommonView::primary_modifier_mask = GDK_CONTROL_MASK;
#endif
Source::CommonView::CommonView(const Glib::RefPtr<Gsv::Language> &language) : Gsv::View() { Source::CommonView::CommonView(const Glib::RefPtr<Gsv::Language> &language) : Gsv::View() {
set_tab_width(4); // Visual size of a \t hardcoded to be equal to visual size of 4 spaces set_tab_width(4); // Visual size of a \t hardcoded to be equal to visual size of 4 spaces
@ -369,13 +375,6 @@ Source::BaseView::BaseView(const boost::filesystem::path &file_path, const Glib:
} }
set_tab_char_and_size(tab_char, tab_size); set_tab_char_and_size(tab_char, tab_size);
#ifdef __APPLE__
primary_modifier_mask = GDK_MOD2_MASK;
#else
primary_modifier_mask = GDK_CONTROL_MASK;
#endif
set_snippets(); set_snippets();
snippet_parameter_tag = get_buffer()->create_tag(); snippet_parameter_tag = get_buffer()->create_tag();

6
src/source_base.hpp

@ -50,6 +50,9 @@ namespace Source {
bool keep_clipboard = false; bool keep_clipboard = false;
/// Apple key for MacOS, and control key otherwise
static GdkModifierType primary_modifier_mask;
bool on_key_press_event(GdkEventKey *event) override; bool on_key_press_event(GdkEventKey *event) override;
bool on_motion_notify_event(GdkEventMotion *motion_event) override; bool on_motion_notify_event(GdkEventMotion *motion_event) override;
@ -146,9 +149,6 @@ namespace Source {
std::string tab; std::string tab;
std::pair<char, unsigned> find_tab_char_and_size(); std::pair<char, unsigned> find_tab_char_and_size();
/// Apple key for MacOS, and control key otherwise
GdkModifierType primary_modifier_mask;
/// Move iter to line start. Depending on iter position, before or after indentation. /// Move iter to line start. Depending on iter position, before or after indentation.
/// Works with wrapped lines. /// Works with wrapped lines.
Gtk::TextIter get_smart_home_iter(const Gtk::TextIter &iter); Gtk::TextIter get_smart_home_iter(const Gtk::TextIter &iter);

3
src/terminal.cpp

@ -624,7 +624,8 @@ bool Terminal::on_key_press_event(GdkEventKey *event) {
if(event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End || if(event->keyval == GDK_KEY_Home || event->keyval == GDK_KEY_End ||
event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down || event->keyval == GDK_KEY_Page_Up || event->keyval == GDK_KEY_Page_Down ||
event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down || event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_Down ||
event->keyval == GDK_KEY_Left || event->keyval == GDK_KEY_Right) event->keyval == GDK_KEY_Left || event->keyval == GDK_KEY_Right ||
((event->state & primary_modifier_mask) && event->keyval == GDK_KEY_a))
return Source::CommonView::on_key_press_event(event); return Source::CommonView::on_key_press_event(event);
LockGuard lock(processes_mutex); LockGuard lock(processes_mutex);

Loading…
Cancel
Save