bool RKConsole::eventFilter (QObject *, QEvent *e) { if (e->type () == QEvent::KeyPress) { QKeyEvent *k = (QKeyEvent *)e; return handleKeyPress (k); } else if (e->type () == QEvent::MouseButtonPress){ QMouseEvent *m = (QMouseEvent *)e; if (m->button() == Qt::RightButton) { doPopupMenu (m->globalPos ()); return (true); } return (false); } else if (e->type () == QEvent::MouseButtonRelease){ QMouseEvent *m = (QMouseEvent *)e; if (m->button() == Qt::MidButton) { QClipboard *cb = QApplication::clipboard (); submitBatch (cb->text (QClipboard::Selection)); return (true); } /* else if (m->button () == Qt::LeftButton) { // prevent cursor from leaving last line uint para=0; uint p=0; view->cursorPosition (¶, &p); if (para != doc->numLines () - 1) { int y = view->y (); view->setCursorPosition (doc->numLines() -1, p); int y2 = view->y (); qDebug ("%d, %d", y, y2); view->scroll (0, y - y2); } } */ // not good, yet: always jumps to bottom of view return (false); } else { return false; } }
void OnMouseDown(int x, int y, IMouseMod* pMod) { if (pMod->L) { doPopupMenu(); } Redraw(); // seems to need this SetDirty(); }