1. 22 Jan, 2019 1 commit
    • Timothy OBrien's avatar
      nautilus-canvas-dnd.c: destroy drag_info.selection_cache on drag_end_callback() · 4f05a1be
      Timothy OBrien authored
      When the user is dragging items between locations, a drag_info.selection_cache is initialized within drag_begin_callback(). However, unlike other caches, the drag_info.selection_cache is never destroyed by drag_end_callback() once the drag operation is complete.
      This patch frees the drag_info.selection_cache once the user drag action is complete.
      Fixes #787
  2. 31 May, 2018 1 commit
    • Ernestas Kulik's avatar
      canvas-dnd: Don’t set removed properties · 75d73cf4
      Ernestas Kulik authored
      NautilusSelectionCanvasItem lost a few properties that control the way
      the selection rectangle is drawn, namely the color and
      stippling-enabling ones, which results in different rendering of the
      file outlines when dragging multiple of them. At the moment, the
      outlines are styled according to GTK_STYLE_CLASS_RUBBERBAND, which gives
      them solid blue-ish borders and a light blue background.
      This commit removes the code that sets those properties.
  3. 09 May, 2018 1 commit
    • Carlos Soriano Sánchez's avatar
      general: Remove NautilusLink · b1cb9778
      Carlos Soriano Sánchez authored
      It was used for desktop files, netscape url links and other links.
      However this is not really useful anymore with the desktop gone, so it
      makes sense to remove it from Nautilus and have a big clean up.
      This also was one of the blockers for the backend rework.
  4. 02 Jan, 2018 3 commits
  5. 17 Aug, 2017 1 commit
  6. 09 Dec, 2016 2 commits
    • Carlos Soriano Sánchez's avatar
      general: fix typo · 63b48b37
      Carlos Soriano Sánchez authored
      Mis hojos!
    • Carlos Soriano Sánchez's avatar
      general: only set icon position metadata when in desktop · 6205e6b2
      Carlos Soriano Sánchez authored
      We were setting the icon position metadata for any operation in any file
      due to legacy code where nautilus was able to have a
      freedom-of-placement canvas in the regular windows.
      However that changed and we can only have freedom-of-placement in the
      desktop window.
      Setting the metadata is a extremely expensive operation, and was causing
      issues, outlined in https://bugzilla.gnome.org/show_bug.cgi?id=757747,
      summarizing copy and move operations where really slow when using drag
      and drop, operations when we need to store the icon position when using
      a freedom-of-placement canvas view.
      This patch tries to only set the metadata when necessary, which is when
      using the desktop window. However the code is pretty integrated with the
      rest of Nautilus, so the patch was able to isolate the part when the
      metadata is set and only provide metadata when the target is the desktop.
      However, for unsetting the metadata the patch need to check if it's
      the desktop inside the file-operations, which is less than ideal.
  7. 30 Nov, 2016 1 commit
  8. 06 Sep, 2016 1 commit
  9. 29 Aug, 2016 1 commit
  10. 25 Apr, 2016 1 commit
    • Carlos Soriano Sánchez's avatar
      general: merge libnautilus-private to src · 7e24f1b2
      Carlos Soriano Sánchez authored
      And fix make distcheck.
      Although libnautilus-private seem self contained, it was actually
      depending on the files on src/ for dnd.
      Not only that, but files in libnautilus-private also were depending on
      dnd files, which you can guess it's wrong.
      Before the desktop split, this was working because the files were
      distributed, but now was a problem since we reestructured the code, and
      now nautilus being a library make distcheck stop working.
      First solution was try to fix this inter dependency of files, but at
      some point I realized that there was no real point on splitting some of
      those files, because for example, is perfectly fine for dnd to need to
      access the window functions, and it's perfectly fine for the widgets
      in the private library to need to access to all dnd functions.
      So seems to me the private library of nautilus is somehow an artificial
      split, which provides more problems than solutions.
      We needed libnautilus-private to have a private library that we could
      isolate from extensions, but I don't think it worth given the problems
      it provides, and also, this not so good logical split.
      Right now, since with the desktop split we created a libnautilus to be
      used by the desktop part of nautilus, extensions have access to all
      the API of nautilus. We will think in future how this can be handled if
      we want.
      So for now, merge the libnautilus-private into src, and let's rethink
      a better logic to split the code and the private parts of nautilus than
      what we had.
      Thanks a lot to Rafael Fonseca for helping in get this done.
  11. 14 Apr, 2016 3 commits
  12. 04 Apr, 2016 1 commit
    • Carlos Soriano Sánchez's avatar
      general: remove vim modelines · 1ffb8ca5
      Carlos Soriano Sánchez authored
      Vim and emacs modelines are used to specify some of the code style in the code.
      However, this is misleading and poorly supported since nautilus had a mix of
      code style for some time.
      Also, the mode lines doesn't specify the whole code style, so we will need to
      use a different tool as well to specify the whole code style.
      For that, we can just use a different tool for everything.
      So remove the mode lines, and in a short future we will reestyle the nautilus
      code to have a single code style, and use a tool like editorconfig to specify
      the whole code style.
  13. 06 Oct, 2015 1 commit
    • Carlos Soriano Sánchez's avatar
      dnd: use GtkPlacesSidebar drop targets hints · 749a8644
      Carlos Soriano Sánchez authored
      Currently the dnd on the sidebar is only triggered when hovering
      above the sidebar itself. However we would like to give some
      feedback all along on the dnd operation.
      For that GtkPlacesSidebar has set_drop_targets_visible public API,
      which was implemented a few months ago and the GtkFileChooser is
      already using.
      I just forgot to implement the support for it on Nautilus... even if
      the original work was done for Nautilus, since users will probably
      use dnd more on nautilus than on the file chooser.
      I'm not entirely happy with the implementation, since it uses custom
      functions to access the drag data, given that we need them at drag-begin
      time and in random places on the code, since nautilus is doing all the dnd
      work manually and on different places.
      The final result is that drag and drop is still managed mostly on its own
      widgets, in this case list-view and canvas-view, and nautilus-dnd manages
      a central accessor for dnd in nautilus, in this case requesting depending
      on the widget that is the owner of the data, its data through the custom
      functions of that particula widget. All other ways I tried to do it entirely
      with only gtk_drag_* or gdk_drag_* functions were in vanish if no a complete
      refactoring is done, and probably it doesn't worth the effort. Also I
      actually separated the list view dnd code as well, so now at least the
      pattern to handling dnd on nautilus is more or less consistent.
  14. 07 Jan, 2015 1 commit
    • Nelson Benítez León's avatar
      dnd: fix dnd issues with Type=Link desktop files · fa1211f8
      Nelson Benítez León authored
      When creating NautilusDragSelectionItem items for dnd
      make sure we use regular uri (instead of activation uri)
      for Type=Link desktop files.
      Other types of desktop files were not affected by this bug
      as their regular uri and activation uri are usually the same.
      Fixes bug 720390
  15. 17 Feb, 2014 1 commit
  16. 31 Jan, 2014 1 commit
  17. 04 Sep, 2013 1 commit
  18. 03 Sep, 2013 1 commit
  19. 02 Aug, 2013 1 commit
  20. 10 Apr, 2013 1 commit
  21. 06 Mar, 2013 1 commit
  22. 21 Feb, 2013 1 commit
  23. 20 Feb, 2013 2 commits
  24. 22 Jan, 2013 2 commits
  25. 21 Jan, 2013 1 commit
  26. 26 Aug, 2012 1 commit
  27. 25 Aug, 2012 1 commit
  28. 07 Aug, 2012 1 commit
  29. 31 May, 2012 1 commit
  30. 27 Apr, 2012 1 commit
  31. 11 Apr, 2012 2 commits
  32. 05 Oct, 2011 1 commit