[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: PATCH: keditcl1.cpp
From: Ellis Whitehead <ellis () kde ! org>
Date: 2002-02-27 20:19:11
[Download RAW message or body]
Waldo,
Could you take a look at this and let me know if it does what you think it
should? Basically, it doesn't let Ctrl+Shift or Alt+Ctrl sequences pass as
Ctrl shortcuts.
Cheers,
Ellis
["keditcl1.cpp.diff" (text/x-diff)]
Index: keditcl1.cpp
===================================================================
RCS file: /home/kde/kdelibs/kdeui/keditcl1.cpp,v
retrieving revision 1.54
diff -u -3 -d -p -b -B -r1.54 keditcl1.cpp
--- keditcl1.cpp 2002/01/21 01:06:40 1.54
+++ keditcl1.cpp 2002/02/27 15:54:15
@@ -366,8 +366,11 @@ void KEdit::computePosition()
void KEdit::keyPressEvent ( QKeyEvent *e){
+ KKey key(e);
+ int keyQt = key.keyCodeQt();
+ int keyModQt = keyQt & ~0xffff;
- if ((e->state() & ControlButton ) && (e->key() == Key_K) ){
+ if ( keyQt == CTRL+Key_K ){
int line = 0;
int col = 0;
@@ -420,10 +423,10 @@ void KEdit::keyPressEvent ( QKeyEvent *e
QMultiLineEdit::keyPressEvent(e);
setModified(true);
+ e->accept();
return;
}
-
- if ((e->state() & ControlButton ) && (e->key() == Key_Y) ){
+ else if ( keyQt == CTRL+Key_Y ){
int line = 0;
int col = 0;
@@ -438,54 +441,47 @@ void KEdit::keyPressEvent ( QKeyEvent *e
killing = false;
setModified(true);
+ e->accept();
return;
}
killing = false;
- if ((e->state() & ControlButton ) && (e->key() == Key_Insert) ){
+ if ( KStdAccel::copy().contains( key ) ) {
copy();
- return;
+ e->accept();
}
-
- if ((e->state() & ShiftButton ) && (e->key() == Key_Insert) ){
+ else if ( KStdAccel::paste().contains( key ) ) {
paste();
setModified(true);
- return;
+ e->accept();
}
-
- if ((e->state() & ShiftButton ) && (e->key() == Key_Delete) ){
+ else if ( KStdAccel::cut().contains( key ) ) {
cut();
setModified(true);
- return;
- }
-
- if (d->overwriteEnabled)
- {
- if (e->key() == Key_Insert){
- this->setOverwriteMode(!this->isOverwriteMode());
- emit toggle_overwrite_signal();
- return;
- }
+ e->accept();
}
-
- if ( KStdAccel::isEqual( e, KStdAccel::deleteWordBack()) ) {
+ else if ( KStdAccel::deleteWordBack().contains( key ) ) {
moveCursor(MoveWordBackward, true);
if (hasSelectedText())
del();
- e->accept();
setModified(true);
- return;
+ e->accept();
}
- else if ( KStdAccel::isEqual( e, KStdAccel::deleteWordForward()) ) {
+ else if ( KStdAccel::deleteWordForward().contains( key ) ) {
moveCursor(MoveWordForward, true);
if (hasSelectedText())
del();
- e->accept();
setModified(true);
- return;
+ e->accept();
}
-
+ else if ( d->overwriteEnabled && key == KKey(Key_Insert) ) {
+ this->setOverwriteMode(!this->isOverwriteMode());
+ emit toggle_overwrite_signal();
+ e->accept();
+ }
+ // Only pass keys which are unmodified or are only modified by Shift or Ctrl.
+ else if ( keyModQt == 0 || keyModQt == SHIFT || keyModQt == CTRL )
QMultiLineEdit::keyPressEvent(e);
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic