summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2008-11-13 20:47:32 +0100
committerTomas Bzatek <tbzatek@users.sourceforge.net>2008-11-13 20:47:32 +0100
commit298455e6b33b0557eeec9c9d8de9a0a9706a2721 (patch)
treec65de0455c398b20284824021fb34862bfa07e2c
parent57d38a71b9206ca14a8caec38d57ed06d15290bf (diff)
downloadtuxcmd-298455e6b33b0557eeec9c9d8de9a0a9706a2721.tar.xz
Show file popup menu after delay in right mouse select mode
-rw-r--r--UMain.pas31
1 files changed, 30 insertions, 1 deletions
diff --git a/UMain.pas b/UMain.pas
index f8af9c5..e4e8c54 100644
--- a/UMain.pas
+++ b/UMain.pas
@@ -181,10 +181,11 @@ type
procedure PasswordButtonClick(Sender: TObject);
procedure miPathBoxCopyPathClick(Sender: TObject);
procedure miCopyNamesClick(Sender: TObject);
+ procedure RightMouseSelectPopupTimerTimer(Sender: TObject);
private
LeftLastFocused, Editing, QuickFind, RedrawLeftInactive, RedrawRightInactive, StartUp, LeftTabPopup: boolean;
LastWidth, RunningEscSensitive: integer;
- InplaceEditTimer, InactiveItemsTimer, RebuildListViewsTimer: TGTKTimer;
+ InplaceEditTimer, InactiveItemsTimer, RebuildListViewsTimer, RightMouseSelectPopupTimer: TGTKTimer;
InplaceEditItem: TGTKListItem;
SavedCmdLine: string;
LastMounterButton: TGTKButton;
@@ -310,6 +311,9 @@ begin
RebuildListViewsTimer := TGTKTimer.Create(Self);
RebuildListViewsTimer.Enabled := False;
RebuildListViewsTimer.OnTimer := RebuildListViewsTimerTimer;
+ RightMouseSelectPopupTimer := TGTKTimer.Create(Self);
+ RightMouseSelectPopupTimer.Enabled := False;
+ RightMouseSelectPopupTimer.OnTimer := RightMouseSelectPopupTimerTimer;
MounterBarHandleBox := TGTKHandleBox.Create(Self);
MounterBarHandleBox.SetSizeRequest(10, -1);
MainVBox.AddControlEx(MounterBarHandleBox, False, True, 0);
@@ -2780,6 +2784,8 @@ begin
Item.RedrawRow;
UpdatePanelInfoDown(Sender = LeftListView);
PanelRightMouseInProgress := True;
+ RightMouseSelectPopupTimer.Interval := ConfQuickRenameDelay;
+ RightMouseSelectPopupTimer.Enabled := True;
end;
end;
end else
@@ -2804,6 +2810,7 @@ begin
if (Item <> nil) and (Item.Data <> nil) and (not Item.Selected) then begin
Data := PDataItem(Item.Data);
if not Data^.UpDir then begin
+ RightMouseSelectPopupTimer.Enabled := False;
Data^.Selected := PanelRightMouseSelMode;
Item.Selected := True;
Item.SetCursor(0, False, not Application.GTKVersion_2_2_0_Up, 0.5, 0);
@@ -2813,6 +2820,27 @@ begin
end else PanelRightMouseInProgress := False;
end;
+procedure TFMain.RightMouseSelectPopupTimerTimer(Sender: TObject);
+var AListView: TGTKListView;
+ Data: PDataItem;
+begin
+ RightMouseSelectPopupTimer.Enabled := False;
+ if LeftListView.Focused then AListView := LeftListView else
+ if RightListView.Focused then AListView := RightListView else
+ Exit;
+ if (AListView.Selected <> nil) then begin
+ Data := AListView.Selected.Data;
+ // Explicitly select the item before showing the popup menu
+ if (Data <> nil) and (not Data^.UpDir) then begin
+ Data^.Selected := True;
+ AListView.Selected.RedrawRow;
+ UpdatePanelInfoDown(LeftListView.Focused);
+ FilePopupMenu.PopUp;
+ end;
+ end;
+end;
+
+
procedure TFMain.InplaceEditTimerTimer(Sender: TObject);
var LeftPanel: boolean;
ListView: TGTKListView;
@@ -4440,6 +4468,7 @@ var AListView: TGTKListView;
LeftLV, b: boolean;
begin
PanelRightMouseInProgress := False;
+ RightMouseSelectPopupTimer.Enabled := False;
if Button = mbLeft then begin
AListView := Sender as TGTKListView;
LeftLV := AListView = LeftListView;