--- SDL_QWin.cc.org 2003-10-26 22:42:20.000000000 +0900 +++ SDL_QWin.cc 2003-11-16 00:00:49.000000000 +0900 @@ -31,6 +31,11 @@ #include #include +extern int fb_hwrot; +extern int fb_direct; +extern bool is_VGA_machine; +static int mouse_button_mode=1; + screenRotationT screenRotation = SDL_QT_NO_ROTATION; SDL_QWin::SDL_QWin(const QSize& size) @@ -100,52 +105,63 @@ } #else QPoint realPos; - switch (qteRotation_) { - case 0: - realPos = pos; - break; - case 1: - realPos.setX(pos.y()); - realPos.setY(fbSize_.height() - 1 - pos.x()); - break; - case 2: - realPos.setX(fbSize_.width() - 1 - pos.x()); - realPos.setY(fbSize_.height() - 1 - pos.y()); - break; - case 3: - realPos.setX(fbSize_.width() - 1 - pos.y()); - realPos.setY(pos.x()); - break; - }; - -// fprintf(stderr, "setMousePos: realPos(%d, %d)\n", realPos.x(), realPos.y()); - int borderWidth = (fbSize_.width() - my_image->width()) >> 1; - int borderHeight = (fbSize_.height() - my_image->height()) >> 1; - if ( rotation_ & 1 ){ - borderWidth = (fbSize_.height() - my_image->width()) >> 1; - borderHeight = (fbSize_.width() - my_image->height()) >> 1; - } - realPos.setX(realPos.x() - borderWidth); - realPos.setY(realPos.y() - borderHeight); - - switch (rotation_) { - case 0: - my_mouse_pos = realPos; - break; - case 1: - my_mouse_pos.setX(realPos.y()); - my_mouse_pos.setY(my_image->height() - 1 - realPos.x()); - break; - case 2: - my_mouse_pos.setX(my_image->width() - 1 - realPos.x()); - my_mouse_pos.setY(my_image->height() - 1 - realPos.y()); - break; - case 3: - my_mouse_pos.setX(realPos.y());//my_image->width() - 1 - realPos.y()); - my_mouse_pos.setY(my_image->height() - realPos.x()); - break; + if (is_VGA_machine) { + realPos = pos; + my_mouse_pos = realPos; + }else { + switch (qteRotation_) { + case 0: + realPos = pos; + break; + case 1: + realPos.setX(pos.y()); + realPos.setY(fbSize_.height() - 1 - pos.x()); + break; + case 2: + realPos.setX(fbSize_.width() - 1 - pos.x()); + realPos.setY(fbSize_.height() - 1 - pos.y()); + break; + case 3: + realPos.setX(fbSize_.width() - 1 - pos.y()); + realPos.setY(pos.x()); + break; + }; + + // fprintf(stderr, "setMousePos: realPos(%d, %d)\n", realPos.x(), realPos.y()); + + int borderWidth = (fbSize_.width() - my_image->width()) >> 1; + int borderHeight = (fbSize_.height() - my_image->height()) >> 1; + if ( rotation_ & 1 ){ + borderWidth = (fbSize_.height() - my_image->width()) >> 1; + borderHeight = (fbSize_.width() - my_image->height()) >> 1; + } + realPos.setX(realPos.x() - borderWidth); + realPos.setY(realPos.y() - borderHeight); + + fprintf(stderr, "setMousePos: realPos2(%d, %d)\n", realPos.x(), realPos.y()); + + switch (rotation_) { + case 0: + my_mouse_pos = realPos; + break; + case 1: + my_mouse_pos.setX(realPos.y()); + my_mouse_pos.setY(my_image->height() - 1 - realPos.x()); + break; + case 2: + my_mouse_pos.setX(my_image->width() - 1 - realPos.x()); + my_mouse_pos.setY(my_image->height() - 1 - realPos.y()); + break; + case 3: + my_mouse_pos.setX(realPos.y());//my_image->width() - 1 - realPos.y()); + my_mouse_pos.setY(my_image->height() - realPos.x()); + break; + } } + +// fprintf(stderr, "setMousePos: mymousePos(%d, %d)\n", (short)my_mouse_pos.x(), (short)my_mouse_pos.y()); + #endif } @@ -168,18 +184,14 @@ void SDL_QWin::mousePressEvent(QMouseEvent *e) { mouseMoveEvent(e); Qt::ButtonState button = e->button(); - SDL_PrivateMouseButton(SDL_PRESSED, - (button & Qt::LeftButton) ? 1 : - ((button & Qt::RightButton) ? 2 : 3), + SDL_PrivateMouseButton(SDL_PRESSED,mouse_button_mode, my_mouse_pos.x(), my_mouse_pos.y()); } void SDL_QWin::mouseReleaseEvent(QMouseEvent *e) { setMousePos(e->pos()); Qt::ButtonState button = e->button(); - SDL_PrivateMouseButton(SDL_RELEASED, - (button & Qt::LeftButton) ? 1 : - ((button & Qt::RightButton) ? 2 : 3), + SDL_PrivateMouseButton(SDL_RELEASED,mouse_button_mode, my_mouse_pos.x(), my_mouse_pos.y()); my_mouse_pos = QPoint(-1, -1); } @@ -528,9 +540,18 @@ case Qt::Key_F7: scancode = SDLK_F7; break; case Qt::Key_F8: scancode = SDLK_F8; break; case Qt::Key_F9: scancode = SDLK_F9; break; - case Qt::Key_F10: scancode = SDLK_F10; break; - case Qt::Key_F11: scancode = SDLK_F11; break; - case Qt::Key_F12: scancode = SDLK_F12; break; + case Qt::Key_F10: + scancode = SDLK_F10; + mouse_button_mode=1; + break; + case Qt::Key_F11: + scancode = SDLK_F11; + mouse_button_mode=3; + break; + case Qt::Key_F12: + scancode = SDLK_F12; + mouse_button_mode=2; + break; case Qt::Key_F13: scancode = SDLK_F13; break; case Qt::Key_F14: scancode = SDLK_F14; break; case Qt::Key_F15: scancode = SDLK_F15; break;