GPL3+ is a deprecated SPDX identifier.[0] The meson and about dialog say
GPL 3.0, so that should also appear on the appdata.
[0] https://spdx.org/licenses/
Currently, in the bookmark popup menu, the option to remove the bookmark is named "Remove".
However, this may cause confusion to a new user/a user with weak knowledge about how the bookmark section whether the "Remove" option in the popup menu means removing the entry or removing the contents of the folder in the bookmark.
To fix this, the option "Remove" has to be changed to "Remove from Bookmarks".
Closes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2125
for files that were still not known to nautilus because they were in
the midst of being added to Nautilus. This happens when eg. inotify
fires two consecutive NEW + CHANGE events for a new file, and it's
important to handle the CHANGE event as the file may have changed
its properties with respect the ones reported at the time the NEW
event fired.
A case this happens is for mountpoint directories of
removable devices, as seen in the referenced bug below.
We now queue CHANGE events received for files unknown to Nautilus only
when the parent folder is currently adding new files. When the folder
finish adding the new files, we then process the list of queued files.
If there are still files unknown to Nautilus in this list, they will
be ignored as before.
https://bugzilla.gnome.org/show_bug.cgi?id=703179
Issue #1576
Due to GtkPopover now being a child of the window, instead of setting an
attach widget we need to pass it the allocation of the tab, with the
origin coordinates translated to the window coordinate space.
Also use double instead of int when appropriate and replace GdkEvent
usage with event controller method to get modifier status.
Closes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2101
In GTK3, the tab label allocation was given in coordinates which were
relative to the parent widget's allocation.
In GTK4 the allocation is for the widget's own coordinates instead.
Translate the event coordinates accordingly to make this logic work
again. Also, test for the lower limit in addition to the upper limit.
By giving the --device=dri permission, Nautilus can access
the GPU. This wasn't a big deal with GTK3, but on GTK4 that
enabled hardware-accelerated rendering via OpenGL, and it
makes a noticeable difference in terms of CPU usage and
perceived performance.
The `autoar_compressor_set_passphrase` function is always called currently
regardless the fact whether password is set, or not. Consequently, the
"autoar_compressor_set_passphrase: assertion 'self->format == AUTOAR_FORMAT_ZIP'
failed" critical is printed. Let's call that function only if the passphrase is
really wanted.
When loading a directory with many files, GtkGridView keeps scrolling
down spontaneously.
This happens because GtkListBase anchoring doesn't cope well with our
lazy loading.
Use a hacky workaround to prevent scrolling while we are at the top.
Thumbnails may have an alpha channel. Fully transparent areas get the
color of the view background, which is awkward in combinatino with
shadows giving a raised appearance.
So, set a shaded background to make the transparent areas feel part of
the "raised" icon, not the view background.
GtkFlowBox allows us to get a child by its coordinates, but this will
not be possible with GtkGridView.
Instead, let's add gestures to each children such that we can get the
clicked widget using gtk_event_controller_get_widget(). This requires
using the bubble phase such that children can capture the event before
the parent, and translating event coordinates to the view ones. As we
can't get the position from the event widget, also introduce a method to
get the model item from the widget.
While here, rename an outlier callback symbol and remove a GTK3 #if.
We want the top of the labels to align vertically among all items. For
this we set a minimum height and width for the container of the icon.
However, then a thumbnail is taller than it is wide, the picture makes
its container grow taller than the minimum height, despite the picture
never actually using being taller than the minimum height.
As in the previous commit, as a workaround, wrap the image in AdwClamp,
such that the height for width computation doesn't account for more than
height than necessary.
We want all items to have the same width and for this we have been
setting GtkLabel:max-width-characters to 0, such that labels take
grow only until the width defined by the icon container.
Unfortunately, doing this for wrapping labels in a dynamic grid causes
allocation warnings and visual glytches (labels overflowing the height
of their container), which I assume are due to the labels reporting a
minumum height for a width which goes beyong the minimum width set on
the icon container.
So, instead of setting Gtk:Label:max-width-characters to 0, wrap the
whole thing in a horizontal AdwClamp with its :maximum-size set to 0.
This forces the labels to report a height which corresponds to the
actual minimum width set by the icon container.
Also, remove some meaningless properties from the UI file.
Our custom CSS relies on `flowbox` and `flowboxchild`. But GtkFlowBox
is about to be replaced with GtkGridView. Also, it may happen that
we use either widget in other contexts in this app in the future, so
it's best to be more specific on where we want the styles to apply.
We've tried to match the visual style of NautilusCanvasView selected
items, but it falls short from being an exact match.
Also, that style is outdated. Adopt a style which matches the modern
standards, following designers advice. This is easily achieved using
the default style from GTK.
Closes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2105
The new copy and paste context menu buttons are a bit weird and might be too
wide in some translations. Use regular menu items for the copy and paste
buttons as they were in Nautilus 41.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2089
libportal changed the name of their primary branch to
`main`. `flatpak` can't automatically handle `main`,
so we need to specify it manually.
Should fix the recent CI failures.
After the GTK 4 port, some dialogs are no more modal. This is regression,
which is probably caused by the fact, that this needs to be explicitly
specified now. Let's make all the `GtkMessageDialog` dialogs modal again.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2117