X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiSelectionManager.cpp;h=eeba9372f0ef73d4205863e7ed0399884722fed1;hb=a0ce37147cffa39b1a5c8859eb001dd2194b22a1;hp=90f90731c56bfb050b885beb0fffc19bf1935dfb;hpb=26b2cc89d398f9125706901ff3251e15926aea50;p=lyx.git diff --git a/src/frontends/qt4/GuiSelectionManager.cpp b/src/frontends/qt4/GuiSelectionManager.cpp index 90f90731c5..eeba9372f0 100644 --- a/src/frontends/qt4/GuiSelectionManager.cpp +++ b/src/frontends/qt4/GuiSelectionManager.cpp @@ -15,6 +15,7 @@ #include #include "GuiSelectionManager.h" +#include "qt_helpers.h" #include "support/debug.h" @@ -389,27 +390,32 @@ bool GuiSelectionManager::eventFilter(QObject * obj, QEvent * event) // This is designed to work both with the main enter key // and the one on the numeric keypad. if (keyPressed == Qt::Key_Enter || keyPressed == Qt::Key_Return) { - if (addPB->isEnabled()) { - if (!keyModifiers) { + if (!keyModifiers || + keyModifiers == Qt::ControlModifier || + keyModifiers == Qt::KeypadModifier || + keyModifiers == (Qt::ControlModifier + | Qt::KeypadModifier)) { + if (addPB->isEnabled()) { addPB_clicked(); - } else if (keyModifiers == Qt::ControlModifier || - keyModifiers == Qt::KeypadModifier || - keyModifiers == (Qt::ControlModifier | Qt::KeypadModifier)) { - addPB_clicked(); - okHook(); //signal } + if (keyModifiers) + okHook(); //signal } event->accept(); return true; } + else if (keyPressed == Qt::Key_Right) { + focusAndHighlight(selectedLV); + event->accept(); + return true; + } } else if (etype == QEvent::FocusIn) { if (selectedHasFocus_) { selectedHasFocus_ = false; updateHook(); } - event->accept(); - return true; - } + return false; + } } else if (obj == selectedLV) { if (etype == QEvent::KeyPress) { QKeyEvent * keyEvent = static_cast(event); @@ -426,7 +432,7 @@ bool GuiSelectionManager::eventFilter(QObject * obj, QEvent * event) updateHook(); } else return QObject::eventFilter(obj, event); - } + } // Ctrl-Up activates upPB else if (keyPressed == Qt::Key_Up) { if (keyModifiers == Qt::ControlModifier) { @@ -435,7 +441,7 @@ bool GuiSelectionManager::eventFilter(QObject * obj, QEvent * event) event->accept(); return true; } - } + } // Ctrl-Down activates downPB else if (keyPressed == Qt::Key_Down) { if (keyModifiers == Qt::ControlModifier) { @@ -445,13 +451,17 @@ bool GuiSelectionManager::eventFilter(QObject * obj, QEvent * event) return true; } } + else if (keyPressed == Qt::Key_Left) { + focusAndHighlight(availableLV); + event->accept(); + return true; + } } else if (etype == QEvent::FocusIn) { if (!selectedHasFocus_) { selectedHasFocus_ = true; updateHook(); } - event->accept(); - return true; + return false; } } return QObject::eventFilter(obj, event);