--- 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 <qpe/qpeapplication.h>
 #include <qdirectpainter_qws.h>
 
+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;
