Mercurial > octave-libgccjit
changeset 18954:c6b89c4a9e63 gui-release
Swap Ctrl and Meta in Qscintilla shortcut list for mac (bug #41217)
* octave-qscintilla.cc (octave_qscintilla::octave_qscintilla):
under mac platform, manually swap Ctrl an Meta modifers in Qscintilla's
shortcut list, in order to conform to octave settings.
author | pantxo <pantxo.diribarne@gmail.com> |
---|---|
date | Wed, 23 Jul 2014 08:52:42 +0200 |
parents | 0be65bd7f369 |
children | |
files | libgui/src/m-editor/octave-qscintilla.cc |
diffstat | 1 files changed, 30 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/m-editor/octave-qscintilla.cc Sun Jul 20 21:23:32 2014 +0200 +++ b/libgui/src/m-editor/octave-qscintilla.cc Wed Jul 23 08:52:42 2014 +0200 @@ -98,6 +98,36 @@ } } #endif + +#if defined (Q_OS_MAC) + // Octave interprets Cmd key as Meta whereas Qscintilla interprets it + // as Ctrl. We thus invert Meta/Ctrl in Qscintilla's shortcuts list. + QList< QsciCommand * > cmd_list_mac = cmd_set->commands (); + for (int i = 0; i < cmd_list_mac.length (); i++) + { + // Primary key + int key = cmd_list_mac.at (i)->key (); + + if (static_cast<int> (key | Qt::META) == key && + static_cast<int> (key | Qt::CTRL) != key) + key = (key ^ Qt::META) | Qt::CTRL; + else if (static_cast<int> (key | Qt::CTRL) == key) + key = (key ^ Qt::CTRL) | Qt::META; + + cmd_list_mac.at (i)->setKey (key); + + // Alternate key + key = cmd_list_mac.at (i)->alternateKey (); + + if (static_cast<int> (key | Qt::META) == key && + static_cast<int> (key | Qt::CTRL) != key) + key = (key ^ Qt::META) | Qt::CTRL; + else if (static_cast<int> (key | Qt::CTRL) == key) + key = (key ^ Qt::CTRL) | Qt::META; + + cmd_list_mac.at (i)->setAlternateKey (key); + } +#endif } octave_qscintilla::~octave_qscintilla ()