Browse Source

* fix for 3194: Use mouse to exit output screen

marco 20 years ago
parent
commit
517be15bc4
1 changed files with 45 additions and 17 deletions
  1. 45 17
      ide/fpmdebug.inc

+ 45 - 17
ide/fpmdebug.inc

@@ -80,6 +80,7 @@ end;
 
 procedure TIDEApp.DoUserScreen;
 var Event : TEvent;
+    ev    : TMouseEvent;
     Clear : Boolean;
 begin
   if UserScreen=nil then
@@ -91,31 +92,55 @@ begin
   ShowUserScreen;
 
   InitKeyBoard;
+  if UseMouse Then
+    InitMouse;
   repeat
     repeat
       Drivers.GetKeyEvent(Event);
-      if Event.What=evNothing then
-        GiveUpTimeSlice;
-    until Event.What=evKeyboard;
-    Clear:=true;
-    if not UserScreen^.CanScroll then
+      if (Event.What and EvKeyboard)=evNothing then
+        Begin
+          If UseMouse Then
+            Begin  
+              Drivers.GetMouseEvent(Event);
+              if (Event.What and evMouse)=evNothing then
+               GiveUpTimeSlice
+              else
+                Event.what:=evMouse;
+            End;
+        End
+      else
+        Event.what:=evkeyboard;
+    until Event.What in [evKeyboard,evmouse];
+    if event.what=evmouse then
       Clear:=false
     else
-      case Event.keycode of
-        kbPgUp : UserScreen^.Scroll(-20);
-        kbPgDn : UserScreen^.Scroll(20);
-        kbUp : UserScreen^.Scroll(-1);
-        kbDown : UserScreen^.Scroll(1);
-        kbHome : UserScreen^.Scroll(-1024);
-        kbEnd : UserScreen^.Scroll(+1024);
-      else
-         Clear:=false;
+      begin
+        Clear:=true;
+        if not UserScreen^.CanScroll then
+          Clear:=false
+       else
+        case Event.keycode of
+          kbPgUp : UserScreen^.Scroll(-20);
+          kbPgDn : UserScreen^.Scroll(20);
+          kbUp : UserScreen^.Scroll(-1);
+          kbDown : UserScreen^.Scroll(1);
+          kbHome : UserScreen^.Scroll(-1024);
+          kbEnd : UserScreen^.Scroll(+1024);
+        else
+           Clear:=false;
+        end;
       end;
     if Clear then
       ClearEvent(Event);
-  until Event.what=evKeyboard;
+  until Event.what in [evKeyboard,evmouse];
   while (Keyboard.PollKeyEvent<>0) do
-   Keyboard.GetKeyEvent;
+          Keyboard.GetKeyEvent;
+  if UseMouse Then
+    Begin
+     while PollMouseEvent(Ev) do
+       GetMouseEvent(ev);
+     donemouse;
+    End;
   DoneKeyboard;
 
   ShowIDEScreen;
@@ -258,7 +283,10 @@ end;
 
 {
   $Log$
-  Revision 1.9  2005-02-14 17:13:18  peter
+  Revision 1.10  2005-04-04 03:59:13  marco
+   * fix for 3194: Use mouse to exit output screen
+
+  Revision 1.9  2005/02/14 17:13:18  peter
     * truncate log
 
   Revision 1.8  2005/01/08 11:43:18  florian