summaryrefslogtreecommitdiffabout
path: root/microkde/ktextedit.cpp
Side-by-side diff
Diffstat (limited to 'microkde/ktextedit.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/ktextedit.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/microkde/ktextedit.cpp b/microkde/ktextedit.cpp
new file mode 100644
index 0000000..4dd6875
--- a/dev/null
+++ b/microkde/ktextedit.cpp
@@ -0,0 +1,53 @@
+
+#include <ktextedit.h>
+#ifndef DESKTOP_VERSION
+#include <qpe/qpeapplication.h>
+#endif
+
+
+KTextEdit::KTextEdit ( QWidget *parent ) : QMultiLineEdit( parent )
+{
+ mAllowPopupMenu = false;
+ mMouseDown = false;
+ mIgnoreMark = false;
+#ifndef DESKTOP_VERSION
+ QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold );
+#endif
+}
+
+void KTextEdit::mousePressEvent(QMouseEvent *e)
+{
+ if ( e->button() == LeftButton ) {
+ mAllowPopupMenu = true;
+ mYMousePos = mapToGlobal( (e->pos())).y();
+ mXMousePos = mapToGlobal( (e->pos())).x();
+ }
+ if ( e->button() == RightButton && !mAllowPopupMenu )
+ return;
+ if ( e->button() == LeftButton ) {
+ if ( hasMarkedText () )
+ mIgnoreMark = !mIgnoreMark;
+ if ( mIgnoreMark && hasMarkedText () ) {
+ mMouseDown = false;
+ return ;
+ }
+ }
+ QMultiLineEdit::mousePressEvent( e );
+}
+
+void KTextEdit::mouseReleaseEvent(QMouseEvent *e)
+{
+ QMultiLineEdit::mouseReleaseEvent(e);
+}
+
+void KTextEdit::mouseMoveEvent(QMouseEvent *e)
+{
+ int diff = mYMousePos - mapToGlobal( (e->pos())).y();
+ if ( diff < 0 ) diff = -diff;
+ int diff2 = mXMousePos - mapToGlobal( (e->pos())).x();
+ if ( diff2 < 0 ) diff2 = -diff2;
+ if ( diff+ diff2 > 20 )
+ mAllowPopupMenu = false;
+ QMultiLineEdit::mouseMoveEvent(e);
+}
+