mate-desktop / caja

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

Problem when cursor moved betwen columns with compact view, and rows with icon view #671

Closed sc0w closed 7 years ago

sc0w commented 7 years ago

caja 1.16.1

with compact view, on a folder with two or more columns, the keys up and down arrows don't work properly:

I expected go to the next/previous column

It works as expected on caja 1.8.2 (debian jessie)

Debian bug:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=817061

raveit65 commented 7 years ago

In compact view i use the up button on last folder/file and down button on first folder/file and it works as expected in fedora 24 with caja-1.17.0.

sc0w commented 7 years ago

currently, I have tested with the latest changes on the master branch, and same problem

@lukefromdc can you move between columns on the compact view, using the keys up or down?

lukefromdc commented 7 years ago

Yes, that works (on 1.17),arrow keys work for moving both up/down(rows) and left/right(columns)

sc0w commented 7 years ago

I think I don't explain me correctly

In compact view i use the up button on last folder/file and down button on first folder/file and it works as expected in fedora 24 with caja-1.17.0.

no, to reproduce:

use the down button on last folder/file, and it must go to the next column (don't works for me)

and up button on first folder/file, and it must go to the previous column (don't works for me)

lukefromdc commented 7 years ago

I was unaware it was even expected to advance to the next column. Does any version of Caja do that? Again, this is something that is not part of my normal workflow so I don't know from my own experience what the expected behavior is.

sc0w commented 7 years ago

@raveit65 @lukefromdc

now, with this two videos, I hope you can confirm the bug

I holding the keys up and down

the expected: caja 1.8.2 gtk2 (debian jessie)

https://mega.nz/#!MRBFmTBB!jTio2B4j8s5W3z-KsKqKHHtzax08uclUBpgc7GARH9U

the bug: caja with the latest changes on the master branch

https://mega.nz/#!Ic5SiZJL!7pVB63vDz9IPlVLaSkNgdI3Fw7lWIp6BpkOaWjv2PIc

lukefromdc commented 7 years ago

I was unable to download the videos (they never came up on right-click menu at 32.3kBs, wget can't find them, site is js protected/no text without it) but I can confirm that the cursor does not advance to the next row on reaching bottom with GTK3. I cannot easily install a GTK2 version to test it but the described behavior is easy enough to imagine. Sounds like a GTK3 issue if that is when it changed.

The Debian bug report mentions this worked before, sorry I didn't see that

raveit65 commented 7 years ago

no, to reproduce: use the down button on last folder/file, and it must go to the next column (don't works for me) and up button on first folder/file, and it must go to the previous column (don't works for me)

Why not using left/right buttons to switch between columns? For me this is a matrix where i can navigate with up/down/left/right buttons to every folder/file. This is working well here. I can't remember any more how this was with gtk2 build and also 1.8 is very old for me :smile: , but that it is different to gtk2 build seems to be the only issue.

raveit65 commented 7 years ago

Indeed with caja- 1.14 in fedora 23 the behaviour is like you did described. With pressing the down button on last file/folder at bottom i can navigate to next column at top. Maybe this is gtk+ related. I will check how it works with nautilus/nemo.

lukefromdc commented 7 years ago

Compact view was removed from Nautilus, but in Nemo the cursor does advance to the next row on reaching bottom. This suggests one or more Nautilus commits between 2.32(caja forked) and 3.4(Nemo forked) should fix this.,

raveit65 commented 7 years ago

yeah, i got same results.

sc0w commented 7 years ago

I can confirm the bug on caja 1.10.3 gtk2

lukefromdc commented 7 years ago

On GTK2 as well? This looks like the problem came in between 1.8 and 1.10 regardless of GTK version. I don't see a file in src/file-manager specific to compact view so this must be a layout for icon-view. BTW, the down arrow keys don't advance a mulit-column icon view to the next column at end of column either, did they do that in 1.8? I now see the Debian report showing a report against 1.12.4 for the problem in compact view.

If this is not supposed to work in a normal icon view, what made it work differently in compact view? If it is supposed to work in icon-view, we need to look at changes to src/file-manager/fm-icon-view and related files plus anything relating to keyboard inputs to Caja between 1.8 and 1.10, Nemo won't have the fix because the problem came to Caja after the fork.

lukefromdc commented 7 years ago

fm-icon-view.c got only a change to audio previewing https://github.com/mate-desktop/caja/commit/54404f04a0e85c08a11f1a7557d1e0bddb34e036 between Sep 2013 and Sep 2015. After that, a session manager change and safer string handling. Thus, keyboard input in general may be the issue but I am by no means sure

raveit65 commented 7 years ago

I can confirm the bug on caja 1.10.3 gtk2

Are you sure? With caja-1.16.1 (gtk2) in fedora 24 i don't see the issue.

lukefromdc commented 7 years ago

Can someone test 1.16.0 on GTK2 and see what happens with this?

sc0w commented 7 years ago

@lukefromdc

If this is not supposed to work in a normal icon view, what made it work differently in compact view?

thanks

interesting

I discovered a new bug:

with icon view, with the keys left and right, I can't go to the next and previous rows

I can confirm this new bug on same versions: 1.10.3 and the latest caja version

With 1.8.2 it works as expected

lukefromdc commented 7 years ago

looks like these two bugs (icon view and compact view) are the same bug

raveit65 commented 7 years ago

again, i can't confirm the issue with 1.16.1 (gtk2).

lukefromdc commented 7 years ago

I can confirm neither end of row nor end of column works in either icon or compact view with 1.17

sc0w commented 7 years ago

I can confirm the bug on caja 1.10.3 gtk2

Are you sure?

@raveit65

yes, on a virtual machine, I have a old version of debian testing amd64

lukefromdc commented 7 years ago

If this is GTK3-only, we can look at the Nautilus commits 2.32 to 3.4 for this. If not we've got some digging to do

lukefromdc commented 7 years ago

Any chance this problem on GTK2 is limited to virtual machines? I've seen a LOT of those kind of bug reports

sc0w commented 7 years ago

@lukefromdc

I don't know

The debian jessie with caja 1.8.2, that works as expected, I have tested on a virtual machine too

raveit65 commented 7 years ago

In a virtual machine (qemu-kvm) it works with caja-1.16.1 in compact view. In iconview i see no different to behaviour of gtk3 version.

lukefromdc commented 7 years ago

I found that both rows and columns were affected in both icon and compact view

kn00tcn commented 7 years ago

fine for me, i guess fedora is gtk2? i think i can tell... gtk2 buttons are short, tooltips have no padding, while gtk3 is fatter feeling (terminal looks like gtk3)

icon view: left right arrows change rows as expected since the list is ordered horizontally compact view: up down arrows change columns, list is ordered vertically

@raveit65 how can it be a matrix when it's alphabetical/numeric sort, the actual 'next' file after the bottom of one column is at the top of the next column, it's not arbitrary like desktop icons

luke, i'm concerned about your awareness of certain things in multiple threads, guess i'll keep pointing out usability patterns or download things for you (some of your browsing techniques are very admirable, just dont forget to go through product/service/comparison lists on wiki, mess around with the interface of windows & OSX on someone else's computer, pretty much intentionally gain awareness of everything if you have the time, if not then maybe i should make some reference material)

eventually i want to start making commits to the project... i've been on the edge of ditching mate a couple times out of frustration, which feels awful since it's the best choice when it works

lukefromdc commented 7 years ago

Fortunately the only thing I am the primary maintainer of is the BlackMATE theme, though I've done a lot of work on caja and mate-panel. Much of my focus after my initial work to get custom theming support for the panel has been on keeping the changes GNOME made in GTK 3 from putting an end to using MATE with GTK3 at all, which I considered a threat to the viablity of the DE I measure all others by When GNOME started breaking things I used, in the spirt of direct action I put in the time to unbreak them, and shared the work so it would not have to be repeated by someone else. All that began with porting the UbuntuStudio theme to GTK3 when Ubuntu did not want to do that back in 2011.

My own computer use is in a high security environment where the use of closed software or especially Windows would be deemed a threat to the people I work with in social activism. This is due to the presence in the (encrypted) filesystem of raw video clips in a country known for attempts to recover files from journalists and especially activist journalists. Back in the Bush years when all the news came out of things like NSA keys in Windows, lots of people switched to mostly GNOME 2 linux distros and never looked back. This we should all assume I will never have a strong understanding of Windows (especially post-XP which I've never used at all), Mac, iOS, or Android. My comparison benchmark is circa 2008 GNOME 2.

What I would like to have, if anyone ever wrote one, is a full list of all the features of the original GNOME 2 environment, at least for Nautilus and the GNOME 2 panel and applets. That would be a treasure for fixing bugs and hunting broken features. No amount of testing in the workflows of a team the size of this one can match that.

The aggressive blocking of ads and trackers in my browsers breaks the majority of ad-monetized websites, I let them go because the priority is staying out of commerical databases containing hardware information that could be purchased by adversaries and combined with other databases. Staying out of those databases is why I will not enable JS on an unknown website. BTW, Archive.org accepts video uploads, is not ad-supported at all, and best of all offers your original file (not a recompressed derivative) for download. Only their own JS is used to play on their site and you can download without even that if you need to. Their security is very good, keeping everything in-house, even though rejecting CDNs and cloudflare means handling DDOS attacks themselves.

Keep in mind, Javascript is a full features programming language, with enough power to write the original gnome-shell and Cinnamon in. That's a lot of power to give to an unknown website.

kn00tcn commented 7 years ago

would methodically making videos of every click, setting, etc per gnome2 application & comparing to mate not be enough?

people familiar with gnome2 should have run into most regressions by now, but i dont think a goal of matching gnome2 is the right one

mate should simply strive to be the best desktop power user environment (for example: it should not get in the way or obfuscate like gnome3, it should have gui options instead of being buried in terminal commands or dconf... i dont even remember all the tweaks i did at this point, it needs search in the main menu as the current situation is so fragmented with mint having a fancy menu that ubuntu ported from them yet it's not quite right when fedora ported it, it badly needs to separate caja into multiple processes so that merely single windows can freeze or crash without taking down the rest, power user also means well designed so a side effect will be casual users having a good time as well)

js is powerful yes, but not exactly system level like flash or java are/were, mega nothing close to unknown (unless you mean untrustable)

archive.org is great, it's just unexpected to be used as a personal user file host, it also may be a problem if tons of people decide to start using it

for other OS experimenting, i'm just thinking of somehow having an extra offline machine, maybe at another location, pretty much a toy

or alternatively, collect videos that go through these OSs (such content actually sounds like a good idea that i could attempt)

lukefromdc commented 7 years ago

Like everyone else here, I have limited time and very, very limited funds, plus no landline Internet access at home. Travelling is out of the question, as it putting in a lot of extra work to study Windows and Mac. I will work on the things that actually make good use of my time and things like copying Mac or Windows features GNOME 2 never had for other team members or other projects. I cannot take on new obligations at this time

EDIT: What I meant about Mega is that they must be heavily monetized to cover their bandwidth and MegaUpload (I am presuming same owners) was known for aggressive ad-pushing and very objectionable behavior (delays for ads to show before showing the file etc) before the US government attack on their founder. Without time to investigate what their JS does they are not permitted to run code on my box.

lukefromdc commented 7 years ago

I just found a related issue in trying to find a fix for this. In Nemo, scrolling off the end of a column by arrrow keys puts you on the next column but off the end of the row does not put you on the next row.

Also in Nemo, mousewheel scrolling will scroll HORIZONTALLY if the scrollbar is showing at the bottom (it will be for horizontal scrolling only). Apparently this was the expected behavior in old Nauitlus, broke early in the GTK 3.2 cycle, was fixed-and then Nautilus dropped compact view. Nemo brought it back and the mouse scrolling works-but has attracted a few complaints as well about being unnatural.

I set up PR https://github.com/mate-desktop/caja/pull/674 applying the fix from Nautilus that made it into Nemo for mousewheel scrolling in compact view, but have no idea if everyone else wants to merge this or not. What do you all think? Tested and works in GTK 3.22 but no idea if this is still considered the preferred behavior.

kn00tcn commented 7 years ago

my first comment in this thread stated

icon view: left right arrows change rows as expected since the list is ordered horizontally compact view: up down arrows change columns, list is ordered vertically

so the concept of 'next row' or 'next column' or 'mousewheel' is entirely dependent on the actual sort order

since compact view is a vertical (max height) not horizontal (max-width) list, it is correct to scroll horizontally (EDIT: nevermind about OSX)

if gtk3 has no working wheel in compact view, it needs to scroll horizontally like gtk2 does

lukefromdc commented 7 years ago

I did a GTK2 test build of Caja 1.17.0 from the dev-scroll branch earlier today-and found that arrow key scrolling won't advance to the next column on GTK 2 either. Pretty sure this is also true for advancing to next column at end of row too. Thus the original issue exists on both GTK2 and GTK3 as of 1.17

monsta commented 7 years ago

I don't remember whether it actually worked in some version, maybe I didn't try it in 1.8. Anyway, I confirm it doesn't work in current git master build with GTK+2.

kn00tcn commented 7 years ago

works in f24's gtk2 (i think) 1.16.1, so it's probably something new or removed in 1.17

lukefromdc commented 7 years ago

I just found that scrolling to the bottom in compact view or to the right in icon view worked fine in my GTK3 caja 1.17 master build on Oct 10 but not on Oct 12. In between in Master's timeline and in my changelogs are only these two commits:

https://github.com/mate-desktop/caja/commit/99a9c6e7c6a67484c029518bdb31160469627701 Fix accessible object inherritance when used with GTK 3

https://github.com/mate-desktop/caja/commit/c27cc572f8f33bdfbbc3dfea8786d05a1818b910 EelLabeledImageButton classes do not need a custom accessible object

Odd that these would have any effect on GTK2 as they were meant to be GTK3-only though, unless something ELSE is wrong in GTK2.

monsta commented 7 years ago

Now I'm confused. Just built git master on another system with GTK+2, up/down arrows move to another column. So it works. :confused:

This is LMDE 2, based on Debian Jessie, with GTK+ 2.24.25.

It didn't work in my home system: Mint 18, based on Ubuntu 16.04, with 2.24.30.

monsta commented 7 years ago

Just found the comment I missed previously, about the icon view:

with icon view, with the keys left and right, I can't go to the next and previous rows

So this is also working here with 2.24.25, and I recall it didn't work for me with 2.24.30.

sc0w commented 7 years ago

I can confirm with caja 1.8.2 and gtk 2.24.25 it works (debian jessie virtual machine)

and with caja 1.10.3 and gtk 2.24.28 it doesn't work (old debian testing virtual machine)

lukefromdc commented 7 years ago

Looks like two different problems then: an old on in GTK2, and a newer one in GTK3

sc0w commented 7 years ago

deprecated functions, maybe?

monsta commented 7 years ago

Out of curiosity I've downloaded Slackware ISO from here and booted it in VirtualBox. GTK+2 is 2.24.30, and it works fine there. Looks like something's wrong with GTK+2 patches in both Debian and Ubuntu.

monsta commented 7 years ago

Just in case you'd want to try it as well, it's this image, and login and password for live session are both simply "live".

lukefromdc commented 7 years ago

One solution for Debian and Ubuntu is this: They already use GTK3, so all we've got to do is fix the bug that came in with the accessability work before releasing 1.18

sc0w commented 7 years ago

on nemo 3.0.6 (compact and icon view) and nautilus 3.22.1 (only icon view, the compact view was deleted) it works for me

where is it on caja code?

https://github.com/mate-desktop/caja/blob/master/src/caja-window.c#L430

and

https://github.com/mate-desktop/caja/blob/master/src/caja-window.c#L458

?

I am not sure

lukefromdc commented 7 years ago

Nemo and Nautilus are both using GTK3, and in Caja too this worked in GTK3 up to accessabilty commits merged in 1.17 as above in my tests

monsta commented 7 years ago

These commits were also released in 1.16.1. I just checked Ubuntu 16.10 which still has 1.16.0, and it works there (GTK+ is 3.20.9 though). Maybe I'll try building 1.16.1 to test there...

monsta commented 7 years ago

Looks like we can use this: https://git.gnome.org/browse/nautilus/commit/?id=40be4b85f51fc7b192ef7421b2ede27954997cc8

lukefromdc commented 7 years ago

https://github.com/mate-desktop/caja/pull/699 is ready for testing, it is an application of https://git.gnome.org/browse/nautilus/commit/?id=40be4b85f51fc7b192ef7421b2ede27954997cc8 and worked in my test on Debian Unstable with GTK 3.22