diff options
Diffstat (limited to 'UMain.pas')
| -rw-r--r-- | UMain.pas | 31 |
1 files changed, 22 insertions, 9 deletions
@@ -1461,24 +1461,33 @@ begin else ActivateCommandLine(Key); end; } GDK_Down : begin - KeyHandled := True; + KeyHandled := False; if [ssCtrl] = Shift then begin Accept := False; CommandLineCombo.Entry.SetFocus; CommandLineCombo.Entry.SelectAll; + KeyHandled := True; end else begin if QuickFind and (Shift = []) then begin - QuickFindSendKey(LeftPanel, Key); - Accept := False; - end else if Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) = AListView.Items.Count - 1) then Accept := False; + KeyHandled := QuickFindSendKey(LeftPanel, Key); + Accept := not KeyHandled; + end; + if not KeyHandled then begin + KeyHandled := True; + if Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) = AListView.Items.Count - 1) then Accept := False; + end; end; end; GDK_Up : begin - KeyHandled := True; + KeyHandled := False; if QuickFind and (Shift = []) then begin - QuickFindSendKey(LeftPanel, Key); - Accept := False; - end else if Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) = 0) then Accept := False; + KeyHandled := QuickFindSendKey(LeftPanel, Key); + Accept := not KeyHandled; + end; + if not KeyHandled then begin + KeyHandled := True; + if Assigned(AListView.Selected) and (AListView.ConvertToSorted(AListView.Selected.Index) = 0) then Accept := False; + end; end; GDK_Page_Up, GDK_Page_Down: begin KeyHandled := True; @@ -2910,7 +2919,11 @@ begin NewText := Entry.Text; end else if (Key = GDK_Down) or (Key = GDK_Up) then begin - NewText := Entry.Text; + if Length(Entry.Text) = 0 then begin + DeactivateQuickFind(LeftPanel); + Result := False; + Exit; + end else NewText := Entry.Text; end else begin s := UTF8Encode(WideChar(KeyValToUnicode(Key))); if (Length(s) = 0) or (s = #0) then Exit; |
