fixed ctrl+tab and ctrl+shift+tab on os x

This commit is contained in:
John Preston 2014-07-24 17:58:44 +02:00
parent 41c1effb4a
commit c917fbbe18
4 changed files with 11574 additions and 5 deletions

View file

@ -439,7 +439,7 @@ QMimeData *FlatTextarea::createMimeDataFromSelection() const {
void FlatTextarea::keyPressEvent(QKeyEvent *e) {
bool shift = e->modifiers().testFlag(Qt::ShiftModifier);
bool ctrl = e->modifiers().testFlag(Qt::ControlModifier), ctrlGood = (ctrl && cCtrlEnter()) || (!ctrl && !shift && !cCtrlEnter());
bool ctrl = e->modifiers().testFlag(Qt::ControlModifier) || e->modifiers().testFlag(Qt::MetaModifier), ctrlGood = (ctrl && cCtrlEnter()) || (!ctrl && !shift && !cCtrlEnter());
bool enter = (e->key() == Qt::Key_Enter || e->key() == Qt::Key_Return);
if (enter && ctrlGood) {

View file

@ -2932,14 +2932,14 @@ void HistoryWidget::keyPressEvent(QKeyEvent *e) {
if (e->key() == Qt::Key_Escape) {
e->ignore();
} else if (e->key() == Qt::Key_PageDown) {
if (e->modifiers() & Qt::ControlModifier) {
if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::MetaModifier)) {
PeerData *after = App::main()->peerAfter(histPeer);
if (after) App::main()->showPeer(after->id);
} else {
_scroll.scrollToY(_scroll.scrollTop() + _scroll.height());
}
} else if (e->key() == Qt::Key_PageUp) {
if (e->modifiers() & Qt::ControlModifier) {
if ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::MetaModifier)) {
PeerData *before = App::main()->peerBefore(histPeer);
if (before) App::main()->showPeer(before->id);
} else {
@ -2949,7 +2949,7 @@ void HistoryWidget::keyPressEvent(QKeyEvent *e) {
_scroll.scrollToY(_scroll.scrollTop() + _scroll.height() / 10);
} else if (e->key() == Qt::Key_Up) {
_scroll.scrollToY(_scroll.scrollTop() - _scroll.height() / 10);
} else if ((e->key() == Qt::Key_Tab || e->key() == Qt::Key_Backtab) && (e->modifiers() & Qt::ControlModifier)) {
} else if ((e->key() == Qt::Key_Tab || e->key() == Qt::Key_Backtab) && ((e->modifiers() & Qt::ControlModifier) || (e->modifiers() & Qt::MetaModifier))) {
PeerData *p = ((e->modifiers() & Qt::ShiftModifier) || e->key() == Qt::Key_Backtab) ? App::main()->peerBefore(histPeer) : App::main()->peerAfter(histPeer);
if (p) App::main()->showPeer(p->id);
} else {

View file

@ -1385,7 +1385,11 @@ static QTabletEvent::TabletDevice wacomTabletDevice(NSEvent *theEvent)
&& qtKey == Qt::Key_Period) {
[self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)];
return YES;
}
} else if ([nsevent modifierFlags] & NSControlKeyMask && (qtKey == Qt::Key_Tab || qtKey == Qt::Key_Backtab)) {
[self handleKeyEvent:nsevent eventType:int(QEvent::KeyPress)];
return YES;
}
}
return [super performKeyEquivalent:nsevent];
}

File diff suppressed because it is too large Load diff