Age | Commit message (Collapse) | Author | Files | Lines |
|
Ensure that such use cases as forced-csd environments don't cause the desktop window to be decorated
|
|
As the UI doesn't have semantic groups for owner/group/others settings
but they are only visually apparent, add some more context to the
accessible version of the labels to identify what it targets.
This is especially useful for the setting for other's permissions,
because the focus never lands on the line with the "Others" label,
hence making it hard to infer the context while navigating.
Another solution would be to redesign the UI to have semantic groups,
like e.g. labeled frames, but it's a lot less trivial and a lot more
intrusive a change.
|
|
Neither the button nor the icon shown in the properties dialog had nay
name, which is a problem for accessibility as an assistive technology
thus doesn't have anything to present to the user apart from an unnamed
button or image -- which isn't particularly helpful.
Improve this in two ways:
* Add a description to the icon, either matching the file type display
name of the icon, the fact it's a custom icon or conveying multiple
files are selected and the icon is hence not very specific.
* Add a tooltip to the button hinting that it can be used to change
the associated icon.
|
|
Create a custom macro akin to G_DEFINE_TYPE() in order to generate the
boilerplate.
|
|
Replace manual get_type() implementations with G_DEFINE_TYPE() macros.
|
|
Add accessible implementation for EelLabeledImageButton,
EelLabeledImageCheckButton, EelLabeledImageToggleButton and
EelLabeledImageRadioButton.
The implementation is actually the same as the one for EelLabeledImage
which already handles the button cases, this just plugs in the right
bits for those other types to use it properly.
This fixes accessibility of the emblem selector in the file properties
window as well as the groups in the "property borwser" (the
"Backgrounds & Emblems" window).
|
|
Do not manually store the parent class which is already available thanks
to G_DEFINE_TYPE().
|
|
* Do not attempt to unref or destroy a child of a container
*In GTK 3 at least, GtkContainers automatically destroy child widgets when destroyed
|
|
As done for copy/delete jobs, restart the operation timer also for move
jobs. Thus preparations (e.g. `scan_sources`) later won't affect the
later transfer rate calculation.
caja-file-operations: stop timer when waiting
When a copy/move operation is created while another operation is already
active, the new operation is queued. As the (already running) operation
timer of the new operation is not stopped during the waiting period,
that period is (erroneously) included in the transfer rate calculation
and leads to initially low/slowly increasing transfer rates be shown.
Hence stop the operation timer when the (queued) operation is waiting.
Fixes #1420 and #1623.
|
|
* caja-file-operations: fix estimate for queued copy
Fixes the condition for showing an estimate of the remaining duration in
case a copy operation is queued, correctly considering the current
transfer rate.
* caja-file-operations: fix division by 0 for delete
Aligning to the copy operation case, this fixes the condition for
showing an estimate of the remaining duration for delete operations,
preventing a possible division by 0 due to a zero transfer rate.
|
|
|
|
|
|
|
|
*Do not use G_OBJECT_CLASS (class)->constructed
*We don't seem to need it anymore and it breaks dragging windows with the titlebar or resizing with the mouse in wayland
|
|
It is totally unused. In 2010, nautilus removed a perl script used to
generate enums:
https://gitlab.gnome.org/GNOME/nautilus/-/commit/75a03a440ebff23ccbf8674ca4a0e9f6475ebbb8
Before then, perl was needed to build. After this commit, nautilus still
had messy code to check for perl availability but did nothing with it.
Across multiple forks and reinitialized git repositories that dropped
all commit history, it turns out that caja still has that messy code
too.
|
|
*In the wayland session, we now have mate-settings-daemon with GDK_BACKEND=x11
*We need it anyway to control theming in xwayland apps,so we can now use mate-appearance-properties to set the desktop background when it is running
|
|
|
|
For certain operations, the destination is checked. If an error occurs,
the user is asked how to proceed using a dialogue. So far this dialogue
was hard-coded to only consider the copy operation.
This fix also considers the other affected operations and generalizes
the continue button text.
|
|
|
|
|
|
|
|
* Wayland-background-dialog: fix memory leaks
* Wayland-background-dialog: check that the image is valid before using it
|
|
*Reduce the scope of the preview box
*Do not read the same value from gsettings before reading it from the color style combobox
|
|
|
|
|
|
|
|
|
|
|
|
Move image and colors labels, filebutton to left side of dialog
|
|
*Draw the background on the desktop window, using the same code as on navigation windows to bypass the no-root-window issue.
*Works from caja's "Change Desktop Background" menu item, from caja-extensions "set as wallpaper" and with changing the background in dconf-editor.
*All background options available in x11 supported in wayland, UI is new for wayland
*Apply changes immediately, keep the dialog open until closed by user
*Let users see changes in realtime while keeping the dialog open
*Preview both colors and pictures
*Add ability to apply changes from either combobox including using any image saved from when dialog was opened
*Add tooltips to the buttons, filepicker, and comboboxes
|
|
*When under wayland, silence "caja_spatial_window_show: assertion 'location != NULL' failed"
*as the startup sequence is not the same with wlroots and the location isn't ready yet
*Using gtk_widget_show instead of gtk_widget_realize in caja-desktop-window.c generates this warning
|
|
*When icon positions are locked, do not show "Organize Desktop by Name" in the desktop context menu
|
|
|
|
|
|
|
|
*Use code borrowed from Nemo
|
|
|
|
|
|
* Wayland: Support rendering the desktop
*Wayland support is optional via the --enable-wayland option
* eel-editable-label-c: remove unused variable
This was leftover from earlier code compatable only with x11
* Fix gtk-layer-shell-0 version check, improve error message when Wayland requested but not found
|
|
*revert x11 icon position handling to the older and well tested code
*use the newer code only in wayland where all the screen can already be used
|
|
*In x11 we can anchor the desktop size to the root window
instead of the screen or (possibly multiple)monitors
|
|
fix https://github.com/mate-desktop/caja/issues/1069
|
|
search popup
This gets mis-handled in wayland as a standalone window and
is treated as such (like getting tiled next to the main caja window).
Ported over from Nemo
|
|
|
|
If informal date format is used, for future dates the today time format
has been used by mistake, instead of the general time format.
|
|
If informal date format is used, the yesterday/today ranges of 48/24
hours apply to the end of the current day, not to the current instant.
Fixes a regression introduced by 476f56a25be636970b336d525a7766b6d1eb3fff.
Fixes #1621.
|
|
based on https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/821/diffs
|
|
`p` actually could never be `0` (because of the NULL check on the
`memchr()` call), but the intended behavior is `*p == '\0'`: the
containing condition checks for either a truncated data (`*p == '\0'`)
or no geometry information (`*p == '\n'`).
I replaced the check to be `*p != '\n'` instead of `*p == '\0'` to
make this more robust as the actual issue is anything but a newline,
the fact it can only be a NUL otherwise is incidental to the enclosing
check, but not really relevant at this level. This is also in line
with the actual error message.
Found by cppcheck: https://caja.mate-desktop.dev/2022-11-23-174623-5790-cppcheck@ae663c369cf2_desktop-no-overflow/16.html#line-204
|
|
Properly update the icon data before placing the icon, because
positioning might depend on full icon contents on the desktop, whereas
updating contents don't care about position.
When an icon position overflows the desktop area, it is clamped to stay
in the visible area, but this computation depends on accurate icon and
label sizes, which is only available when the icon is fully loaded.
Fix the code to first load the contents and then position instead of
the other way around, which was actually trivial.
Note that visible positions were most often correct anyway for two
reasons:
1. Most of the time icons do not overflow, as they are positioned on
the final desktop size anyway. It however can easily happen
reducing monitor resolution or increasing desktop view zoom.
2. A second layout pass happens most of the time (I'm not yet sure why
and when though), but not when an update is triggered before the
previous one terminated (e.g. quickly hitting F5 twice).
|
|
This is actually an opaque type, and there is no definition of struct
CajaIconData anywhere. This actually doesn't change anything as the
non-existent struct is equivalent to any other incomplete type, and
works fine so long as the pointers are not dereferenced using that
incomplete type.
However, change this to an explicit `void` to make it clear it's an
opaque pointer and stop people from looking for a struct CajaIconData
that is nowhere to be found.
|