mate-desktop / caja

Caja, the file manager for the MATE desktop
https://mate-desktop.org/
Other
263 stars 144 forks source link

Spring loaded folders (to be ported from Nautilus/Nemo or from a fork of Caja) #1095

Open PacmanTetris opened 5 years ago

PacmanTetris commented 5 years ago

This is a feature request. It appears that support for spring loaded folders (which are a standard feature in Mac OS and now also in Nautilus/Gnome Files and Nemo) had already been implemented in a fork of Caja but it was never merged into the master branch. Unfortunately that fork (https://github.com/aubade/mate-file-manager) seems not to have been updated for quite some time, so importing the relevant code for spring loaded folders might prove a not so straightforward task (I have no idea). But even if some adaptations were needed, it would certainly be very much worth the effort, as spring loaded folders are a very useful and popular feature. Could someone please implement spring loaded folders in Caja's master branch? Thanks

lukefromdc commented 5 years ago

What are spring loaded folders?

lukefromdc commented 5 years ago

OK, found a description of this from https://github.com/aubade/mate-file-manager/commit/d6dad748b047e777876c0ba0ec1952ce24340a17

Add spring-loaded folders for both Spatial and Navigation modes in ic…

"Spatial mode: pops up a folder when hovered over during a drag, and closes all folders opened by this after the drag operation finishes. Navigation mode: Moves to folder on hover, stays on final destination after the drag operation finishes."

Though I still don't know the use case

PacmanTetris commented 5 years ago

Though I still don't know the use case

The use case is that when you want to copy/move something into a deeply nested sub-folder, after grabbing that item (keeping the Left Click pressed) you hover the mouse pointer over the parent/ancestor folder that contains the target folder. After 1 second the folder will automatically open, and you do the same thing with one of its sub-folders, and so on, until you reach the wanted destination and drop that item there. This feature will save you from having to use the Righ Click menu or the keyboard to select the item for copy/move. It seems that this feature is becoming mainstream. After Mac OS, it is being implemented in other file managers (for instance it has already been implemented in Nautilus/Files and Nemo).

lukefromdc commented 5 years ago

Thanks for letting us know what this is and how it is used.

I will let other team members decide what to do with this. If it exists in Nemo, someone could port over those commits if they decide to pursue this and would not have to code from scratch. I would not be a good candidate for testing this as I have never seen anything like it (and never owned a Mac). If I tried to do this myself I would surely mess it up in some way because of that.

PacmanTetris commented 5 years ago

Yes, please, someone port this feature from Nautilus/Files or from Nemo.

lukefromdc commented 5 years ago

@monsta, @raveit65? I have my hands full with the bugfixes and testing PR's right now

raveit65 commented 5 years ago

@lukefromdc me too

monsta commented 5 years ago

We can think about it after 1.22.

L-U-T-i commented 3 years ago

I've ported the patch from aubade@d6dad74 to this patch (more or less the same, just some minor differences despite approx. 8 years time has passed in between...): caja-1.25-add-spring-loaded-folders.patch.txt and rebuilt for CentOS 8.3.

It should work like that (according to the text published there): Spatial mode: pops up a folder when hovered over during a drag, and closes all folders opened by this after the drag operation finishes. Navigation mode: Moves to folder on hover, stays on final destination after the drag operation finishes.

As much as I've tested, folders are popped up, but not closed after the drag operation finishes, in spatial mode (when org.mate.caja.preferences always-use-browser is set to false in dconf). Navigation mode (org.mate.caja.preferences always-use-browser is set to true in dconf) seems to work as expected.

L-U-T-i commented 3 years ago

I've missed there was another patch to "Fix close-on-snap to only close spring-loaded windows.". They were both a part of Caja PR #110, in fact.

So here is another patch, combining both: caja-1.25-add-spring-loaded-folders.patch-2.txt

The popped up windows still don't close after a drag operation though...

lukefromdc commented 3 years ago

An old (cr) apple patent on spring-loaded folders was filed in 2000 https://arxiv.org/pdf/1404.7121 so it should now be expired. At any rate, Nautlus and Nemo apparently got away with defying it prior to expiration, due presumably to lack of reachable assets

On 3/27/2021 at 12:31 AM, "L-U-T-i" @.***> wrote:

I've missed there was another patch to "Fix close-on-snap to only close spring-loaded windows.". They were both a part of Caja PR #110, in fact.

So here is another patch, combining both: caja-1.25-add-spring-loaded-folders.patch- 2.txt

The popped up windows still don't close after a drag operation though...

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/mate-desktop/caja/issues/1095#issuecomment- 808603760