1
0
mirror of https://gitlab.gnome.org/GNOME/nautilus synced 2024-06-30 23:46:35 +00:00
Go to file
António Fernandes d1742d078d previewer: Manage window handles internally
We've been expecting NautilusFilesView to pass a window handle to
nautilus_previewer_call_show_file(), requiring it to call async
methods from NautilusWindow to get them.

There are a few problems with this approach:

  1. It's a layer violation for the view to call into the window.
     Not only is this conceptually wrong, it's keeping us from
     reusing the view in other windows which are not NautilusWindow
     instances, like as the upcoming FileChooser window.
  2. It's leaking details of the NautilusPreviewer2 D-Bus API into
     NautilusFilesView and NautilusWindow, namely the expected format
     of the window handle.
  3. Even though this format is a de-facto standard nowadays, we are
     not using it for anything else, so there is no value in keeping
     it in NautilusWindow API.
  4. Even if we start using it for other purposes, there it nothing
     specific to NautilusWindow in how to generate a window handle;
     it's the same process for any toplevel surface.
  5. Tying the window handle's validity to the lifetime of the
     NautilusWindow instance means we keep it exported even if no
     longer used by the previewer, and in theory we would use the
     same handle for multiple peers.

So, have NautilusFilesView pass a generic GtkRoot pointer instead
and handle the exporting and unexporting lifetime of window handles
in the previewer glue code instead.

The NautilusWindow API, no unused, is also removed. If the need arises
in the future to reuse this export/unexport logic, we can always move
it into ui-utilities.c or something like that.

Part of: https://gitlab.gnome.org/GNOME/nautilus/-/work_items/3402
2024-06-05 11:50:10 +01:00
.gitlab ci: update deprecated gtk option 2024-02-03 14:57:02 +00:00
build-aux/flatpak flatpak: Tempoarily disable landlock in tracker-miners 2024-02-15 23:48:01 +00:00
data metainfo: Don't specify the language in link 2024-04-29 11:45:39 +00:00
docs docs: A couple more tweaks to the man page 2024-01-17 02:37:27 +00:00
eel general: remove eel-vfs-extensions 2023-11-16 02:36:20 +01:00
extensions audio-video-properties: return early without discoverer 2024-04-27 17:26:14 +00:00
icons general: Remove thumbnail frame 2021-12-26 18:12:29 +00:00
libnautilus-extension general: make all headers end with one newline 2024-01-29 14:11:03 +01:00
po Update Slovenian translation 2024-06-04 07:33:02 +00:00
src previewer: Manage window handles internally 2024-06-05 11:50:10 +01:00
test test/file-utilities-get-common-filename-prefix: Add tests 2024-06-04 01:59:56 +00:00
.editorconfig editorconfig: Create initial files 2022-06-03 18:18:31 +00:00
.git-blame-ignore-revs general: add ignore-revs file 2022-05-25 10:52:42 +00:00
.gitattributes Add a script for updating gnome-desktop sources 2019-01-22 15:51:58 +00:00
.gitignore general: ignore all unknown hidden folders 2023-10-28 00:25:26 +00:00
.gitlab-ci.yml ci: don't run for translation updates 2024-04-01 23:06:04 +00:00
LICENSE general: Assume Nautilus project is GPL3 2017-07-17 22:16:08 +02:00
meson_options.txt build: remove leftover profiling options 2023-10-29 23:43:16 +01:00
meson.build properties-window: Port "Open in Disks" row to AdwButttonRow 2024-05-02 22:25:42 +00:00
nautilus.doap general: replace wiki links 2024-01-31 02:08:36 +01:00
NEWS Release version 46.0 2024-03-18 13:47:57 +01:00
README.md readme: minor phrasing changes 2024-01-31 02:08:59 +01:00

nautilus

Pipeline status

This is the project of the Files app, a file browser for GNOME, internally known by its historical name nautilus.

Supported version

Only the latest version of Files as provided upstream is supported. Try out the Flatpak nightly installation before filling issues to ensure the installation is reproducible and doesn't have downstream changes on it. In case you cannot reproduce in the nightly installation, don't hesitate to file an issue in your distribution. This is to ensure the issue is well triaged and reaches the proper people.

Contributing to nautilus

To build the development version of the Files app and hack on the code see the welcome guide.

Commit messages should follow the expected format detailed here.

Update default branch

The default development branch of nautilus has been renamed to main. To update your local checkout, use:

git checkout master
git branch -m master main
git fetch
git branch --unset-upstream
git branch -u origin/main
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main

Runtime dependencies

Discourse

For more informal discussion we use GNOME Discourse in the Applications category with the nautilus tag. Feel free to open a topic there.

Extensions

Documentation for the libnautilus-extension API is available here. Also, if you are interested in developing a Nautilus extension in Python you should refer to the nautilus-python documentation.

How to report issues

Report issues to the GNOME issue tracking system.