Make NautilusWindowSlot non-derivable
NautilusWindowSlot
is currently an instantiable and derivable type. Slots are usually instances of this class, but in the case of the other-locations:///
place the slot is an instance of the NautilusOtherLocationsWindowSlot
subclass.
NautilusWindowSlot
used to be a final type, until the patch set from https://bugzilla.gnome.org/show_bug.cgi?id=712620, which introduced two subclasses: NautilusOtherLocationsWindowSlot
and NautilusDesktopWindowSlot
. The goal was to segregate the code for the now-gone "icons-on-desktop" feature.
This split has been responsible for #32 (closed), where history was lost when switching slot class. This bug has been worked around by 691f1cf1, but ideally that should not be needed.
Nowadays, NautilusOtherLocationsWindowSlot
is the only subclass, and if you look at src/nautilus-other-locations-window-slot.c
, it does very little to justify its own existence. The other-locations:///
place could be handled by NautilusWindowSlot
proper with very little special case handling. Also, with the "icons-on-desktop" gone, the main reason to keep NautilusWindowSlot
derivable is also gone.
By making NautilusWindowSlot
a final type again, we will be able to remove many lines of code and revert the workaround introduced in 691f1cf1.
(This issue is a follow-up to the discussion in !557 (comment 838375))