author | hash <hash> | 2002-08-21 18:12:55 (UTC) |
---|---|---|
committer | hash <hash> | 2002-08-21 18:12:55 (UTC) |
commit | 33fb38da29cfb4b29eff08928742b8d6918eb852 (patch) (side-by-side diff) | |
tree | db63fcd49acf5ce9067289ae1a8aac101d43bc11 | |
parent | 0a61be3b42b4b152468a5ef2def4a18baeda9b4f (diff) | |
download | opie-33fb38da29cfb4b29eff08928742b8d6918eb852.zip opie-33fb38da29cfb4b29eff08928742b8d6918eb852.tar.gz opie-33fb38da29cfb4b29eff08928742b8d6918eb852.tar.bz2 |
fixed segfault when no keymap is installed
-rw-r--r-- | inputmethods/multikey/keyboard.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp index 949164a..d5a7afd 100644 --- a/inputmethods/multikey/keyboard.cpp +++ b/inputmethods/multikey/keyboard.cpp @@ -236,64 +236,66 @@ void Keyboard::drawKeyboard(QPainter &p, int row, int col) y + (keyHeight - pix->height())/2 + 1, QPixmap(*pix) ); } p.setPen(keycolor_lines); p.drawLine(x, y, x, y + keyHeight); x += keyWidthPix; } } p.drawLine(0, height() - 1, width(), height() - 1); p.drawLine(width() - 1, 0, width() - 1, height()); } } /* Keyboard::mousePressEvent {{{1 */ void Keyboard::mousePressEvent(QMouseEvent *e) { int row = (e->y() - (usePicks ? picks->height() : 0)) / keyHeight + 1; if (row > 5) row = 5; // figure out the column int col = 0; for (int w = 0; e->x() >= w; col++) if (col < keys->numKeys(row)) // it segfaults if it trys to read past numKeys w += keys->width(row,col) * defaultKeyWidth; else break; + if (col <= 0) return; + col --; // rewind one... qkeycode = keys->qcode(row, col); unicode = keys->uni(row, col); // might need to repaint if two or more of the same keys. // should be faster if just paint one key even though multiple keys exist. bool need_repaint = FALSE; if (unicode == 0) { // either Qt char, or nothing if (qkeycode == Qt::Key_F1) { // toggle the pickboard if ( configdlg ) { delete (ConfigDlg *) configdlg; configdlg = 0; } else { configdlg = new ConfigDlg (); connect(configdlg, SIGNAL(setMapToDefault()), this, SLOT(setMapToDefault())); connect(configdlg, SIGNAL(setMapToFile(QString)), this, SLOT(setMapToFile(QString))); connect(configdlg, SIGNAL(pickboardToggled(bool)), this, SLOT(togglePickboard(bool))); connect(configdlg, SIGNAL(repeatToggled(bool)), this, SLOT(toggleRepeat(bool))); connect(configdlg, SIGNAL(reloadKeyboard()), this, SLOT(reloadKeyboard())); configdlg->showMaximized(); configdlg->show(); configdlg->raise(); |