diff options
| author | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2008-11-13 20:47:32 +0100 |
|---|---|---|
| committer | Tomas Bzatek <tbzatek@users.sourceforge.net> | 2008-11-13 20:47:32 +0100 |
| commit | 298455e6b33b0557eeec9c9d8de9a0a9706a2721 (patch) | |
| tree | c65de0455c398b20284824021fb34862bfa07e2c | |
| parent | 57d38a71b9206ca14a8caec38d57ed06d15290bf (diff) | |
| download | tuxcmd-298455e6b33b0557eeec9c9d8de9a0a9706a2721.tar.xz | |
Show file popup menu after delay in right mouse select mode
| -rw-r--r-- | UMain.pas | 31 |
1 files changed, 30 insertions, 1 deletions
@@ -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; |
