summaryrefslogtreecommitdiffstats
path: root/docs/Overview.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 15:59:36 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 15:59:36 +0000
commitec52555862913a23417735f9f7f5402f5230da13 (patch)
tree5e43a30d289a3daa69dddfbb060216ff6332f197 /docs/Overview.md
parentInitial commit. (diff)
downloadnautilus-588f9a161e7f1abfdfa41db72a22f3d5b9b20486.tar.xz
nautilus-588f9a161e7f1abfdfa41db72a22f3d5b9b20486.zip
Adding upstream version 3.38.2.upstream/3.38.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'docs/Overview.md')
-rw-r--r--docs/Overview.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/docs/Overview.md b/docs/Overview.md
new file mode 100644
index 0000000..9194aa4
--- /dev/null
+++ b/docs/Overview.md
@@ -0,0 +1,29 @@
+= File Ownership =
+In the minimal case, a nautilus file is owned by:
+- Window slot -> viewed_file
+- Window slot -> history list using bookmarks
+- Path bar -> button -> file
+- Path bar -> button -> nautilus_drag_slot_proxy
+
+When a file is a bookmark, nautilus application keeps a list with them, so it
+also owns those files.
+
+Window slot is the creator of the file if the file was already not present due
+to be a bookmark.
+
+The window has a queue with information of the closed tabs, owning references
+to previous files.
+
+= Directory Ownership =
+Every file has a directory associated, that is usually the parent. However, when
+the file is a root and has no parent, the file is called self_owned, and the directory
+and the file are the same location, but different objects.
+
+It's better to always deal with files instead of directories, and let the file handle
+the ownership of its associated directory.
+
+= View Ownership =
+It's owned by:
+- Window slot as a strong reference, since the view sinks the floating reference.
+So to freed it the window slot needs to destroy it with gtk_widget_destroy ()
+since it's the container, but also needs to unref it.