Browse Source

FV In ListBox mouse scroll function as Key Up or Key Down

Margers 10 months ago
parent
commit
e1cb188157

+ 2 - 1
packages/fv/src/dialogs.inc

@@ -3577,7 +3577,8 @@ END;
 {---------------------------------------------------------------------------}
 {---------------------------------------------------------------------------}
 PROCEDURE THistoryViewer.HandleEvent (Var Event: TEvent);
 PROCEDURE THistoryViewer.HandleEvent (Var Event: TEvent);
 BEGIN
 BEGIN
-   If ((Event.What = evMouseDown) AND (Event.Double)) { Double click mouse }
+   If ((Event.What = evMouseDown) AND (Event.Double)  { Double click mouse }
+       and ((Event.Buttons and (mbScrollUp or mbScrollDown))=0)){and not scroll}
    OR ((Event.What = evKeyDown) AND
    OR ((Event.What = evKeyDown) AND
    (Event.KeyCode = kbEnter)) Then Begin              { Enter key press }
    (Event.KeyCode = kbEnter)) Then Begin              { Enter key press }
      EndModal(cmOk);                                  { End with cmOk }
      EndModal(cmOk);                                  { End with cmOk }

+ 3 - 2
packages/fv/src/stddlg.pas

@@ -1022,7 +1022,8 @@ var
   K : pointer;
   K : pointer;
   Value : Sw_integer;
   Value : Sw_integer;
 begin
 begin
-  if (Event.What = evMouseDown) and (Event.Double) then
+  if (Event.What = evMouseDown) and (Event.Double) { double click and not scroll}
+      and ((Event.Buttons and (mbScrollUp or mbScrollDown))=0) then
   begin
   begin
     Event.What := evCommand;
     Event.What := evCommand;
     Event.Command := cmOK;
     Event.Command := cmOK;
@@ -1823,7 +1824,7 @@ procedure TDirListBox.HandleEvent(var Event: TEvent);
 begin
 begin
   case Event.What of
   case Event.What of
     evMouseDown:
     evMouseDown:
-      if Event.Double then
+      if Event.Double and ((Event.Buttons and (mbScrollUp or mbScrollDown))=0) then
       begin
       begin
    Event.What := evCommand;
    Event.What := evCommand;
    Event.Command := cmChangeDir;
    Event.Command := cmChangeDir;

+ 10 - 0
packages/fv/src/views.inc

@@ -3824,6 +3824,15 @@ BEGIN
          End;
          End;
      End;
      End;
      evMouseDown: Begin                               { Mouse down event }
      evMouseDown: Begin                               { Mouse down event }
+       if (Event.Buttons=mbScrollUp) then             { mouse scroll up}
+         begin
+           if Event.Double then MoveFocus(Focused+1) else MoveFocus(Focused+1);
+         end else
+       if (Event.Buttons=mbScrollDown) then           { mouse scroll down }
+         begin
+           if Event.Double then MoveFocus(Focused-1) else MoveFocus(Focused-1);
+         end else
+       begin
        Cw := Size.X DIV NumCols + 1;                  { Column width }
        Cw := Size.X DIV NumCols + 1;                  { Column width }
        Oi := Focused;                                 { Hold focused item }
        Oi := Focused;                                 { Hold focused item }
        MakeLocal(Event.Where, Mouse);                 { Localize mouse }
        MakeLocal(Event.Where, Mouse);                 { Localize mouse }
@@ -3864,6 +3873,7 @@ BEGIN
        If (Oi <> Ni) Then MoveFocus(Ni);              { Focus moved again }
        If (Oi <> Ni) Then MoveFocus(Ni);              { Focus moved again }
        If (Event.Double AND (Range > Focused)) Then
        If (Event.Double AND (Range > Focused)) Then
          SelectItem(Focused);                         { Select the item }
          SelectItem(Focused);                         { Select the item }
+       end;
        ClearEvent(Event);                             { Event was handled }
        ClearEvent(Event);                             { Event was handled }
      End;
      End;
    End;
    End;

+ 7 - 7
packages/ide/fpdebug.pas

@@ -2533,7 +2533,7 @@ begin
   ST^.GrowMode:=gfGrowHiX;
   ST^.GrowMode:=gfGrowHiX;
   Insert(ST);
   Insert(ST);
   GetExtent(R); R.Grow(-1,-1); Inc(R.A.Y,1); R.B.Y:=R.A.Y+1;
   GetExtent(R); R.Grow(-1,-1); Inc(R.A.Y,1); R.B.Y:=R.A.Y+1;
-  New(ST, Init(R, CharStr('Ä', MaxViewWidth)));
+  New(ST, Init(R, CharStr(''#$C4'', MaxViewWidth)));
   ST^.GrowMode:=gfGrowHiX;
   ST^.GrowMode:=gfGrowHiX;
   Insert(ST);
   Insert(ST);
   GetExtent(R); R.Grow(-1,-1); Inc(R.A.Y,2);Dec(R.B.Y,5);
   GetExtent(R); R.Grow(-1,-1); Inc(R.A.Y,2);Dec(R.B.Y,5);
@@ -3252,12 +3252,12 @@ procedure   TWatchesListBox.HandleEvent(var Event: TEvent);
 var DontClear: boolean;
 var DontClear: boolean;
 begin
 begin
   case Event.What of
   case Event.What of
-    evMouseDown : begin
-                   if Event.Double then
-                      Message(@Self,evCommand,cmEdit,nil)
-                   else
-                     ClearEvent(Event);
-                  end;
+    evMouseDown :
+      if Event.Double and ((Event.Buttons and (mbScrollUp or mbScrollDown))=0) {not scroll} then
+        begin
+          Message(@Self,evCommand,cmEdit,nil);
+          ClearEvent(Event);
+        end;
     evKeyDown :
     evKeyDown :
       begin
       begin
         DontClear:=false;
         DontClear:=false;

+ 3 - 1
packages/ide/wviews.pas

@@ -1211,13 +1211,15 @@ begin
 end;
 end;
 
 
 procedure TAdvancedListBox.HandleEvent(var Event: TEvent);
 procedure TAdvancedListBox.HandleEvent(var Event: TEvent);
+var eEvent : TEvent;
 begin
 begin
   case Event.What of
   case Event.What of
     evMouseDown :
     evMouseDown :
       if MouseInView(Event.Where) {and (Event.Double)} then
       if MouseInView(Event.Where) {and (Event.Double)} then
       begin
       begin
+        eEvent:=Event; {save for later use after inherited call}
         inherited HandleEvent(Event);
         inherited HandleEvent(Event);
-        if Event.Double then
+        if (eEvent.Double) and ((eEvent.Buttons and (mbScrollUp or mbScrollDown))=0) then
           if Range>Focused then
           if Range>Focused then
             SelectItem(Focused);
             SelectItem(Focused);
       end;
       end;