debian/0000775000000000000000000000000012307626250007173 5ustar debian/mount-archive.desktop0000664000000000000000000000044712307626250013354 0ustar [Desktop Entry] Name=Archive Mounter Exec=/usr/lib/gvfs/gvfsd-archive file=%u MimeType=application/x-cd-image;application/x-bzip-compressed-tar;application/x-compressed-tar;application/x-tar;application/x-cpio;application/zip; Terminal=false StartupNotify=false Type=Application NoDisplay=true debian/mount-archive.desktop.in0000664000000000000000000000045012307626250013753 0ustar [Desktop Entry] _Name=Archive Mounter Exec=/usr/lib/gvfs/gvfsd-archive file=%u MimeType=application/x-cd-image;application/x-bzip-compressed-tar;application/x-compressed-tar;application/x-tar;application/x-cpio;application/zip; Terminal=false StartupNotify=false Type=Application NoDisplay=true debian/menu0000664000000000000000000000023612307626250010063 0ustar ?package(nautilus):needs="X11" section="Applications/File Management" \ title="Nautilus" command="/usr/bin/nautilus" icon="/usr/share/pixmaps/nautilus.xpm" debian/nautilus-unity-launcher-icon.py0000664000000000000000000000174212307626250015310 0ustar #!/usr/bin/python # -*- coding: utf-8 -*- # Copyright (C) 2013 Canonical from gi.repository import Gio import os,sys if "com.canonical.Unity.Launcher" not in Gio.Settings.list_schemas(): print("No unity schemas found, no migration needed") sys.exit(0) gsettings=Gio.Settings(schema="com.canonical.Unity.Launcher", path="/com/canonical/unity/launcher/") launcher_list = gsettings.get_strv("favorites") # Unity used nautilus-home.desktop but we are migrating to use the standard nautilus.desktop instead try: idx=launcher_list.index("application://nautilus-home.desktop") launcher_list[idx]="application://nautilus.desktop" except ValueError: pass # gsettings doesn't work directly, the key is somewhat reverted. Work one level under then: dconf! from subprocess import Popen, PIPE, STDOUT p = Popen(['dconf', 'load', '/com/canonical/unity/launcher/'], stdout=PIPE, stdin=PIPE, stderr=STDOUT) p.communicate(input="[/]\nfavorites={}".format(launcher_list).encode('utf-8')) debian/nautilus-home.desktop.in0000664000000000000000000000030212307626250013760 0ustar [Desktop Entry] _Name=Home Folder _Comment=Open your personal folder Actions=Window; NoDisplay=true [Desktop Action Window] _Name=Open a New Window Exec=nautilus --new-window OnlyShowIn=Unity; debian/nautilus.xpm0000664000000000000000000001152412307626250011570 0ustar /* XPM */ static char * nautilus_xpm[] = { "32 23 208 2", " c None", ". c #F7E8E1", "+ c #F3DDD2", "@ c #E7BBA4", "# c #DFA174", "$ c #E3A77E", "% c #E5AA7A", "& c #E3AB84", "* c #E3AC8C", "= c #E3AD91", "- c #F0D7CA", "; c #FAF2ED", "> c #EBC8B7", ", c #E49E6C", "' c #E69E5C", ") c #ECA552", "! c #EEAE53", "~ c #F2B75A", "{ c #F4C361", "] c #F1C273", "^ c #E9A665", "/ c #E8BCA3", "( c #EED1C1", "_ c #FEFEFE", ": c #DB9A6A", "< c #E28F51", "[ c #E69442", "} c #E79A47", "| c #EBA34C", "1 c #F2BD62", "2 c #F5CA6E", "3 c #EEA33F", "4 c #E7923D", "5 c #ECB976", "6 c #E5B38C", "7 c #FCF8F6", "8 c #D79977", "9 c #DD8D53", "0 c #DA7E46", "a c #D37B40", "b c #D2753A", "c c #CA7836", "d c #D68336", "e c #DE7726", "f c #EDA242", "g c #E9B986", "h c #EED0BF", "i c #CF9174", "j c #C67144", "k c #C87140", "l c #C46D3C", "m c #BA6536", "n c #BB5D35", "o c #B34F2B", "p c #B3552C", "q c #BB692D", "r c #CD752F", "s c #DE782E", "t c #E48C34", "u c #EA9D3E", "v c #D97431", "w c #D36528", "x c #E6A973", "y c #B76745", "z c #B35C37", "A c #AC5738", "B c #A14E28", "C c #A5462B", "D c #AB4328", "E c #B45B2C", "F c #E3863A", "G c #C85825", "H c #E79846", "I c #F0D5C7", "J c #C9896C", "K c #9B4A31", "L c #8D3F28", "M c #933E25", "N c #9D4A2C", "O c #A9482F", "P c #C27335", "Q c #CF7733", "R c #DA7C33", "S c #CA612D", "T c #EFB869", "U c #F4E1D8", "V c #965A46", "W c #7D3925", "X c #853C25", "Y c #AF5437", "Z c #B24F32", "` c #B5693B", " . c #B46B41", ".. c #AC633E", "+. c #A15339", "@. c #A54D26", "#. c #AF4823", "$. c #D66C2F", "%. c #EFB25B", "&. c #E7BEAA", "*. c #AE725A", "=. c #753624", "-. c #904028", ";. c #A34E31", ">. c #B75E3C", ",. c #C77E54", "'. c #B67556", "). c #BC7B5D", "!. c #AD654D", "~. c #8D422C", "{. c #7C331E", "]. c #C96734", "^. c #F5F3F3", "/. c #DFB4A0", "(. c #995D47", "_. c #793A28", ":. c #A65D43", "<. c #AE6D4D", "[. c #BC8366", "}. c #C28167", "|. c #A55336", "1. c #B4643B", "2. c #C26B42", "3. c #D16B34", "4. c #E17F30", "5. c #A88C7E", "6. c #D49D82", "7. c #874434", "8. c #AF714E", "9. c #AC6846", "0. c #A5623F", "a. c #A56445", "b. c #D4996C", "c. c #D47E4B", "d. c #E9A56C", "e. c #8E6953", "f. c #77382A", "g. c #B26A49", "h. c #BE7545", "i. c #C47842", "j. c #96502D", "k. c #9D573F", "l. c #D38E61", "m. c #D8864C", "n. c #E29452", "o. c #EA9E58", "p. c #C58A70", "q. c #8E5442", "r. c #6E3829", "s. c #CD824B", "t. c #C97A4A", "u. c #8C4D30", "v. c #AE7855", "w. c #EBE8E6", "x. c #B29281", "y. c #A77962", "z. c #A1735D", "A. c #AA5C36", "B. c #A56D56", "C. c #C3835C", "D. c #E5A068", "E. c #85624F", "F. c #575858", "G. c #574136", "H. c #A95F3A", "I. c #854225", "J. c #6E3823", "K. c #DC843F", "L. c #745749", "M. c #090706", "N. c #946954", "O. c #733925", "P. c #4D281E", "Q. c #724A3C", "R. c #95604A", "S. c #74432C", "T. c #DFA068", "U. c #D98344", "V. c #5C4539", "W. c #B4714C", "X. c #64311F", "Y. c #522B21", "Z. c #4B2A23", "`. c #775846", " + c #BE8554", ".+ c #A9542F", "++ c #C19176", "@+ c #A9AAAA", "#+ c #4D3A30", "$+ c #50281E", "%+ c #673527", "&+ c #9F735C", "*+ c #59291F", "=+ c #56271B", "-+ c #E09B64", ";+ c #AA9184", ">+ c #9A583A", ",+ c #99512C", "'+ c #C86F3C", ")+ c #D18956", "!+ c #AC7B5E", "~+ c #ECEBEB", "{+ c #72594D", "]+ c #984928", "^+ c #88634C", "/+ c #CB7E54", "(+ c #684D3F", "_+ c #DCDCDC", " . + @ # $ % % % & * = - ; ", " ; > = , ' ) ) ! ~ { ] ] ^ $ / ( _ ", " ( = : < [ [ } | ) ~ 1 2 2 3 4 5 6 ( 7 ", "_ ( 8 9 0 0 0 a b c d 4 | ! ~ 4 e f g g h _ ", "> i j k l m n n o p q r s t u v w e ~ { x h 7 ", "i y z A B C C C D o E q r d F v G w 4 u H 5 I ", "J K K L L M N O D o m m P c Q R S G s t t T * U ", "8 V W X X L N Y Z n k ` ...+.B @.#.S $.s %.5 / 7 ", "&.*.=.=.W -.;.A >.y y ,.'.).!.~.{.M ].w $.) ! * ^. ", "7 /.(.=._.~.K ;.K +.:.<.[.}.,.!.|.1.2.3.0 F 4.x 5. ", " + 6.(.X X ~.-.7.L V !.8.9.0.a.b., 2.c.0 w v d.e. ", " + = *.7._._.f.7.g.j h.i.` j.k.: l.m.3.3.n.o.e. ", " 7 > p.q.r.r.:.` ` i.s.t.9.u.v.d.c.m.d.n.< e. ", " w.x.y.z.(.g.A.j.` ).B.C.8.8.D.n., n.R n.E. ", " F. G.y.H.I.J.(.<.z.'.l.l.m.9 K.K., d.L. ", " M.N.9.O.P.Q.R.S.` T.m.m.m.U., d.8 V. ", " E.W.X.Y.Z.`.v. +W..+m c.m.U.9 ++ ", " @+ #+).J.$+P.P.%+O.X q m m ].a 8 `. ", " &+B.*+Y.P.=+O.I.N ` t.m.-+z. ", " ;+8 >+X.%+O.{.,+.+m '+)+!+ ", " ~+{+[.W.]+]+]+@.1.t.l.^+ ", " ^+C.,.,./+C.!+(+ ", " _+ "}; debian/libnautilus-extension1a.install0000664000000000000000000000004412307626250015350 0ustar usr/lib/libnautilus-extension*.so.* debian/copyright0000664000000000000000000000417412307626250011134 0ustar This package was debianized by Takuo KITAME on Fri, 19 May 2000 14:10:24 +0900. It was downloaded from ftp://ftp.gnome.org/pub/GNOME/sources/nautilus Copyright Holders and Upstream Authors: Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald Copyright (C) 1997-2000, 2008 Free Software Foundation, Inc. Copyright (C) 1999, 2000, 2001 Eazel, Inc. Copyright (C) 1999, 2000, 2003, 2004 Red Hat, Inc. Copyright (C) 2001, 2002 Anders Carlsson Copyright (C) 2001 Maciej Stachowiak Copyright (C) 2002, 2004 James Willcox Copyright (C) 2002 Bent Spoon Software Copyright (C) 2002 Christophe Fergeau Copyright (C) 2002 Darin Adler Copyright (C) 2002 Jan Arne Petersen Copyright (C) 2002 Sun Microsystems, Inc. Copyright (C) 2003, 2004, 2005 Christian Persch Copyright (C) 2003, 2004 Marco Pesenti Gritti Copyright (C) 2005 Jamie McCracken Copyright (C) 2005 Raffaele Sandrini Copyright (C) 2005 Roberto Majadas Copyright (C) 2005 Vincent Untz Copyright (C) 2006 Paolo Borelli Copyright (C) 2006 Zbigniew Chyla Copyright (C) 2007 Collabora Ltd. Copyright (C) 2007 Martin Wehner Copyright (C) 2007 Nokia Corporation Copyright (C) 2008-2010 Cosimo Cecchi Copyright (C) 2009 Alexander Larsson Copyright (C) 2011 Ignacio Casal Quinteiro License: This package is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This package is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this package; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL'. debian/changelog0000664000000000000000000034305612307626250011060 0ustar nautilus (1:3.10.1-0ubuntu8) trusty; urgency=medium [ Lars Uebernickel ] * debian/patches/16_unity_new_documents.patch - traditional menubar, restore "New Empty Document" in the file menu (lp: #1290067) -- Sebastien Bacher Tue, 11 Mar 2014 16:32:39 +0100 nautilus (1:3.10.1-0ubuntu7) trusty; urgency=medium * debian/patches/19_unity_open_location_xid.patch: - don't try to call functions on null objects (lp: #1285895) - delay dbus registration until we don't have a bus -- Marco Trevisan (Treviño) Fri, 28 Feb 2014 10:43:25 +0100 nautilus (1:3.10.1-0ubuntu6) trusty; urgency=medium * debian/patches/restore-traditional-menu-bar.patch: - Restore a traditional menu under Unity, thanks Lars Uebernickel (lp: #1130722) -- Sebastien Bacher Thu, 27 Feb 2014 17:04:30 +0100 nautilus (1:3.10.1-0ubuntu5) trusty; urgency=medium * Backported upstream bufixes: * debian/patches/git_toolbar_dnd.patch: - "Fix window dragging on the path bar" * debian/patches/git_bookmark_warning.patch: - "bookmark: fix runtime warning" * debian/patches/git_location_icon_rtl.patch: - "Set the arrow icon according to locale's text direction" * debian/patches/git_fix_ellipsize.patch: - "Do not modify ellipsize property within a size request function" * debian/patches/git_reliable_unmount.patch: - "improve unmount detect heuristic" * debian/patches/git_null_uri.patch: - "handle unsupported URI" (lp: #1245019) * debian/patches/git_bookmark_name.patch: - "bookmarks-window: always get the bookmark name from the name field." (lp: #340380) * debian/patches/git_title_update.patch: - "slot: don't forget to update title for non-active slots" * debian/patches/git_extra_spacing.patch: - "slot: don't set spacing on extra location widgets vbox" * debian/patches/git_directory_warning.patch: - "directory: collect all directories when invalidating" * debian/patches/ubuntu_infobars_color.patch: set the infobars type to "other" rather than "question" to avoid blue cluebars (lp: #1259059) -- Sebastien Bacher Mon, 24 Feb 2014 15:50:08 +0100 nautilus (1:3.10.1-0ubuntu4) trusty; urgency=medium * debian/patches/git_valid_location_widget.patch: - should fix some segfaults (lp: #1278481) -- Sebastien Bacher Mon, 10 Feb 2014 16:53:01 +0100 nautilus (1:3.10.1-0ubuntu3) trusty; urgency=medium * debian/patches/ubuntu_backspace_behaviour.patch: restore backspace behaviour, as a back button, thanks Xavier Claessens (lp: #1108637) -- Sebastien Bacher Mon, 03 Feb 2014 18:18:01 +0000 nautilus (1:3.10.1-0ubuntu2) trusty; urgency=medium * debian/patches/interactive_search.patch: - Fix memory leak -- Daniel Wyatt Tue, 28 Jan 2014 17:33:38 +1300 nautilus (1:3.10.1-0ubuntu1) trusty; urgency=medium * New upstream release * debian/control.in: bump depend on gtk+ 3.9.11 * debian/patches: - Dropped git patches, that are included in new version - 06_never_exec_nonexec_launchers.patch, refreshed - disconnect-extra-location-widgets.patch, dropped included in new version - 16_unity_new_documents.patch, refreshed - ubuntu_show_titlebar.patch, disable CSD titlebar on non-GNOME sessions - ubuntu_titlebar_css.patch, theme fixes (LP: #1272602) -- Tim Lunn Thu, 02 Jan 2014 16:50:06 +1100 nautilus (1:3.8.2-0ubuntu11) trusty; urgency=medium * debian/patches/interactive_search.patch: - Restore interactive search as an option (lp: #1164016) -- Daniel Wyatt Wed, 22 Jan 2014 15:10:18 +1300 nautilus (1:3.8.2-0ubuntu10) trusty; urgency=medium * debian/patches/git_sidebar_state_on_start.patch: - correctly set the sidebar status on start (lp: #1265401) -- Sebastien Bacher Fri, 17 Jan 2014 13:46:26 +0100 nautilus (1:3.8.2-0ubuntu9) trusty; urgency=low * debian/patches/no_search_on_desktop.patch: Disable search shortcut on desktop window so a search bar doesn't appear underneath the panel. (LP: #1176981) -- Marc Deslauriers Thu, 16 Jan 2014 10:22:44 -0500 nautilus (1:3.8.2-0ubuntu8) trusty; urgency=medium * debian/patches/20_unity_control_center.patch: - Fix uninitialized variable -- Robert Ancell Wed, 15 Jan 2014 15:58:05 +1300 nautilus (1:3.8.2-0ubuntu7) trusty; urgency=medium * debian/patches/20_unity_control_center.patch: - Fix patch to handle case when u-c-c not installed -- Robert Ancell Wed, 15 Jan 2014 14:44:47 +1300 nautilus (1:3.8.2-0ubuntu6) trusty; urgency=low * debian/patches/20_unity_control_center.patch: - Use Unity control center in Unity (LP: #1257505) -- Robert Ancell Wed, 15 Jan 2014 14:29:17 +1300 nautilus (1:3.8.2-0ubuntu5) trusty; urgency=medium * debian/patches/git_rename_display.patch: - correctly display the rename box even when scrolling (lp: #1266961) -- Sebastien Bacher Fri, 10 Jan 2014 17:46:06 +0100 nautilus (1:3.8.2-0ubuntu4) trusty; urgency=low * debian/patches/git_no_bookmark_on_eject.patch: "This prevents nautilus trying to switch to the place which is being ejected and in turn showing an error." (lp: #1000325) * debian/patches/git_correct_context_menu.patch: - show the correct menu of the cursor is not moved after selection (lp: #1241736) * debian/patches/git_invalid_symlink_handling.patch: - don't error out on invalid symlinks * debian/patches/git_rtl_icons.patch: "toolbar: Set button arrow icons according to locale's text direction", that makes the previous/next icons point in the right direction -- Sebastien Bacher Mon, 02 Dec 2013 11:41:03 +0100 nautilus (1:3.8.2-0ubuntu3) trusty; urgency=low * debian/patches/git_rename_background.patch: - render editable label's background, that should resolve the constrast issues when renaming files on the desktop with some colors (lp: #1236601) -- Sebastien Bacher Mon, 18 Nov 2013 13:52:25 +0100 nautilus (1:3.8.2-0ubuntu2) saucy; urgency=low * debian/patches/git_list_handlers.patch: nautilus was made, during the 3.8 cycle, to ignore the mimetype handlers with NoDisplay=true. The change turned out to be wrong and got reverted in 3.10, doing the same here. It makes, e.g shotwell to be listed again (lp: #1238149) -- Sebastien Bacher Fri, 11 Oct 2013 15:20:43 +0200 nautilus (1:3.8.2-0ubuntu1) saucy; urgency=low [ Sebastien Bacher ] * Bring the 3.8 update work from the gnome3 ppa to the distribution vcs * debian/patches/16_unity_new_documents.patch: - updated to work on 3.8 (by adding a revert of the commit that broke it) * debian/patches/ubuntu_revert_no_wallpaper.patch: - revert upstream changes to use a rgba desktop view, until the other components are ready for that change, see lp #1159430 for details * debian/patches/ubuntu_sync_background_to_accountsservice.patch: - restore that dropped patch since we keep display the wallpaper there [ Iain Lane ] * debian/patches/disconnect-extra-location-widgets.patch: - updated for the new nautilus codebase [ Jeremy Bicha ] * New upstream release (LP: #1130746) - Share the show-hidden-files setting with the GTK file chooser (LP: #1039014) - Limit folder size and content count to a single filesystem (LP: #585472) * debian/nautilus.install: - Shell search provider doesn't need a separate library any more * Drop git patches * Refreshed patches [ Robert Ancell ] * debian/control: - Bump build-depends on libglib2.0-dev [ Rico Tzschichholz ] * New upstream release * debian/control: - Bump build-depends on libgtk-3-dev (>= 3.7.7) * debian/patches: - 09_no-initial-fade.patch: - 10_sync_background_to_accountsservice.patch: + Dropped, Nautilus doesn't draw the background itself any more * Refreshed patches [ Tim Lunn ] * Add build-dep on gsettings-desktop-schemas [ Marco Trevisan (Treviño) ] * debian/patches: - 19_unity_open_location_xid.patch: updated to apply properly -- Sebastien Bacher Fri, 21 Jun 2013 17:10:06 +0200 nautilus (1:3.6.3-0ubuntu20) saucy; urgency=low * Remove previous patch; it wasn't the optimal approach. Add debian/patches/disconnect-extra-location-widgets.patch to remove references to NautilusTrashBar, causing it to be disposed at the right time instead. -- Iain Lane Thu, 20 Jun 2013 09:38:18 +0100 nautilus (1:3.6.3-0ubuntu19) saucy; urgency=low [ Iain Lane ] * Really fix the crash when after using trash. Take a weak reference to the NautilusView to disconnect signal handlers at a more appropriate time. (LP: #1182307) [ Sebastien Bacher ] * debian/patches/git_rubberbands_color.patch: - use background color for the desktop rubberband, thanks Ted Gould (lp: #1061215) -- Sebastien Bacher Wed, 19 Jun 2013 19:52:13 +0200 nautilus (1:3.6.3-0ubuntu18) saucy; urgency=low * debian/patches/0001-trash-bar-fix-double-disconnect-handler.patch: Backport upstream commit fixing use after free (double disconnect). (LP: #1182307) -- Iain Lane Mon, 10 Jun 2013 18:04:35 +0100 nautilus (1:3.6.3-0ubuntu17) saucy; urgency=low * Rebuild for gnome-desktop 3.8 transition (LP: #1184812) - debian/patches/git_eel_needs_terminal.patch -- Tim Lunn Tue, 28 May 2013 10:59:40 +1000 nautilus (1:3.6.3-0ubuntu16) raring; urgency=low * debian/patches/git_rank_exact_matches_higher.patch, debian/patches/git_rank_reversed.patch, debian/patches/git_search_dont_follow_symlinks.patch: - backport some upstream search improvements (don't follow symlinks, rank exact matches better than submatches, use correct order) * debian/patches/git_reset_view_to_defaults.patch: - correctly reset view settings when using the option (lp: #794538) -- Sebastien Bacher Tue, 16 Apr 2013 12:17:18 +0200 nautilus (1:3.6.3-0ubuntu15) raring; urgency=low * No change rebuild to get translations imported in launchpad. Nautilus was set to get them from the trunk vcs, but that's buggy since we are not following the current GNOME serie at the moment and strings changed in 3.8. Launchpad was updated so we just need a source upload. -- Sebastien Bacher Thu, 11 Apr 2013 12:34:40 +0200 nautilus (1:3.6.3-0ubuntu14) raring; urgency=low * debian/patches/git_enable_copy_from_recent.patch: - Allow copying from Recent * debian/patches/git_restore_from_missing_directories.patch: - Allow restoring deleted files when the containing directories no longer exist (LP: #1152706) -- Jeremy Bicha Thu, 04 Apr 2013 19:48:10 -0400 nautilus (1:3.6.3-0ubuntu13) raring; urgency=low * debian/patches/19_unity_open_location_xid.patch: - extra fixes added to the recent work, should allow a better unity launcher integration for the special locations. Thanks Marco Trevisan (Treviño) -- Sebastien Bacher Wed, 27 Mar 2013 19:56:51 +0100 nautilus (1:3.6.3-0ubuntu12) raring; urgency=low * debian/patches/git_enable_simple_search_engine.patch, debian/patches/git_search_dir_incremental_load.patch, debian/patches/git_search_recursive_dir.patch: - backport some patches to fix recursive directory search (lp: #1077415) -- Sebastien Bacher Fri, 22 Mar 2013 18:45:04 +0100 nautilus (1:3.6.3-0ubuntu11) raring; urgency=low * debian/patches/10_sync_background_to_accountsservice.patch: - write the background image to accountsservice when it changes, gnome-settings-daemon was doing that but we stopped using that plugin to avoid duplication so we need to do it here (lp: #1128492) -- Sebastien Bacher Thu, 21 Mar 2013 12:53:17 +0100 nautilus (1:3.6.3-0ubuntu10) raring; urgency=low * debian/patches/git_margin_primary_workarea_revert.patch: - revert a buggy fix that broke dnd between screens (lp: #1090720) -- Sebastien Bacher Wed, 20 Mar 2013 18:59:09 +0100 nautilus (1:3.6.3-0ubuntu9) raring; urgency=low * Renamed patches coming from the upstream vcs to be prefixed with git_ * debian/nautilus-home.desktop: - use --new-window in that desktop as well [ Marco Trevisan (Treviño) ] * debian/patches/10_reuse_already_opened_views.patch - Try to reuse the available windows or tabs when opening an already opened location (lp: #692444) * debian/patches/12_unity_launcher_support.patch: - Quicklist entries to show the copy dialog should use a separator (lp: #1154109) - Transfer dialog should be presented using the correct timestamp (lp: #1154111) - Use the quicklist activation timestamp to set the application user time so that the opened windows will be focused (lp: #1154237) * debian/patches/17_static_unity_quicklist.patch: - Use nautilus --new-window to open a New window * debian/patches/19_add_desktop_keywords.patch: - Adding .desktop files keywords from upstream * debian/patches/20_export_opened_locations_on_dbus.patch: - Export the opened locations to dbus (lp: #1063830) -- Sebastien Bacher Thu, 14 Mar 2013 11:23:18 +0100 nautilus (1:3.6.3-0ubuntu8) raring; urgency=low * debian/control.in: - Build-Depends on dh-migrations * debian/nautilus.migrations, debian/nautilus-unity-launcher-icon.py: - script to migration the nautilus' unity launcher entry * debian/rules: - use dh_migrations * debian/nautilus-home.desktop, debian/nautilus-home.desktop.in: - use NoDisplay=true as a first step to deprecation, we need to keep the entry until the next LTS for migration reasons -- Sebastien Bacher Fri, 08 Mar 2013 16:56:05 +0100 nautilus (1:3.6.3-0ubuntu7) raring; urgency=low * debian/patches/18_unity_icon_color.patch: - specify a background color for the unity launcher icon (lp: #1081691) [ Jeremy Bicha ] * debian/patches/git_show_acclerators.patch: - Show keyboard accelerators in the toolbar menus -- Sebastien Bacher Fri, 08 Mar 2013 12:40:25 +0100 nautilus (1:3.6.3-0ubuntu6) raring; urgency=low * debian/patches/16_unity_new_documents.patch: display the "new document" menu under unity, even if there is no template installed (lp: #1113648) * debian/patches/git_fix_touch_double_click.patch: upstream patch to try to fix double click not working on touch screens (lp: #1071922) -- Sebastien Bacher Wed, 06 Mar 2013 18:49:59 +0100 nautilus (1:3.6.3-0ubuntu5) raring; urgency=low * debian/patches/git_single_filesystem_count.patch: - Limit filesystem content and size count to a single filesystem. Thanks Phillip Susi for the patch! (LP: #585472) -- Jeremy Bicha Mon, 14 Jan 2013 22:22:01 -0500 nautilus (1:3.6.3-0ubuntu4) raring; urgency=low * debian/patches/13_unity_background.patch: - drop, we are going to patch the control-center to do the name translation rather than trying to modify every single client code which opens the background settings (lp: #1093436) -- Sebastien Bacher Thu, 10 Jan 2013 16:01:49 +0100 nautilus (1:3.6.3-0ubuntu3) raring; urgency=low * debian/patches/git_restore_filename.patch: use the correct filename when restoring files, thanks Timothy Arceri (lp: #974208) * debian/patches/git_launcher_no_frame.patch: "don't add a thumbnail border around desktop file launchers" (lp: #1085320) -- Sebastien Bacher Mon, 03 Dec 2012 16:17:24 +0100 nautilus (1:3.6.3-0ubuntu2) raring; urgency=low * debian/patches/13_unity_background.patch: - Point to the correct System Settings panel when running Unity -- Jeremy Bicha Thu, 22 Nov 2012 09:38:32 -0500 nautilus (1:3.6.3-0ubuntu1) raring; urgency=low * New upstream release -- Robert Ancell Tue, 13 Nov 2012 14:24:47 +1300 nautilus (1:3.6.2-0ubuntu2) raring; urgency=low * debian/patches/15_use-ubuntu-help.patch: - Updated to not point to Ubuntu help when running GNOME (LP: #852911) -- Jeremy Bicha Fri, 02 Nov 2012 22:27:11 -0400 nautilus (1:3.6.2-0ubuntu1) raring; urgency=low * New upstream release. * debian/mount-archive.desktop: Fix minor Lintian warning * debian/patches/12_unity_launcher_support.patch: Refreshed * debian/patches/git_add_missing_tooltips.patch: - Backport patch from 3.7 to add tooltips to the new menubuttons -- Jeremy Bicha Wed, 31 Oct 2012 03:02:22 -0400 nautilus (1:3.6.1-0ubuntu1) raring; urgency=low [ Jeremy Bicha ] * New upstream release (LP: #1057780). * Dropped git patches * debian/control.in: - Bump minimum GTK & GLib * debian/nautilus.install, nautilus-data.install: - Install GNOME Shell search provider - Drop obsolete hicolor icons * debian/patches/05_desktop_menu_export.patch: - commented, it needs to be mostly rewriten for the new design or implemented in a different place or way * Refreshed patches: - 03_translations_list_update.patch - 12_unity_launcher_support.patch - 14_bring_del_instead_ctrl_del.patch - 15_use-ubuntu-help.patch [ Dmitry Shachnev ] * Drop 21_correct_timestamp_use_fix_focus_issue.patch, it's not needed with the new version and is causing segmentation faults. -- Jeremy Bicha Sun, 28 Oct 2012 20:07:08 -0400 nautilus (1:3.5.90.really.3.4.2-0ubuntu4) quantal; urgency=low * debian/patches/git_a11y_prototype.patch, debian/patches/git_icons_a11y.patch: - revert those commits added in the previous reverision, the spoke indexes are wrong (lp: #1061550) -- Sebastien Bacher Fri, 05 Oct 2012 18:57:29 +0200 nautilus (1:3.5.90.really.3.4.2-0ubuntu3) quantal; urgency=low * Backported some upstream a11y fixes (lp: #1035273) -- Sebastien Bacher Tue, 02 Oct 2012 20:34:29 +0200 nautilus (1:3.5.90.really.3.4.2-0ubuntu2) quantal; urgency=low * debian/nautilus.gsettings-override: - Dropped, override moved to ubuntu-default-settings -- Jeremy Bicha Tue, 11 Sep 2012 23:38:28 -0400 nautilus (1:3.5.90.really.3.4.2-0ubuntu1) quantal-proposed; urgency=low * Revert to 3.4 for quantal. We'll go back in R once we have time to deal with upstream changes. * debian/control: - Reduce Build-Depends on gtk back to 3.4 requirement * debian/nautilus.gsettings-override: - Add back computer-icon-visible key * debian/patches/git_bookmark_place_dnd.patch, debian/patches/git_dont_grab_entry_focus.patch, debian/patches/git_image_properties_wrapping.patch, debian/patches/git-0001-Workaround-focus-issues-on-typeahead.patch: - Revive patches that are no longer upstream * debian/patches/03_translations_list_update.patch, debian/patches/04_suppress_umount_in_ltsp.patch, debian/patches/08_clean_session_capplet.patch, debian/patches/09_no-initial-fade.patch, debian/patches/11_copy_skipping_pager.patch, debian/patches/14_bring_del_instead_ctrl_del.patch, debian/patches/15_use-ubuntu-help.patch, debian/patches/20_static_unity_quicklist.patch, debian/patches/21_correct_timestamp_use_fix_focus_issue.patch, debian/patches/dont_wrap_labels_after_dots.patch, debian/patches/zg_activity_logging.patch: - Refresh * debian/patches/05_desktop_menu_export.patch: - Restore from 3.4 packaging - Re-enable - Drop reference to LaunchpadIntegration menu items -- Michael Terry Thu, 23 Aug 2012 09:20:51 -0400 nautilus (1:3.5.90-0ubuntu1) quantal; urgency=low * New upstream release. - Reorganize application and gear menu, and add a menu for view actions - Add a View options selector to the toolbar - Add cluebars for Templates and Scripts special directories - Add ability to reorder bookmarks - Improve strings in the Autorun prompt - Improve error message strings - Improve the image Properties page - Improve the Permissions page in the Properties window - Improve the layout of the Bookmarks dialog - Use the dropped text paragraph as name when creating new files using DnD of text snippets - Use double quotes instead of ASCII quotes for filenames - Change default action for executable text files to Display - Change the view mode and zoom level to be per-window instead of per-folder - Remove support for Manual layouting in icon views outside of Desktop - Remove the Octal permissions list view column - Fix segfault when no search results are found - Change owner pronoun from "me" to "Me" (LP: #1027216) * Removed upstream patches: - git_no_empty_search_segfault.patch - git_fix_missing_desktop_menu.patch * debian/patches/15_use-ubuntu-help.patch: Refreshed [ Rico Tzschichholz ] * Refreshed patches: - 03_translations_list_update.patch - 12_unity_launcher_support.patch - 21_correct_timestamp_use_fix_focus_issue.patch -- Jeremy Bicha Mon, 20 Aug 2012 23:59:52 -0400 nautilus (1:3.5.5-0ubuntu3) quantal; urgency=low * git_fix_missing_desktop_menu.patch: Restore accidently dropped right-click menu for desktop mode. -- Jeremy Bicha Fri, 10 Aug 2012 09:21:29 -0400 nautilus (1:3.5.5-0ubuntu2) quantal; urgency=low * debian/patches/git_no_empty_search_segfault.patch: - don't segfault when a search returns no result (lp: #1034548) -- Sebastien Bacher Thu, 09 Aug 2012 13:47:01 +0200 nautilus (1:3.5.5-0ubuntu1) quantal; urgency=low * New upstream version * Dropped the previous git backport, the fixes are in the new version * debian/patches/06_never_exec_nonexec_launchers.patch: - refreshed, dropped the timestamp checks it was transitional behaviour for upgraders and not needed anymore and the ctime info got dropped from NautilusFiles upstream judged unreliable * debian/rules: - disable tracker use, we don't want to depends on it -- Sebastien Bacher Wed, 08 Aug 2012 10:29:39 +0200 nautilus (1:3.5.4-0ubuntu3) quantal; urgency=low * debian/patches/git_guard_for_no_supported_vfs_schemas.patch: - "places-sidebar: guard for NULL supported VFS schemes array". Resolves segfault on launch. (LP: #1032303) -- Iain Lane Mon, 06 Aug 2012 13:02:57 +0100 nautilus (1:3.5.4-0ubuntu2) quantal-proposed; urgency=low * debian/patches/git_handle_space.patch: - "query-editor: make sure not to handle space if we're invisible" * debian/patches/git_dont_grab_entry_focus.patch: - "Don't grab focus away from the search entry box" * debian/patches/git_entry_grab_keys.patch: - "This fixes the search entry grabbing pasted URLs." (lp: #1026659) * debian/patches/git_focus_on_down_key.patch: - "Change focus to the view on down arrow" * debian/patches/git_desktop_dont_search_on_type.patch: - "Don't handle search for desktop windows" (lp: #1028028) -- Sebastien Bacher Tue, 24 Jul 2012 13:00:13 +0200 nautilus (1:3.5.4-0ubuntu1) quantal; urgency=low * New upstream version: * Add Copy To and Move To actions * Add a notification while ejecting volumes * List view: - New date format display - Use a list model instead of a tree model for list view - Use a better default column order - Change some list column names - Use 32px icons by default - Tweak padding * Search: - "Just type" search - Combine the search bar and the query editor - Tracker engine performance improvements and fixes * Sidebar: - Add a recent files place - Use symbolic icons - Improve order of the items * Toolbar: - Change toolbar layout to the GNOME 3 style - Don't show titlebar when maximized - Use a linked style for the pathbar * Menus: - Migrate the menubar to a gear menu - Remove "Go" menu - Remove "Bookmarks" menu * Remove "Text beside icons" option for icon view * Fix loading string not disappearing in image properties on load * debian/patches/00git_hide_toolbar_on_desktop.patch: - dropped, the patch is in the new version * Re-enabled patches that were commented in the previous commit without reason, they seem to work fine * debian/patches/git-0001-Workaround-focus-issues-on-typeahead.patch: - dropped, the new version integrate typeahead with the search and has no floating widget used which deprecates this patch * debian/patches/workaround_ellipsizing_bug.patch: - dropped, the bug got properly fixed in the new version * debian/patches/05_desktop_menu_export.patch: - commented, it needs to be mostly rewriten for the new design or implemented in a different place or way [ Edward Donovan ] * debian/source_nautilus.py: Fix for Python 3. (LP: #1013171) [ Jeremy Bicha ] * New upstream release. * debian/patches/05_desktop_menu_export.patch: Refreshed * debian/patches/21_correct_timestamp_use_fix_focus_issue.patch: Refreshed -- Sebastien Bacher Wed, 18 Jul 2012 15:13:46 +0200 nautilus (1:3.5.3-0ubuntu1) quantal-proposed; urgency=low * New upstream release (LP: #1017740) * debian/control: - Bump build-depends on libgtk-3-dev * debian/patches/git_bookmark_place_dnd.patch: * debian/patches/git_icon_no_thumbnail_fix.patch: * debian/patches/git_no_assert_on_double_mount.patch: * debian/patches/git_no_menubars_segfault.patch: - Applied upstream -- Robert Ancell Thu, 28 Jun 2012 13:45:20 +1200 nautilus (1:3.5.2-0ubuntu3) quantal; urgency=low * debian/nautilus.gsettings-override: - dropped deprecated computer-icon-visible key * debian/patches/git_icon_no_thumbnail_fix.patch: - "icon-view: fix thumbnails not showing regression" (lp: #1014755) * debian/patches/05_desktop_menu_export.patch: - synced on the new upstream version, those options got dropped: hide toolbar, statusbar, extra panes, tree panel, computer location. * debian/patches/03_translations_list_update.patch, debian/patches/13_translate_unity_launcher.patch: - merged, one patch to updates the potfiles is enough * debian/patches/21_correct_timestamp_use_fix_focus_issue.patch: - "Use the correct timestamp when creating a new nautilus window.", that should fix nautilus dialog opening unfocussed, thanks Andrea Azzarone (lp: #781931) * debian/patches/workaround_ellipsizing_bug.patch: - workaround ellipsizing issues in the pathbars (lp: #1014645) -- Sebastien Bacher Tue, 19 Jun 2012 18:57:52 +0200 nautilus (1:3.5.2-0ubuntu2) quantal; urgency=low * debian/patches/00git_hide_toolbar_on_desktop.patch: - Hide toolbar when running as desktop background -- Robert Ancell Mon, 18 Jun 2012 12:00:30 +1200 nautilus (1:3.5.2-0ubuntu1) quantal; urgency=low * New upstream release (LP: #1008956) * debian/control: - Bump build-depends on libgtk-3-dev -- Robert Ancell Fri, 15 Jun 2012 12:41:17 +1200 nautilus (1:3.5.1-0ubuntu6) quantal; urgency=low * debian/patches/git_no_assert_on_double_mount.patch: lp: #1007593 "sidebar: don't forget to NULL slot pointer after volume is mounted" * debian/patches/git_bookmark_place_dnd.patch: lp: #874386, #920691 "places-sidebar: allow dropping of files to bookmarks" * debian/patches/git_no_menubars_segfault.patch: lp: #1003771 "window-menus: disconnect from GtkSettings notifications on finalize" -- Sebastien Bacher Tue, 12 Jun 2012 21:28:08 +0200 nautilus (1:3.5.1-0ubuntu5) quantal; urgency=low * Rebuild for the libgnome-desktop SOVER bump. -- Adam Conrad Thu, 07 Jun 2012 15:59:26 -0600 nautilus (1:3.5.1-0ubuntu4) quantal; urgency=low * debian/patches/12_unity_launcher_support.patch: - return a gboolean -- Didier Roche Fri, 01 Jun 2012 08:09:53 +0200 nautilus (1:3.5.1-0ubuntu3) quantal; urgency=low * debian/patches/12_unity_launcher_support.patch: - Fix dbus launcherentry.updates dbus signal sent regurlarly after a copy (LP: #1003286) -- Didier Roche Thu, 31 May 2012 17:31:35 +0200 nautilus (1:3.5.1-0ubuntu2) quantal; urgency=low * debian/patches/12_unity_launcher_support.patch: - Fix folders with underscore in name shown incorrectly in Home Launcher quicklist (LP: #961170) -- Didier Roche Tue, 22 May 2012 12:21:45 +0200 nautilus (1:3.5.1-0ubuntu1) quantal; urgency=low * New upstream release -- Robert Ancell Tue, 15 May 2012 11:50:05 +1200 nautilus (1:3.4.1-0ubuntu2) quantal; urgency=low * debian/control: - Use standards version 3.9.3 - Drop dependency on liblaunchpad-integration-3.0-dev * debian/patches/01_lpi.patch: - Dropped, we no longer do Launchpad integration -- Robert Ancell Mon, 14 May 2012 16:41:56 +1200 nautilus (1:3.4.1-0ubuntu1) precise-proposed; urgency=low * New upstream version: - Don't display comment field for desktop files - Fix off-by-one error in file operation counts - Fix mouse hardware back/forward buttons not working correctly (lp: #486358) - Fix "Undo Trash" for files with non-ASCII characters - Fix name corruption for untitled files under some circumstances * debian/patches/revert_desktop_comment.patch, debian/patches/git_utf_undo.patch, debian/patches/git_no_freespace_cpu_look.patch, debian/patches/git_copy_off_by_one.patch: - dropped, those fixes are in the new version -- Sebastien Bacher Mon, 16 Apr 2012 18:45:41 +0200 nautilus (1:3.4.0-0ubuntu3) precise; urgency=low * debian/patches/dont_wrap_labels_after_dots.patch: - don't wrap labels after a dot if they are followed by a number, the upstream code has a hack for 3 digit version numbers which doesn't really make sense (lp: #942539) * debian/patches/git_utf_undo.patch: - git patch, fix undo failing to restore files with non ascii chars (lp: #973620) -- Sebastien Bacher Sun, 15 Apr 2012 11:46:05 +0200 nautilus (1:3.4.0-0ubuntu2) precise; urgency=low * debian/patches/git_copy_off_by_one.patch: - "Off-by-one error in count of copied files" (lp: #930944) * debian/patches/git_no_freespace_cpu_look.patch: - correct free space calculation and avoid cpu loops (lp: #965493) -- Sebastien Bacher Thu, 05 Apr 2012 17:26:23 +0200 nautilus (1:3.4.0-0ubuntu1) precise-proposed; urgency=low * New upstream version - Fix a regression where "Open With" was hidden for folders (lp: #964186) -- Sebastien Bacher Mon, 26 Mar 2012 19:53:09 +0200 nautilus (1:3.3.92-0ubuntu2) precise; urgency=low * debian/patches/revert_desktop_comment.patch: - revert git commit to change the .desktop handling code which leaded to have the filename displayed with the comment field next to it (lp: #961141) -- Sebastien Bacher Thu, 22 Mar 2012 19:34:17 +0100 nautilus (1:3.3.92-0ubuntu1) precise; urgency=low * New upstream version: - Fix scrolling in compact view to work with latest GTK - Fix Ctrl+Scroll zooming to work with latest GTK - Don't hide Open With applications for subtypes of application/x-desktop (lp: #38434) - Add support for the "network" GVolume class identifier - Fix a crash at exit with certain extensions that keep refs of the NautilusFileInfos (lp: #449796) - Fix initial focus row when moving the focus into the Places sidebar (lp: #940951) - Fix Shift+Click selection when going back/forward in browsing history (lp: #953245) - Fix packing of desktop file box in properties view - Fix pathbar button sizing when a file watched by the pathbar changes name (lp: #952648) - Fix properties window not being able to shrink size (lp: #948524) - Remove unused --enable-profiler configure option - Let drag the dialog by the toolbar (lp: #953004) * debian/patches/git_handle_ctrl_scroll.patch: - dropped, the fix is in the new version * debian/patches/12_unity_launcher_support.patch: - use correct capitalization, list the source in potfiles so it's translatable (lp: #958517) * drop appindicator patch, the option was turned off and it creates work -- Sebastien Bacher Tue, 20 Mar 2012 11:19:52 +0100 nautilus (1:3.3.91-0ubuntu4) precise; urgency=low * debian/patches/git_handle_ctrl_scroll.patch: - don't run into an assert on ctrl-scroll (lp: #949591) * debian/patches/zg_activity_logging.patch: - updated version from Siegfried Gevatter, should fix lp: #947489 -- Sebastien Bacher Thu, 08 Mar 2012 19:29:58 +0100 nautilus (1:3.3.91-0ubuntu3) precise; urgency=low * Update nautilus-home.desktop for freedesktop action spec too Thanks Doug McMahon for reporting this! -- Jeremy Bicha Wed, 07 Mar 2012 20:45:33 -0500 nautilus (1:3.3.91-0ubuntu2) precise; urgency=low * debian/patches/20_static_unity_quicklist.patch: - Use title case and update for new freedesktop desktop action spec -- Jeremy Bicha Tue, 06 Mar 2012 16:36:07 -0500 nautilus (1:3.3.91-0ubuntu1) precise; urgency=low * New upstream version: - Ensure pathbar scrolling works with latest GTK - Fix a crash when unmounting volumes with non-empty trash - Fix a race condition leading to a crash when closing window slots under certain circumstances * debian/control.in: - updated gtk requirements * debian/patches/21_fix_crash_during_unmount.patch: - dropping, the fix is in the new version * debian/patches/22_fix_crash_from_extra_slot_ref.patch: - dropping, the fix is in the new version -- Sebastien Bacher Tue, 06 Mar 2012 21:34:52 +0100 nautilus (1:3.3.90-0ubuntu6) precise; urgency=low * Fix LP: #944624 - Don't stick a pointer to an int, as it causes stack corruption on 64-bit architectures - update debian/patches/zg_activity_logging.patch * Turn on the zeitgeist logging patch again - update debian/patches/series -- Chris Coulson Sat, 03 Mar 2012 23:53:38 +0000 nautilus (1:3.3.90-0ubuntu5) precise; urgency=low * Disable the zeitgeist logging patch until we figure out why it causes nautilus to crash (LP: #944624) - update debian/patches/series -- Chris Coulson Sat, 03 Mar 2012 20:09:45 +0000 nautilus (1:3.3.90-0ubuntu4) precise; urgency=low * debian/control.in: - Build-Depends on libzeitgeist-dev * debian/patches/02_additional_marge_for_unity.patch: - dropped, it's not required with the current launcher hidding behaviour (it was to deal with intellihide) and create margin issues (lp: #936958) * debian/patches/zg_activity_logging.patch: - "Logging file creation and move events with Zeitgeist will make sure they can be found from Unity", thanks Siegfried Gevatter (lp: #927544) [ Michael Terry ] * debian/patches/22_fix_crash_from_extra_slot_ref.patch: - Don't crash when emptying the trash while unmounting an SD card LP: #929031 -- Sebastien Bacher Thu, 01 Mar 2012 21:24:46 +0100 nautilus (1:3.3.90-0ubuntu3) precise; urgency=low * debian/patches/21_fix_crash_during_unmount.patch: - Fix callback prototype to not crash when emptying trash during an unmount. LP: #937824 -- Michael Terry Mon, 27 Feb 2012 15:33:08 -0500 nautilus (1:3.3.90-0ubuntu2) precise; urgency=low * debian/patches/05_desktop_menu_export.patch: - updated to the new design requirements, dropping the bookmarks menu and the new windows entry, those are availabe from the unity launcher (lp: #932143) -- Sebastien Bacher Wed, 22 Feb 2012 19:41:16 +0100 nautilus (1:3.3.90-0ubuntu1) precise; urgency=low * New upstream version: - don't segfault in nautilus_icon_view_set_directory_auto_layout() (lp: #927138) * debian/patches/git_style_tweaks.patch, debian/patches/git_active_toolbar.patch, debian/patches/git_template_not_double_free.patch: - dropped, the fixes are in the new version -- Sebastien Bacher Mon, 20 Feb 2012 19:45:32 +0100 nautilus (1:3.3.5-0ubuntu3) precise; urgency=low * debian/source_nautilus.py: - include gsettings config changes to bug reports * debian/patches/03_deprecated.patch: - dropped, no need to tweak the build flags the code has been updated * debian/patches/16_run_in_gnome_unity.patch: - dropped, the patch has been applied upstream (lp: #932961) * debian/patches/git_style_tweaks.patch: - backported styling changes * debian/patches/git_active_toolbar.patch: - don't disable pathbars when not needed (lp: #787600, #874739, #822063) -- Sebastien Bacher Thu, 16 Feb 2012 15:05:03 +0100 nautilus (1:3.3.5-0ubuntu2) precise; urgency=low * debian/patches/git_template_not_double_free.patch: - don't abort when creating a file from a template (lp #928802) -- Sebastien Bacher Wed, 08 Feb 2012 19:36:37 +0100 nautilus (1:3.3.5-0ubuntu1) precise; urgency=low * New upstream version, thanks Jeremy Bicha who started on the update: - Introduce Undo support for common file operations (lp: #109170) - Fix a crash when middle clicking icons on the desktop (lp: #817861) (lp: #927998) - Fix split view actions not updating properly (lp: #912746) - Fix wrong places sidebar selection under some locales (lp: #917875) - Fix a crash when enabling desktop icons handling - Fix invalid write error on tab closing (lp: #918907) - Correclty update menu checkmarks (lp: #912746) -- Sebastien Bacher Tue, 07 Feb 2012 10:57:47 +0100 nautilus (1:3.3.4-0ubuntu2) precise; urgency=low * Disable selinux support. On Ubuntu, we ship AppArmor by default, and selinux support adds a useless and technical entry to the properties panel. (LP: #886983) - debian/control.in: remove libselinux1-dev build-depend. -- Marc Deslauriers Sun, 05 Feb 2012 01:14:45 -0500 nautilus (1:3.3.4-0ubuntu1) precise; urgency=low * New upstream version which fixes: - "Opening Popupmenu in Context of Folder with List-View impossible?" (lp: #126540) - "'Create folder in here' context menu option for nautilus" (lp: #61786) - the file count and the size count change in opposite direction. (lp: #503330) - the mounts in the place menu should have a properties entry. (lp: #846289) - add command line option to select file (lp: #575719) - Media in 'Places' side bar should have same context menu as in 'Computer' (lp: #230098) * debian/nautilus-data.install: - updated, ui and icons have been moved into gresources * debian/patches/05_desktop_menu_export.patch: - updated to correctly include the gresources desktop definition [ Jeremy Bicha ] * New upstream release. * debian/control.in: - Bump minimum GTK and glib * Refreshed patches * Dropped upstream patches: - 17_dont_allow_new_tab_on_desktop.patch - 18_fix_crash_in_get_current_uri.patch - 19_lazily_initialize_notification_service.patch - git_sideplace_sorting.patch - git_next_row.patch - git_dont_document_browser_option.patch - git_browser_compat.patch - git_bookmarks_reordering.patch - git_listview_context_menus.patch - git_use_gtk_grid.patch -- Sebastien Bacher Tue, 31 Jan 2012 13:45:01 +0100 nautilus (1:3.2.1-2ubuntu12) precise; urgency=low * debian/patches/git_use_gtk_grid.patch: - use gtkgrid rather than gtktable in the properties dialog, should fix cut labels in the properties dialog (lp: #890055) (lp: #920262) -- Sebastien Bacher Tue, 24 Jan 2012 13:39:46 +0100 nautilus (1:3.2.1-2ubuntu11) precise; urgency=low * debian/patches/12_unity_launcher_support.patch: - handle now our own handler for the bookmarks itself to separate from gtk-window references. This prevents some crashes (especially when there is no nautilus window) (LP: #917821) -- Didier Roche Wed, 18 Jan 2012 16:35:33 +0100 nautilus (1:3.2.1-2ubuntu10) precise; urgency=low * debian/patches/12_unity_launcher_support.patch: - launch bookmarks in quicklist entry in a new window instead of current one. -- Didier Roche Wed, 18 Jan 2012 08:30:49 +0100 nautilus (1:3.2.1-2ubuntu9) precise; urgency=low * debian/patches/12_unity_launcher_support.patch: - add support for a second quicklist for nautilus: bookmarks (LP: #723862) - refactoring a great part of the patch to allow multiple "quicklist groups" for nautilus, and each part managing just a subset, grouping elements and such. * debian/patches/20_static_unity_quicklist.patch, debian/nautilus-home.desktop, debian/nautilus-home.desktop.in: - adding a static "Open a new window" quicklist to both nautilus.desktop and nautilus-home.desktop -- Didier Roche Tue, 17 Jan 2012 09:22:04 +0100 nautilus (1:3.2.1-2ubuntu8) precise; urgency=low * rebuild with latest libunity -- Didier Roche Fri, 13 Jan 2012 09:42:01 +0100 nautilus (1:3.2.1-2ubuntu7) precise; urgency=low * debian/patches/05_desktop_menu_export.patch: - drop the hack to avoid the nautilus menubar displayed on the desktop on non unity session, it's buggy, spam the session log and the issue has been fixed properly in gtk with a recent update (lp: #912379) -- Sebastien Bacher Thu, 12 Jan 2012 16:18:18 +0100 nautilus (1:3.2.1-2ubuntu6) precise; urgency=low * Add 19_lazily_initialize_notification_service.patch: Avoid spawning the notification daemon at startup through querying server caps. Instead, cache the result in server_has_persistence() and initialize it lazily. (LP: #912150) -- Martin Pitt Thu, 05 Jan 2012 10:32:29 +0100 nautilus (1:3.2.1-2ubuntu5) precise; urgency=low * debian/patches/git_listview_context_menus.patch: git fix for list view, "Show background menu when clicking on blank space" (lp: #51043) -- Sebastien Bacher Wed, 04 Jan 2012 12:31:25 +0100 nautilus (1:3.2.1-2ubuntu4) precise; urgency=low * debian/patches/git_bookmarks_reordering.patch: - backported some git commits to fix segfaults issues happened on bookmarks reordering (lp: #876621, #865098) * Refreshed the other changes -- Sebastien Bacher Fri, 16 Dec 2011 12:44:49 +0100 nautilus (1:3.2.1-2ubuntu3) precise; urgency=low * debian/patches/git_next_row.patch: - let navigate to the next row by pressing right at the end of the line (lp: #855862) * debian/patches/git_dont_document_browser_option.patch: - don't document the deprecated --browser option (lp: #890071) * debian/patches/git_browser_compat.patch: - don't exit with a "incorrect argument" error when --browser is used, keep it as a dummy compatibility option, some user config use it (lp: #890071) -- Sebastien Bacher Thu, 08 Dec 2011 18:37:01 +0100 nautilus (1:3.2.1-2ubuntu2) precise; urgency=low * debian/control.in: drop the Conflicts on the old libnautilus naming until the rdepends are rebuilt, Replaces is enough for non-partial upgrades -- Sebastien Bacher Thu, 08 Dec 2011 16:19:03 +0100 nautilus (1:3.2.1-2ubuntu1) precise; urgency=low * Resynchronize on Debian * Remaining diffs: * debian/changelog, debian/rules: set epoch number (which was added by error) * debian/control.in: - build-Depend on lpi, libappindicator3-dev, libunity-dev - don't build-depends on individual girs, the libraries do that - don't build with tracker, don't suggests it - nautilus-data should not need to recommends nautilus, lower to a suggests so file-roller doesn't bring in nautilus - nautilus Replaces nautilus-data, Debian installed the dbus service there * debian/mount-archive.desktop: * debian/mount-archive.desktop.in: - New nautilus context menu item to allow mounting zip, iso, etc * debian/nautilus.gsettings-override: - Change the default desktop icon configuration * debian/nautilus.install: - don't move the autostart to usr - install mount-archive menu - install nautilus-folder-handler.desktop * debian/nautilus-data.install: - install apport hook * debian/nautilus-folder-handler.desktop: - ship a copy of nautilus.desktop with NoDisplay=true since some user configurations refer to it * debian/patches/01_lpi.patch: - Launchpad changes. * debian/patches/02_additional_marge_for_unity.patch: - ensure we don't move desktop icons when locking or unlocking the unity launcher * debian/patches/03_translations_list_update.patch: - Translate the mount-archive menu entry * debian/patches/04_suppress_umount_in_ltsp.patch: - Don't list unmount and eject actions on LTSP clients * debian/patches/05_desktop_menu_export.patch: - export the desktop menus for appmenu in unity * debian/patches/06_never_exec_nonexec_launchers.patch: - Implement non-exec policy for .desktop handler. * debian/patches/07_use_application_indicator.patch: - Use the application-indicator, needs to be updated * debian/patches/08_clean_session_capplet.patch: - use NoDisplay for the new autostart desktop to keep the capplet clean * debian/patches/09_no-initial-fade.patch: - Patch to disable the initial fade-in of the background without disabling crossfades when the background is changed. * debian/patches/11_copy_skipping_pager.patch: - after discussion with dx and design, the easier short-time solution is to have the copy dialog skipping the pager to be able to launch nautilus even with a copy operation in progress * debian/patches/12_unity_launcher_support.patch: - added new patch to include support to the unity launcher. When a file operation is in progress the nautilus launcher icon gets a progress bar and the count of the active transfers, plus a quicklist item to bring on top/show the transfers window. * debian/patches/13_translate_unity_launcher.patch: - list the unity launcher desktop to translate * debian/patches/14_bring_del_instead_ctrl_del.patch: - use Del instead of Ctrl + Del for sending files to the bin * debian/patches/15_use-ubuntu-help.patch: - use the ubuntu documentation * debian/patches/16_run_in_gnome_unity.patch: - handle the background only in GNOME and Unity session * debian/patches/17_dont_allow_new_tab_on_desktop.patch: - Don't allow "New tab" shortcut on desktop * debian/patches/18_fix_crash_in_get_current_uri.patch: - Upstream patch to fix crash in nautilus_window_slot_get_current_uri() * debian/patches/git-0001-Workaround-focus-issues-on-typeahead.patch: - upstream patch to workaround focus issues on typeahead * debian/patches/git_sideplace_sorting.patch: - backport git commit to sort the places entries by alphabetic order rather than coding the list in english order * debian/rules: - use --disable-appindicator * debian/source_nautilus.py: - Apport hook to list versions of files in /usr/lib/nautilus and reassign the crashes when there are not due to nautilus code directly * Dropped diffs: * debian/nautilus.maintscript: - the conffile was only shipped during part of the Oneiric cycle * debian/rules: - ship an empty nautilus.css rather than none to avoid warnings, upstream is shopping the css with theme in the current version [ Paul Sladen ] * debian/nautilus-home.desktop: Force icon=folder for 'Home Folder' entry to reduce confusion (LP: #874265) -- Sebastien Bacher Thu, 08 Dec 2011 15:47:34 +0100 nautilus (3.2.1-2) unstable; urgency=low * Upload to unstable. * debian/control.in: - Drop Build-Depends on libdbus-glib-1-dev, no longer required. - Drop Recommends on desktop-base. It was originally added when nautilus was patched to show the .desktop icons from the desktop-base package. We don't do that anymore, so the Recommends has become obsolete. - Drop Recommends on consolekit. The ConsoleKit specific functionality has been moved into gnome-settings-daemon. - Drop Recommends on synaptic and app-install-data. We no longer call synaptic for mimetypes without a handler as this functionality is provided by alternatives like PackageKit or sessioninstaller now. - Update Vcs-* URLs. * debian/nautilus-data.gconf-defaults: - Removed, obsolete. * Refresh patches. -- Michael Biebl Mon, 21 Nov 2011 20:52:38 +0100 nautilus (3.2.1-1) experimental; urgency=low * New upstream release * debian/patches/13_tracker.patch: Updated * debian/control.in: Update build-dependencies * debian/control.in, debian/rules: enable the tracker sarch backend * debian/control.in: Recommend sushi -- Sjoerd Simons Sun, 06 Nov 2011 13:51:59 +0000 nautilus (3.0.2-4) unstable; urgency=low * Upload to unstable. -- Michael Biebl Thu, 13 Oct 2011 18:00:54 +0200 nautilus (3.0.2-3) experimental; urgency=low * debian/control.in: - Add Breaks against nautilus-sendto-empathy (<< 3.0) and gnome-bluetooth (<< 3.0) as the libnautilus-sendto extension was moved into nautilus 3 but the plugin path was not changed with the switch to GTK 3. Loading both GTK 2 and GTK 3 in the same process is not allowed. - Bump Standards-Version to 3.9.2. No further changes. - Bump Build-Depends on cdbs to (>= 0.4.90) to ensure dh_girepository is called. - Remove old Conflicts and Replaces. * debian/rules: - Remove clean-la.mk since we don't install any .la files. - Drop call to dh_girepository * Bump debhelper compatibility level to 8. - Strip debian/tmp/ from .install files. - Bump Build-Depends on debhelper. * debian/watch: - Update to version 3. - Track .xz tarballs. * debian/nautilus.install: - Install dbus service file for nautilus. * debian/patches/13_tracker.patch: - Add support for tracker 0.12. Closes: #643946 - Enable full text search. -- Michael Biebl Tue, 11 Oct 2011 17:49:58 +0200 nautilus (3.0.2-2) experimental; urgency=low * Rename libnautilus-extension1 to libnautilus-extension1a, and add appropriate Replaces/Conflicts. Closes: #627361. -- Josselin Mouette Tue, 31 May 2011 23:39:28 +0200 nautilus (3.0.2-1) experimental; urgency=low * Rebuild against a cdbs+debhelper with dh_installgsettings. Closes: #627477. * libnautilus-extension1 breaks nautilus (< 3.0) and that’s the beginning of a very long list (nautilus transition). + gnome-disk-utility < 3.0 + brasero < 2.91 + file-roller < 3.0 + nautilus-sendto < 3 * Replace nautilus-sendto since it is now included in nautilus. * New upstream translation and bugfix release. * 00_do_not_require_unpackage_libexif.patch: dropped, we have the latest libexif now. + Bump build-dependencies accordingly. * Bump libnotify requirement. * Reintroduce some nautilus 2.x patches. + 03_deprecated.patch: still necessary, refreshed. + 12_list-view_expand.patch: still necessary, file was renamed, refreshed. Update to GTK+ 3. * nautilus.install: install the autostart file. This should bring back the desktop icons functionality completely. -- Josselin Mouette Tue, 31 May 2011 19:30:35 +0200 nautilus (3.0.0-1) experimental; urgency=low * New upstream release. * debian/control.in: + bump relevant build dependencies. * debian/patches/00_do_not_require_unpackage_libexif.patch: new, dependencies were bumped upstream, to require the latest stable versions; but libexif 0.6.20 not yet in Debian, and not necessary. -- Frederic Peters Fri, 15 Apr 2011 15:38:08 +0200 nautilus (2.91.94-1) experimental; urgency=low * New upstream release. [ Josselin Mouette ] * Make the -dev package depend on the gir package. -- Frederic Peters Thu, 31 Mar 2011 09:52:17 +0530 nautilus (2.91.93-1) experimental; urgency=low * New upstream release. * debian/control.in: bumped build-dependency on gtk+ * debian/copyright: updated the list of copyright holders from the sources. -- Frederic Peters Sun, 27 Mar 2011 18:51:51 +0530 nautilus (2.91.90.1-1) experimental; urgency=low * New upstream release. -- Frederic Peters Tue, 22 Feb 2011 23:43:00 +0100 nautilus (2.91.9-1) experimental; urgency=low * New upstream release. + debian/control.in: - Update the build dependencies. - Update the gtk+ 3 and libgail 3 package names. -- Emilio Pozuelo Monfort Sat, 19 Feb 2011 14:27:11 +0000 nautilus (2.91.7-1) experimental; urgency=low * New upstream release. + debian/control.in: - Update build dependencies. + debian/patches/10_load_session.patch: - Removed, that code is gone. + debian/patches/30-fix-compilation.patch: - Removed, included upstream. * debian/po-up, debian/rules: + Removed patch-translations support, we have no patches with strings anymore (actually we have no patches at all!). -- Emilio Pozuelo Monfort Wed, 12 Jan 2011 22:47:23 +0000 nautilus (2.91.4-1) experimental; urgency=low * New upstream release * debian/patches/20-rename-extensions-directory.patch + Removed, fixed upstream * debian/control.in: Add Conflicts/Replaces to gir1.0-nautilus-3.0 -- Sjoerd Simons Sat, 18 Dec 2010 19:18:03 +0000 nautilus (2.91.3-2) experimental; urgency=low * Update to the new gir policy: - Rename gir1.0-nautilus-3.0 to gir1.2-nautilus-3.0. - Bump the gobject-introspection build dependency. * Switch to source format 3.0 (quilt). * debian/control.in, debian/rules: - Call dh_girepository and let the gir package depend on gir:Depends, to get gir dependencies. Build depend on the necessary gir1.2 packages for that. - Exclude the extensions folder from the dh_makeshlibs call. -- Emilio Pozuelo Monfort Sun, 12 Dec 2010 20:13:10 +0100 nautilus (2.91.3-1) experimental; urgency=low * New upstream release * debian/control: Add Gsettings schemas to nautilus-data * debian/control: Add gir1.0-nautilus-3.0 * debian/control: Add the nautilus gir to libnautilus-extension-dev.install * debian/patches/13_shortcuts.patch - Removed, Fixed upstream * debian/patches/20_open-with_install.patch - Removed, open with is now handled by GtkAppChooser * debian/patches/03_deprecated.patch - Removed, no longer relevant * debian/patches/12_list-view_expand.patch - Removed, no longer applies * debian/patches/10_location_titlebar.patch - Removed, not relevant anymore as there is a crumtrail * debian/patches/14_dont_show_umount.patch - Removed, fixed upstream. * debian/patches/30-fix-compilation.patch - Added, fix complications with --as-needed * debian/patches/20-rename-extensions-directory.patch - Added, rename the extensions dir to not clash with older nautilus extensions. From upstream git. * debian/rules: Add list-missing and autoreconf * debian/patches/99_ltmain_as-needed.patch - Removed as we use dh_autoreconf now * debian/patches/90_relibtoolize.patch - Removed as we use dh_autoreconf now * debian/control.in: Add gobject-introspection to the build-depends * debian/rules: Force gobject-introspection support to build * debian/control.in: libgirepository1.0-dev (>= 0.9.12) * debian/nautilus.install: Don't install .la for extensions -- Sjoerd Simons Sat, 11 Dec 2010 15:48:26 +0000 nautilus (2.30.1-3) unstable; urgency=low * 15_nautilus_file_peek_crash.patch: stolen from upstream git. Fix a crasher with lots of upstream duplicates from squeeze systems. -- Josselin Mouette Sun, 27 Feb 2011 12:50:09 +0100 nautilus (2.30.1-2) unstable; urgency=low * Drop type-handling usage. Closes: #587872. * Bump standards version accordingly. * 13_shortcuts.patch: stolen from upstream git. Fix an annoying bug that makes a number of keyboard shortcuts inoperant the first time. Closes: #592016. * 14_dont_show_umount.patch: stolen from upstream git. Don’t show both “unmount” and “safe removal”/“eject” entries. Closes: #564859. -- Josselin Mouette Sat, 18 Sep 2010 14:31:36 +0200 nautilus (2.30.1-1) unstable; urgency=low * Bump shlibs for libnautilus-extension1. Closes: #577856. * New upstream release. * 02_eel_libadd.patch, 04_tracker_0.8.patch: dropped, merged upstream. * 90_relibtoolize.patch: updated for the new version. -- Josselin Mouette Tue, 27 Apr 2010 19:06:00 +0200 nautilus (2.30.0-1) experimental; urgency=low * New upstream release. * debian/control.in - Drop libbeagle-dev and libtrackerclient-dev from Build-Depends. Nautilus uses dlopen now to access those search engines. - Bump libglib2.0-dev to (>= 2.24.0). - Bump libgnome-desktop-dev to (>= 2.29.91). - Bump libgtk2.0-dev to (>= 2.20.0). - Bump Standards-Version to 3.8.4. No further changes. * debian/patches/01_manpage.patch - Remove, merged upstream. * debian/patches/04_tracker_0.8.patch - Add support for tracker 0.8 and fix filtering by location. Patch pulled from upstream Git. * debian/patches/90_relibtoolize.patch - Update build system for new upstream release. * Refresh patches to apply cleanly. -- Michael Biebl Wed, 14 Apr 2010 23:30:34 +0200 nautilus (2.28.4-2) unstable; urgency=low * 03_deprecated.patch: new patch. Don’t use -D*DISABLE_DEPRECATED for a production build, it often FTBFS. Closes: #576977. * 90_relibtoolize.patch: updated accordingly. -- Josselin Mouette Fri, 09 Apr 2010 02:00:34 +0200 nautilus (2.28.4-1) unstable; urgency=low * New upstream bugfix release. * Regenerate relibtoolize patch to apply. -- Andreas Henriksson Tue, 15 Dec 2009 14:28:56 +0100 nautilus (2.28.3-1) unstable; urgency=low [ Josselin Mouette ] * Drop n-c-b from Recommends. [ Emilio Pozuelo Monfort ] * debian/patches/20_open-with_install.patch: - Add description. * debian/watch: - Don't uupdate. * New upstream bugfix release. - debian/patches/12_list-view_expand.patch, debian/patches/20_open-with_install.patch, debian/patches/90_relibtoolize.patch: + Refreshed. * debian/patches/01_manpage.patch, debian/patches/02_eel_libadd.patch: - Forwarded, add headers. -- Emilio Pozuelo Monfort Mon, 14 Dec 2009 21:01:11 +0100 nautilus (2.28.1-1) unstable; urgency=low [ Josselin Mouette ] * Drop gnome-mount recommends, it’s already pulled by gvfs if needed (i.e. for gvfs builds that use HAL). [ Andrea Veri ] * New upstream release. * debian/control: - bumped standards-version to 3.8.3. No changes needed. - bumped libtrackerclient-dev to >= 0.6.6 (lenny version), to start up nautilus porting to tracker 0.7. Thanks mbiebl for the hint. - added missing ${misc:Depends} to both nautilus-dbg and libnautilus-extension-dev making lintian stop complaining. [ Josselin Mouette ] * nautilus-data.gconf-defaults: set exit_with_last_window to false so that nautilus doesn’t go in a loop when show_desktop = false. * 13_autostart.patch: removed, it is no longer necessary. + Automount works even when show_desktop = false. Closes: #538108. + Stop installing the autostart file as well. + Break gnome-session < 2.28 because of this change. * Regenerate 90_relibtoolize.patch. -- Josselin Mouette Sat, 24 Oct 2009 15:32:11 +0200 nautilus (2.28.0-2) unstable; urgency=low * Require a recent gvfs for the metadata store. Closes: #548142, #548143. -- Josselin Mouette Thu, 24 Sep 2009 10:05:46 +0200 nautilus (2.28.0-1) unstable; urgency=low * Depend on libglib2.0-data for GIO translations. * New upstream release. + Fixes duplicate ID in UI file. Closes: #545254. * Bump glib build-dependency. * 12_list-view_expand.patch, 13_autostart.patch, 90_relibtoolize.patch: updated for the new version. * Install nautilus-convert-metadata. -- Josselin Mouette Wed, 23 Sep 2009 20:11:11 +0200 nautilus (2.26.3-1) unstable; urgency=low * New upstream release. + Updated Spanish translation. Closes: #532288. * 13_autostart.patch: start with -n so that the default window is not created, even when nautilus doesn’t detect correctly it is started by the session startup. Closes: #532799. * 90_relibtoolize.patch: regenerated for the new version. -- Josselin Mouette Thu, 11 Jun 2009 23:08:03 +0200 nautilus (2.26.2-5) unstable; urgency=low * 11_restart_mode.patch: removed, it is useless now that we never autorespawn nautilus. Furthermore, nautilus-home.desktop is lacking a X-GNOME-Provides: field. * 13_autostart.patch: refreshed accordingly. -- Josselin Mouette Sun, 31 May 2009 17:53:10 +0200 nautilus (2.26.2-4) unstable; urgency=low * 11_restart_mode.patch: add reference. * Remove scrollkeeper dependency. * 13_autostart.patch: new patch. Put nautilus.desktop into the autostart directory so that we don’t rely on gnome-session’s required_applications mechanism. This allows to add an autostart condition on the show_desktop GConf key. + Remove the AutoRestart on the same basis; there’s no point in restarting nautilus and not e.g. gnome-power-manager, and it causes many issues. * 90_relibtoolize.patch: update accordingly. -- Josselin Mouette Sun, 31 May 2009 13:51:27 +0200 nautilus (2.26.2-3) unstable; urgency=low * 11_restart_mode.patch: new patch. Do not get the session manager to automatically restart nautilus when using --no-desktop. Thanks to Roland Mas for testing. -- Josselin Mouette Wed, 29 Apr 2009 17:55:35 +0200 nautilus (2.26.2-2) unstable; urgency=low * 20_open-with_install.patch: fix a crash when switching tabs in the dialog. -- Josselin Mouette Sat, 25 Apr 2009 23:44:05 +0200 nautilus (2.26.2-1) unstable; urgency=low * Break eiciel, diff-ext, nautilus-gksu, nautilus-actions, nautilus-share and seahorse-plugins until versions rebuilt with the new extension path. * Only suggest xdg-user-dirs, nautilus works perfectly fine without it. * New upstream release. + Correctly cleans up session files. Closes: #469267. + Checks whether the session is active with ConsoleKit before mounting a removable media. Closes: #512824. + Follows OnlyShowIn/NotShowIn for .desktop files on the desktop. Closes: #422570. + Only accepts .desktop with executable permissions. Closes: #515078, #515104. * 07_desktop_file_activation.patch: removed from the sources. * 02_eel_libadd.patch: stolen from the eel2 sources. Fix linking of the eel convenience library. * 14_sidebar_network-protocol.patch: removed, useless since 2.24. Closes: #518773. * 20_open-with_install.patch: updated for the new version. * 90_relibtoolize.patch: new patch, relibtoolize over that. * Refresh other patches. * Bump shlibs version to 2.26.2. * Add brasero 2.26 as an alternative to n-c-b. * Recommend consolekit. * Pass --disable-packagekit. * Fix section of debug package. * Update build-dependencies and dependencies according to the upstream changes. * Build-depend on libglib2.0-doc and libgtk2.0-doc to ensure proper xrefs. * nautilus-data.install: there are no more bonobo files to ship. * 10_load_session.patch: new patch. Support --load-session so that sessions saved with older nautilus versions will load correctly. -- Josselin Mouette Sat, 25 Apr 2009 01:33:51 +0200 nautilus (2.24.2-3) unstable; urgency=low * Require shared-mime-info 0.50 to have support for the x-content types. Closes: #511370. * Recommend gnome-mount. * Break rhythmbox < 0.12. * Standards version is 3.8.1. * Upload to unstable. -- Josselin Mouette Tue, 07 Apr 2009 14:06:47 +0200 nautilus (2.24.2-2) experimental; urgency=low * Add a Breaks with g-v-m << 2.24 to avoid double actions on device insertion. Closes: #507630, #510692. * 20_open-with_install.patch: add missing argument to gtk_tree_model_get. Closes: #510694. -- Josselin Mouette Tue, 06 Jan 2009 17:07:39 +0100 nautilus (2.24.2-1) experimental; urgency=low * nautilus-data.gconf-defaults: enable autorun actions for all media CD/DVD/etc. by default instead of asking. + Also do it for blank media. * libnautilus-extension1 breaks nautilus << 2.22. * Build-depend on libgnome-desktop-dev 2.24 to be sure to link with libgnome-desktop-2-7. Otherwise, since symbols are not versioned, libeel2-2.24 will load it anyway and ka-boom. Closes: #507632. * New upstream release. -- Josselin Mouette Wed, 26 Nov 2008 01:28:28 +0100 nautilus (2.24.1-1) experimental; urgency=low [ Gustavo Noronha Silva ] * New upstream release * debian/patches/20_open-with_install.patch: - updated to the new version [ Josselin Mouette ] * Update (build-)dependencies according to the new version. * Add Breaks in libnautilus-extension1 against all packages that use the old API. * 12_list-view_expand.patch, 14_sidebar_network-protocol.patch: refreshed. * Update shlibs version to 2.23.1. * Only require gvfs (>= 1.0.2), only recommend gvfs-backends. * Stop recommending fam, gio does not support it correctly. * Remove useless dh_strip argument overloading. * 01_manpage.patch: fix whatis entry in nautilus-connect-server.1. * Install upstream manpages in nautilus. * Install the documentation for libnautilus-extension. -- Josselin Mouette Sun, 23 Nov 2008 23:39:28 +0100 nautilus (2.22.5.1-1) experimental; urgency=low [ Josselin Mouette ] * 20_open-with_install.patch: handle the case where content_type = NULL. See bugzilla #541183. [ Sebastian Dröge ] * New upstream bugfix release. -- Sebastian Dröge Sat, 12 Jul 2008 19:17:54 +0200 nautilus (2.22.4-1) experimental; urgency=low * New upstream bugfix release. -- Sebastian Dröge Mon, 30 Jun 2008 16:28:24 +0200 nautilus (2.22.3-1) experimental; urgency=low [ Josselin Mouette ] * 20_open-with_install.patch: ported from the patch formerly in eel2. * Also recommend synaptic and app-install-data. * Include patch-translations.mk, require gnome-pkg-tools 0.13. * debian/po-up: taken from eel2. * 99_ltmain_as-needed.patch: make the patch apply with -p1. Closes: #484953. [ Sebastian Dröge ] * New upstream bugfix release: + debian/control.in: - Drop esound from build dependencies. + debian/patches/05_places-sidebar_single-click.patch: - Dropped, merged upstream. * debian/control.in: + Update Standards-Version to 3.8.0, no additional changes needed. -- Sebastian Dröge Wed, 25 Jun 2008 08:42:25 +0200 nautilus (2.22.2-1) experimental; urgency=high * New upstream bugfix release: + debian/patches/05_places-sidebar_single-click.patch: - Updated to apply cleanly again. -- Sebastian Dröge Tue, 08 Apr 2008 18:48:04 +0200 nautilus (2.22.1-1) experimental; urgency=low * 05_places-sidebar_single-click.patch: Update from bugzilla and enable again as it should work good now and is more consistent with the GTK file chooser. * New upstream bugfix release: + debian/patches/03_sftp_connect.patch, debian/patches/04_show_backup_files.patch, debian/patches/15_tracker_check.patch, debian/patches/90_from_svn_mount_connect_to_server_locations.patch, debian/patches/90_from_svn_fix_changing_default_application.patch: - Dropped, emrged upstream. -- Sebastian Dröge Fri, 28 Mar 2008 22:12:12 +0100 nautilus (2.22.0-3) experimental; urgency=low * Disable 05_places-sidebar_single-click.patch as it's buggy. * Remove 18_disable_signal_handler.patch, it's better fixed upstream. * Remove 06_dont_create_Desktop.patch, --no-desktop is meant as a switch to not show icons on the desktop and not creating the desktop directory creates all kinds of broken links in nautilus. * Remove 08_folder_handler.patch, this is upstream already. * Disable 10_location_titlebar.patch, this gives completely unwanted results for thrash:// for example or when the filesystem uses something else than UTF8 as encoding (%XX stuff in the title). See http://bugzilla.gnome.org/show_bug.cgi?id=142087 * 90_from_svn_mount_connect_to_server_locations.patch, Added. Mounts location in the connect to server dialog. Patch taken from the Ubuntu package. -- Sebastian Dröge Wed, 19 Mar 2008 16:22:08 +0100 nautilus (2.22.0-2) experimental; urgency=low * Disable 07_desktop_file_activation.patch for now, it breaks in an unintended way. -- Sebastian Dröge Wed, 19 Mar 2008 11:10:42 +0100 nautilus (2.22.0-1) experimental; urgency=low [ Sebastian Dröge ] * New upstream stable release: + Upload to experimental first because of intrusive changes. + debian/control.in: - Update build dependencies and dependencies. + debian/rules: - Bump shlibs. + debian/patches/01_prompt_same_file.patch, debian/patches/16_missing_thumbnails.patch, debian/patches/20_upstream_nautilus-dnd-user-owned.patch, debian/patches/21_nautilus_xmp.patch, debian/patches/23_thumbnails_add-border.patch, debian/patches/11_gnomevfs_query_eject.patch: - Dropped, merged upstream. + debian/patches/06_dont_create_Desktop.patch: - Updated to apply cleanly again. + debian/patches/07_desktop_file_activation.patch: - Updated to apply cleanly again. + debian/patches/10_location_titlebar.patch: - Updated to apply cleanly again. + debian/patches/14_sidebar_network-protocol.patch: - Updated to apply cleanly again. + debian/patches/99_ltmain_as-needed.patch: - Updated to apply cleanly again. + debian/patches/90_from_svn_fix_changing_default_application.patch: - Make changing the default application work again, patch taken from the Ubuntu package. + debian/patches/18_disable_signal_handler.patch: - Don't use the logging code signal handler it's buggy and makes nautilus being stuck and eat cpu on crash. Patch taken from the Ubuntu package. -- Sebastian Dröge Sun, 16 Mar 2008 20:30:48 +0100 nautilus (2.20.0-7) unstable; urgency=low * 25_disable_sighandler.patch: patch from upstream SVN. Disable the horrible signal handler that makes nautilus go wild while filling its debug log. Closes: #454764, #494788. * Don’t require libselinux on non-linux OSes. Closes: #494645. -- Josselin Mouette Tue, 16 Sep 2008 08:15:05 +0200 nautilus (2.20.0-6) unstable; urgency=low * 24_smb_crash.patch: patch from upstream to handle NULL MIME types set by the SMB module gracefully, avoiding a lot of crashes. -- Josselin Mouette Mon, 21 Jul 2008 17:09:01 +0200 nautilus (2.20.0-5) unstable; urgency=low * 05_places-sidebar_single-click.patch: replaced by upstream version of the patch, that does not activate items while right-clicking them. Closes: #414960. * 06_dont_create_Desktop.patch, 20_upstream_nautilus-dnd-user-owned.patch: make patches apply with -p1. Closes: #484953. * Recommend app-install-data and synaptic now that libeel doesn’t anymore. -- Josselin Mouette Fri, 18 Jul 2008 13:27:27 +0200 nautilus (2.20.0-4) unstable; urgency=low [ Loic Minier ] * Add a nautilus-extensions-1.0 Provide to nautilus to express the fact that nautilus will search for extensions in /usr/lib/nautilus/extensions-1.0; this might avoid a long list of Conflicts in nautilus when updating to extensions-2.0 (nautilus >= 2.21.2). [ Josselin Mouette ] * Demote fam to a Suggests; only g-d-e really needs to recommend it. * 02_trash_location.patch: new patch. When unmounting a volume with a non-empty trash, take into account that with the new location, the directory to remove is the parent of the one returned by gnome-vfs. -- Josselin Mouette Wed, 28 May 2008 01:47:28 +0200 nautilus (2.20.0-3) unstable; urgency=low [ Diego Escalante Urrelo ] * New patch, 23_thumbnails_add-border.patch, restore the thumbnail borders; (GNOME #478363). Closes: #456957. [ Josselin Mouette ] * Add missing references to all patches. [ Sebastien Bacher ] * New nautilus-connect-server manpage from Fernando Ribeiro (Ubuntu: #61299) [ Josselin Mouette ] * 16_missing_thumbnails.patch: stolen from upstream's SVN. Fixes disappearing thumnails. Closes: #453525. [ Julian Andres Klode ] * debian/nautilus-connect-server.1: fix the manpage * debian/nautilus-file-management-properties.1: add new manpage * Upgrade to Policy 3.7.3 * Add VCS-Browser and VCS-Svn fields to debian/control * Use the new Homepage field -- Josselin Mouette Sat, 12 Jan 2008 16:16:26 +0100 nautilus (2.20.0-2) unstable; urgency=high [ Loic Minier ] * Build-dep against libglib2.0-dev >= 2.14; fixes crashes when mixing the internal copy of GSequence with the glib one; thanks Andre Klapper. [ Sebastian Dröge ] * debian/patches/21_nautilus_xmp.patch, debian/control.in: + Build against exempi 1.99.5. Patch by Michael Biebl. (Closes: #450486) -- Sebastian Dröge Thu, 22 Nov 2007 11:00:12 +0100 nautilus (2.20.0-1) unstable; urgency=low * 15_tracker_check.patch: new patch, properly checks that tracker is installed before using it. Closes: #439863. * Suggest tracker. * New upstream release. * Update build dependencies. * Pass --disable-update-mimedb to configure flags. * Don't ship the XML file in nautilus, ugh. * Call dh_installmime by hand for nautilus-data. * Refresh patches. * 05_places-sidebar_single-click.patch: updated to new version. * 12_list-view_expand.patch: updated for 2.20; revert upstream commit r13045. * 13_thumbnail_size_pref.patch: removed, integrated upstream. * 60_combobox-changed-signal.patch: removed, integrated upstream. * Update menu file. -- Josselin Mouette Mon, 24 Sep 2007 12:34:46 +0200 nautilus (2.18.3-3) unstable; urgency=low * New patch, 60_combobox-changed-signal, fix a crash with newer Gtk emitting a changed signal; GNOME #459221; SVN r13002. -- Loic Minier Tue, 24 Jul 2007 15:57:04 +0200 nautilus (2.18.3-2) unstable; urgency=low * 14_sidebar_network-protocol.patch: fix systematic segfault. Closes: #434123. * Enable tracker support by build-depending on libtrackerclient-dev. -- Josselin Mouette Sun, 22 Jul 2007 15:17:31 +0200 nautilus (2.18.3-1) unstable; urgency=low [ Josselin Mouette ] * 12_list-view_expand.patch: update the minimum width to 20 characters. * Update watch file. * 13_thumbnail_size_pref.patch: stolen from upstream SVN. Introduces a preference to define the thumbnail size (closes: #425400). * 99_ltmain_as-needed.patch: make --as-needed work for the library too. [ Otavio Salvador ] * 14_sidebar_network-protocol.patch: Adds the "Network Servers" option on sidebar. Thanks to Luis Gustavo S. Barreto for the patch. [ Guilherme de S. Pastore ] * 15_japanese_typo.patch: fixes a typo in the Japanese translation. Thanks to Kobayashi Noritada for reporting it. (Closes: #430679) [ Josselin Mouette ] * New upstream release. * Refresh patches. * 15_japanese_typo.patch: removed, integrated upstream. -- Josselin Mouette Wed, 18 Jul 2007 23:43:01 +0200 nautilus (2.18.1-3) unstable; urgency=low [ Loic Minier ] * Set LDFLAGS directly instead of via DEB_CONFIGURE_SCRIPT_ENV; build-dep on cdbs >= 0.4.41. * Prepend -z defs to LDFLAGS for additional safety. * Wrap build-deps and deps. [ Josselin Mouette ] * 12_list-view_expand.patch: set a minimum width for the name column to avoid opening a window with a too small name column. Partially fixes #422563. -- Josselin Mouette Wed, 16 May 2007 00:21:01 +0200 nautilus (2.18.1-2) unstable; urgency=low * 10_location_titlebar.patch: include gnome-vfs-utils.h (closes: #421027). * Refresh other patches. * 12_list-view_expand.patch: make the filename column expandable instead of setting the width by default. Reverts upstream commit 12779. -- Josselin Mouette Tue, 01 May 2007 16:16:22 +0200 nautilus (2.18.1-1) unstable; urgency=low [ Josselin Mouette ] * 10_location_titlebar.patch: patch from Adrien Delle Cave to display the full location in the title bar when a setting is enabled (closes: #413018). * 01_prompt_same_file.patch: don't overwrite files when the source and destination are strictly the same (closes: #419525). [ Sebastian Dröge ] * Upload to unstable, drop check-dist include. * New upstream release: + Update build dependency on libgnome2-dev to >= 2.14.0 and add x11proto-core-dev for the multimedia keys support. + Bump shlibs to 2.17.90. + Fix URL in the watch file. + Dropped 02_umask.patch, 09_connect_server_iter.patch, merged upstream. + Dropped 11_umount-progress-bar.patch, this is obsolete now that gnome-volume-manager and gnome-vfs use gnome-mount, which displays a notification bubble. See Gnome #313639. + Add icons to nautilus-data.install. * 11_gnomevfs_query_eject.patch: Patch taken from Ubuntu. Use gnomevfs' gnome_vfs_drive_needs_eject() function instead of just looking at the drive type. This keeps umount/eject consistent and keeps it configurable with the HAL policies. * 20_upstream_nautilus-dnd-user-owned.patch: Patch taken from Ubuntu. Use copy instead of move when using DND and the destination is owned by someone else. See Gnome #339154. * 10_location_titlebar.patch: Updated with the latest patch from Gnome #142087. -- Sebastian Dröge Tue, 24 Apr 2007 22:38:54 +0200 nautilus (2.16.3-5) experimental; urgency=low * Bump up librsvg2-dev build-dep to >= 2.16.0-2 to make the package autobuildable; add a librsvg2-common >= 2.16.0-2 build-dep since desktop-base needs it, and librsvg2-dev doesn't pull it. -- Loic Minier Tue, 13 Mar 2007 13:27:43 +0100 nautilus (2.16.3-4) experimental; urgency=low * 08_folder_handler.patch: add OnlyShowIn=GNOME to nautilus-folder-handler.desktop (closes: #396969). * 07_desktop_file_activation.patch: + Compare numeric uids instead of using strcmp. + Fix the context menu of "link" desktop items. * 09_connect_server_iter.patch: patch from Christian Neumair to display only supported protocols in the "connect to" window (closes: #375180). -- Josselin Mouette Sun, 25 Feb 2007 00:50:36 +0100 nautilus (2.16.3-3) experimental; urgency=low [ Loic Minier ] * Add a get-orig-source target to retrieve the upstream tarball. * Add an epoch to the libgnomevfs2-dev build-dep and dep. * Include the new check-dist Makefile to prevent accidental uploads to unstable; bump build-dep on gnome-pkg-tools to >= 0.10. [ Josselin Mouette ] * 06_dont_create_Desktop.patch: patch from upstream bugzilla. Don't create the Desktop directory when run with the --no-desktop option (closes: #230757, #408896). * 07_desktop_file_activation.patch: + Don't launch desktop files that aren't at safe places (closes: #408556). This doesn't affect desktop files that are merely links. + Don't launch those that don't end with .desktop (closes: #408948). -- Josselin Mouette Thu, 15 Feb 2007 17:23:51 +0100 nautilus (2.16.3-2) experimental; urgency=low * 03_sftp_connect.patch: patch from Mike Hommey to add a "connect to server" context menu item for sftp shares (closes: #375181). * 04_show_backup_files.patch: patch from Stephen Cook to display backup files together with hidden files (closes: #401583). * Refresh 11_umount-progress-bar.patch. * 05_places-sidebar_single-click.patch: patch from UHU Linux to use single click in the "places" sidebar pane. -- Josselin Mouette Wed, 3 Jan 2007 00:31:00 +0100 nautilus (2.16.3-1) experimental; urgency=low [ Loic Minier ] * Ship /usr/share/mime/application in nautilus. * Merge 2.14.3-2, 2.14.3-3, and 2.14.3-4; credit 10_nautilus-directory-cache-is-local in 2.14.3-4 appropriately. * Fix watch file to use HTTP. [ Josselin Mouette ] * Merge 2.14.3-6. * Switch to quilt for patch handling. * 02_umask.patch: use the recommended method upstream, which should be thread-safe. * 10_nautilus-directory-cache-is-local.patch: removed, integrated upstream. * 11_umount-progress-bar.patch: refresh translations. -- Josselin Mouette Fri, 8 Dec 2006 22:29:03 +0100 nautilus (2.16.1-1) experimental; urgency=low [ Josselin Mouette ] * Brown paper bag update. * 02_umask.patch: use and operator on not(umask), not the xor. [ Loic Minier ] * Bump the Depends on libgnomevfs2-dev >= 2.16.0-1 as well. * Reorder build-deps to please pbuilder. * Add missing build-deps on libgnomeui-dev (>= 2.6.0), libglib2.0-dev (>= 2.6.0), libgnome2-dev (>= 2.1.1), libpango1.0-dev (>= 1.1.2). * Version the liborbit2-dev build-dep to >= 2.4.0. * Bump the libgnomeui-dev build-dep to >= 2.16.0-2 for gtk+2.0 2.10. * Bump the libbonobo2-dev build-dep to >= 2.15 for gnome-vfs2 >= 2.16.0-1. * Add ${shlibs:Depends} to libnautilus-extension-dev. * New upstream release; no API change. -- Loic Minier Thu, 5 Oct 2006 17:04:18 +0200 nautilus (2.16.0-2) experimental; urgency=low [ Marco Cabizza ] * Bump libgnomevfs2-dev build-dep to 2.16.0-1 for selinux support. [ Loic Minier ] * Upload. -- Loic Minier Sun, 24 Sep 2006 21:45:45 +0200 nautilus (2.16.0-1) experimental; urgency=low * New upstream release. * Update watch file. * Remove requirements on libpopt and libgsf. * Update build-dependencies appropriately. * Remove many unneeded dependencies for libnautilus-extension-dev. * Build-depend on docbook-utils and libselinux1-dev. * Build-depend on gnome-pkg-tools 0.7 and use clean-la.mk. * Also use gnome-version.mk and use ${gnome:Version}. * Bump shlibs to 2.15.90. -- Josselin Mouette Tue, 12 Sep 2006 23:42:15 +0200 nautilus (2.14.3-6) unstable; urgency=medium * Update patch 11_umount-progress-bar to fix an implicit pointer conversion to int which would have likely caused crashes on 64-bits arches; thanks Dann Frazier; closes: #400996. -- Loic Minier Thu, 30 Nov 2006 13:45:04 +0100 nautilus (2.14.3-5) unstable; urgency=low * New patch, 11_umount-progress-bar.patch, to display a progress bar when umounting an USB stick (or other volumes); taken from the Ubuntu package as well as the translations; thanks Sven Arvidsson; GNOME #313639; closes: #396939, #398373. -- Loic Minier Wed, 29 Nov 2006 15:33:06 +0100 nautilus (2.14.3-4) unstable; urgency=low * New patch, 10_nautilus-directory-cache-is-local.patch, to cache the result of islocal() on NautilusDirectory objects; this is called relatively often and should speed up browsing of network shares; from upstream CVS; credits to Alexander Larsson and Federico Mena Quintero. -- Loic Minier Wed, 15 Nov 2006 17:08:56 +0100 nautilus (2.14.3-3) unstable; urgency=low * Is there something like a double brown paper bag? * 02_umask.patch: finally a correct expression, hopefully. Fixes problem with file creation (closes: #390908). -- Josselin Mouette Wed, 4 Oct 2006 17:14:14 +0200 nautilus (2.14.3-2) unstable; urgency=low * 02_umask.patch: use & operator on umask, not ^. Silly me. -- Josselin Mouette Mon, 2 Oct 2006 14:39:03 +0200 nautilus (2.14.3-1) unstable; urgency=low * New upstream release. * 02_umask.patch: honor umask when creating files (closes: #314796). * 01_relibtoolise.patch: removed. * Bump eel2 build-dependencies. -- Josselin Mouette Thu, 3 Aug 2006 21:41:00 +0200 nautilus (2.14.1-5) unstable; urgency=high [ Josselin Mouette ] * nautilus-data depends on ${misc:Depends} (RC bug fix). [ Loic Minier ] * Add a useless ${misc:Depends} to libnautilus-extension1, just in case. -- Loic Minier Wed, 14 Jun 2006 11:00:59 +0200 nautilus (2.14.1-4) unstable; urgency=low * nautilus-dbg replaces libnautilus-extension1-dbg (closes: #368304). -- Josselin Mouette Sun, 21 May 2006 20:53:43 +0200 nautilus (2.14.1-3) unstable; urgency=low * The "tame the beast" release. + New maintainer. * Remove dependency on broken gamin. * Keep only fam as a Recommends:, nautilus now monitors correctly local mounts even without it (closes: #353163). * Standards version is 3.7.2. * dirs: removed, useless. * *.install: move architecture-independent data to nautilus-data (closes: #314209). + Add a conflict with earlier versions. * rules, nautilus-data.dirs: don't install the initial-desktop stuff, it isn't used at all. * nautilus-data.install: use it to install the icon. * README.Debian: removed, useless. * nautilus.postinst: removed, deprecated. * Use ${binary:Version} (yes, that's cosmetic). * Put all debugging information in nautilus-dbg. + Remove libnautilus-extension1-dbg entirely. + Use debhelper 5 and depend on it. * Set priority of the debugging package to extra, to match the override. * libnautilus-extension-dev.install: there is no .a file. -- Josselin Mouette Thu, 18 May 2006 06:40:47 +0200 nautilus (2.14.1-2) unstable; urgency=low [ Sebastien Bacher ] * Upload [ Josselin Mouette ] * Make the package binNMU-safe. + Build-depend on dpkg-dev 1.13.19. + Use ${source:Version}. [ Loic Minier ] * Stop shipping /usr/lib/*.la files in libnautilus-extension-dev. [debian/libnautilus-extension-dev.install] * Build with a fixed CDBS (0.4.39-0.1 for #365085) which should restore the correct libnautilus-extension1 shlib dep. (Closes: #365740) -- Sebastien Bacher Sat, 13 May 2006 00:12:20 +0200 nautilus (2.14.1-1) unstable; urgency=low * New upstream version * debian/control.in: - updated requirements on libeel and libgtk according to configure * debian/patches/01_relibtoolise.patch: - updated -- Sebastien Bacher Sun, 30 Apr 2006 01:16:06 +0200 nautilus (2.14.0-1) unstable; urgency=low * New upstream version * debian/control.in: - updated the requirements on gnome-vfs, eel - updated cdbs requirement so dh_installmime is used * debian/nautilus-data.install: - install the "application/x-gnome-saved-search" mimetype definition * debian/patches/01_relibtoolise.patch: - updated * debian/rules: - updated the shlibs argument * debian/watch: - updated [ Josselin Mouette ] * Recommend librsvg2-common and libgnomevfs2-extra. [ Loic Minier ] * Depend on gamin | fam since gnome-vfs deps are not enough to ensure it's there. (Closes: #353163) [debian/control, debian/control.in] -- Sebastien Bacher Sun, 9 Apr 2006 19:41:37 +0200 nautilus (2.12.2-3) unstable; urgency=low * Simple rebuild to get rid of references to Xcursor.la and Xrender.la. -- Loic Minier Mon, 24 Apr 2006 19:45:51 +0200 nautilus (2.12.2-2) unstable; urgency=low * Upload to unstable. -- Josselin Mouette Sun, 8 Jan 2006 00:30:27 +0100 nautilus (2.12.2-1) experimental; urgency=low [ Sjoerd Simons ] * Up gnome-vfs2 build-depend to >= 2.12.0 [ Loic Minier ] * New upstream release. * Minor cleanups to debian/rules. * Actually ship license information and distinguish between copyright and license. -- Loic Minier Mon, 12 Dec 2005 22:42:27 +0100 nautilus (2.12.1-1) experimental; urgency=low * New upstream version. * debian/control.in: - updated the Build-Depends on the eel2 package. * debian/patches/01_relibtoolise.patch: - updated. * debian/patches/07_places_bookmarks.patch, debian/patches/08_desktopborder.patch: - fixed with the new version. * debian/watch: - updated. -- Sebastien Bacher Mon, 17 Oct 2005 16:00:40 +0200 nautilus (2.10.1-5) unstable; urgency=high [ Josselin Mouette ] * Depend on ${misc:Depends} (high urgency fix). * Add --as-needed again. [ Loic Minier ] * Add CDBS' utils. -- Loic Minier Fri, 14 Oct 2005 11:24:06 +0200 nautilus (2.10.1-4) unstable; urgency=medium [ Sebastien Bacher ] * debian/control.in: - Build-Depends on the current exif (Closes: #321261). * debian/rules: - don't use "-as-needed", fix the current build issue (Closes: #320138). [ Josselin Mouette ] * Don't recommend gnome-icon-theme, gnome-control-center already depends on it. * Updated Suggests, using evince | pdf-viewer instead of xpdf, and totem | mp3-decoder instead of xmms (closes: #289252). -- Sebastien Bacher Fri, 5 Aug 2005 13:12:57 +0200 nautilus (2.10.1-3) unstable; urgency=medium * Pass --as-needed to ld. * Remove most conflicts and replaces, they aren't useful anymore. * Depend on gnome-control-center instead of capplets. * Cosmetic fixes to the -dbg packages' description. * Don't install the .so and .la for libnautilus-private. * Standards-version is 3.6.2. * copyright: correctly reference the authors and the GPL. -- Josselin Mouette Sat, 25 Jun 2005 18:03:04 +0200 nautilus (2.10.1-2) unstable; urgency=low * Upload to unstable. -- Sebastien Bacher Fri, 10 Jun 2005 15:26:25 +0200 nautilus (2.10.1-1) experimental; urgency=low * Changes by Sébastien Bacher: * New upstream version. * debian/patches/09_connect-server-auth-fix.patch: - fixed upstream. * Changes by Josselin Mouette: * Conflict with libnautilus2-dev. -- Sebastien Bacher Mon, 9 May 2005 15:57:18 +0200 nautilus (2.10.0-1) experimental; urgency=low * New upstream release: - better handling of DnD from web browsers (Closes: #269490). - fix the icon layout on ia64 (Closes: #286039). * debian/control.in: - create a debug package. - don't Build-Conflicts on libcdparanoia0-dev - renamed libnautilus2-2 to libnautilus-extension1 to reflect the upstream changes. - updated the Build-Depends. * debian/patches/01_relibtoolise.patch: - updated. * debian/patches/02_build_exif.patch: - fixed upstream. * debian/patches/07_places_bookmarks.patch: - patch to add the GTK bookmarks to the places menu. * debian/patches/08_desktopborder.patch: - don't display a border around the desktop. * debian/patches/09_connect-server-auth-fix.patch: - don't display a warning when creating a share. * debian/rules: - updated the configure options. - updated the shlibs. * debian/watch: - updated. -- Sebastien Bacher Fri, 8 Apr 2005 16:46:55 +0200 nautilus (2.8.2-2) unstable; urgency=medium * debian/nautilus.postrm: - test if the directories are here before trying to remove them (Closes: #283450). -- Sebastien Bacher Wed, 24 Nov 2004 16:09:08 +0100 nautilus (2.8.2-1) unstable; urgency=low * New upstream release. * Upload to unstable. * debian/patches/01_relibtoolise.patch: - updated. * debian/rules: - updated the Build-Depends. -- Sebastien Bacher Thu, 18 Nov 2004 19:35:45 +0100 nautilus (2.8.1-1) experimental; urgency=low * New upstream release. * debian/patches/01_relibtoolise.patch: - updated. -- Sebastien Bacher Tue, 12 Oct 2004 00:16:22 +0200 nautilus (2.8.0-1) experimental; urgency=low * New upstream release. * debian/control.in: - updated the Build-Depends on libeel2-dev to 2.8.0. * debian/patches/01_relibtoolise.patch: - updated. -- Sebastien Bacher Tue, 14 Sep 2004 21:38:18 +0200 nautilus (2.7.4-1) experimental; urgency=low * GNOME Team Upload. * New upstream development release. - now uses the freedesktop.org MIME specification. * Switched to CDBS. * debian/control.in: - nautilus depends on desktop-file-utils (>= 0.7). - updated the Build-Depends on libeel2-dev to 2.7.4. * debian/patches/01_relibtoolise.patch: - updated. * debian/patches/03_desktop-launchers.patch: - removed since included in the new upstream release. * debian/patches/04_mime_warning.patch: - removed, obsolete. * debian/control.in: - Build-Depends on cdbs instead of dbs. - updated the Build-Depends on librsvg2 to 2.7 * debian/*.files: - replaced by *.install files. * debian/rules: - switched to CDBS. * This update is based on Canonical's patch as found in http://no-name-yet.com/patches/gnome2.7/nautilus271to272.patch (closes: #265304). -- Jordi Mallach Tue, 17 Aug 2004 11:22:55 +0200 nautilus (2.7.1-2) experimental; urgency=low * GNOME Team Upload. * debian/patches/02_build_exif.patch: - updated to fix the crash on file properties for images with exif datas. -- Sebastien Bacher Wed, 30 Jun 2004 15:07:49 +0200 nautilus (2.7.1-1) experimental; urgency=low * GNOME Team Upload. * New (development) upstream release. * debian/patches/01_relibtoolise.patch: - updated. * debian/patches/02_show-mounts.patch: - removed since the changes are in the new version. * debian/patches/02_build_exif.patch: - patch to fix the build with the new libexif. -- Sebastien Bacher Wed, 23 Jun 2004 18:41:33 +0200 nautilus (2.6.3-2) unstable; urgency=high * GNOME Team Upload. * debian/control.in: - conflicts with capplets (<< 2.6). -- Sebastien Bacher Fri, 18 Jun 2004 02:17:21 +0200 nautilus (2.6.3-1) unstable; urgency=low * GNOME Team Upload. * New upstream release - fix zoom and desktop problems (Closes: #253135, #253653). - fix the problem with desktop icons marqued as read-only (Closes: #249792, #251848). * debian/control.in: - recommands nautilus-cd-burner (Closes: #249503). * debian/patches/01_relibtoolise.patch: + updated. * debian/patches/02_show-mounts.patch: - patch from the CVS to allow to not show volumes on desktop (gconf key to use: /apps/nautilus/desktop/volumes_visible). (Closes: #253529). * debian/patches/03_desktop-launchers.patch: - patch from the CVS to allow to edit the launcher on the desktop again. -- Sebastien Bacher Wed, 16 Jun 2004 23:18:15 +0200 nautilus (2.6.2-1) unstable; urgency=low * Gnome Team Upload. * New Upstream Release. * debian/control.in: + removed recommends on nautilus-gtkhtml (Closes: #252449). * debian/patches/01_relibtoolise.patch: + updated. -- Sebastien Bacher Sat, 5 Jun 2004 13:11:31 +0200 nautilus (2.6.1-3) unstable; urgency=low * debian/control.in: + updated Build-Depends (Closes: #251388). -- Sebastien Bacher Fri, 28 May 2004 22:02:14 +0200 nautilus (2.6.1-2) unstable; urgency=low * GNOME Team Upload. * Upload in unstable. * debian/nautilus.1: + updated by Dafydd Harries . -- Sebastien Bacher Wed, 26 May 2004 17:43:42 +0200 nautilus (2.6.1-1) experimental; urgency=low * New upstream release. * GNOME Team Upload. * debian/patches/01_relibtoolise.patch: + updated. -- Sebastien Bacher Wed, 26 May 2004 17:43:40 +0200 nautilus (2.6.0-2) experimental; urgency=low * [debian/patches/01_relibtoolise.patch] New. Updated libtoolisation to cut down on library dependencies. -- J.H.M. Dassen (Ray) Mon, 12 Apr 2004 21:01:55 +0200 nautilus (2.6.0-1) experimental; urgency=low * New upstream release: + Fix crash when trying to access non-existing vfs-url (Closes: #222957). + Fix file selection by typing name in column mode (Closes: #237066). + Fix drag and drop between menu and desktop (Closes: #237414). + Should fix background management (Closes: #217859, #230348). * debian/control.in, debian/rules: + Adapted for the Gnome Team. + libnautilus2-2 conflitcs with nautilus (<< 2.6.0) (Closes: #200433). + Depends on shared-mime-info. + Removed gnome-vfs-extra2 Recommends. * debian/nautilus.1: + Updated references (Closes: #226677). * debian/patches/nautilus-2.4.1-gnu_pathmax.patch: + Removed since not needed by new version. -- Sebastien Bacher Sat, 27 Mar 2004 14:36:53 +0100 nautilus (2.4.2-2) unstable; urgency=low * [debian/control.in] Added Build-Depends: libxml-parser-perl, needed for recent intltool. -- J.H.M. Dassen (Ray) Thu, 5 Feb 2004 21:50:27 +0100 nautilus (2.4.2-1) unstable; urgency=low * New upstream release. -- Sebastien Bacher Tue, 3 Feb 2004 21:40:02 +0100 nautilus (2.4.1-3) unstable; urgency=low * debian/control : - Recommends eject (Closes: #171081). - Removed nautilus-mozilla from Suggests since the package is not in the archive (Closes: #180805). - Updated Build-Depends. - Updated descriptions (Closes: #172928, #206509, #210070). * debian/nautilus.postrm - Removed empty dir in /etc (Closes: #206508). * debian/rules : - Removed autogen.sh call to fix the -pthread problem. - Removed --disable-mozilla-component option, since nautilus 2.4 doesn't use it. -- Sebastien Bacher Sun, 26 Oct 2003 15:22:19 +0100 nautilus (2.4.1-2) unstable; urgency=low * Register the schema file, that fix the problem with missing options (Closes: #184865, #197810, #212279). -- Sebastien Bacher Wed, 22 Oct 2003 19:02:36 +0200 nautilus (2.4.1-1) unstable; urgency=low * New upstream release. * Updated Build-Depends. * Removed Conflicts on libeel2. * debian/patches: - fix-ld: removed - nautilus-2.1.5-cdburn.patch: removed - nautilus-2.4.1-gnu_pathmax.patch: updated - orbit28.patch: removed -- Sebastien Bacher Sun, 19 Oct 2003 17:42:49 +0200 nautilus (2.2.4-5) unstable; urgency=low * Added a patch to fix a bug with orbit2.8. * Gnome Team Upload. -- Sebastien Bacher Thu, 16 Oct 2003 21:15:10 +0200 nautilus (2.2.4-4.1) unstable; urgency=medium * Non-Maintainer Upload, to try to finally get GNOME 2.2 entirely in Sarge. * debian/control.in: make libnautilus2-dev depend on libgnome-desktop-dev (closes: #209089). -- Jordi Mallach Sun, 28 Sep 2003 18:59:15 +0200 nautilus (2.2.4-4) unstable; urgency=low * remove cdda support, I've heard that is totally broken. Build-Conflicts: libcdparanoia0-dev * -dev: Depends on librsvg2-dev (closes: #208674) -- Takuo KITAME Mon, 8 Sep 2003 11:40:58 +0900 nautilus (2.2.4-3) unstable; urgency=low * Fix build dependency (closes: Bug#208713) * -dev: depends on libcdparanoia0-dev (closes: Bug#208713) -- Takuo KITAME Fri, 5 Sep 2003 02:43:25 +0900 nautilus (2.2.4-2) unstable; urgency=low * Fix #187364: libnautilus2-2: libraries not correctly linked (closes: #187364) * -dev: conflicts: libnautilus1.0-dev (closes: #172230) -- Takuo KITAME Wed, 3 Sep 2003 16:40:41 +0900 nautilus (2.2.4-1) unstable; urgency=low * New upstream release * Fix build-depends (closes: #188888) * Fix build problem on GNU/Hurd (closes: #190369) * Fix dependency to eel (closes: #189255) * Recommends gnome-vfs-extras2 (closes: #194491) * Fix Debian menu icon (closes: #192630) * Suggests pdf-viewer instead of xpdf (closes: #197202) -- Takuo KITAME Fri, 13 Jun 2003 14:54:56 +0900 nautilus (2.2.3.1-1) unstable; urgency=low * New upstream release -- Takuo KITAME Wed, 23 Apr 2003 15:51:03 +0900 nautilus (2.2.3-1) unstable; urgency=low * New upstream release * Applied nautilus-cd-burner patch -- Takuo KITAME Thu, 10 Apr 2003 11:35:38 +0900 nautilus (2.2.2-1) unstable; urgency=low * New upstream release -- Takuo KITAME Fri, 14 Mar 2003 16:34:45 +0900 nautilus (2.2.1-1) unstable; urgency=low * New upstream release -- Takuo KITAME Thu, 13 Feb 2003 01:58:08 +0900 nautilus (2.2.0.2-1) unstable; urgency=low * New upstream release -- Takuo KITAME Fri, 31 Jan 2003 11:06:34 +0900 nautilus (2.2.0.1-1) unstable; urgency=low * New upstream release -- Takuo KITAME Fri, 24 Jan 2003 16:25:11 +0900 nautilus (2.2.0-2) unstable; urgency=low * fix miss packaging. tarball should be orig.tar.gz -- Takuo KITAME Thu, 23 Jan 2003 23:38:27 +0900 nautilus (2.2.0-1) unstable; urgency=low * New upstream release -- Takuo KITAME Thu, 23 Jan 2003 18:52:42 +0900 nautilus (2.1.91-1) unstable; urgency=low * New upstream release * Rebuild against latest libraries (closes: #177485, #177415, #177326, #177325) -- Takuo KITAME Mon, 20 Jan 2003 11:14:49 +0900 nautilus (2.0.8-1) unstable; urgency=low * New upstream release * applied patch to use desktop-base (closes: #166423) * Fix menu entry (closes: #170572, #161798) -- Takuo KITAME Sat, 30 Nov 2002 13:07:38 +0900 nautilus (2.0.7-5) unstable; urgency=low * Update config.{guess,sub} (closes: #168651) * Sugguests: eog not eog2 -- Takuo KITAME Fri, 15 Nov 2002 15:26:15 +0900 nautilus (2.0.7-4) unstable; urgency=low * upload into unstable/main -- Takuo KITAME Wed, 13 Nov 2002 09:49:33 +0900 nautilus (2.0.7-3) experimental; urgency=low * Change package name to nautilus -- Takuo KITAME Fri, 8 Nov 2002 16:09:34 +0900 nautilus2 (2.0.7-2) unstable; urgency=low * Replaces: nautilus (closes: #166074) -- Takuo KITAME Tue, 5 Nov 2002 16:31:22 +0900 nautilus2 (2.0.7-1) unstable; urgency=low * New upstream release -- Takuo KITAME Wed, 18 Sep 2002 15:23:25 +0900 nautilus2 (2.0.6-1) unstable; urgency=low * New upstream release -- Takuo KITAME Thu, 5 Sep 2002 14:16:42 +0900 nautilus2 (2.0.4-3) unstable; urgency=low * rebuild against gconf 1.2.1-3 -- Takuo KITAME Mon, 26 Aug 2002 16:01:26 +0900 nautilus2 (2.0.4-2) unstable; urgency=low * rebuild against gconf 1.2.1-2 -- Takuo KITAME Mon, 19 Aug 2002 14:45:22 +0900 nautilus2 (2.0.4-1) unstable; urgency=low * New upsream release -- Takuo KITAME Fri, 16 Aug 2002 17:12:26 +0900 nautilus2 (2.0.3-1) unstable; urgency=low * New upsream release * don't compile with openssl (closes: #155614) -- Takuo KITAME Thu, 8 Aug 2002 10:50:23 +0900 nautilus2 (2.0.2-1) unstable; urgency=low * New upsream release (closes: #154606) * Fix description (closes: #152290) -- Takuo KITAME Mon, 5 Aug 2002 18:47:17 +0900 nautilus2 (2.0.0-3) unstable; urgency=low * Upload to unstable/main * nautilus2-data conflicts with nautilus 1.0 -- Takuo KITAME Wed, 3 Jul 2002 12:00:40 +0900 nautilus2 (2.0.0-2) experimental; urgency=low * build against librsvg2-2 -- Takuo KITAME Fri, 28 Jun 2002 14:14:11 +0900 nautilus2 (2.0.0-1) experimental; urgency=low * New upstream release * change package name to nautilus2 -- Takuo KITAME Thu, 13 Jun 2002 03:21:57 +0900 nautilus1.1 (1.1.19-1) experimental; urgency=low * New upstream release -- Takuo KITAME Wed, 5 Jun 2002 11:35:23 +0900 nautilus1.1 (1.1.18-1) experimental; urgency=low * New upstream release -- Takuo KITAME Tue, 28 May 2002 15:55:22 +0900 nautilus1.1 (1.1.17-2) experimental; urgency=low * separate arch independent files into nautilus1.1-data -- Takuo KITAME Tue, 21 May 2002 14:26:45 +0900 nautilus1.1 (1.1.17-1) experimental; urgency=low * New upstream release -- Takuo KITAME Tue, 21 May 2002 13:21:26 +0900 nautilus1.1 (1.1.16-1) experimental; urgency=low * New upstream release * some executable binaries in /usr/lib/nautilus * remove nautilus1.1-{suggested,extra} package. -- Takuo KITAME Tue, 14 May 2002 10:30:51 +0900 nautilus1.1 (1.1.15-1) experimental; urgency=low * New upstream release -- Takuo KITAME Tue, 7 May 2002 14:30:16 +0900 nautilus1.1 (1.1.14-1) experimental; urgency=low * New upstream release * fix menu and upstream infomation (closes: #144018,#144016) -- Takuo KITAME Mon, 29 Apr 2002 23:48:00 +0900 nautilus1.1 (1.1.13-1) experimental; urgency=low * New upstream release * use dbs -- Takuo KITAME Mon, 22 Apr 2002 20:22:44 +0900 nautilus1.1 (1.1.12-1) experimental; urgency=low * New upstream release -- Takuo KITAME Sat, 20 Apr 2002 01:23:25 +0900 nautilus1.1 (1.1.11-1) experimental; urgency=low * New upstream release -- Takuo KITAME Tue, 26 Mar 2002 10:09:56 +0900 nautilus1.1 (1.1.9-1) experimental; urgency=low * New upstream release -- Takuo KITAME Mon, 11 Mar 2002 16:12:28 +0900 nautilus1.1 (1.1.8-2) experimental; urgency=low * bump package name libnautilus1.1-0 to -2 -- Takuo KITAME Fri, 8 Mar 2002 14:55:21 +0900 nautilus1.1 (1.1.8-1) experimental; urgency=low * New upstream release -- Takuo KITAME Thu, 7 Mar 2002 11:29:37 +0900 nautilus1.1 (1.1.6-1) experimental; urgency=low * New upstream release -- Takuo KITAME Thu, 28 Feb 2002 11:42:15 +0900 nautilus1.1 (1.1.5-2) experimental; urgency=low * build against gtk+ 1.3.14 and libgnome* 1.112.0 -- Takuo KITAME Sat, 23 Feb 2002 03:55:40 +0900 nautilus1.1 (1.1.5-1) experimental; urgency=low * New upstream release * update build-depends -- Takuo KITAME Sun, 17 Feb 2002 14:40:17 +0900 nautilus1.1 (1.1.4-1) experimental; urgency=low * New upstream release -- Takuo KITAME Wed, 6 Feb 2002 03:01:38 +0900 nautilus1.1 (1.1.3-1) experimental; urgency=low * New upstream release -- Takuo KITAME Mon, 4 Feb 2002 00:42:38 +0900 nautilus1.1 (1.1.2-2) experimental; urgency=low * Build against latest libatk9 -- Takuo KITAME Thu, 24 Jan 2002 21:32:33 +0900 nautilus1.1 (1.1.2-1) experimental; urgency=low * New upstream release, GNOME2 version. * upload to experimental -- Takuo KITAME Mon, 21 Jan 2002 17:57:33 +0000 nautilus (1.0.6-2) unstable; urgency=low * debian/rules: - --enable-fam (closes: #116712) * debian/control: - added libfam-dev into build-depends * remove gnome-*2html2 files (closes: #128083) -- Takuo KITAME Tue, 8 Jan 2002 02:19:45 +0900 nautilus (1.0.6-1) unstable; urgency=low * New upstream release -- Takuo KITAME Fri, 9 Nov 2001 04:18:33 +0000 nautilus (1.0.5-2) unstable; urgency=low * Fix and install overrides for lintian errors (closes: #116941) * Changed debian menu category tools to system. (closes: #116370) -- Takuo KITAME Sat, 27 Oct 2001 04:10:54 +0900 nautilus (1.0.5-1) unstable; urgency=low * New upstream release * Build-Depends: libcdparanoia0-dev (closes: #106350) -- Takuo KITAME Sat, 20 Oct 2001 17:34:38 +0900 nautilus (1.0.4-1) unstable; urgency=low * New upstream release * closes again (closes: Bug#101387, Bug#102662, Bug#96610) -- Takuo KITAME Sat, 7 Jul 2001 22:07:43 +0900 nautilus (1.0.3.2cvs-1) unstable; urgency=low * New upstream release * cvs update -r NAUTILUS_1_0_4 (1.0.3.2) * closes: Bug#101387, Bug#102662 * closes: Bug#96610 It's not software bug. -- Takuo KITAME Wed, 4 Jul 2001 11:12:05 +0900 nautilus (1.0.3-4) unstable; urgency=low * Fixed build-dependency (closes: Bug#99765) * added depends libbonobo-dev for libnautilus-dev (closes: Bug#99654) -- Takuo KITAME Sun, 17 Jun 2001 21:53:02 +0900 nautilus (1.0.3-3) unstable; urgency=low * Fixed build-depends: (closes: Bug#98706, Bug#98846) -- Takuo KITAME Sun, 27 May 2001 15:14:26 +0900 nautilus (1.0.3-2) unstable; urgency=low * rebuid with libeel0 which is still in Incoming. * remove libammonite-dev, librpm0-dev for Build-Depends * also librsvg-dev, libfreetype6-dev. (libeel-dev follows it) -- Takuo KITAME Thu, 10 May 2001 21:49:18 +0900 nautilus (1.0-4) unstable; urgency=low * debian/control.in: Really nautilus-suggested move to contrib. nautilus-suggested: Really Depends: nautilus-trilobite (>= 1.0-2) * fix wrong symlink name /usr/share/man/man1/nautilus-verify-rpm.sh (closes: Bug#93579) -- Takuo KITAME Wed, 11 Apr 2001 10:53:01 +0900 nautilus (1.0-3) unstable; urgency=low * nautilus-suggested: move to contrib, Depends: nautilus-trilobite (>= 1.0-2) * --disable-mozilla-component instead of --disable-mozilla -- Takuo KITAME Tue, 10 Apr 2001 14:52:43 +0900 nautilus (1.0-2) unstable; urgency=low * remove dependency to non-US package. * nautilus-trilobite/mozilla: goes to it's own package and moved to non-US. * --disable-mozilla. Sorry, remove mozilla support. We have not mozilla-0.8 in archive. (closes: Bug#92274) * --disable-eazel-service, non-US part was moved to it's own package 'nautilus-nonus' * Install nautilus-verify-rpm.sh (closes: Bug#90087) * Build with -DDEBIAN (closes: Bug#84810) * includes libvfs-help.so (closes: Bug#92766) * Notice to FTP maintainer, Please remove nautilus-trilobite, nautilus-mozilla from main archive. and move nautilus-suggested to contrib/x11. -- Takuo KITAME Thu, 5 Apr 2001 14:05:56 +0900 nautilus (1.0-1) unstable; urgency=low * New upstream release * nautilus-extra: depends xpdf | xpdf-i (closes: Bug#84958) * libnautilus-extention/nautilus-gnome-extensions.c: applied debian x-terminal-emurator patch (closes: Bug#84810) * Fix "Tree view doesn't work in Nautilus" (closes: Bug#89087) * upsteam fixed closes: Bug#87069 xmms doesn't accept DND mp3 files from nautilus closes: Bug#86422 nautilus: Font handling bug closes: Bug#86452 nautilus: Nautilus doesn't choose correct fonts * holefully fixed closes: Bug#89372: Nautilus doesn't show up -- Takuo KITAME Wed, 14 Mar 2001 13:56:00 +0900 nautilus (0.8.2-1) unstable; urgency=low * New upstream release (not released, but cvs update -r NAUTILUS_0_8_2) * Fix manpage install (closes: Bug#87394, Bug#87958) -- Takuo KITAME Sat, 3 Mar 2001 00:41:31 +0900 nautilus (0.8-2) unstable; urgency=low * libnautilus0 has versioned shlibs. (closes: Bug#84858) * nautilus-mozilla depends on mozilla (>= 1:0.7) * fixed freetype build dependency, --with-freetype2-include2=/usr/include/freetype2 (closes: Bug#85246) * added manpages, removed all undocumented (closes: Bug#84807) * Rebuild with Bonobo 0.36-2 and versioned depends. (close: Bug#84951, Bug#86562, ) -- Takuo KITAME Mon, 19 Feb 2001 22:43:46 +0900 nautilus (0.8-1) unstable; urgency=low * New upstream release (closes: Bug#84191) * some bugs was hopefully fixed by upstream. closes: Bug#79174, Bug#79110, Bug#79340, Bug#79940, Bug#80741, Bug#79057, Bug#79207, Bug#79248, Bug#79448, Bug#82752 * Recommends -> Suggests ammonite (closes: Bug#80799) * Build-Depends: rpm (closes: Bug#84302) * separated component packages(like nautilus.spec) -mozilla, -trilobite, -extra and nautilus-suggested. -- Takuo KITAME Fri, 2 Feb 2001 11:13:00 +0900 nautilus (0.5-3) unstable; urgency=low * --enable-eazel-services=1, Recommends: ammonite (closes: Bug#79345) * Added Build-Dpends (closes: Bug#79377) -- Takuo KITAME Wed, 27 Dec 2000 12:30:24 +0900 nautilus (0.5-2.1) unstable; urgency=low * Initial upload. * Build with Debian's libfreetype6, libfreetype2-dev. * Modifies for Bonobo 0.28 -- Takuo KITAME Tue, 28 Nov 2000 01:37:10 +0900 nautilus (0.5-2) unstable; urgency=low * --enable-mozilla-component -- Takuo KITAME Wed, 8 Nov 2000 12:57:18 +0900 nautilus (0.5-1) unstable; urgency=low * New upstream release -- Takuo KITAME Wed, 8 Nov 2000 10:38:37 +0900 nautilus (0.1.0-1) experimental; urgency=low * Initial Release. -- Takuo KITAME Thu, 17 Aug 2000 12:51:38 +0900 debian/rules0000775000000000000000000000166612307626250010264 0ustar #!/usr/bin/make -f include /usr/share/cdbs/1/rules/autoreconf.mk include /usr/share/cdbs/1/rules/debhelper.mk include /usr/share/cdbs/1/rules/utils.mk include /usr/share/cdbs/1/class/gnome.mk include /usr/share/gnome-pkg-tools/1/rules/uploaders.mk include /usr/share/gnome-pkg-tools/1/rules/gnome-version.mk include /usr/share/gnome-pkg-tools/1/rules/gnome-get-source.mk DEB_CONFIGURE_EXTRA_FLAGS += --libexecdir=/usr/lib/nautilus \ --disable-update-mimedb \ --enable-introspection \ --disable-appindicator \ --enable-tracker=no LDFLAGS += -Wl,-z,defs -Wl,-O1 -Wl,--as-needed DEB_DH_MAKESHLIBS_ARGS_libnautilus-extension1a += -V 'libnautilus-extension1a (>= 1:2.91)' DEB_DH_MAKESHLIBS_ARGS_nautilus += -Xusr/lib/nautilus/extensions-3.0/ common-binary-post-install-arch:: list-missing binary-post-install/nautilus:: dh_migrations debian/nautilus.postrm0000664000000000000000000000057712307626250012316 0ustar #!/bin/sh -e if [ "$1" = "purge" ] ; then if [ -d /etc/X11/starthere ]; then rmdir --ignore-fail-on-non-empty /etc/X11/starthere fi if [ -d /etc/X11/sysconfig ]; then rmdir --ignore-fail-on-non-empty /etc/X11/sysconfig fi if [ -d /etc/X11/serverconfig ]; then rmdir --ignore-fail-on-non-empty /etc/X11/serverconfig fi fi #DEBHELPER# debian/source/0000775000000000000000000000000012307626250010473 5ustar debian/source/format0000664000000000000000000000001412307626250011701 0ustar 3.0 (quilt) debian/gir1.2-nautilus-3.0.install0000664000000000000000000000005612307626250013726 0ustar usr/lib/girepository-1.0/Nautilus-3.0.typelib debian/nautilus.install0000664000000000000000000000050712307626250012431 0ustar debian/nautilus-home.desktop usr/share/applications debian/mount-archive.desktop usr/share/applications debian/nautilus-folder-handler.desktop usr/share/applications usr/bin usr/lib/nautilus/nautilus-convert-metadata usr/lib/nautilus/extensions-3.0/*.so usr/share/applications usr/share/dbus-1 usr/share/man etc/xdg/autostart debian/control.in0000664000000000000000000001210512307626250011202 0ustar Source: nautilus Section: gnome Priority: optional Maintainer: Ubuntu Desktop Team XSBC-Original-Maintainer: Josselin Mouette Uploaders: @GNOME_TEAM@ Build-Depends: debhelper (>= 8), dh-autoreconf, dh-migrations, cdbs (>= 0.4.90), gnome-pkg-tools (>= 0.13), libglib2.0-dev (>= 2.35.3), libatk1.0-dev (>= 1.32.0), libgtk-3-dev (>= 3.9.11), libgail-3-dev, libgnome-desktop-3-dev (>= 3.0.0), libxml2-dev (>= 2.7.8), libexif-dev (>= 0.6.20), libexempi-dev (>= 2.1.0), libnotify-dev (>= 0.7.0), intltool (>= 0.40.1), gtk-doc-tools (>= 1.4), libxt-dev, libx11-dev, libxrender-dev, libxext-dev, x11proto-core-dev, shared-mime-info (>= 0.50), gobject-introspection (>= 0.9.12-4~), gsettings-desktop-schemas (>= 3.8.0), libgirepository1.0-dev (>= 0.9.12), libglib2.0-doc, libgtk-3-doc, libunity-dev (>= 5.0.0), libzeitgeist-dev Homepage: http://www.gnome.org/projects/nautilus/ Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/nautilus/ubuntu Standards-Version: 3.9.3 Package: nautilus Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, nautilus-data (>= ${gnome:Version}), nautilus-data (<< ${gnome:NextVersion}), shared-mime-info (>= 0.50), desktop-file-utils (>= 0.7), gvfs (>= 1.3.2), libglib2.0-data, gsettings-desktop-schemas Recommends: eject, brasero (>= 2.26), librsvg2-common, gvfs-backends Suggests: eog, evince | pdf-viewer, totem | mp3-decoder, xdg-user-dirs, gnome-sushi Breaks: gnome-volume-manager (<< 2.24), rhythmbox (<< 0.12), gnome-session (<< 2.28), nautilus-sendto-empathy (<< 3.0), gnome-bluetooth (<< 3.0) Replaces: nautilus-sendto, nautilus-data (<< 1:3.2.1-2ubuntu1) Description: file manager and graphical shell for GNOME Nautilus is the official file manager for the GNOME desktop. It allows to browse directories, preview files and launch applications associated with them. It is also responsible for handling the icons on the GNOME desktop. It works on local and remote filesystems. . Several icon themes and components for viewing different kinds of files are available in separate packages. Package: nautilus-dbg Section: debug Architecture: any Priority: extra Depends: nautilus (= ${binary:Version}), ${misc:Depends} Replaces: libnautilus-extension1-dbg Description: file manager and graphical shell for GNOME - debugging version Nautilus is the official file manager for the GNOME desktop. It allows to browse directories, preview files and launch applications associated with them. It is also responsible for handling the icons on the GNOME desktop. It works on local and remote filesystems. . Several icon themes and components for viewing different kinds of files are available in separate packages. . This development package contains unstripped binaries compiled with debugging symbols needed by gdb. Package: libnautilus-extension1a Architecture: any Section: libs Depends: ${misc:Depends}, ${shlibs:Depends} Replaces: libnautilus-extension1 Breaks: nautilus (<< 1:3.0) Description: libraries for nautilus components - runtime version Nautilus is the official file manager and graphical shell for the GNOME desktop. . This package contains a few runtime libraries needed by nautilus' extensions. Package: libnautilus-extension-dev Architecture: any Section: libdevel Depends: libnautilus-extension1a (= ${binary:Version}), gir1.2-nautilus-3.0 (= ${binary:Version}), libglib2.0-dev (>= 2.35.3), libgtk-3-dev (>= 3.7.7), ${shlibs:Depends}, ${misc:Depends} Description: libraries for nautilus components - development version Nautilus is the official file manager and graphical shell for the GNOME desktop. . This package provides the necessary development libraries and include files to develop and compile Nautilus extensions. Package: gir1.2-nautilus-3.0 Architecture: any Section: introspection Depends: ${gir:Depends}, ${shlibs:Depends}, ${misc:Depends} Conflicts: gir1.0-nautilus-3.0 Replaces: gir1.0-nautilus-3.0 Description: libraries for nautilus components - gir bindings Nautilus is the official file manager and graphical shell for the GNOME desktop. . This package can be used by other packages using the GIRepository format to generate dynamic bindings. Package: nautilus-data Architecture: all Depends: ${misc:Depends} Suggests: nautilus Description: data files for nautilus Nautilus is the official file manager and graphical shell for the GNOME desktop. . This package contains pictures, localization files and other data needed by nautilus. debian/control0000664000000000000000000001245212307626254010606 0ustar # This file is autogenerated. DO NOT EDIT! # # Modifications should be made to debian/control.in instead. # This file is regenerated automatically in the clean target. Source: nautilus Section: gnome Priority: optional Maintainer: Ubuntu Desktop Team XSBC-Original-Maintainer: Josselin Mouette Uploaders: Debian GNOME Maintainers Build-Depends: debhelper (>= 8), dh-autoreconf, dh-migrations, cdbs (>= 0.4.90), gnome-pkg-tools (>= 0.13), libglib2.0-dev (>= 2.35.3), libatk1.0-dev (>= 1.32.0), libgtk-3-dev (>= 3.9.11), libgail-3-dev, libgnome-desktop-3-dev (>= 3.0.0), libxml2-dev (>= 2.7.8), libexif-dev (>= 0.6.20), libexempi-dev (>= 2.1.0), libnotify-dev (>= 0.7.0), intltool (>= 0.40.1), gtk-doc-tools (>= 1.4), libxt-dev, libx11-dev, libxrender-dev, libxext-dev, x11proto-core-dev, shared-mime-info (>= 0.50), gobject-introspection (>= 0.9.12-4~), gsettings-desktop-schemas (>= 3.8.0), libgirepository1.0-dev (>= 0.9.12), libglib2.0-doc, libgtk-3-doc, libunity-dev (>= 5.0.0), libzeitgeist-dev Homepage: http://www.gnome.org/projects/nautilus/ Vcs-Bzr: http://code.launchpad.net/~ubuntu-desktop/nautilus/ubuntu Standards-Version: 3.9.3 Package: nautilus Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, nautilus-data (>= ${gnome:Version}), nautilus-data (<< ${gnome:NextVersion}), shared-mime-info (>= 0.50), desktop-file-utils (>= 0.7), gvfs (>= 1.3.2), libglib2.0-data, gsettings-desktop-schemas Recommends: eject, brasero (>= 2.26), librsvg2-common, gvfs-backends Suggests: eog, evince | pdf-viewer, totem | mp3-decoder, xdg-user-dirs, gnome-sushi Breaks: gnome-volume-manager (<< 2.24), rhythmbox (<< 0.12), gnome-session (<< 2.28), nautilus-sendto-empathy (<< 3.0), gnome-bluetooth (<< 3.0) Replaces: nautilus-sendto, nautilus-data (<< 1:3.2.1-2ubuntu1) Description: file manager and graphical shell for GNOME Nautilus is the official file manager for the GNOME desktop. It allows to browse directories, preview files and launch applications associated with them. It is also responsible for handling the icons on the GNOME desktop. It works on local and remote filesystems. . Several icon themes and components for viewing different kinds of files are available in separate packages. Package: nautilus-dbg Section: debug Architecture: any Priority: extra Depends: nautilus (= ${binary:Version}), ${misc:Depends} Replaces: libnautilus-extension1-dbg Description: file manager and graphical shell for GNOME - debugging version Nautilus is the official file manager for the GNOME desktop. It allows to browse directories, preview files and launch applications associated with them. It is also responsible for handling the icons on the GNOME desktop. It works on local and remote filesystems. . Several icon themes and components for viewing different kinds of files are available in separate packages. . This development package contains unstripped binaries compiled with debugging symbols needed by gdb. Package: libnautilus-extension1a Architecture: any Section: libs Depends: ${misc:Depends}, ${shlibs:Depends} Replaces: libnautilus-extension1 Breaks: nautilus (<< 1:3.0) Description: libraries for nautilus components - runtime version Nautilus is the official file manager and graphical shell for the GNOME desktop. . This package contains a few runtime libraries needed by nautilus' extensions. Package: libnautilus-extension-dev Architecture: any Section: libdevel Depends: libnautilus-extension1a (= ${binary:Version}), gir1.2-nautilus-3.0 (= ${binary:Version}), libglib2.0-dev (>= 2.35.3), libgtk-3-dev (>= 3.7.7), ${shlibs:Depends}, ${misc:Depends} Description: libraries for nautilus components - development version Nautilus is the official file manager and graphical shell for the GNOME desktop. . This package provides the necessary development libraries and include files to develop and compile Nautilus extensions. Package: gir1.2-nautilus-3.0 Architecture: any Section: introspection Depends: ${gir:Depends}, ${shlibs:Depends}, ${misc:Depends} Conflicts: gir1.0-nautilus-3.0 Replaces: gir1.0-nautilus-3.0 Description: libraries for nautilus components - gir bindings Nautilus is the official file manager and graphical shell for the GNOME desktop. . This package can be used by other packages using the GIRepository format to generate dynamic bindings. Package: nautilus-data Architecture: all Depends: ${misc:Depends} Suggests: nautilus Description: data files for nautilus Nautilus is the official file manager and graphical shell for the GNOME desktop. . This package contains pictures, localization files and other data needed by nautilus. debian/compat0000664000000000000000000000000212307626250010371 0ustar 8 debian/watch0000664000000000000000000000014612307626250010225 0ustar version=3 http://ftp.gnome.org/pub/GNOME/sources/nautilus/([\d\.]+)/ \ nautilus-(.*)\.tar\.xz debian/nautilus-home.desktop0000664000000000000000000000076412307626250013367 0ustar [Desktop Entry] Name=Home Folder Comment=Open your personal folder Exec=nautilus --new-window %U Icon=folder Terminal=false StartupNotify=true Type=Application OnlyShowIn=GNOME;Unity; Categories=GNOME;GTK;Core; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=nautilus X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Version=3.0.0 X-Ubuntu-Gettext-Domain=nautilus Actions=Window; NoDisplay=true [Desktop Action Window] Name=Open a New Window Exec=nautilus --new-window OnlyShowIn=Unity; debian/patches/0000775000000000000000000000000012307626250010622 5ustar debian/patches/git_null_uri.patch0000664000000000000000000000144512307626250014343 0ustar From a1b42a6756d478492303a89273236b2a8c56f387 Mon Sep 17 00:00:00 2001 From: Nelson Benítez León Date: Sun, 10 Nov 2013 15:34:29 +0000 Subject: properties: fix crash when entering an unsupported URI https://bugzilla.gnome.org/show_bug.cgi?id=711480 --- diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c index 4cf7244..df8d69f 100644 --- a/src/nautilus-properties-window.c +++ b/src/nautilus-properties-window.c @@ -5406,7 +5406,11 @@ custom_icon_file_chooser_response_cb (GtkDialog *dialog, case GTK_RESPONSE_OK: uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog)); - set_icon (uri, window); + if (uri != NULL) { + set_icon (uri, window); + } else { + reset_icon (window); + } g_free (uri); break; -- cgit v0.9.2 debian/patches/14_bring_del_instead_ctrl_del.patch0000664000000000000000000000342312307626250017455 0ustar # Description: basically revert upstream commits # c6279ac229545d7f64b64212383df2753482e233 and # cce40272e35b20b4aaf5f93109a05b7bb89704d5. # People don't find a way to delete files, Ctrl + Del is even more difficult # than Shift + Del, and the trash is already there to prevent fat fingering? # Bug-Ubuntu: https://bugs.launchpad.net/bugs/823221 # Forwarded: not needed (against upstream decision) # Author: Didier Roche Index: nautilus-3.8.2/src/nautilus-view.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-view.c 2014-01-15 14:31:40.101605885 +1300 +++ nautilus-3.8.2/src/nautilus-view.c 2014-01-15 14:31:40.097605885 +1300 @@ -7201,7 +7201,7 @@ /* tooltip */ NULL, G_CALLBACK (action_rename_select_all_callback) }, /* name, stock id */ { NAUTILUS_ACTION_TRASH, NULL, - /* label, accelerator */ N_("Mo_ve to Trash"), "Delete", + /* label, accelerator */ N_("Mo_ve to Trash"), "Delete", /* tooltip */ N_("Move each selected item to the Trash"), G_CALLBACK (action_trash_callback) }, /* name, stock id */ { NAUTILUS_ACTION_DELETE, NULL, @@ -9835,9 +9835,9 @@ g_object_class_install_properties (oclass, NUM_PROPERTIES, properties); binding_set = gtk_binding_set_by_class (klass); - gtk_binding_entry_add_signal (binding_set, GDK_KEY_Delete, GDK_CONTROL_MASK, + gtk_binding_entry_add_signal (binding_set, GDK_KEY_Delete, 0, "trash", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Delete, GDK_CONTROL_MASK, + gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Delete, 0, "trash", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Delete, GDK_SHIFT_MASK, "delete", 0); debian/patches/16_unity_new_documents.patch0000664000000000000000000001204212307626250016252 0ustar diff --git a/src/nautilus-actions.h b/src/nautilus-actions.h index 8c8e575..2b9e642 100644 --- a/src/nautilus-actions.h +++ b/src/nautilus-actions.h @@ -119,6 +119,7 @@ #define NAUTILUS_ACTION_SCRIPTS "Scripts" #define NAUTILUS_ACTION_OPEN_SCRIPTS_FOLDER "Open Scripts Folder" #define NAUTILUS_ACTION_NEW_DOCUMENTS "New Documents" +#define NAUTILUS_ACTION_NEW_EMPTY_DOCUMENT "New Empty Document" #define NAUTILUS_ACTION_EMPTY_TRASH_CONDITIONAL "Empty Trash Conditional" #define NAUTILUS_ACTION_MANUAL_LAYOUT "Manual Layout" #define NAUTILUS_ACTION_REVERSED_ORDER "Reversed Order" diff --git a/src/nautilus-directory-view-ui.xml b/src/nautilus-directory-view-ui.xml index 64a9fc6..ad98f81 100644 --- a/src/nautilus-directory-view-ui.xml +++ b/src/nautilus-directory-view-ui.xml @@ -12,6 +12,7 @@ + @@ -95,6 +96,8 @@ + + @@ -121,6 +124,8 @@ + + diff --git a/src/nautilus-view.c b/src/nautilus-view.c index 481d039..049260e 100644 --- a/src/nautilus-view.c +++ b/src/nautilus-view.c @@ -2133,6 +2133,15 @@ action_new_folder_with_selection_callback (GtkAction *action, } static void +action_new_empty_file_callback (GtkAction *action, + gpointer callback_data) +{ + g_assert (NAUTILUS_IS_VIEW (callback_data)); + + nautilus_view_new_file (NAUTILUS_VIEW (callback_data), NULL, NULL); +} + +static void action_properties_callback (GtkAction *action, gpointer callback_data) { @@ -7166,6 +7175,11 @@ static const GtkActionEntry directory_view_entries[] = { /* label, accelerator */ N_("New Folder with Selection"), NULL, /* tooltip */ N_("Create a new folder containing the selected items"), G_CALLBACK (action_new_folder_with_selection_callback) }, + /* name, stock id */ { NAUTILUS_ACTION_NEW_EMPTY_DOCUMENT, NULL, + /* translators: this is used to indicate that a document doesn't contain anything */ + /* label, accelerator */ N_("_Empty Document"), NULL, + /* tooltip */ N_("Create a new empty document inside this folder"), + G_CALLBACK (action_new_empty_file_callback) }, /* name, stock id */ { NAUTILUS_ACTION_OPEN, NULL, /* label, accelerator */ N_("_Open"), "o", /* tooltip */ N_("Open the selected item in this window"), @@ -7420,6 +7434,27 @@ static const GtkToggleActionEntry directory_view_toggle_entries[] = { }; static void +connect_proxy (NautilusView *view, + GtkAction *action, + GtkWidget *proxy, + GtkActionGroup *action_group) +{ + GdkPixbuf *pixbuf; + GtkWidget *image; + + if (strcmp (gtk_action_get_name (action), NAUTILUS_ACTION_NEW_EMPTY_DOCUMENT) == 0 && + GTK_IS_IMAGE_MENU_ITEM (proxy)) { + pixbuf = nautilus_ui_get_menu_icon ("text-x-generic", GTK_WIDGET (view)); + if (pixbuf != NULL) { + image = gtk_image_new_from_pixbuf (pixbuf); + gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (proxy), image); + + g_object_unref (pixbuf); + } + } +} + +static void pre_activate (NautilusView *view, GtkAction *action, GtkActionGroup *action_group) @@ -7482,6 +7517,9 @@ real_merge_menus (NautilusView *view) g_object_unref (action); g_free (tooltip); + g_signal_connect_object (action_group, "connect-proxy", + G_CALLBACK (connect_proxy), G_OBJECT (view), + G_CONNECT_SWAPPED); g_signal_connect_object (action_group, "pre-activate", G_CALLBACK (pre_activate), G_OBJECT (view), G_CONNECT_SWAPPED); @@ -8813,7 +8851,11 @@ real_update_menus (NautilusView *view) action = gtk_action_group_get_action (view->details->dir_action_group, NAUTILUS_ACTION_NEW_DOCUMENTS); gtk_action_set_sensitive (action, can_create_files); - gtk_action_set_visible (action, !selection_contains_recent && view->details->templates_present); + + if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0) + gtk_action_set_visible (action, TRUE); + else + gtk_action_set_visible (action, !selection_contains_recent && view->details->templates_present); action = gtk_action_group_get_action (view->details->dir_action_group, NAUTILUS_ACTION_COPY_TO); debian/patches/git_valid_location_widget.patch0000664000000000000000000000206112307626250017037 0ustar From 67ba854074ac48ec142bdf3b9848cb8d94070f82 Mon Sep 17 00:00:00 2001 From: Michael Cronenworth Date: Thu, 23 Jan 2014 21:47:55 +0000 Subject: nautilus-window: Check for valid location entry widget https://bugzilla.gnome.org/show_bug.cgi?id=722616 --- diff --git a/src/nautilus-window.c b/src/nautilus-window.c index b3c3386..67b5899 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -1032,7 +1032,9 @@ nautilus_window_sync_location_widgets (NautilusWindow *window) GtkWidget *path_bar; location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (window->details->toolbar)); - nautilus_location_entry_set_location (NAUTILUS_LOCATION_ENTRY (location_entry), location); + if (location_entry != NULL && GTK_IS_WIDGET (location_entry)) { + nautilus_location_entry_set_location (NAUTILUS_LOCATION_ENTRY (location_entry), location); + } path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (window->details->toolbar)); nautilus_path_bar_set_path (NAUTILUS_PATH_BAR (path_bar), location); -- cgit v0.9.2 debian/patches/git_bookmark_warning.patch0000664000000000000000000000144112307626250016040 0ustar From 33567d58cdb9974a28f4ad3dc46c7e7c496cb7b4 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Sun, 16 Feb 2014 02:02:41 +0000 Subject: bookmark: fix runtime warning We did not reset the timeout id to zero when the callback was reached, causing the finalize code to try to remove an invalid source ID later. --- diff --git a/libnautilus-private/nautilus-bookmark.c b/libnautilus-private/nautilus-bookmark.c index 112d974..2655f48 100644 --- a/libnautilus-private/nautilus-bookmark.c +++ b/libnautilus-private/nautilus-bookmark.c @@ -387,6 +387,7 @@ static gboolean exists_non_native_idle_cb (gpointer user_data) { NautilusBookmark *bookmark = user_data; + bookmark->details->exists_id = 0; nautilus_bookmark_set_exists (bookmark, FALSE); return FALSE; -- cgit v0.9.2 debian/patches/no_search_on_desktop.patch0000664000000000000000000000177612307626250016044 0ustar Description: Disable search shortcut on desktop window so a search bar doesn't appear underneath the panel. Author: Marc Deslauriers Bug: https://bugzilla.gnome.org/show_bug.cgi?id=721711 Bug-Ubuntu: https://bugs.launchpad.net/nautilus/+bug/1176981 Forwarded: yes Index: nautilus-3.8.2/src/nautilus-desktop-window.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-desktop-window.c 2014-01-16 09:51:29.000000000 -0500 +++ nautilus-3.8.2/src/nautilus-desktop-window.c 2014-01-16 10:22:29.580681242 -0500 @@ -85,6 +85,11 @@ NAUTILUS_ACTION_NEW_TAB); gtk_action_set_sensitive (action, FALSE); + /* Don't allow search on desktop */ + action = gtk_action_group_get_action (action_group, + NAUTILUS_ACTION_SEARCH); + gtk_action_set_sensitive (action, FALSE); + /* Set the accessible name so that it doesn't inherit the cryptic desktop URI. */ accessible = gtk_widget_get_accessible (GTK_WIDGET (window)); debian/patches/git_extra_spacing.patch0000664000000000000000000000154512307626250015342 0ustar From b3b32f4afb5c1a5412b5fed80c8a0ed2ddef6e65 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 17 Feb 2014 22:13:52 +0000 Subject: slot: don't set spacing on extra location widgets vbox https://bugzilla.gnome.org/show_bug.cgi?id=721647 --- diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c index 1d38503..a66d4b0 100644 --- a/src/nautilus-window-slot.c +++ b/src/nautilus-window-slot.c @@ -578,7 +578,7 @@ nautilus_window_slot_constructed (GObject *object) GTK_ORIENTATION_VERTICAL); gtk_widget_show (GTK_WIDGET (slot)); - extras_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); + extras_vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); slot->details->extra_location_widgets = extras_vbox; gtk_box_pack_start (GTK_BOX (slot), extras_vbox, FALSE, FALSE, 0); gtk_widget_show (extras_vbox); -- cgit v0.9.2 debian/patches/ubuntu_show_titlebar.patch0000664000000000000000000000562712307626250016125 0ustar From: Tim Lunn Date: Fri, 24 Jan 2014 08:24:31 +1100 Subject: [PATCH] Show Titlebars when running non-GNOME Session Description: This patch re-enables traditional titlebars and removes the CSD close button for all non-GNOME Sessions. --- a/src/nautilus-toolbar.c +++ b/src/nautilus-toolbar.c @@ -513,30 +513,31 @@ } /* Separator and Close */ - separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); - gtk_container_add (GTK_CONTAINER (toolbar), separator); + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "GNOME")) { + separator = gtk_separator_new (GTK_ORIENTATION_VERTICAL); + gtk_container_add (GTK_CONTAINER (toolbar), separator); - if (rtl) { - gtk_widget_set_margin_right (separator, 6); - } else { - gtk_widget_set_margin_left (separator, 6); - } + if (rtl) { + gtk_widget_set_margin_right (separator, 6); + } else { + gtk_widget_set_margin_left (separator, 6); + } - button = gtk_button_new_from_icon_name ("window-close-symbolic", - GTK_ICON_SIZE_MENU); - gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); - gtk_style_context_add_class (gtk_widget_get_style_context (button), - "titlebutton"); - g_signal_connect (button, "clicked", - G_CALLBACK (close_button_clicked), self); - gtk_container_add (GTK_CONTAINER (toolbar), button); + button = gtk_button_new_from_icon_name ("window-close-symbolic", + GTK_ICON_SIZE_MENU); + gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); + gtk_style_context_add_class (gtk_widget_get_style_context (button), + "titlebutton"); + g_signal_connect (button, "clicked", + G_CALLBACK (close_button_clicked), self); + gtk_container_add (GTK_CONTAINER (toolbar), button); - if (rtl) { - gtk_widget_set_margin_right (button, 6); - } else { - gtk_widget_set_margin_left (button, 6); + if (rtl) { + gtk_widget_set_margin_right (button, 6); + } else { + gtk_widget_set_margin_left (button, 6); + } } - g_signal_connect_swapped (nautilus_preferences, "changed::" NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY, G_CALLBACK (toolbar_update_appearance), self); --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -1499,7 +1499,14 @@ G_CALLBACK (nautilus_window_load_extension_menus), window, G_CONNECT_SWAPPED); window->details->toolbar = create_toolbar (window); - gtk_window_set_titlebar (GTK_WINDOW (window), window->details->toolbar); + if (g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "GNOME")) { + gtk_container_add (GTK_CONTAINER (grid), window->details->toolbar); + gtk_widget_set_hexpand (window->details->toolbar, TRUE); + gtk_widget_set_vexpand (window->details->toolbar, FALSE); + gtk_widget_show (window->details->toolbar); + } + else + gtk_window_set_titlebar (GTK_WINDOW (window), window->details->toolbar); window->details->content_paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); gtk_widget_set_hexpand (window->details->content_paned, TRUE); debian/patches/ubuntu_sync_background_to_accountsservice.patch0000664000000000000000000000704012307626250022403 0ustar Index: nautilus-3.8.2/libnautilus-private/nautilus-desktop-background.c =================================================================== --- nautilus-3.8.2.orig/libnautilus-private/nautilus-desktop-background.c 2014-01-15 14:31:56.525605316 +1300 +++ nautilus-3.8.2/libnautilus-private/nautilus-desktop-background.c 2014-01-15 14:31:56.521605317 +1300 @@ -75,6 +75,85 @@ }; +static void +set_accountsservice_background (const gchar *background) +{ + GDBusProxy *proxy = NULL; + GDBusProxy *user = NULL; + GVariant *variant = NULL; + GError *error = NULL; + gchar *object_path = NULL; + + proxy = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, + G_DBUS_PROXY_FLAGS_NONE, + NULL, + "org.freedesktop.Accounts", + "/org/freedesktop/Accounts", + "org.freedesktop.Accounts", + NULL, + &error); + + if (proxy == NULL) { + g_warning ("Failed to contact accounts service: %s", error->message); + g_error_free (error); + return; + } + + variant = g_dbus_proxy_call_sync (proxy, + "FindUserByName", + g_variant_new ("(s)", g_get_user_name ()), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + &error); + + if (variant == NULL) { + g_warning ("Could not contact accounts service to look up '%s': %s", + g_get_user_name (), error->message); + g_error_free (error); + goto bail; + } + + g_variant_get (variant, "(o)", &object_path); + user = g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SYSTEM, + G_DBUS_PROXY_FLAGS_NONE, + NULL, + "org.freedesktop.Accounts", + object_path, + "org.freedesktop.Accounts.User", + NULL, + &error); + g_free (object_path); + + if (user == NULL) { + g_warning ("Could not create proxy for user '%s': %s", + g_variant_get_string (variant, NULL), error->message); + g_error_free (error); + goto bail; + } + g_variant_unref (variant); + + variant = g_dbus_proxy_call_sync (user, + "SetBackgroundFile", + g_variant_new ("(s)", background ? background : ""), + G_DBUS_CALL_FLAGS_NONE, + -1, + NULL, + &error); + + if (variant == NULL) { + g_warning ("Failed to set the background '%s': %s", background, error->message); + g_error_free (error); + goto bail; + } + +bail: + if (proxy != NULL) + g_object_unref (proxy); + if (variant != NULL) + g_variant_unref (variant); +} + static gboolean background_settings_change_event_cb (GSettings *settings, gpointer keys, @@ -438,6 +517,8 @@ gnome_bg_load_from_preferences (self->details->bg, gnome_background_preferences); + set_accountsservice_background (gnome_bg_get_filename (self->details->bg)); + g_object_unref (self); return FALSE; debian/patches/git_reliable_unmount.patch0000664000000000000000000000365212307626250016060 0ustar From a23ed4ad0173ca7a51e26282b85d06ce4b25912a Mon Sep 17 00:00:00 2001 From: Daniel Schürmann Date: Sun, 16 Feb 2014 21:44:48 +0000 Subject: monitor: improve unmount detect heuristic Detect when an unmount happens and a subfolder of the mount is displayed. The previous solution did a GMount pointer compare, but this was not working in any case. This patch fixes is by comparing the removed mount root with the currently monitored location. This fixes a regression since 0852847e2613dbcebb4ed7f58e5b2aee3aa86a90. https://bugzilla.gnome.org/show_bug.cgi?id=724560 --- diff --git a/libnautilus-private/nautilus-monitor.c b/libnautilus-private/nautilus-monitor.c index 5b21c24..484c75b 100644 --- a/libnautilus-private/nautilus-monitor.c +++ b/libnautilus-private/nautilus-monitor.c @@ -32,7 +32,6 @@ struct NautilusMonitor { GFileMonitor *monitor; GVolumeMonitor *volume_monitor; - GMount *mount; GFile *location; }; @@ -85,11 +84,16 @@ mount_removed (GVolumeMonitor *volume_monitor, gpointer user_data) { NautilusMonitor *monitor = user_data; + GFile *mount_location; - if (mount == monitor->mount) { + mount_location = g_mount_get_root (mount); + + if (g_file_has_prefix (monitor->location, mount_location)) { nautilus_file_changes_queue_file_removed (monitor->location); schedule_call_consume_changes (); } + + g_object_unref (mount_location); } static void @@ -143,7 +147,6 @@ nautilus_monitor_directory (GFile *location) if (dir_monitor != NULL) { ret->monitor = dir_monitor; } else if (!g_file_is_native (location)) { - ret->mount = nautilus_get_mounted_mount_for_root (location); ret->location = g_object_ref (location); ret->volume_monitor = g_volume_monitor_get (); } @@ -177,6 +180,5 @@ nautilus_monitor_cancel (NautilusMonitor *monitor) } g_clear_object (&monitor->location); - g_clear_object (&monitor->mount); g_slice_free (NautilusMonitor, monitor); } -- cgit v0.9.2 debian/patches/20_unity_control_center.patch0000664000000000000000000000376512307626250016427 0ustar Index: nautilus-3.8.2/src/nautilus-desktop-canvas-view.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-desktop-canvas-view.c 2014-01-15 15:57:17.617428008 +1300 +++ nautilus-3.8.2/src/nautilus-desktop-canvas-view.c 2014-01-15 15:57:31.989427510 +1300 @@ -529,12 +529,24 @@ action_change_background_callback (GtkAction *action, gpointer data) { + gchar *path; + gboolean have_ucc; + g_assert (NAUTILUS_VIEW (data)); - nautilus_launch_application_from_command (gtk_widget_get_screen (GTK_WIDGET (data)), - "gnome-control-center", - FALSE, - "background", NULL); + path = g_find_program_in_path ("unity-control-center"); + have_ucc = path != NULL; + g_free (path); + if (have_ucc && g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0) + nautilus_launch_application_from_command (gtk_widget_get_screen (GTK_WIDGET (data)), + "unity-control-center", + FALSE, + "appearance", NULL); + else + nautilus_launch_application_from_command (gtk_widget_get_screen (GTK_WIDGET (data)), + "gnome-control-center", + FALSE, + "background", NULL); } static void @@ -698,7 +710,7 @@ GtkUIManager *ui_manager; GtkActionGroup *action_group; GtkAction *action; - gchar *control_center_path; + gchar *control_center_path = NULL; NAUTILUS_VIEW_CLASS (nautilus_desktop_canvas_view_parent_class)->merge_menus (view); @@ -734,7 +746,10 @@ GTK_UI_MANAGER_MENUITEM, FALSE); - control_center_path = g_find_program_in_path ("gnome-control-center"); + if (g_strcmp0 (g_getenv ("XDG_CURRENT_DESKTOP"), "Unity") == 0) + control_center_path = g_find_program_in_path ("unity-control-center"); + if (control_center_path == NULL) + control_center_path = g_find_program_in_path ("gnome-control-center"); if (control_center_path == NULL) { action = gtk_action_group_get_action (action_group, NAUTILUS_ACTION_CHANGE_BACKGROUND); gtk_action_set_visible (action, FALSE); debian/patches/git_fix_ellipsize.patch0000664000000000000000000000304412307626250015355 0ustar From fae9dde9a806af73bd71087be4841d0990626a6e Mon Sep 17 00:00:00 2001 From: Daniel Wyatt Date: Thu, 13 Feb 2014 15:30:25 +0000 Subject: Do not modify ellipsize property within a size request function Instead, we can use the natural size request which is equivalent to the non-ellipsized size. See: https://developer.gnome.org/gtk3/stable/GtkLabel.html#label-text-layout https://bugzilla.gnome.org/show_bug.cgi?id=697198 --- diff --git a/src/nautilus-pathbar.c b/src/nautilus-pathbar.c index 7d51d56..fc34051 100644 --- a/src/nautilus-pathbar.c +++ b/src/nautilus-pathbar.c @@ -303,21 +303,18 @@ static void set_label_size_request (ButtonData *button_data) { gint width, height; - GtkRequisition min_req, bold_req; + GtkRequisition nat_req, bold_req; if (button_data->label == NULL) { return; } - gtk_label_set_ellipsize (GTK_LABEL (button_data->label), PANGO_ELLIPSIZE_NONE); - gtk_widget_get_preferred_size (button_data->label, &min_req, NULL); - gtk_label_set_ellipsize (GTK_LABEL (button_data->label), PANGO_ELLIPSIZE_MIDDLE); - + gtk_widget_get_preferred_size (button_data->label, NULL, &nat_req); gtk_widget_get_preferred_size (button_data->bold_label, &bold_req, NULL); - width = MAX (min_req.width, bold_req.width); + width = MAX (nat_req.width, bold_req.width); width = MIN (width, NAUTILUS_PATH_BAR_BUTTON_MAX_WIDTH); - height = MAX (min_req.height, bold_req.height); + height = MAX (nat_req.height, bold_req.height); gtk_widget_set_size_request (button_data->label, width, height); } -- cgit v0.9.2 debian/patches/08_clean_session_capplet.patch0000664000000000000000000000071712307626250016514 0ustar Index: nautilus-3.5.5/data/nautilus-autostart.desktop.in =================================================================== --- nautilus-3.5.5.orig/data/nautilus-autostart.desktop.in 2012-05-08 06:28:08.000000000 +0200 +++ nautilus-3.5.5/data/nautilus-autostart.desktop.in 2012-08-08 09:41:29.991206859 +0200 @@ -4,3 +4,4 @@ Exec=nautilus -n OnlyShowIn=GNOME;Unity; AutostartCondition=GSettings org.gnome.desktop.background show-desktop-icons +NoDisplay=true debian/patches/19_unity_open_location_xid.patch0000664000000000000000000001600412307626250017102 0ustar Description: Add a new dbus property to the nautilus' "org.freedesktop.FileManager1" dbus interface where it stores the lists of opened locations referenced by their parent nautilus window XID. Bug-Ubuntu: https://bugs.launchpad.net/unity/+bug/887449 Forwarded: no Author: Marco Trevisan Index: nautilus-3.10.1/data/freedesktop-dbus-interfaces.xml =================================================================== --- nautilus-3.10.1.orig/data/freedesktop-dbus-interfaces.xml 2014-02-28 08:10:33.234230706 +0100 +++ nautilus-3.10.1/data/freedesktop-dbus-interfaces.xml 2014-02-28 08:10:33.226230736 +0100 @@ -33,5 +33,6 @@ + Index: nautilus-3.10.1/src/nautilus-application.c =================================================================== --- nautilus-3.10.1.orig/src/nautilus-application.c 2014-02-28 08:10:33.234230706 +0100 +++ nautilus-3.10.1/src/nautilus-application.c 2014-02-28 08:26:18.701088671 +0100 @@ -1653,8 +1653,8 @@ G_APPLICATION_CLASS (nautilus_application_parent_class)->quit_mainloop (app); } -static void -update_dbus_opened_locations (NautilusApplication *app) +void +nautilus_application_update_dbus_opened_locations (NautilusApplication *app) { gint i; GList *l, *sl; @@ -1664,6 +1664,11 @@ g_return_if_fail (NAUTILUS_IS_APPLICATION (app)); + GVariantBuilder b; + GVariantBuilder wb; + + g_variant_builder_init (&b, G_VARIANT_TYPE ("a{uas}")); + for (l = gtk_application_get_windows (GTK_APPLICATION (app)); l; l = l->next) { NautilusWindow *win = NAUTILUS_WINDOW (l->data); @@ -1671,11 +1676,15 @@ continue; } + g_variant_builder_init (&wb, G_VARIANT_TYPE ("as")); + for (sl = nautilus_window_get_slots (win); sl; sl = sl->next) { NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (sl->data); gchar *uri = nautilus_window_slot_get_location_uri (slot); if (uri) { + g_variant_builder_add (&wb, "s", uri); + GList *found = g_list_find_custom (locations, uri, (GCompareFunc) g_strcmp0); if (!found) { @@ -1686,6 +1695,17 @@ } } } + + if (gtk_widget_get_realized (GTK_WIDGET (win))) { + GdkWindow *gdk_win; + Window xid; + + gdk_win = gtk_widget_get_window (GTK_WIDGET (win)); + xid = gdk_x11_window_get_xid (gdk_win); + g_variant_builder_add (&b, "{uas}", xid, &wb); + } + + g_variant_builder_clear (&wb); } locations_array = g_new (gchar*, locations_size + 1); @@ -1699,6 +1719,8 @@ nautilus_freedesktop_dbus_set_open_locations (app->priv->fdb_manager, (const gchar**) locations_array); + nautilus_freedesktop_dbus_set_open_locations_xids (app->priv->fdb_manager, + g_variant_builder_end (&b)); g_free (locations_array); g_list_free_full (locations, g_free); @@ -1710,7 +1732,7 @@ const char *to, NautilusApplication *application) { - update_dbus_opened_locations (application); + nautilus_application_update_dbus_opened_locations (application); } static void @@ -1719,7 +1741,7 @@ NautilusApplication *application) { if (nautilus_window_slot_get_location (slot)) { - update_dbus_opened_locations (application); + nautilus_application_update_dbus_opened_locations (application); } g_signal_connect (slot, "location-changed", G_CALLBACK (on_slot_location_changed), application); @@ -1730,20 +1752,30 @@ NautilusWindowSlot *slot, NautilusApplication *application) { - update_dbus_opened_locations (application); + nautilus_application_update_dbus_opened_locations (application); g_signal_handlers_disconnect_by_func (slot, on_slot_location_changed, application); } static void +on_realize (GtkWidget *widget, + NautilusApplication *application) +{ + nautilus_application_update_dbus_opened_locations (application); +} + +static void nautilus_application_window_added (GtkApplication *app, GtkWindow *window) { /* chain to parent */ GTK_APPLICATION_CLASS (nautilus_application_parent_class)->window_added (app, window); - g_signal_connect (window, "slot-added", G_CALLBACK (on_slot_added), app); - g_signal_connect (window, "slot-removed", G_CALLBACK (on_slot_removed), app); + if (NAUTILUS_IS_WINDOW (window)) { + g_signal_connect (window, "realize", G_CALLBACK (on_realize), app); + g_signal_connect (window, "slot-added", G_CALLBACK (on_slot_added), app); + g_signal_connect (window, "slot-removed", G_CALLBACK (on_slot_removed), app); + } } static void @@ -1761,8 +1793,11 @@ nautilus_previewer_call_close (previewer); } - g_signal_handlers_disconnect_by_func (window, on_slot_added, app); - g_signal_handlers_disconnect_by_func (window, on_slot_removed, app); + if (NAUTILUS_IS_WINDOW (window)) { + g_signal_handlers_disconnect_by_func (window, on_realize, app); + g_signal_handlers_disconnect_by_func (window, on_slot_added, app); + g_signal_handlers_disconnect_by_func (window, on_slot_removed, app); + } } static void Index: nautilus-3.10.1/src/nautilus-freedesktop-dbus.c =================================================================== --- nautilus-3.10.1.orig/src/nautilus-freedesktop-dbus.c 2014-02-28 08:10:33.234230706 +0100 +++ nautilus-3.10.1/src/nautilus-freedesktop-dbus.c 2014-02-28 08:28:42.141160665 +0100 @@ -160,6 +160,9 @@ g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (fdb->skeleton), conn, NAUTILUS_FDO_DBUS_PATH, NULL); g_dbus_object_manager_server_set_connection (fdb->object_manager, conn); + + NautilusApplication *application = NAUTILUS_APPLICATION (g_application_get_default ()); + nautilus_application_update_dbus_opened_locations (application); } static void @@ -226,7 +229,18 @@ { g_return_if_fail (NAUTILUS_IS_FREEDESKTOP_DBUS (fdb)); - nautilus_freedesktop_file_manager1_set_open_locations (fdb->skeleton, locations); + if (fdb->skeleton) + nautilus_freedesktop_file_manager1_set_open_locations (fdb->skeleton, locations); +} + +void +nautilus_freedesktop_dbus_set_open_locations_xids (NautilusFreedesktopDBus *fdb, + GVariant *locations) +{ + g_return_if_fail (NAUTILUS_IS_FREEDESKTOP_DBUS (fdb)); + + if (fdb->skeleton) + nautilus_freedesktop_file_manager1_set_xubuntu_open_locations_xids (fdb->skeleton, locations); } /* Tries to own the org.freedesktop.FileManager1 service name */ Index: nautilus-3.10.1/src/nautilus-freedesktop-dbus.h =================================================================== --- nautilus-3.10.1.orig/src/nautilus-freedesktop-dbus.h 2014-02-28 08:10:33.234230706 +0100 +++ nautilus-3.10.1/src/nautilus-freedesktop-dbus.h 2014-02-28 08:23:31.569108325 +0100 @@ -48,5 +48,6 @@ NautilusFreedesktopDBus * nautilus_freedesktop_dbus_new (void); void nautilus_freedesktop_dbus_set_open_locations (NautilusFreedesktopDBus *fdb, const gchar **locations); +void nautilus_freedesktop_dbus_set_open_locations_xids (NautilusFreedesktopDBus *fdb, GVariant *locations); #endif /* __NAUTILUS_FREEDESKTOP_DBUS_H__ */ debian/patches/ubuntu_infobars_color.patch0000664000000000000000000000323112307626250016245 0ustar Index: nautilus-3.10.1/src/nautilus-trash-bar.c =================================================================== --- nautilus-3.10.1.orig/src/nautilus-trash-bar.c 2014-02-24 13:47:09.832935047 +0100 +++ nautilus-3.10.1/src/nautilus-trash-bar.c 2014-02-24 13:47:09.828935047 +0100 @@ -229,6 +229,6 @@ { return g_object_new (NAUTILUS_TYPE_TRASH_BAR, "view", view, - "message-type", GTK_MESSAGE_QUESTION, + "message-type", GTK_MESSAGE_OTHER, NULL); } Index: nautilus-3.10.1/src/nautilus-x-content-bar.c =================================================================== --- nautilus-3.10.1.orig/src/nautilus-x-content-bar.c 2014-02-24 13:47:09.832935047 +0100 +++ nautilus-3.10.1/src/nautilus-x-content-bar.c 2014-02-24 13:47:09.828935047 +0100 @@ -368,7 +368,7 @@ const char **x_content_types) { return g_object_new (NAUTILUS_TYPE_X_CONTENT_BAR, - "message-type", GTK_MESSAGE_QUESTION, + "message-type", GTK_MESSAGE_OTHER, "mount", mount, "x-content-types", x_content_types, NULL); Index: nautilus-3.10.1/src/nautilus-special-location-bar.c =================================================================== --- nautilus-3.10.1.orig/src/nautilus-special-location-bar.c 2013-04-02 15:48:28.000000000 +0200 +++ nautilus-3.10.1/src/nautilus-special-location-bar.c 2014-02-24 13:47:59.308936695 +0100 @@ -163,7 +163,7 @@ nautilus_special_location_bar_new (NautilusSpecialLocation location) { return g_object_new (NAUTILUS_TYPE_SPECIAL_LOCATION_BAR, - "message-type", GTK_MESSAGE_QUESTION, + "message-type", GTK_MESSAGE_OTHER, "special-location", location, NULL); } debian/patches/git_rename_background.patch0000664000000000000000000000175012307626250016157 0ustar From c3b2b0a0223aa18cae06259304842e4af5ac1529 Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Wed, 06 Nov 2013 09:23:58 +0000 Subject: EelEditableLabel: Render background Without this the rename widget background is always transparent, which makes it very hard to read on e.g. the desktop with a background image. --- diff --git a/eel/eel-editable-label.c b/eel/eel-editable-label.c index 0da68fd..f348a90 100644 --- a/eel/eel-editable-label.c +++ b/eel/eel-editable-label.c @@ -1504,6 +1504,11 @@ eel_editable_label_draw (GtkWidget *widget, label = EEL_EDITABLE_LABEL (widget); style = gtk_widget_get_style_context (widget); + gtk_render_background (style, cr, + 0, 0, + gtk_widget_get_allocated_width (widget), + gtk_widget_get_allocated_height (widget)); + eel_editable_label_ensure_layout (label, TRUE); if (gtk_widget_get_visible (widget) && gtk_widget_get_mapped (widget) && debian/patches/18_unity_icon_color.patch0000664000000000000000000000074112307626250015533 0ustar Index: nautilus-3.8.1/data/nautilus.desktop.in.in =================================================================== --- nautilus-3.8.1.orig/data/nautilus.desktop.in.in 2013-06-04 22:27:44.308397907 -0400 +++ nautilus-3.8.1/data/nautilus.desktop.in.in 2013-06-04 22:27:44.304397907 -0400 @@ -16,6 +16,7 @@ X-GNOME-Bugzilla-Version=@VERSION@ X-GNOME-UsesNotifications=true Actions=Window; +X-Unity-IconBackgroundColor=#af4853 [Desktop Action Window] _Name=Open a New Window debian/patches/06_never_exec_nonexec_launchers.patch0000664000000000000000000000153612307626250020063 0ustar Description: never allow launching of untrusted launchers. Implements the Ubuntu "Execute-Permission Bit Required" from https://wiki.ubuntu.com/SecurityTeam/Policies#Execute-Permission%20Bit%20Required Author: Kees Cook --- a/src/nautilus-mime-actions.c +++ b/src/nautilus-mime-actions.c @@ -1586,12 +1586,14 @@ "text", primary, "secondary-text", secondary, NULL); + /* gtk_dialog_add_button (GTK_DIALOG (dialog), _("_Launch Anyway"), RESPONSE_RUN); if (nautilus_file_can_set_permissions (file)) { gtk_dialog_add_button (GTK_DIALOG (dialog), _("Mark as _Trusted"), RESPONSE_MARK_TRUSTED); } + */ gtk_dialog_add_button (GTK_DIALOG (dialog), _("_Cancel"), GTK_RESPONSE_CANCEL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL); debian/patches/15_use-ubuntu-help.patch0000664000000000000000000002011312307626250015207 0ustar Description: Use pre-installed Ubuntu Desktop Guide instead of GNOME help when running Unity Forwarded: Not needed Author: Jeremy Bicha Index: nautilus-3.8.2/src/nautilus-connect-server-dialog.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-connect-server-dialog.c 2014-01-15 14:31:41.485605837 +1300 +++ nautilus-3.8.2/src/nautilus-connect-server-dialog.c 2014-01-15 14:31:41.477605838 +1300 @@ -97,7 +97,12 @@ break; case GTK_RESPONSE_HELP: error = NULL; - gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), + "help:ubuntu-help/nautilus-connect", + gtk_get_current_event_time (), &error); + else + gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), "help:gnome-help/nautilus-connect", gtk_get_current_event_time (), &error); if (error) { Index: nautilus-3.8.2/src/nautilus-file-management-properties.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-file-management-properties.c 2014-01-15 14:31:41.485605837 +1300 +++ nautilus-3.8.2/src/nautilus-file-management-properties.c 2014-01-15 14:31:41.477605838 +1300 @@ -233,7 +233,10 @@ section = "nautilus-preview"; break; } - preferences_show_help (GTK_WINDOW (parent), "gnome-help", section); + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + preferences_show_help (GTK_WINDOW (parent), "ubuntu-help", section); + else + preferences_show_help (GTK_WINDOW (parent), "gnome-help", section); } else if (response_id == GTK_RESPONSE_CLOSE) { gtk_widget_destroy (GTK_WIDGET (parent)); } Index: nautilus-3.8.2/src/nautilus-properties-window.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-properties-window.c 2014-01-15 14:31:41.485605837 +1300 +++ nautilus-3.8.2/src/nautilus-properties-window.c 2014-01-15 14:31:41.477605838 +1300 @@ -3197,7 +3197,11 @@ GtkWidget *volume_usage; GtkWidget *hbox, *vbox; - hbox = create_page_with_hbox (window->details->notebook, _("Basic"), + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + hbox = create_page_with_hbox (window->details->notebook, _("Basic"), + "help:ubuntu-help/nautilus-file-properties-basic"); + else + hbox = create_page_with_hbox (window->details->notebook, _("Basic"), "help:gnome-help/nautilus-file-properties-basic"); /* Icon pixmap */ @@ -4532,10 +4536,16 @@ char *file_name, *prompt_text; GList *file_list; - vbox = create_page_with_vbox (window->details->notebook, + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + vbox = create_page_with_vbox (window->details->notebook, + _("Permissions"), + "help:ubuntu-help/nautilus-file-properties-permissions"); + else + vbox = create_page_with_vbox (window->details->notebook, _("Permissions"), "help:gnome-help/nautilus-file-properties-permissions"); + file_list = window->details->original_files; window->details->initial_permissions = NULL; @@ -4832,7 +4842,11 @@ g_free (mime_type); g_list_free (files); - g_object_set_data_full (G_OBJECT (vbox), "help-uri", g_strdup ("help:gnome-help/files-open"), g_free); + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + g_object_set_data_full (G_OBJECT (vbox), "help-uri", g_strdup ("help:ubuntu-help/files-open"), g_free); + else + g_object_set_data_full (G_OBJECT (vbox), "help-uri", g_strdup ("help:gnome-help/files-open"), g_free); + gtk_notebook_append_page (window->details->notebook, vbox, gtk_label_new (_("Open With"))); } @@ -5184,10 +5198,18 @@ curpage = gtk_notebook_get_nth_page (window->details->notebook, gtk_notebook_get_current_page (window->details->notebook)); helpuri = g_object_get_data (G_OBJECT (curpage), "help-uri"); - gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), + + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), + helpuri ? helpuri : "help:ubuntu-help/files", + gtk_get_current_event_time (), + &error); + else + gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), helpuri ? helpuri : "help:gnome-help/files", gtk_get_current_event_time (), &error); + if (error != NULL) { eel_show_error_dialog (_("There was an error displaying help."), error->message, GTK_WINDOW (dialog)); Index: nautilus-3.8.2/src/nautilus-view.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-view.c 2014-01-15 14:31:41.485605837 +1300 +++ nautilus-3.8.2/src/nautilus-view.c 2014-01-15 14:31:41.481605837 +1300 @@ -1433,7 +1433,12 @@ break; case GTK_RESPONSE_HELP : error = NULL; - gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), + "help:ubuntu-help/files-select", + gtk_get_current_event_time (), &error); + else + gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (dialog)), "help:gnome-help/files-select", gtk_get_current_event_time (), &error); if (error) { Index: nautilus-3.8.2/src/nautilus-window-menus.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-window-menus.c 2014-01-15 14:31:41.485605837 +1300 +++ nautilus-3.8.2/src/nautilus-window-menus.c 2014-01-15 14:31:41.481605837 +1300 @@ -220,31 +220,39 @@ GError *error; GtkWidget *dialog; const char* helpuri; + char* helpprefix; const char* name = gtk_action_get_name (action); error = NULL; window = NAUTILUS_WINDOW (user_data); + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + helpprefix = "ubuntu-help"; + else + helpprefix = "gnome-help"; + if (g_str_equal (name, "NautilusHelpSearch")) { - helpuri = "help:gnome-help/files-search"; + helpuri = g_strconcat ("help:", helpprefix, "/files-search", NULL); } else if (g_str_equal (name,"NautilusHelpSort")) { - helpuri = "help:gnome-help/files-sort"; + helpuri = g_strconcat ("help:", helpprefix, "/files-sort", NULL); } else if (g_str_equal (name, "NautilusHelpLost")) { - helpuri = "help:gnome-help/files-lost"; + helpuri = g_strconcat ("help:", helpprefix, "/files-lost", NULL); } else if (g_str_equal (name, "NautilusHelpShare")) { - helpuri = "help:gnome-help/files-share"; + helpuri = g_strconcat ("help:", helpprefix, "/files-share", NULL); } else { - helpuri = "help:gnome-help/files"; + helpuri = g_strconcat ("help:", helpprefix, "/files", NULL); } if (NAUTILUS_IS_DESKTOP_WINDOW (window)) { - nautilus_launch_application_from_command (gtk_window_get_screen (GTK_WINDOW (window)), "gnome-help", FALSE, NULL); + nautilus_launch_application_from_command (gtk_window_get_screen (GTK_WINDOW (window)), "helpprefix", FALSE, NULL); } else { gtk_show_uri (gtk_window_get_screen (GTK_WINDOW (window)), helpuri, gtk_get_current_event_time (), &error); } + g_free (helpuri); + if (error) { dialog = gtk_message_dialog_new (GTK_WINDOW (window), GTK_DIALOG_MODAL, Index: nautilus-3.8.2/src/nautilus-application.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-application.c 2014-01-15 14:31:41.485605837 +1300 +++ nautilus-3.8.2/src/nautilus-application.c 2014-01-15 14:31:41.481605837 +1300 @@ -911,7 +911,14 @@ GError *error = NULL; window = gtk_application_get_active_window (application); - gtk_show_uri (window ? + if (!g_strcmp0(g_getenv("XDG_CURRENT_DESKTOP"), "Unity")) + gtk_show_uri (window ? + gtk_window_get_screen (GTK_WINDOW (window)) : + gdk_screen_get_default (), + "help:ubuntu-help/files", + gtk_get_current_event_time (), &error); + else + gtk_show_uri (window ? gtk_window_get_screen (GTK_WINDOW (window)) : gdk_screen_get_default (), "help:gnome-help/files", debian/patches/git_sidebar_state_on_start.patch0000664000000000000000000000334312307626250017233 0ustar Index: nautilus-3.8.2/src/nautilus-window.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-window.c 2014-01-17 13:39:15.618921261 +0100 +++ nautilus-3.8.2/src/nautilus-window.c 2014-01-17 13:40:01.138918967 +0100 @@ -455,6 +455,8 @@ GdkScreen *screen; guint max_width_for_screen, max_height_for_screen; guint default_width, default_height; + gboolean show_sidebar; + GtkAction *action; screen = gtk_window_get_screen (GTK_WINDOW (window)); @@ -469,6 +471,17 @@ max_width_for_screen), MIN (default_height, max_height_for_screen)); + + show_sidebar = g_settings_get_boolean (nautilus_window_state, NAUTILUS_WINDOW_STATE_START_WITH_SIDEBAR); + action = gtk_action_group_get_action (window->details->main_action_group, + NAUTILUS_ACTION_SHOW_HIDE_SIDEBAR); + gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), show_sidebar); + + if (show_sidebar) { + nautilus_window_show_sidebar (window); + } else { + nautilus_window_hide_sidebar (window); + } } static gboolean @@ -1173,16 +1186,11 @@ gtk_widget_show (window->details->main_view); window->details->notebook = create_notebook (window); - nautilus_window_set_initial_window_geometry (window); slot = nautilus_window_open_slot (window, 0); nautilus_window_set_active_slot (window, slot); - if (g_settings_get_boolean (nautilus_window_state, NAUTILUS_WINDOW_STATE_START_WITH_SIDEBAR)) { - nautilus_window_show_sidebar (window); - } else { - nautilus_window_hide_sidebar (window); - } + nautilus_window_set_initial_window_geometry (window); window->details->bookmarks_id = g_signal_connect_swapped (nautilus_application_get_bookmarks (application), "changed", debian/patches/05_desktop_menu_export.patch0000664000000000000000000002417012307626250016251 0ustar ## Description: Add special Nautilus desktop menu ## Origin/Author: Ted Gould ## Bug: https://bugs.launchpad.net/bugs/805252 Index: nautilus-3.5.4/src/Makefile.am =================================================================== --- nautilus-3.5.4.orig/src/Makefile.am 2012-07-17 19:10:48.884560333 -0400 +++ nautilus-3.5.4/src/Makefile.am 2012-07-17 19:10:52.992580689 -0400 @@ -60,6 +60,7 @@ nautilus-icon-view-ui.xml \ nautilus-directory-view-ui.xml \ nautilus-desktop-icon-view-ui.xml \ + nautilus-desktop-window-ui.xml \ nautilus-list-view-ui.xml \ nautilus-shell-ui.xml \ $(NULL) Index: nautilus-3.5.4/src/nautilus-desktop-icon-view.c =================================================================== --- nautilus-3.5.4.orig/src/nautilus-desktop-icon-view.c 2012-07-17 19:10:48.884560333 -0400 +++ nautilus-3.5.4/src/nautilus-desktop-icon-view.c 2012-07-17 19:10:52.996580705 -0400 @@ -748,6 +748,15 @@ desktop_view->details->desktop_merge_id = gtk_ui_manager_add_ui_from_resource (ui_manager, "/org/gnome/nautilus/nautilus-desktop-icon-view-ui.xml", NULL); + + GList * agroups = gtk_ui_manager_get_action_groups(ui_manager); + while (agroups != NULL) { + if (g_strcmp0("DirViewActions", gtk_action_group_get_name(GTK_ACTION_GROUP(agroups->data))) == 0) { + GtkAction * defaults = gtk_action_group_get_action(GTK_ACTION_GROUP(agroups->data), "Reset to Defaults"); + gtk_action_set_visible(defaults, FALSE); + } + agroups = g_list_next(agroups); + } } static NautilusView * Index: nautilus-3.5.4/src/nautilus-desktop-window-ui.xml =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.5.4/src/nautilus-desktop-window-ui.xml 2012-07-17 19:10:52.996580705 -0400 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + Index: nautilus-3.5.4/src/nautilus-desktop-window.c =================================================================== --- nautilus-3.5.4.orig/src/nautilus-desktop-window.c 2012-07-17 19:10:48.884560333 -0400 +++ nautilus-3.5.4/src/nautilus-desktop-window.c 2012-07-17 19:10:52.996580705 -0400 @@ -37,6 +37,7 @@ #include #include #include +#include struct NautilusDesktopWindowDetails { gulong size_changed_id; @@ -44,6 +45,31 @@ gboolean loaded; }; +static void +desktop_background_cb (GtkAction * action, gpointer user_data) +{ + g_spawn_command_line_async("gnome-control-center background", NULL); + return; +} + +static void +ubuntu_docs_cb (GtkAction * action, gpointer user_data) +{ + g_spawn_command_line_async("yelp", NULL); + return; +} + +static const GtkActionEntry desktop_entries[] = { + /* name, stock id, label */ { "Change Desktop Background", NULL, N_("Change Desktop _Background"), + /* accel, tooltip */ NULL, NULL, + G_CALLBACK(desktop_background_cb)}, + /* name, stock id, label */ { "Ubuntu Documentation", NULL, N_("Ubuntu Help"), + /* accel, tooltip */ NULL, NULL, + G_CALLBACK(ubuntu_docs_cb)} +}; + +static void set_wmspec_desktop_hint (GdkWindow *window); + G_DEFINE_TYPE (NautilusDesktopWindow, nautilus_desktop_window, NAUTILUS_TYPE_WINDOW); @@ -85,6 +111,97 @@ NAUTILUS_ACTION_NEW_TAB); gtk_action_set_sensitive (action, FALSE); + UbuntuMenuProxy * proxy = ubuntu_menu_proxy_get(); + if (proxy != NULL) { + ubuntu_menu_proxy_insert(proxy, GTK_WIDGET(window), NAUTILUS_WINDOW(window)->details->menubar, 0); + } + + /* Add actions for the desktop */ + GtkActionGroup * desktop_agroup = gtk_action_group_new("DesktopActions"); + gtk_action_group_set_translation_domain(desktop_agroup, GETTEXT_PACKAGE); + gtk_action_group_add_actions(desktop_agroup, desktop_entries, G_N_ELEMENTS(desktop_entries), window); + gtk_ui_manager_insert_action_group(nautilus_window_get_ui_manager(NAUTILUS_WINDOW(window)), + desktop_agroup, 0); + g_object_unref(desktop_agroup); + + GtkUIManager * ui_manager = nautilus_window_get_ui_manager(NAUTILUS_WINDOW(window)); + gtk_ui_manager_add_ui_from_resource (ui_manager, "/org/gnome/nautilus/nautilus-desktop-window-ui.xml", NULL); + + /* Hide actions that don't make sense on the desktop */ + GList * agroups = gtk_ui_manager_get_action_groups(NAUTILUS_WINDOW(window)->details->ui_manager); + while (agroups != NULL) { + GtkActionGroup * agroup = GTK_ACTION_GROUP(agroups->data); + const gchar * name = gtk_action_group_get_name(agroup); + + if (g_strcmp0(name, "SpatialActions") == 0) { + GtkAction * action = NULL; + + action = gtk_action_group_get_action(agroup, "Close Parent Folders"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "Close All Folders"); + gtk_action_set_visible(action, FALSE); + } else if (g_strcmp0(name, "ShellActions") == 0) { + GtkAction * action = NULL; + + action = gtk_action_group_get_action(agroup, "Close All Windows"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, NAUTILUS_ACTION_CLOSE); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, NAUTILUS_ACTION_STOP); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, NAUTILUS_ACTION_RELOAD); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "Preferences"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "About Nautilus"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "Up"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "New Window"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "New Tab"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, NAUTILUS_ACTION_BACK); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, NAUTILUS_ACTION_FORWARD); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "Search"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "Show Hide Sidebar"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "NautilusHelp"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "NautilusHelpSearch"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "NautilusHelpSort"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "NautilusHelpLost"); + gtk_action_set_visible(action, FALSE); + + action = gtk_action_group_get_action(agroup, "NautilusHelpShare"); + gtk_action_set_visible(action, FALSE); + } + + agroups = g_list_next(agroups); + } + /* Set the accessible name so that it doesn't inherit the cryptic desktop URI. */ accessible = gtk_widget_get_accessible (GTK_WIDGET (window)); @@ -109,6 +234,8 @@ g_object_set_data (G_OBJECT (window), "is_desktop_window", GINT_TO_POINTER (1)); + + } static void Index: nautilus-3.5.4/src/nautilus-shell-ui.xml =================================================================== --- nautilus-3.5.4.orig/src/nautilus-shell-ui.xml 2012-07-15 23:39:37.000000000 -0400 +++ nautilus-3.5.4/src/nautilus-shell-ui.xml 2012-07-17 19:12:05.076938144 -0400 @@ -40,6 +40,8 @@ + + Index: nautilus-3.5.4/src/nautilus-window.c =================================================================== --- nautilus-3.5.4.orig/src/nautilus-window.c 2012-07-17 19:10:50.804569839 -0400 +++ nautilus-3.5.4/src/nautilus-window.c 2012-07-17 19:10:52.996580705 -0400 @@ -36,6 +36,7 @@ #include "nautilus-location-bar.h" #include "nautilus-mime-actions.h" #include "nautilus-notebook.h" +#include "nautilus-desktop-window.h" #include "nautilus-places-sidebar.h" #include "nautilus-pathbar.h" #include "nautilus-toolbar.h" @@ -1546,6 +1547,10 @@ window->details->view_as_radio_action = action; } + if (NAUTILUS_IS_DESKTOP_WINDOW(window)) { + gtk_action_set_visible(GTK_ACTION(action), FALSE); + } + data = g_slice_new (ActivateViewData); data->window = window; data->id = g_strdup (identifier); Index: nautilus-3.5.4/src/Makefile.in =================================================================== --- nautilus-3.5.4.orig/src/Makefile.in 2012-07-17 19:10:48.884560333 -0400 +++ nautilus-3.5.4/src/Makefile.in 2012-07-17 19:10:52.996580705 -0400 @@ -480,6 +480,7 @@ nautilus-icon-view-ui.xml \ nautilus-directory-view-ui.xml \ nautilus-desktop-icon-view-ui.xml \ + nautilus-desktop-window-ui.xml \ nautilus-list-view-ui.xml \ nautilus-shell-ui.xml \ $(NULL) Index: nautilus-3.5.4/src/nautilus.gresource.xml =================================================================== --- nautilus-3.5.4.orig/src/nautilus.gresource.xml 2012-07-17 19:10:48.884560333 -0400 +++ nautilus-3.5.4/src/nautilus.gresource.xml 2012-07-17 19:10:52.996580705 -0400 @@ -6,6 +6,7 @@ nautilus-icon-view-ui.xml nautilus-directory-view-ui.xml nautilus-desktop-icon-view-ui.xml + nautilus-desktop-window-ui.xml nautilus-list-view-ui.xml nautilus-shell-ui.xml nautilus-app-menu.ui debian/patches/interactive_search.patch0000664000000000000000000007706012307626250015517 0ustar Description: Restore interactive search as an option Author: Daniel Wyatt Bug: https://bugzilla.gnome.org/show_bug.cgi?id=681871 Bug-Ubuntu: https://bugs.launchpad.net/bugs/1164016 === modified file 'libnautilus-private/nautilus-global-preferences.h' Index: nautilus-3.8.2/libnautilus-private/nautilus-global-preferences.h =================================================================== --- nautilus-3.8.2.orig/libnautilus-private/nautilus-global-preferences.h 2014-01-22 14:04:32.788056549 +1300 +++ nautilus-3.8.2/libnautilus-private/nautilus-global-preferences.h 2014-01-22 14:04:32.780056550 +1300 @@ -160,6 +160,7 @@ /* Recent files */ #define NAUTILUS_PREFERENCES_RECENT_FILES_ENABLED "remember-recent-files" +#define NAUTILUS_PREFERENCES_ENABLE_INTERACTIVE_SEARCH "enable-interactive-search" void nautilus_global_preferences_init (void); char *nautilus_global_preferences_get_default_folder_viewer_preference_as_iid (void); Index: nautilus-3.8.2/libnautilus-private/org.gnome.nautilus.gschema.xml.in =================================================================== --- nautilus-3.8.2.orig/libnautilus-private/org.gnome.nautilus.gschema.xml.in 2014-01-22 14:04:32.788056549 +1300 +++ nautilus-3.8.2/libnautilus-private/org.gnome.nautilus.gschema.xml.in 2014-01-22 14:04:32.780056550 +1300 @@ -164,6 +164,11 @@ <_summary>Bulk rename utility <_description>If set, Nautilus will append URIs of selected files and treat the result as a command line for bulk renaming. Bulk rename applications can register themselves in this key by setting the key to a space-separated string of their executable name and any command line options. If the executable name is not set to a full path, it will be searched for in the search path. + + false + <_summary>Enable interactive (type-ahead) search + <_description>If set to true, enables interactive search, similar to Nautilus 3.4. + Index: nautilus-3.8.2/src/nautilus-list-view.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-list-view.c 2014-01-22 14:04:32.788056549 +1300 +++ nautilus-3.8.2/src/nautilus-list-view.c 2014-01-22 14:04:32.780056550 +1300 @@ -2364,6 +2364,7 @@ GList *node; GList *iters, *l; NautilusFile *file; + GtkTreePath *path = NULL; list_view = NAUTILUS_LIST_VIEW (view); tree_selection = gtk_tree_view_get_selection (list_view->details->tree_view); @@ -2378,10 +2379,19 @@ for (l = iters; l != NULL; l = l->next) { gtk_tree_selection_select_iter (tree_selection, (GtkTreeIter *)l->data); + if (!path) + path = gtk_tree_model_get_path (GTK_TREE_MODEL (list_view->details->model), (GtkTreeIter *)l->data); } g_list_free_full (iters, g_free); } - + if (path) { + gtk_tree_view_set_cursor_on_cell (list_view->details->tree_view, + path, + list_view->details->file_name_column, + GTK_CELL_RENDERER (list_view->details->file_name_cell), + TRUE); + gtk_tree_path_free (path); + } g_signal_handlers_unblock_by_func (tree_selection, list_selection_changed_callback, view); nautilus_view_notify_selection_changed (view); } Index: nautilus-3.8.2/src/nautilus-window-slot.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-window-slot.c 2014-01-22 14:04:32.788056549 +1300 +++ nautilus-3.8.2/src/nautilus-window-slot.c 2014-01-22 14:04:32.780056550 +1300 @@ -128,6 +128,17 @@ gboolean tried_mount; NautilusWindowGoToCallback open_callback; gpointer open_callback_user_data; + + /* Interactive search */ + gboolean isearch_enable; + gboolean isearch_imcontext_changed; + gboolean isearch_disable_hide; + NautilusFile *isearch_selected_file; + GtkWidget *isearch_window; + GtkWidget *isearch_entry; + gulong isearch_entry_changed_id; + guint isearch_timeout_id; + gulong isearch_configure_event_id; }; static guint signals[LAST_SIGNAL] = { 0 }; @@ -138,6 +149,16 @@ static void nautilus_window_slot_connect_new_content_view (NautilusWindowSlot *slot); static void nautilus_window_slot_emit_location_change (NautilusWindowSlot *slot, GFile *from, GFile *to); +/* Interactive search */ +static void isearch_ensure (NautilusWindowSlot *slot); +static gboolean isearch_start (NautilusWindowSlot *slot, GdkDevice *device); +static void isearch_enable_changed (gpointer callback_data); +static void isearch_dispose (NautilusWindowSlot *slot); +static void isearch_hide (NautilusWindowSlot *slot, + GdkDevice *device); + +#define ISEARCH_TIMEOUT 5000 + static void nautilus_window_slot_sync_search_widgets (NautilusWindowSlot *slot) { @@ -442,17 +463,86 @@ retval = FALSE; window = nautilus_window_slot_get_window (slot); - if (!NAUTILUS_IS_DESKTOP_WINDOW (window)) { - retval = nautilus_query_editor_handle_event (slot->details->query_editor, event); - } - if (retval) { - nautilus_window_slot_set_search_visible (slot, TRUE); - } + if (slot->details->isearch_enable) { + GdkEvent *new_event; + char *old_text; + const char *new_text; + gboolean retval; + GdkScreen *screen; + gboolean text_modified; + gulong popup_menu_id; + + isearch_ensure (slot); + + /* Make a copy of the current text */ + old_text = g_strdup (gtk_entry_get_text (GTK_ENTRY (slot->details->isearch_entry))); + new_event = gdk_event_copy ((GdkEvent *) event); + g_object_unref (((GdkEventKey *) new_event)->window); + ((GdkEventKey *) new_event)->window = g_object_ref (gtk_widget_get_window (slot->details->isearch_window)); + gtk_widget_realize (slot->details->isearch_window); + + popup_menu_id = g_signal_connect (slot->details->isearch_entry, + "popup-menu", G_CALLBACK (gtk_true), + NULL); + + /* Move the entry off screen */ + screen = gtk_widget_get_screen (GTK_WIDGET (slot)); + gtk_window_move (GTK_WINDOW (slot->details->isearch_window), + gdk_screen_get_width (screen) + 1, + gdk_screen_get_height (screen) + 1); + gtk_widget_show (slot->details->isearch_window); + + /* Send the event to the window. If the preedit_changed signal is emitted + * during this event, we will set priv->imcontext_changed */ + slot->details->isearch_imcontext_changed = FALSE; + retval = gtk_widget_event (slot->details->isearch_window, new_event); + gdk_event_free (new_event); + gtk_widget_hide (slot->details->isearch_window); + + g_signal_handler_disconnect (slot->details->isearch_entry, + popup_menu_id); + + /* We check to make sure that the entry tried to handle the text, and that + * the text has changed. + */ + new_text = gtk_entry_get_text (GTK_ENTRY (slot->details->isearch_entry)); + text_modified = strcmp (old_text, new_text) != 0; + g_free (old_text); + if (slot->details->isearch_imcontext_changed || + (retval && text_modified)) + { + if (isearch_start (slot, + gdk_event_get_device ((GdkEvent *) event))) { + gtk_widget_grab_focus (GTK_WIDGET (slot)); + return TRUE; + } + else { + gtk_entry_set_text (GTK_ENTRY (slot->details->isearch_entry), ""); + return FALSE; + } + } + } else { + if (!NAUTILUS_IS_DESKTOP_WINDOW (window)) { + retval = nautilus_query_editor_handle_event (slot->details->query_editor, event); + } + if (retval) { + nautilus_window_slot_set_search_visible (slot, TRUE); + } + } return retval; } +static gboolean +configure_event_cb (GtkWidget *widget, + GdkEventConfigure *event, + NautilusWindowSlot *slot) +{ + isearch_hide (slot, NULL); + return FALSE; +} + static void real_active (NautilusWindowSlot *slot) { @@ -477,6 +567,13 @@ nautilus_window_slot_sync_view_as_menus (slot); nautilus_window_load_extension_menus (window); } + if (slot->details->isearch_configure_event_id == 0) { + slot->details->isearch_configure_event_id = + g_signal_connect (GTK_WIDGET (slot->details->window), + "configure-event", + G_CALLBACK (configure_event_cb), + slot); + } } static void @@ -486,6 +583,12 @@ window = nautilus_window_slot_get_window (slot); g_assert (slot == nautilus_window_get_active_slot (window)); + isearch_hide (slot, NULL); + if (slot->details->isearch_configure_event_id != 0) { + g_signal_handler_disconnect (GTK_WIDGET (slot->details->window), + slot->details->isearch_configure_event_id); + slot->details->isearch_configure_event_id = 0; + } } static void @@ -612,6 +715,26 @@ { slot->details = G_TYPE_INSTANCE_GET_PRIVATE (slot, NAUTILUS_TYPE_WINDOW_SLOT, NautilusWindowSlotDetails); + + slot->details->isearch_enable = + g_settings_get_boolean (nautilus_preferences, NAUTILUS_PREFERENCES_ENABLE_INTERACTIVE_SEARCH); + + g_signal_connect_swapped (nautilus_preferences, + "changed::" NAUTILUS_PREFERENCES_ENABLE_INTERACTIVE_SEARCH, + G_CALLBACK(isearch_enable_changed), slot); +} + +static void +nautilus_window_slot_finalize (GObject *object) +{ + NautilusWindowSlot *slot; + + slot = NAUTILUS_WINDOW_SLOT (object); + + g_signal_handlers_disconnect_by_func (nautilus_preferences, + isearch_enable_changed, slot); + + G_OBJECT_CLASS (nautilus_window_slot_parent_class)->finalize (object); } static void @@ -2415,6 +2538,8 @@ slot = NAUTILUS_WINDOW_SLOT (object); + isearch_dispose (slot); + nautilus_window_slot_clear_forward_list (slot); nautilus_window_slot_clear_back_list (slot); @@ -2491,6 +2614,7 @@ oclass->constructed = nautilus_window_slot_constructed; oclass->set_property = nautilus_window_slot_set_property; oclass->get_property = nautilus_window_slot_get_property; + oclass->finalize = nautilus_window_slot_finalize; signals[ACTIVE] = g_signal_new ("active", @@ -2847,3 +2971,761 @@ "window", window, NULL); } + +/* Interactive search */ + +static void +isearch_ensure (NautilusWindowSlot *slot); +static gboolean +isearch_timeout (gpointer user_data); +static void +isearch_timeout_destroy (gpointer user_data); +static void +isearch_timeout_restart (NautilusWindowSlot *slot); +static gboolean +isearch_window_delete_event (GtkWidget *widget, + GdkEventAny *event, + NautilusWindowSlot *slot); +static gboolean +isearch_window_button_press_event (GtkWidget *widget, + GdkEventButton *event, + NautilusWindowSlot *slot); +static gboolean +isearch_window_scroll_event (GtkWidget *widget, + GdkEventScroll *event, + NautilusWindowSlot *slot); +static void +isearch_activate_items_alternate (NautilusWindowSlot *slot); +static gboolean +isearch_window_key_press_event (GtkWidget *widget, + GdkEventKey *event, + NautilusWindowSlot *slot); +static void +isearch_disable_hide (GtkEntry *entry, + GtkMenu *menu, + gpointer data); +static void +isearch_preedit_changed (GtkEntry *entry, + gchar *preedit, + NautilusWindowSlot *slot); +static void +isearch_activate_event (GtkEntry *entry, + NautilusWindowSlot *slot); +static gboolean +isearch_enable_hide_real (gpointer data); +static void +isearch_enable_hide (GtkWidget *widget, + gpointer data); +static void +send_focus_change (GtkWidget *widget, + GdkDevice *device, + gboolean in); +static void +isearch_hide (NautilusWindowSlot *slot, + GdkDevice *device); +static void +isearch_entry_changed (GtkWidget *entry, + NautilusWindowSlot *slot); +static gboolean +isearch_start (NautilusWindowSlot *slot, GdkDevice *device); +static void +isearch_position (NautilusWindowSlot *slot); +static gboolean +isearch_compare_filename (const gchar *f1, const gchar *f2, guint length); +static int +compare_files (gconstpointer a, gconstpointer b, gpointer callback_data); +static GList * +isearch_get_sorted_files (NautilusWindowSlot *slot); +static NautilusFile * +isearch_find (NautilusWindowSlot *slot, const gchar *text); +static NautilusFile * +isearch_find_next (NautilusWindowSlot *slot, const gchar *text); +static NautilusFile * +isearch_find_prev (NautilusWindowSlot *slot, const gchar *text); +static gboolean +isearch_move_next (NautilusWindowSlot *slot); +static gboolean +isearch_move_prev (NautilusWindowSlot *slot); +static void +isearch_set_selection (NautilusWindowSlot *slot, NautilusFile *file); +static void +isearch_enable_changed (gpointer callback_data); +static void +isearch_dispose (NautilusWindowSlot *slot); + +static void +isearch_ensure (NautilusWindowSlot *slot) +{ + GtkWidget *frame, *vbox, *toplevel; + GdkScreen *screen; + + toplevel = gtk_widget_get_toplevel (GTK_WIDGET (slot)); + screen = gtk_widget_get_screen (GTK_WIDGET (slot)); + + if (slot->details->isearch_window != NULL) + { + if (gtk_window_has_group (GTK_WINDOW (toplevel))) + gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (toplevel)), + GTK_WINDOW (slot->details->isearch_window)); + else if (gtk_window_has_group (GTK_WINDOW (slot->details->isearch_window))) + gtk_window_group_remove_window (gtk_window_get_group (GTK_WINDOW (slot->details->isearch_window)), + GTK_WINDOW (slot->details->isearch_window)); + + gtk_window_set_screen (GTK_WINDOW (slot->details->isearch_window), screen); + return; + } + slot->details->isearch_window = gtk_window_new (GTK_WINDOW_POPUP); + gtk_window_set_screen (GTK_WINDOW (slot->details->isearch_window), screen); + + if (gtk_window_has_group (GTK_WINDOW (toplevel))) + gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (toplevel)), + GTK_WINDOW (slot->details->isearch_window)); + + gtk_window_set_type_hint (GTK_WINDOW (slot->details->isearch_window), + GDK_WINDOW_TYPE_HINT_UTILITY); + gtk_window_set_modal (GTK_WINDOW (slot->details->isearch_window), TRUE); + g_signal_connect (slot->details->isearch_window, "delete-event", + G_CALLBACK (isearch_window_delete_event), + slot); + g_signal_connect (slot->details->isearch_window, "key-press-event", + G_CALLBACK (isearch_window_key_press_event), + slot); + g_signal_connect (slot->details->isearch_window, "button-press-event", + G_CALLBACK (isearch_window_button_press_event), + slot); + g_signal_connect (slot->details->isearch_window, "scroll-event", + G_CALLBACK (isearch_window_scroll_event), + slot); + + frame = gtk_frame_new (NULL); + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_IN); + gtk_widget_show (frame); + gtk_container_add (GTK_CONTAINER (slot->details->isearch_window), frame); + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_widget_show (vbox); + gtk_container_add (GTK_CONTAINER (frame), vbox); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 3); + + /* add entry */ + slot->details->isearch_entry = gtk_entry_new (); + gtk_widget_show (slot->details->isearch_entry); + g_signal_connect (slot->details->isearch_entry, "populate-popup", + G_CALLBACK (isearch_disable_hide), + slot); + g_signal_connect (slot->details->isearch_entry, + "activate", G_CALLBACK (isearch_activate_event), + slot); + + g_signal_connect (G_OBJECT (slot->details->isearch_entry), + "preedit-changed", + G_CALLBACK (isearch_preedit_changed), + slot); + gtk_container_add (GTK_CONTAINER (vbox), + slot->details->isearch_entry); + + gtk_widget_realize (slot->details->isearch_entry); +} + +static gboolean +isearch_timeout (gpointer user_data) +{ + NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (user_data); + + if (!g_source_is_destroyed (g_main_current_source ())) + isearch_hide (slot, NULL); + + return FALSE; +} + +static void +isearch_timeout_destroy (gpointer user_data) +{ + NautilusWindowSlot *slot = NAUTILUS_WINDOW_SLOT (user_data); + + slot->details->isearch_timeout_id = 0; +} + +static void +isearch_timeout_restart (NautilusWindowSlot *slot) +{ + if (slot->details->isearch_timeout_id != 0) { + g_source_remove (slot->details->isearch_timeout_id); + + slot->details->isearch_timeout_id = gdk_threads_add_timeout_full ( + G_PRIORITY_LOW, ISEARCH_TIMEOUT, + isearch_timeout, + slot, + isearch_timeout_destroy); + } +} + +static gboolean +isearch_window_delete_event (GtkWidget *widget, + GdkEventAny *event, + NautilusWindowSlot *slot) +{ + g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); + + isearch_hide (slot, NULL); + return TRUE; +} + +static gboolean +isearch_window_button_press_event (GtkWidget *widget, + GdkEventButton *event, + NautilusWindowSlot *slot) +{ + GdkDevice *keyb_device; + + g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); + + keyb_device = gdk_device_get_associated_device (event->device); + isearch_hide (slot, keyb_device); + + /* A bit of hackery here */ + if (NAUTILUS_IS_CANVAS_VIEW (slot->details->content_view)) { + NautilusCanvasContainer *cc = nautilus_canvas_view_get_canvas_container (NAUTILUS_CANVAS_VIEW (slot->details->content_view)); + gboolean retval; + + if (event->window == gtk_layout_get_bin_window (GTK_LAYOUT (cc))) + g_signal_emit_by_name (GTK_WIDGET (cc), "button-press-event", event, &retval); + + return retval; + } else if (NAUTILUS_IS_LIST_VIEW (slot->details->content_view)) { + NautilusListView *lv = NAUTILUS_LIST_VIEW (slot->details->content_view); + GtkTreeView *tv = nautilus_list_view_get_tree_view (NAUTILUS_LIST_VIEW (slot->details->content_view)); + gboolean retval; + + if (event->window == gtk_tree_view_get_bin_window (tv)) + g_signal_emit_by_name (GTK_WIDGET (tv), "button-press-event", event, &retval); + + return retval; + } + return TRUE; +} + +static gboolean +isearch_window_scroll_event (GtkWidget *widget, + GdkEventScroll *event, + NautilusWindowSlot *slot) +{ + gboolean retval = FALSE; + + if (event->direction == GDK_SCROLL_UP) { + isearch_move_prev (slot); + retval = TRUE; + } + else if (event->direction == GDK_SCROLL_DOWN) { + isearch_move_next (slot); + retval = TRUE; + } + if (retval) + isearch_timeout_restart (slot); + + return retval; +} + +static void +isearch_activate_items_alternate (NautilusWindowSlot *slot) +{ + GList *file_list; + + file_list = nautilus_view_get_selection (slot->details->content_view); + nautilus_view_activate_files (NAUTILUS_VIEW (slot->details->content_view), + file_list, + NAUTILUS_WINDOW_OPEN_FLAG_NEW_TAB, + TRUE); + nautilus_file_list_free (file_list); +} + +static gboolean +isearch_window_key_press_event (GtkWidget *widget, + GdkEventKey *event, + NautilusWindowSlot *slot) +{ + GdkModifierType default_accel; + gboolean retval = FALSE; + + g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE); + g_return_val_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot), FALSE); + + /* close window and cancel the search */ + if (event->keyval == GDK_KEY_Escape || + event->keyval == GDK_KEY_Tab || + event->keyval == GDK_KEY_KP_Tab || + event->keyval == GDK_KEY_ISO_Left_Tab) { + + isearch_hide (slot, gdk_event_get_device ((GdkEvent *) event)); + return TRUE; + } + + default_accel = gtk_widget_get_modifier_mask (widget, + GDK_MODIFIER_INTENT_PRIMARY_ACCELERATOR); + + /* select previous matching iter */ + if (event->keyval == GDK_KEY_Up || event->keyval == GDK_KEY_KP_Up) { + if (!isearch_move_prev (slot)) + gtk_widget_error_bell (widget); + + retval = TRUE; + } + if (((event->state & (default_accel | GDK_SHIFT_MASK)) == (default_accel | GDK_SHIFT_MASK)) + && (event->keyval == GDK_KEY_g || event->keyval == GDK_KEY_G)) { + if (!isearch_move_prev (slot)) + gtk_widget_error_bell (widget); + + retval = TRUE; + } + /* select next matching iter */ + if (event->keyval == GDK_KEY_Down || event->keyval == GDK_KEY_KP_Down) { + if (!isearch_move_next (slot)) + gtk_widget_error_bell (widget); + + retval = TRUE; + } + if (((event->state & (default_accel | GDK_SHIFT_MASK)) == default_accel) + && (event->keyval == GDK_KEY_g || event->keyval == GDK_KEY_G)) { + if (!isearch_move_next (slot)) + gtk_widget_error_bell (widget); + + retval = TRUE; + } + + /* Alternate activation (Shift+Enter). + * Regular activation (Enter) is handled by the entry activate signal. + */ + if ((event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter) && + (event->state & GDK_SHIFT_MASK) == GDK_SHIFT_MASK) { + isearch_activate_items_alternate (slot); + isearch_hide (slot, gdk_event_get_device ((GdkEvent*)event)); + retval = TRUE; + } + isearch_timeout_restart (slot); + return retval; +} + +static void +isearch_disable_hide (GtkEntry *entry, + GtkMenu *menu, + gpointer data) +{ + NautilusWindowSlot *slot = (NautilusWindowSlot *)data; + + slot->details->isearch_disable_hide = 1; + g_signal_connect (menu, "hide", + G_CALLBACK (isearch_enable_hide), data); +} + +static void +isearch_preedit_changed (GtkEntry *entry, + gchar *preedit, + NautilusWindowSlot *slot) +{ + slot->details->isearch_imcontext_changed = 1; + isearch_timeout_restart (slot); +} + +static void +isearch_activate_event (GtkEntry *entry, + NautilusWindowSlot *slot) +{ + GtkTreePath *path; + + isearch_hide (slot, gtk_get_current_event_device ()); + nautilus_view_activate_selection (slot->details->content_view); +} + +static gboolean +isearch_enable_hide_real (gpointer data) +{ + NautilusWindowSlot *slot = (NautilusWindowSlot *)data; + slot->details->isearch_disable_hide = 0; + return FALSE; +} + +static void +isearch_enable_hide (GtkWidget *widget, + gpointer data) +{ + gdk_threads_add_timeout_full (G_PRIORITY_HIGH, 200, isearch_enable_hide_real, g_object_ref (data), g_object_unref); +} + +static void +send_focus_change (GtkWidget *widget, + GdkDevice *device, + gboolean in) +{ + GdkDeviceManager *device_manager; + GList *devices, *d; + + device_manager = gdk_display_get_device_manager (gtk_widget_get_display (widget)); + devices = gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_MASTER); + devices = g_list_concat (devices, gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_SLAVE)); + devices = g_list_concat (devices, gdk_device_manager_list_devices (device_manager, GDK_DEVICE_TYPE_FLOATING)); + + for (d = devices; d; d = d->next) + { + GdkDevice *dev = d->data; + GdkEvent *fevent; + GdkWindow *window; + + if (gdk_device_get_source (dev) != GDK_SOURCE_KEYBOARD) + continue; + + window = gtk_widget_get_window (widget); + + /* Skip non-master keyboards that haven't + * selected for events from this window + */ + if (gdk_device_get_device_type (dev) != GDK_DEVICE_TYPE_MASTER && + !gdk_window_get_device_events (window, dev)) + continue; + + fevent = gdk_event_new (GDK_FOCUS_CHANGE); + + fevent->focus_change.type = GDK_FOCUS_CHANGE; + fevent->focus_change.window = g_object_ref (window); + fevent->focus_change.in = in; + gdk_event_set_device (fevent, device); + + gtk_widget_send_focus_change (widget, fevent); + + gdk_event_free (fevent); + } + + g_list_free (devices); +} + +static void +isearch_hide (NautilusWindowSlot *slot, + GdkDevice *device) +{ + if (slot->details->isearch_disable_hide) + return; + + if (!slot->details->isearch_enable) + return; + + if (slot->details->isearch_entry_changed_id) + { + g_signal_handler_disconnect (slot->details->isearch_entry, + slot->details->isearch_entry_changed_id); + slot->details->isearch_entry_changed_id = 0; + } + if (slot->details->isearch_timeout_id) + { + g_source_remove (slot->details->isearch_timeout_id); + slot->details->isearch_timeout_id = 0; + } + if (slot->details->isearch_window != NULL + && gtk_widget_get_visible (slot->details->isearch_window)) + { + /* send focus-in event */ + send_focus_change (GTK_WIDGET (slot->details->isearch_entry), device, FALSE); + gtk_widget_hide (slot->details->isearch_window); + gtk_entry_set_text (GTK_ENTRY (slot->details->isearch_entry), ""); + send_focus_change (GTK_WIDGET (slot), device, TRUE); + } +} + +static void +isearch_entry_changed (GtkWidget *entry, + NautilusWindowSlot *slot) +{ + gint ret; + const gchar *text; + + g_return_if_fail (GTK_IS_ENTRY (entry)); + g_return_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot)); + + text = gtk_entry_get_text (GTK_ENTRY (entry)); + + /* unselect all */ + nautilus_view_set_selection (slot->details->content_view, NULL); + + isearch_timeout_restart (slot); + + if (*text == '\0') + return; + + isearch_set_selection (slot, isearch_find (slot, text)); +} + +static gboolean +isearch_start (NautilusWindowSlot *slot, GdkDevice *device) +{ + GTypeClass *klass; + GList *list; + gboolean found_focus = FALSE; + + if (!slot->details->isearch_enable) + return FALSE; + + if (slot->details->isearch_window != NULL && + gtk_widget_get_visible (slot->details->isearch_window)) + return TRUE; + + if (nautilus_view_get_loading (slot->details->content_view)) + return FALSE; + + isearch_ensure (slot); + + /* done, show it */ + isearch_position (slot); + gtk_widget_show (slot->details->isearch_window); + if (slot->details->isearch_entry_changed_id == 0) + { + slot->details->isearch_entry_changed_id = + g_signal_connect (slot->details->isearch_entry, "changed", + G_CALLBACK (isearch_entry_changed), + slot); + } + slot->details->isearch_timeout_id = gdk_threads_add_timeout_full ( + G_PRIORITY_LOW, + ISEARCH_TIMEOUT, + isearch_timeout, + slot, + isearch_timeout_destroy); + + /* Grab focus without selecting all the text. */ + klass = g_type_class_peek_parent (GTK_ENTRY_GET_CLASS (slot->details->isearch_entry)); + (*GTK_WIDGET_CLASS (klass)->grab_focus) (slot->details->isearch_entry); + + /* send focus-in event */ + send_focus_change (slot->details->isearch_entry, device, TRUE); + + /* search first matching iter */ + isearch_entry_changed (slot->details->isearch_entry, slot); + return TRUE; +} + +static void +isearch_position (NautilusWindowSlot *slot) +{ + gint x, y; + gint window_x, window_y; + gint window_width, window_height; + GdkWindow *window = gtk_widget_get_window (GTK_WIDGET (slot)); + GdkScreen *screen = gdk_window_get_screen (window); + GtkRequisition requisition; + gint monitor_num; + GdkRectangle monitor; + + monitor_num = gdk_screen_get_monitor_at_window (screen, window); + gdk_screen_get_monitor_workarea (screen, monitor_num, &monitor); + + gtk_widget_realize (slot->details->isearch_window); + + gdk_window_get_origin (window, &window_x, &window_y); + window_width = gdk_window_get_width (window); + window_height = gdk_window_get_height (window); + gtk_widget_get_preferred_size (slot->details->isearch_window, &requisition, NULL); + + if (window_x + window_width > gdk_screen_get_width (screen)) + x = gdk_screen_get_width (screen) - requisition.width; + else if (window_x + window_width - requisition.width < 0) + x = 0; + else + x = window_x + window_width - requisition.width; + + if (window_y + window_height + requisition.height > gdk_screen_get_height (screen)) + y = gdk_screen_get_height (screen) - requisition.height; + else if (window_y + window_height < 0) /* isn't really possible ... */ + y = 0; + else + y = window_y + window_height; + + gtk_window_move (GTK_WINDOW (slot->details->isearch_window), x, y); +} + +static gboolean +isearch_compare_filename (const gchar *f1, const gchar *f2, guint length) +{ + gchar *normalized_f1; + gchar *normalized_f2; + gchar *case_normalized_f1; + gchar *case_normalized_f2; + gboolean retval = FALSE; + + normalized_f1 = g_utf8_normalize (f1, -1, G_NORMALIZE_ALL); + normalized_f2 = g_utf8_normalize (f2, -1, G_NORMALIZE_ALL); + + if (G_LIKELY (normalized_f1 != NULL && normalized_f2 != NULL)) { + case_normalized_f1 = g_utf8_casefold (normalized_f1, -1); + case_normalized_f2 = g_utf8_casefold (normalized_f2, -1); + + retval = (strncmp (case_normalized_f1, case_normalized_f2, length) == 0); + } + g_free (normalized_f1); + g_free (normalized_f2); + g_free (case_normalized_f1); + g_free (case_normalized_f2); + return retval; +} + +static int +compare_files (gconstpointer a, gconstpointer b, gpointer callback_data) +{ + NautilusView *view = NAUTILUS_VIEW (callback_data); + NautilusFile *f1 = NAUTILUS_FILE (a); + NautilusFile *f2 = NAUTILUS_FILE (b); + + return NAUTILUS_VIEW_CLASS (G_OBJECT_GET_CLASS (view))->compare_files (view, f1, f2); +} + +static GList * +isearch_get_sorted_files (NautilusWindowSlot *slot) +{ + NautilusView *view = slot->details->content_view; + NautilusDirectory *dir = nautilus_view_get_model (view); + GList *list = nautilus_directory_get_file_list (dir); + GList *sorted_list; + + sorted_list = g_list_sort_with_data (list, compare_files, view); + return sorted_list; +} + +static NautilusFile * +isearch_find (NautilusWindowSlot *slot, const gchar *text) +{ + GList *files = isearch_get_sorted_files (slot); + GList *l; + NautilusFile *found = NULL; + + for (l = files; l; l = g_list_next (l)) { + NautilusFile *file = NAUTILUS_FILE (l->data); + gchar *filename = nautilus_file_get_display_name (file); + + if (isearch_compare_filename (filename, text, strlen (text))) + found = file; + + g_free (filename); + if (found) + break; + } + return found; +} + +static NautilusFile * +isearch_find_next (NautilusWindowSlot *slot, const gchar *text) +{ + GList *files = isearch_get_sorted_files (slot); + NautilusFile *found = NULL; + GList *current; + GList *l; + + current = g_list_find (files, slot->details->isearch_selected_file); + for (l = g_list_next (current); l; l = g_list_next (l)) { + NautilusFile *file = NAUTILUS_FILE (l->data); + gchar *display_name = nautilus_file_get_display_name (file); + + if (isearch_compare_filename (display_name, text, strlen (text))) + found = file; + + g_free (display_name); + if (found) + break; + } + return found; +} + +static NautilusFile * +isearch_find_prev (NautilusWindowSlot *slot, const gchar *text) +{ + GList *files = isearch_get_sorted_files (slot); + NautilusFile *found = NULL; + GList *current; + GList *l; + + current = g_list_find (files, slot->details->isearch_selected_file); + for (l = g_list_previous (current); l; l = g_list_previous (l)) { + NautilusFile *file = NAUTILUS_FILE (l->data); + gchar *display_name = nautilus_file_get_display_name (file); + + if (isearch_compare_filename (display_name, text, strlen (text))) + found = file; + + g_free (display_name); + if (found) + break; + } + return found; +} + +static gboolean +isearch_move_next (NautilusWindowSlot *slot) +{ + const gchar *text; + NautilusFile *iter; + + text = gtk_entry_get_text (GTK_ENTRY (slot->details->isearch_entry)); + iter = isearch_find_next (slot, text); + if (iter) + isearch_set_selection (slot, iter); + + return iter != NULL; +} + +static gboolean +isearch_move_prev (NautilusWindowSlot *slot) +{ + const gchar *text; + NautilusFile *iter; + + text = gtk_entry_get_text (GTK_ENTRY (slot->details->isearch_entry)); + iter = isearch_find_prev (slot, text); + if (iter) + isearch_set_selection (slot, iter); + + return iter != NULL; +} + +static void +isearch_set_selection (NautilusWindowSlot *slot, NautilusFile *file) +{ + GList *list = g_list_append (list, file); + + slot->details->isearch_selected_file = file; + nautilus_view_set_selection (slot->details->content_view, list); + g_list_free (list); +} + +static void +isearch_enable_changed (gpointer callback_data) +{ + NautilusWindowSlot *slot; + gboolean enable; + + slot = NAUTILUS_WINDOW_SLOT (callback_data); + + enable = g_settings_get_boolean (nautilus_preferences, NAUTILUS_PREFERENCES_ENABLE_INTERACTIVE_SEARCH); + + if (enable != slot->details->isearch_enable) { + if (!enable) + isearch_dispose (slot); + + slot->details->isearch_enable = enable; + } +} + +static void +isearch_dispose (NautilusWindowSlot *slot) +{ + if (!slot->details->isearch_enable) + return; + + if (slot->details->isearch_entry_changed_id != 0) { + g_signal_handler_disconnect (G_OBJECT (slot->details->isearch_entry), slot->details->isearch_entry_changed_id); + slot->details->isearch_entry_changed_id = 0; + } + if (slot->details->isearch_timeout_id != 0) { + g_source_remove (slot->details->isearch_timeout_id); + slot->details->isearch_timeout_id = 0; + } + if (slot->details->isearch_window != NULL) { + gtk_widget_destroy (slot->details->isearch_window); + slot->details->isearch_window = NULL; + slot->details->isearch_entry = NULL; + } +} debian/patches/git_bookmark_name.patch0000664000000000000000000000331412307626250015314 0ustar Subject: bookmarks-window: always get the bookmark name from the name field. Always get the current value in the name field when editing a bookmark. This will prevent passing NULL to nautilus_bookmark_new when the user edits only the URI field. I suspect that passing NULL to nautilus_bookmark_new causes nautilus to create a new name from URI, thus overwriting the current bookmark name. https://bugzilla.gnome.org/show_bug.cgi?id=576976 --- diff --git a/src/nautilus-bookmarks-window.c b/src/nautilus-bookmarks-window.c index 8b15c6c..39bb97b 100644 --- a/src/nautilus-bookmarks-window.c +++ b/src/nautilus-bookmarks-window.c @@ -86,7 +86,6 @@ struct NautilusBookmarksWindowPrivate { gulong name_changed_id; gulong uri_changed_id; gboolean text_changed; - gboolean name_text_changed; GtkWidget *remove_button; GtkWidget *up_button; @@ -231,7 +230,6 @@ on_selection_changed (GtkTreeSelection *treeselection, g_signal_handler_unblock (self->priv->uri_field, self->priv->uri_changed_id); self->priv->text_changed = FALSE; - self->priv->name_text_changed = FALSE; g_free (entry_text); } @@ -375,7 +373,6 @@ on_name_field_changed (GtkEditable *editable, -1); self->priv->text_changed = TRUE; - self->priv->name_text_changed = TRUE; } static void @@ -518,8 +515,8 @@ update_bookmark_from_text (NautilusBookmarksWindow *self) (gtk_entry_get_text (GTK_ENTRY (self->priv->uri_field))); bookmark = nautilus_bookmark_new (location, - self->priv->name_text_changed ? - gtk_entry_get_text (GTK_ENTRY (self->priv->name_field)) : NULL); + gtk_entry_get_text (GTK_ENTRY (self->priv->name_field))); + g_object_unref (location); selected_row = get_selected_row (self); -- cgit v0.9.2 debian/patches/dont_wrap_labels_after_dots.patch0000664000000000000000000000257512307626250017405 0ustar # Description: don't tweak wrapping after dots, it's not required and # creates some issues (i.e with Ubuntu version number) # Upstream: https://bugzilla.gnome.org/show_bug.cgi?id=674924 # Index: nautilus-3.8.2/libnautilus-private/nautilus-canvas-item.c =================================================================== --- nautilus-3.8.2.orig/libnautilus-private/nautilus-canvas-item.c 2014-01-15 14:31:48.369605599 +1300 +++ nautilus-3.8.2/libnautilus-private/nautilus-canvas-item.c 2014-01-15 14:31:48.365605599 +1300 @@ -1405,11 +1405,6 @@ #define ZERO_WIDTH_SPACE "\xE2\x80\x8B" -#define ZERO_OR_THREE_DIGITS(p) \ - (!g_ascii_isdigit (*(p)) || \ - (g_ascii_isdigit (*(p+1)) && \ - g_ascii_isdigit (*(p+2)))) - static PangoLayout * create_label_layout (NautilusCanvasItem *item, @@ -1438,11 +1433,9 @@ for (p = text; *p != '\0'; p++) { str = g_string_append_c (str, *p); - if (*p == '_' || *p == '-' || (*p == '.' && ZERO_OR_THREE_DIGITS (p+1))) { + if (*p == '_' || *p == '-' || (*p == '.' && !g_ascii_isdigit(*(p+1)))) { /* Ensure that we allow to break after '_' or '.' characters, - * if they are not likely to be part of a version information, to - * not break wrapping of foobar-0.0.1. - * Wrap before IPs and long numbers, though. */ + * if they are not followed by a number */ str = g_string_append (str, ZERO_WIDTH_SPACE); } } debian/patches/git_toolbar_dnd.patch0000664000000000000000000000164212307626250015000 0ustar From 2fa90048ebf41af71bbae20e9c5934286a049d75 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 16 Feb 2014 01:44:43 +0000 Subject: Fix window dragging on the path bar GtkWindow relies on button press, release and motion notify events being propagated. Therefore, we need to select for motion notify events to make window dragging work. https://bugzilla.gnome.org/show_bug.cgi?id=722542 --- diff --git a/src/nautilus-pathbar.c b/src/nautilus-pathbar.c index 9d94f28..7d51d56 100644 --- a/src/nautilus-pathbar.c +++ b/src/nautilus-pathbar.c @@ -739,7 +739,8 @@ nautilus_path_bar_realize (GtkWidget *widget) attributes.event_mask |= GDK_SCROLL_MASK | GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK; + GDK_BUTTON_RELEASE_MASK | + GDK_POINTER_MOTION_MASK; attributes_mask = GDK_WA_X | GDK_WA_Y; path_bar->priv->event_window = gdk_window_new (gtk_widget_get_parent_window (widget), debian/patches/series0000664000000000000000000000220212307626250012033 0ustar 03_translations_list_update.patch 04_suppress_umount_in_ltsp.patch #05_desktop_menu_export.patch 06_never_exec_nonexec_launchers.patch 08_clean_session_capplet.patch 11_copy_skipping_pager.patch 12_unity_launcher_support.patch 14_bring_del_instead_ctrl_del.patch 15_use-ubuntu-help.patch 17_static_unity_quicklist.patch 18_unity_icon_color.patch zg_activity_logging.patch dont_wrap_labels_after_dots.patch 19_unity_open_location_xid.patch 20_unity_control_center.patch ubuntu_revert_no_wallpaper.patch ubuntu_sync_background_to_accountsservice.patch git_rename_background.patch git_invalid_symlink_handling.patch no_search_on_desktop.patch git_sidebar_state_on_start.patch interactive_search.patch ubuntu_show_titlebar.patch restore-traditional-menu-bar.patch 16_unity_new_documents.patch ubuntu_titlebar_css.patch ubuntu_backspace_behaviour.patch git_valid_location_widget.patch ubuntu_infobars_color.patch git_toolbar_dnd.patch git_bookmark_warning.patch git_location_icon_rtl.patch git_fix_ellipsize.patch git_reliable_unmount.patch git_null_uri.patch git_bookmark_name.patch git_title_update.patch git_extra_spacing.patch git_directory_warning.patch debian/patches/zg_activity_logging.patch0000664000000000000000000005755312307626250015724 0ustar === modified file 'nautilus-3.3.91/libnautilus-private/Makefile.am' Index: nautilus-3.8.1/libnautilus-private/Makefile.am =================================================================== --- nautilus-3.8.1.orig/libnautilus-private/Makefile.am 2013-06-04 22:27:52.532397563 -0400 +++ nautilus-3.8.1/libnautilus-private/Makefile.am 2013-06-04 22:27:52.520397564 -0400 @@ -11,6 +11,7 @@ $(WARNING_CFLAGS) \ $(DISABLE_DEPRECATED) \ $(TRACKER_CFLAGS) \ + `pkg-config --cflags zeitgeist-1.0` \ -DDATADIR=\""$(datadir)"\" \ -DSYSCONFDIR=\""$(sysconfdir)"\" \ -DNAUTILUS_DATADIR=\""$(datadir)/nautilus"\" \ @@ -39,6 +40,7 @@ libnautilus_private_la_LDFLAGS = \ -no-undefined \ + `pkg-config --libs zeitgeist-1.0` \ $(NULL) libnautilus_private_la_LIBADD = \ Index: nautilus-3.8.1/libnautilus-private/nautilus-file-operations.c =================================================================== --- nautilus-3.8.1.orig/libnautilus-private/nautilus-file-operations.c 2013-06-04 22:27:52.532397563 -0400 +++ nautilus-3.8.1/libnautilus-private/nautilus-file-operations.c 2013-06-04 22:27:52.524397563 -0400 @@ -66,6 +66,8 @@ #include "nautilus-file-undo-operations.h" #include "nautilus-file-undo-manager.h" +#include + /* TODO: TESTING!!! */ typedef struct { @@ -192,6 +194,104 @@ #define MERGE_ALL _("Merge _All") #define COPY_FORCE _("Copy _Anyway") +#define ZEITGEIST_NAUTILUS_ACTOR "application://nautilus.desktop" + +static void +send_event_to_zeitgeist (ZeitgeistEvent *event) +{ + ZeitgeistLog *log = zeitgeist_log_get_default (); + zeitgeist_log_insert_events_no_reply (log, event, NULL); +} + +typedef struct { + const char *event_interpretation; + //char *event_origin; + GFile *file; + gchar *original_uri; // for MOVE_EVENT +} _ZeitgeistFileEventData; + +static void +_log_zeitgeist_event_for_file_cb (GObject *source_object, + GAsyncResult *res, gpointer user_data) +{ + _ZeitgeistFileEventData *data; + GError *error; + GFileInfo *info; + gchar *uri; + gchar *origin; + const gchar *display_name; + const gchar *mimetype; + + data = user_data; + + error = NULL; + info = g_file_query_info_finish (G_FILE (source_object), res, &error); + + if (info) { + uri = g_file_get_uri (data->file); + origin = g_path_get_dirname (uri); + display_name = g_file_info_get_display_name (info); + mimetype = g_file_info_get_content_type (info); + } else { + g_warning ("Error getting info: %s\n", error->message); + g_error_free (error); + g_object_unref (data->file); + g_free (data->original_uri); + g_free (data); + return; // skip this event + } + + ZeitgeistSubject *subject = zeitgeist_subject_new_full ( + (data->original_uri) ? (data->original_uri) : uri, + NULL, // subject interpretation - auto-guess + NULL, // suject manifestation - auto-guess + mimetype, + origin, + display_name, + NULL // storage - auto-guess + ); + + if (data->original_uri) + zeitgeist_subject_set_current_uri (subject, uri); + + g_free (uri); + g_free (origin); + g_object_unref (info); + + if (subject) { + ZeitgeistEvent *event = zeitgeist_event_new_full ( + data->event_interpretation, + ZEITGEIST_ZG_USER_ACTIVITY, + ZEITGEIST_NAUTILUS_ACTOR, + subject, NULL); + send_event_to_zeitgeist (event); + } + + g_object_unref (data->file); + g_free (data->original_uri); + g_free (data); +} + +static void +log_zeitgeist_event_for_file_no_reply (const char *event_interpretation, + GFile *file, gchar *original_uri) +{ + _ZeitgeistFileEventData *data; + data = g_new0 (_ZeitgeistFileEventData, 1); + + data->event_interpretation = event_interpretation; + data->original_uri = original_uri; + data->file = file; + + g_file_query_info_async (file, + G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME "," + G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, + G_FILE_QUERY_INFO_NONE, + G_PRIORITY_DEFAULT, + NULL, + _log_zeitgeist_event_for_file_cb, data); +} + static void mark_desktop_file_trusted (CommonJob *common, GCancellable *cancellable, @@ -1867,6 +1967,35 @@ job = user_data; + // Send event to Zeitgeist for deletions/trash + GList *file_iter = job->files; + while (file_iter != NULL) { + gchar *uri = g_file_get_uri (file_iter->data); + gchar *origin = g_path_get_dirname (uri); + gchar *parse_name = g_file_get_parse_name (file_iter->data); + gchar *display_name = g_path_get_basename (parse_name); + ZeitgeistEvent *event = zeitgeist_event_new_full ( + ZEITGEIST_ZG_DELETE_EVENT, + ZEITGEIST_ZG_USER_ACTIVITY, + ZEITGEIST_NAUTILUS_ACTOR, + zeitgeist_subject_new_full ( + uri, + NULL, // subject interpretation - auto-guess + NULL, // suject manifestation - auto-guess + NULL, // mime-type + origin, + display_name, + NULL // storage - auto-guess + ), NULL); + send_event_to_zeitgeist (event); + g_free (uri); + g_free (origin); + g_free (parse_name); + g_free (display_name); + file_iter = g_list_next (file_iter); + } + // --- + g_list_free_full (job->files, g_object_unref); if (job->done_callback) { @@ -4541,6 +4670,23 @@ job->done_callback_data); } + // Send event to Zeitgeist + GHashTableIter iter; + GFile *file; + gpointer done; + g_hash_table_iter_init (&iter, job->debuting_files); + while (g_hash_table_iter_next (&iter, (gpointer *) &file, &done)) { + if (GPOINTER_TO_INT (done)) { + // operation was completed successfully for this file + g_object_ref (file); + // FIXME: Set event origin to the original file URI, if we + // can somehow figure out which one it is. + log_zeitgeist_event_for_file_no_reply ( + ZEITGEIST_ZG_CREATE_EVENT, file, NULL); + } + } + // --- + g_list_free_full (job->files, g_object_unref); if (job->destination) { g_object_unref (job->destination); @@ -5107,6 +5253,19 @@ job->done_callback_data); } + // Send event to Zeitgeist for moved files (not renaming) + GList *file_iter = job->files; + while (file_iter != NULL) { + char *basename = g_file_get_basename (file_iter->data); + GFile *new_file = g_file_get_child (job->destination, basename); + g_free (basename); + + log_zeitgeist_event_for_file_no_reply (ZEITGEIST_ZG_MOVE_EVENT, + new_file, g_file_get_uri (file_iter->data)); + file_iter = g_list_next (file_iter); + } + // --- + g_list_free_full (job->files, g_object_unref); g_object_unref (job->destination); g_hash_table_unref (job->debuting_files); @@ -5450,6 +5609,23 @@ job->done_callback_data); } + // Send event to Zeitgeist + GHashTableIter iter; + GFile *file; + gpointer done; + g_hash_table_iter_init (&iter, job->debuting_files); + while (g_hash_table_iter_next (&iter, (gpointer *) &file, &done)) { + if (GPOINTER_TO_INT (done)) { + // operation was completed successfully for this file + g_object_ref (file); + // FIXME: Set event origin to the original file URI, if we + // can somehow figure out which one it is. + log_zeitgeist_event_for_file_no_reply ( + ZEITGEIST_ZG_CREATE_EVENT, file, NULL); + } + } + // --- + g_list_free_full (job->files, g_object_unref); g_object_unref (job->destination); g_hash_table_unref (job->debuting_files); @@ -5922,6 +6098,14 @@ job->done_callback_data); } + // Send event to Zeitgeist + if (job->created_file) { + g_object_ref (job->created_file); + log_zeitgeist_event_for_file_no_reply ( + ZEITGEIST_ZG_CREATE_EVENT, job->created_file, NULL); + } + // --- + g_object_unref (job->dest_dir); if (job->src) { g_object_unref (job->src); Index: nautilus-3.8.1/libnautilus-private/nautilus-file.c =================================================================== --- nautilus-3.8.1.orig/libnautilus-private/nautilus-file.c 2013-06-04 22:27:52.532397563 -0400 +++ nautilus-3.8.1/libnautilus-private/nautilus-file.c 2013-06-04 22:27:52.524397563 -0400 @@ -91,6 +91,9 @@ #define DEBUG_REF_PRINTF printf #endif +#include +#define ZEITGEIST_NAUTILUS_ACTOR "application://nautilus.desktop" + /* Files that start with these characters sort after files that don't. */ #define SORT_LAST_CHAR1 '.' #define SORT_LAST_CHAR2 '#' @@ -1735,10 +1738,34 @@ old_name = g_strdup (eel_ref_str_peek (op->file->details->name)); update_info_and_name (op->file, new_info); - + g_free (old_name); new_uri = nautilus_file_get_uri (op->file); + + // Send event to Zeitgeist + ZeitgeistLog *log = zeitgeist_log_get_default (); + gchar *origin = g_path_get_dirname (new_uri); + ZeitgeistSubject *subject = zeitgeist_subject_new_full ( + old_uri, + NULL, // subject interpretation - auto-guess + NULL, // subject manifestation - auto-guess + g_file_info_get_content_type (new_info), // const char* + origin, + new_name, + NULL // storage - auto-guess + ); + zeitgeist_subject_set_current_uri (subject, new_uri); + g_free (origin); + // FIXME: zeitgeist_subject_set_current_uri (); + ZeitgeistEvent *event = zeitgeist_event_new_full ( + ZEITGEIST_ZG_MOVE_EVENT, + ZEITGEIST_ZG_USER_ACTIVITY, + ZEITGEIST_NAUTILUS_ACTOR, + subject, NULL); + zeitgeist_log_insert_events_no_reply (log, event, NULL); + // --- + nautilus_directory_moved (old_uri, new_uri); g_free (new_uri); g_free (old_uri); Index: nautilus-3.8.1/test/Makefile.am =================================================================== --- nautilus-3.8.1.orig/test/Makefile.am 2013-06-04 22:27:52.532397563 -0400 +++ nautilus-3.8.1/test/Makefile.am 2013-06-04 22:27:52.524397563 -0400 @@ -6,6 +6,7 @@ $(COMMON_CFLAGS) \ $(NAUTILUS_CFLAGS) \ $(WARNING_CFLAGS) \ + `pkg-config --cflags zeitgeist-1.0` \ -DVERSION="\"$(VERSION)\"" \ -DNAUTILUS_DATADIR=\""$(datadir)/nautilus"\" \ -DGNOMELOCALEDIR=\""$(prefix)/${DATADIRNAME}/locale"\" \ @@ -22,6 +23,7 @@ test-nautilus-search-engine \ test-nautilus-directory-async \ test-nautilus-copy \ + test-nautilus-zeitgeist \ test-eel-editable-label \ $(NULL) @@ -31,6 +33,10 @@ test_nautilus_directory_async_SOURCES = test-nautilus-directory-async.c +test_nautilus_zeitgeist_SOURCES = test-nautilus-zeitgeist.c + +test_nautilus_zeitgeist_LDCONFIG = `pkg-config --libs zeitgeist-1.0` + EXTRA_DIST = \ test.h \ $(NULL) Index: nautilus-3.8.1/test/run-zeitgeist-test.sh =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.8.1/test/run-zeitgeist-test.sh 2013-06-04 22:27:52.524397563 -0400 @@ -0,0 +1,50 @@ +#! /bin/sh -e + +#echo "Building..." +#gcc test-nautilus-zeitgeist.c -o test-nautilus-zeitgeist \ +# ../libnautilus-private/nautilus-file-operations.c \ +# `pkg-config --cflags --libs glib-2.0 gtk+-3.0 zeitgeist-1.0` -I.. \ +[ "`basename $(pwd)`" = "test" ] || echo "Please cd into test/" +[ "`basename $(pwd)`" = "test" ] || exit +make + +echo "Configuring environment..." + +TMP_PATH="/tmp/nautilus-zg-test" + +rm -rf "${TMP_PATH}" +mkdir -p "${TMP_PATH}/cache" + +# Launching Zeitgeist +export ZEITGEIST_DATA_PATH="${TMP_PATH}" +export ZEITGEIST_DATABASE_PATH=":memory:" +export ZEITGEIST_DISABLED_EXTENSIONS="SearchEngine" +export XDG_CACHE_HOME="${TMP_PATH}/cache" +zeitgeist-daemon --replace --no-datahub >/dev/null 2>&1 & + +echo "Creating files to be used by the tests..." + +# test_copy_move +mkdir "${TMP_PATH}/move_dest" +touch "${TMP_PATH}/moveme.txt" + +# test_copy and test_new_file_from_template +echo "#! /usr/bin/env python\nprint 'hi!'" > "${TMP_PATH}/a.py" + +# test_delete +touch "${TMP_PATH}/del1.txt" "${TMP_PATH}/del2.txt" + +echo "Testing..." +export G_MESSAGES_DEBUG=all +#dbus-test-runner \ +# --task zeitgeist-daemon \ +# --parameter --no-datahub \ +# --parameter --log-level=DEBUG \ +# --task gtester \ +# --parameter --verbose \ +# --parameter ./test-nautilus-zeitgeist +./test-nautilus-zeitgeist + +echo "Cleaning up..." +zeitgeist-daemon --quit +rm -r "${TMP_PATH}" Index: nautilus-3.8.1/test/test-nautilus-zeitgeist.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.8.1/test/test-nautilus-zeitgeist.c 2013-06-04 22:27:52.524397563 -0400 @@ -0,0 +1,343 @@ +/* + * Copyright © 2012 Canonical Ltd. + * By Siegfried-A. Gevatter + * + * License: GPLv2+ + * + * The tests in this file require that certain directories and files exist + * in order to operate on them. Please use ./run-zeitgeist-test.sh to launch + * this test, since it'll create them for you (in a temporary directory). + * + * */ + +#include +#include +#include +#include + +#include + +// After doing a file operation and before checking Zeitgeist for +// events, we needed to give Nautilus some time to insert the events +// (because of g_file_query_info, etc). +#define SLEEP_TIME 400 + +// Test location +#define TEST_PATH "/tmp/nautilus-zg-test" +#define TEST_URI "file://" TEST_PATH + +typedef struct +{ + ZeitgeistLog *log; + GMainLoop *mainloop; + ZeitgeistTimeRange *query_time_range; + GPtrArray *expected_events; + guint num_expected_events; +} Fixture; + +static void +setup_test (Fixture *fix, gconstpointer data) +{ + fix->log = zeitgeist_log_new (); + fix->mainloop = g_main_loop_new (NULL, FALSE); + fix->query_time_range = zeitgeist_time_range_new_from_now (); + fix->expected_events = g_ptr_array_new_with_free_func ( + (GDestroyNotify) g_object_unref); + fix->num_expected_events = 0; +} + +static void teardown (Fixture *fix, gconstpointer data) +{ + g_object_unref (fix->log); + g_object_unref (fix->query_time_range); + g_ptr_array_free (fix->expected_events, TRUE); + g_main_loop_unref (fix->mainloop); + + fix->log = NULL; + fix->mainloop = NULL; + fix->query_time_range = NULL; + fix->expected_events = NULL; +} + +static void +test_add_event_assertion (Fixture *fix, + const char *event_interpretation, const char *uri, const char *current_uri, + const char *origin, const char *text, const char *mimetype) +{ + // Create subject template + ZeitgeistSubject *subject_template = zeitgeist_subject_new_full ( + uri, NULL, NULL, mimetype, origin, text, NULL); + zeitgeist_subject_set_current_uri (subject_template, current_uri); + + // Create event template + ZeitgeistEvent *event_template = zeitgeist_event_new_full ( + event_interpretation, ZEITGEIST_ZG_USER_ACTIVITY, NULL, + subject_template, NULL); + + // Add event template to the fixture for later verification + g_ptr_array_add (fix->expected_events, (gpointer) event_template); + fix->num_expected_events++; +} + +static void +assert_event_matches_template (ZeitgeistEvent *event, ZeitgeistEvent *tmpl) +{ + int i; + int num_subjects = zeitgeist_event_num_subjects (tmpl); + + g_assert_cmpstr (zeitgeist_event_get_interpretation (event), ==, + zeitgeist_event_get_interpretation (tmpl)); + g_assert_cmpstr (zeitgeist_event_get_manifestation (event), ==, + zeitgeist_event_get_manifestation (tmpl)); + g_assert_cmpint (zeitgeist_event_num_subjects (event), ==, num_subjects); + + for (i = 0; i < num_subjects; ++i) + { + ZeitgeistSubject *subject = zeitgeist_event_get_subject (event, i); + ZeitgeistSubject *subj_templ = zeitgeist_event_get_subject (tmpl, i); + + g_assert_cmpstr (zeitgeist_subject_get_uri (subject), ==, + zeitgeist_subject_get_uri (subj_templ)); + g_assert_cmpstr (zeitgeist_subject_get_current_uri (subject), ==, + zeitgeist_subject_get_current_uri (subj_templ)); + g_assert_cmpstr (zeitgeist_subject_get_origin (subject), ==, + zeitgeist_subject_get_origin (subj_templ)); + g_assert_cmpstr (zeitgeist_subject_get_text (subject), ==, + zeitgeist_subject_get_text (subj_templ)); + g_assert_cmpstr (zeitgeist_subject_get_mimetype (subject), ==, + zeitgeist_subject_get_mimetype (subj_templ)); + } +} + +static void +assert_results_as_expected (Fixture *fix, ZeitgeistResultSet *results) +{ + int i; + + g_assert_cmpint (zeitgeist_result_set_size (results), ==, + fix->num_expected_events); + + for (i = 0; i < fix->num_expected_events; ++i) + { + ZeitgeistEvent *event = zeitgeist_result_set_next (results); + ZeitgeistEvent *tmpl = g_ptr_array_index (fix->expected_events, i); + assert_event_matches_template (event, tmpl); + } +} + +static void +_zeitgeist_test_cb2 (ZeitgeistLog *log, GAsyncResult *res, Fixture *fix) +{ + GError *error = NULL; + ZeitgeistResultSet *results = zeitgeist_log_find_events_finish ( + log, res, &error); + if (error) + { + g_warning ("Error with FindEventIds: %s", error->message); + g_error_free (error); + g_assert_not_reached (); + } + + assert_results_as_expected (fix, results); + g_object_unref (results); + + g_main_loop_quit (fix->mainloop); +} + +static gboolean +_zeitgeist_test_cb1 (Fixture *fix) +{ + zeitgeist_log_find_events (fix->log, + fix->query_time_range, + g_ptr_array_new (), + ZEITGEIST_STORAGE_STATE_ANY, + 50, + ZEITGEIST_RESULT_TYPE_MOST_RECENT_EVENTS, + NULL, + (GAsyncReadyCallback) _zeitgeist_test_cb2, + fix); + + return FALSE; +} + +static void +zeitgeist_test_start (GHashTable *debuting_uris, Fixture *fix) +{ + g_timeout_add (SLEEP_TIME, (GSourceFunc) _zeitgeist_test_cb1, (gpointer) fix); +} + +static void +zeitgeist_test_start_3 (GHashTable *debuting_uris, gboolean user_cancel, + gpointer callback_data) +{ + zeitgeist_test_start (debuting_uris, callback_data); +} + +static void +test_copy_move (Fixture *fix, gconstpointer data) +{ + test_add_event_assertion (fix, ZEITGEIST_ZG_MOVE_EVENT, + TEST_URI "/moveme.txt", + TEST_URI "/move_dest/moveme.txt", + TEST_URI "/move_dest", + "moveme.txt", + "text/plain"); + + GList *item_uris = NULL; + item_uris = g_list_prepend (item_uris, + TEST_URI "/moveme.txt"); + + nautilus_file_operations_copy_move ( + item_uris, + NULL, + TEST_URI "/move_dest", + GDK_ACTION_MOVE, + NULL, + (NautilusCopyCallback) zeitgeist_test_start, + fix); + + g_main_loop_run (fix->mainloop); +} + +static void +test_copy (Fixture *fix, gconstpointer data) +{ + test_add_event_assertion (fix, ZEITGEIST_ZG_CREATE_EVENT, + TEST_URI "/b.py", + TEST_URI "/b.py", + TEST_URI, + "b.py", + "text/x-python"); + + nautilus_file_operations_copy_file ( + g_file_new_for_path (TEST_PATH "/a.py"), + g_file_new_for_path (TEST_PATH), + "a.py", "b.py", + NULL, + (NautilusCopyCallback) zeitgeist_test_start, + fix); + + g_main_loop_run (fix->mainloop); +} + +static void +test_new_folder (Fixture *fix, gconstpointer data) +{ + test_add_event_assertion (fix, ZEITGEIST_ZG_CREATE_EVENT, + TEST_URI "/Untitled%20Folder", + TEST_URI "/Untitled%20Folder", + TEST_URI, + "Untitled Folder", + "inode/directory"); + + nautilus_file_operations_new_folder ( + NULL, NULL, + TEST_URI, + (NautilusCopyCallback) zeitgeist_test_start, + fix); + + g_main_loop_run (fix->mainloop); +} + +static void +test_new_file (Fixture *fix, gconstpointer data) +{ + test_add_event_assertion (fix, ZEITGEIST_ZG_CREATE_EVENT, + TEST_URI "/new_file_test.txt", + TEST_URI "/new_file_test.txt", + TEST_URI, + "new_file_test.txt", + "text/plain"); + + const char content[] = "this is the content of a text file...\n"; + nautilus_file_operations_new_file ( + NULL, NULL, + TEST_URI, + "new_file_test.txt", + content, strlen (content), + (NautilusCopyCallback) zeitgeist_test_start, + fix); + + g_main_loop_run (fix->mainloop); +} + +static void +test_new_file_from_template (Fixture *fix, gconstpointer data) +{ + test_add_event_assertion (fix, ZEITGEIST_ZG_CREATE_EVENT, + TEST_URI "/new_tpl_file_test.py", + TEST_URI "/new_tpl_file_test.py", + TEST_URI, + "new_tpl_file_test.py", + "text/x-python"); + + nautilus_file_operations_new_file_from_template ( + NULL, NULL, + TEST_URI, + "new_tpl_file_test.py", + TEST_URI "/a.py", + (NautilusCopyCallback) zeitgeist_test_start, + fix); + + g_main_loop_run (fix->mainloop); +} + +static void +test_delete (Fixture *fix, gconstpointer data) +{ + test_add_event_assertion (fix, ZEITGEIST_ZG_DELETE_EVENT, + TEST_URI "/del1.txt", + TEST_URI "/del1.txt", + TEST_URI, + "del1.txt", + NULL); + test_add_event_assertion (fix, ZEITGEIST_ZG_DELETE_EVENT, + TEST_URI "/del2.txt", + TEST_URI "/del2.txt", + TEST_URI, + "del2.txt", + NULL); + + GList *file_list = NULL; + file_list = g_list_prepend (file_list, + g_file_new_for_path (TEST_PATH "/del1.txt")); + file_list = g_list_prepend (file_list, + g_file_new_for_path (TEST_PATH "/del2.txt")); + + // Nautilus_file_operations_trash_or_delete is exactly the same + // NOTE: This operation will ask for manual confirmation of the delete. + // There isn't really any nice way around this :(. + nautilus_file_operations_delete ( + file_list, + NULL, + (NautilusDeleteCallback) zeitgeist_test_start_3, + fix); + + g_main_loop_run (fix->mainloop); +} + +int +main (int argc, char* argv[]) +{ + g_type_init (); + + g_test_init (&argc, &argv, NULL); + gtk_init (&argc, &argv); + + g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL); + + g_test_add ("/Zeitgeist/CopyMove", Fixture, 0, + setup_test, test_copy_move, teardown); + g_test_add ("/Zeitgeist/Copy", Fixture, 0, + setup_test, test_copy, teardown); + g_test_add ("/Zeitgeist/NewFolder", Fixture, 0, + setup_test, test_new_folder, teardown); + g_test_add ("/Zeitgeist/NewFile", Fixture, 0, + setup_test, test_new_file, teardown); + g_test_add ("/Zeitgeist/NewFileFromTemplate", Fixture, 0, + setup_test, test_new_file_from_template, teardown); + g_test_add ("/Zeitgeist/Delete", Fixture, 0, + setup_test, test_delete, teardown); + + return g_test_run (); +} debian/patches/git_title_update.patch0000664000000000000000000000164312307626250015175 0ustar From 2ce7cd67ef76079cf3634a5d5548be29f7eb2e64 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 17 Feb 2014 22:10:02 +0000 Subject: slot: don't forget to update title for non-active slots Otherwise we'll leave the old title behind on e.g. window tabs. https://bugzilla.gnome.org/show_bug.cgi?id=722105 --- diff --git a/src/nautilus-window-slot.c b/src/nautilus-window-slot.c index 922ee7e..1d38503 100644 --- a/src/nautilus-window-slot.c +++ b/src/nautilus-window-slot.c @@ -988,9 +988,9 @@ nautilus_window_slot_set_location (NautilusWindowSlot *slot, if (slot == nautilus_window_get_active_slot (slot->details->window)) { nautilus_window_sync_location_widgets (slot->details->window); - nautilus_window_slot_update_title (slot); } + nautilus_window_slot_update_title (slot); nautilus_window_slot_emit_location_change (slot, old_location, location); if (old_location) { -- cgit v0.9.2 debian/patches/04_suppress_umount_in_ltsp.patch0000664000000000000000000000164212307626250017174 0ustar Description: Don't list volumes option on LTSP configs Bug: https://launchpad.net/bugs/220564 Index: nautilus-3.8.2/libnautilus-private/nautilus-file.c =================================================================== --- nautilus-3.8.2.orig/libnautilus-private/nautilus-file.c 2014-01-15 14:31:31.473606184 +1300 +++ nautilus-3.8.2/libnautilus-private/nautilus-file.c 2014-01-15 14:31:31.465606184 +1300 @@ -1018,6 +1018,10 @@ { g_return_val_if_fail (NAUTILUS_IS_FILE (file), FALSE); + if (getenv("LTSP_CLIENT")) { + return FALSE; + } + return file->details->can_unmount || (file->details->mount != NULL && g_mount_can_unmount (file->details->mount)); @@ -1028,6 +1032,10 @@ { g_return_val_if_fail (NAUTILUS_IS_FILE (file), FALSE); + if (getenv("LTSP_CLIENT")) { + return FALSE; + } + return file->details->can_eject || (file->details->mount != NULL && g_mount_can_eject (file->details->mount)); debian/patches/12_unity_launcher_support.patch0000664000000000000000000007215012307626250016777 0ustar === modified file 'configure.ac' Index: nautilus-3.8.1/configure.ac =================================================================== --- nautilus-3.8.1.orig/configure.ac 2013-06-04 22:54:22.616331061 -0400 +++ nautilus-3.8.1/configure.ac 2013-06-04 22:54:22.608331062 -0400 @@ -11,6 +11,8 @@ m4_define(exempi_minver, 2.1.0) m4_define(notify_minver, 0.7.0) m4_define(schemas_minver, 3.8.0) +m4_define(unity_minver, 4.0.0) +m4_define(dbusmenu_minver, 0.4.90) dnl 1. If the library code has changed at all since last release, then increment revision. dnl 2. If any interfaces have been added, then increment current and set revision to 0. @@ -193,6 +195,29 @@ dnl ========================================================================== +AM_CONDITIONAL(HAVE_UNITY, false) + +AC_ARG_ENABLE(unity, + AC_HELP_STRING([--disable-unity], + [build without unity launcher support])) + +msg_unity=no +if test "x$enable_unity" != "xno"; then + PKG_CHECK_MODULES(UNITY, + [unity >= unity_minver + dbusmenu-glib-0.4 >= dbusmenu_minver], [ + AM_CONDITIONAL(HAVE_UNITY, 1) + AC_DEFINE(HAVE_UNITY, 1, [Have Unity]) + ] + msg_unity=yes, + [AM_CONDITIONAL(HAVE_UNITY, 0) + ]) + AC_SUBST(UNITY_CFLAGS) + AC_SUBST(UNITY_LIBS) +fi + +dnl ========================================================================== + dnl Turn on the additional warnings last, so -Werror doesn't affect other tests. WARNING_CFLAGS="" @@ -333,6 +358,7 @@ libexif support: ${enable_exif} libexempi support: ${enable_xmp} PackageKit support: $msg_packagekit + Unity support: $msg_unity nautilus-sendto ext: $enable_nst_extension Tracker support: $enable_tracker Index: nautilus-3.8.1/libnautilus-private/nautilus-progress-info.c =================================================================== --- nautilus-3.8.1.orig/libnautilus-private/nautilus-progress-info.c 2013-06-04 22:54:22.616331061 -0400 +++ nautilus-3.8.1/libnautilus-private/nautilus-progress-info.c 2013-06-04 22:54:22.608331062 -0400 @@ -52,6 +52,8 @@ char *status; char *details; double progress; + double current; + double total; gboolean activity_mode; gboolean started; gboolean finished; @@ -233,6 +235,42 @@ return res; } +double +nautilus_progress_info_get_current (NautilusProgressInfo *info) +{ + double current; + + G_LOCK (progress_info); + + if (info->activity_mode) { + current = 0.0; + } else { + current = info->current; + } + + G_UNLOCK (progress_info); + + return current; +} + +double +nautilus_progress_info_get_total (NautilusProgressInfo *info) +{ + double total; + + G_LOCK (progress_info); + + if (info->activity_mode) { + total = -1.0; + } else { + total = info->total; + } + + G_UNLOCK (progress_info); + + return total; +} + void nautilus_progress_info_cancel (NautilusProgressInfo *info) { @@ -566,6 +604,8 @@ ) { info->activity_mode = FALSE; info->progress = current_percent; + info->current = current; + info->total = total; info->progress_at_idle = TRUE; queue_idle (info, FALSE); } Index: nautilus-3.8.1/libnautilus-private/nautilus-progress-info.h =================================================================== --- nautilus-3.8.1.orig/libnautilus-private/nautilus-progress-info.h 2013-06-04 22:54:22.616331061 -0400 +++ nautilus-3.8.1/libnautilus-private/nautilus-progress-info.h 2013-06-04 22:54:22.608331062 -0400 @@ -62,6 +62,8 @@ gboolean nautilus_progress_info_get_is_started (NautilusProgressInfo *info); gboolean nautilus_progress_info_get_is_finished (NautilusProgressInfo *info); gboolean nautilus_progress_info_get_is_paused (NautilusProgressInfo *info); +double nautilus_progress_info_get_current (NautilusProgressInfo *info); +double nautilus_progress_info_get_total (NautilusProgressInfo *info); void nautilus_progress_info_start (NautilusProgressInfo *info); void nautilus_progress_info_finish (NautilusProgressInfo *info); Index: nautilus-3.8.1/src/Makefile.am =================================================================== --- nautilus-3.8.1.orig/src/Makefile.am 2013-06-04 22:54:22.616331061 -0400 +++ nautilus-3.8.1/src/Makefile.am 2013-06-04 22:54:22.608331062 -0400 @@ -29,6 +29,7 @@ -DSYSCONFDIR=\""$(sysconfdir)"\" \ -DVERSION="\"$(VERSION)\"" \ $(DISABLE_DEPRECATED) \ + $(UNITY_CFLAGS) \ $(NULL) LDADD =\ @@ -40,6 +41,7 @@ $(EXIF_LIBS) \ $(EXEMPI_LIBS) \ $(POPT_LIBS) \ + $(UNITY_LIBS) \ $(NULL) dbus_freedesktop_built_sources = \ @@ -207,6 +209,10 @@ nautilus-window.h \ nautilus-x-content-bar.c \ nautilus-x-content-bar.h \ + unity-quicklist-handler.c \ + unity-quicklist-handler.h \ + unity-bookmarks-handler.c \ + unity-bookmarks-handler.h \ $(NULL) nodist_nautilus_SOURCES = \ Index: nautilus-3.8.1/src/nautilus-progress-ui-handler.c =================================================================== --- nautilus-3.8.1.orig/src/nautilus-progress-ui-handler.c 2013-06-04 22:54:22.616331061 -0400 +++ nautilus-3.8.1/src/nautilus-progress-ui-handler.c 2013-06-04 22:54:22.608331062 -0400 @@ -38,6 +38,11 @@ #include +#ifdef HAVE_UNITY +#include +#include "unity-quicklist-handler.h" +#endif + struct _NautilusProgressUIHandlerPriv { NautilusProgressInfoManager *manager; @@ -47,6 +52,9 @@ NotifyNotification *progress_notification; GtkStatusIcon *status_icon; +#ifdef HAVE_UNITY + UnityQuicklistHandler *unity_quicklist_handler; +#endif }; G_DEFINE_TYPE (NautilusProgressUIHandler, nautilus_progress_ui_handler, G_TYPE_OBJECT); @@ -183,6 +191,221 @@ gtk_status_icon_set_visible (self->priv->status_icon, TRUE); } +#ifdef HAVE_UNITY + +static void +progress_ui_handler_unity_progress_changed (NautilusProgressInfo *info, + NautilusProgressUIHandler *self) +{ + g_return_if_fail (self); + g_return_if_fail (self->priv->unity_quicklist_handler); + g_return_if_fail (self->priv->manager); + + GList *infos, *l; + double progress = 0; + double c, current = 0; + double t, total = 0; + + infos = nautilus_progress_info_manager_get_all_infos (self->priv->manager); + + for (l = infos; l; l = l->next) { + NautilusProgressInfo *i = l->data; + c = nautilus_progress_info_get_current (i); + t = nautilus_progress_info_get_total (i); + + if (c < 0) c = 0; + if (t <= 0) continue; + + total += t; + current += c; + } + + if (current >= 0 && total > 0) + progress = current / total; + + if (progress > 1.0) + progress = 1.0; + + for (l = unity_quicklist_get_launcher_entries (self->priv->unity_quicklist_handler); l; l = l->next) { + UnityLauncherEntry *entry = l->data; + unity_launcher_entry_set_progress (entry, progress); + } +} + +static gboolean +progress_ui_handler_disable_unity_urgency (UnityLauncherEntry *entry) +{ + g_return_if_fail (entry); + + unity_launcher_entry_set_urgent (entry, FALSE); + return FALSE; +} + +static void +progress_ui_handler_unity_quicklist_show_activated (DbusmenuMenuitem *menu, + guint timestamp, + NautilusProgressUIHandler *self) +{ + g_return_if_fail (self); + + gtk_window_present_with_time (GTK_WINDOW (self->priv->progress_window), timestamp); +} + +static void +progress_ui_handler_unity_quicklist_cancel_activated (DbusmenuMenuitem *menu, + guint timestamp, + NautilusProgressUIHandler *self) +{ + g_return_if_fail (self); + g_return_if_fail (self->priv->manager); + + GList *infos, *l; + infos = nautilus_progress_info_manager_get_all_infos (self->priv->manager); + + for (l = infos; l; l = l->next) { + NautilusProgressInfo *info = l->data; + nautilus_progress_info_cancel (info); + } +} + +static DbusmenuMenuitem * +progress_ui_handler_build_unity_quicklist (NautilusProgressUIHandler *self) +{ + g_return_if_fail (self); + GList *l; + + for (l = unity_quicklist_get_launcher_entries (self->priv->unity_quicklist_handler); l; l = l->next) { + UnityLauncherEntry *entry = l->data; + DbusmenuMenuitem *ql = unity_launcher_entry_get_quicklist (entry); + DbusmenuMenuitem *quickmenu; + + if (ql) { + quickmenu = dbusmenu_menuitem_new (); + dbusmenu_menuitem_property_set (quickmenu, + DBUSMENU_MENUITEM_PROP_TYPE, + DBUSMENU_CLIENT_TYPES_SEPARATOR); + dbusmenu_menuitem_property_set_bool (quickmenu, + DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE); + dbusmenu_menuitem_property_set_bool (quickmenu, + UNITY_QUICKLIST_PROGRESS_ITEM, TRUE); + unity_quicklist_handler_append_menuitem (entry, quickmenu); + } + + quickmenu = dbusmenu_menuitem_new (); + dbusmenu_menuitem_property_set (quickmenu, + DBUSMENU_MENUITEM_PROP_LABEL, + UNITY_QUICKLIST_SHOW_COPY_DIALOG); + dbusmenu_menuitem_property_set_bool (quickmenu, + DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE); + dbusmenu_menuitem_property_set_bool (quickmenu, + UNITY_QUICKLIST_PROGRESS_ITEM, TRUE); + unity_quicklist_handler_append_menuitem (entry, quickmenu); + g_signal_connect (quickmenu, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + (GCallback) progress_ui_handler_unity_quicklist_show_activated, + self); + + quickmenu = dbusmenu_menuitem_new (); + dbusmenu_menuitem_property_set (quickmenu, + DBUSMENU_MENUITEM_PROP_LABEL, + UNITY_QUICKLIST_CANCEL_COPY); + dbusmenu_menuitem_property_set_bool (quickmenu, + DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE); + dbusmenu_menuitem_property_set_bool (quickmenu, + UNITY_QUICKLIST_PROGRESS_ITEM, TRUE); + unity_quicklist_handler_append_menuitem (entry, quickmenu); + g_signal_connect (quickmenu, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + (GCallback) progress_ui_handler_unity_quicklist_cancel_activated, + self); + } +} + +static void +progress_ui_handler_show_unity_quicklist (NautilusProgressUIHandler *self, + UnityLauncherEntry *entry, + gboolean show) +{ + g_return_if_fail (self); + g_return_if_fail (entry); + + DbusmenuMenuitem *ql; + GList *children, *l; + + ql = unity_launcher_entry_get_quicklist (entry); + children = dbusmenu_menuitem_get_children (ql); + + for (l = children; l; l = l->next) { + DbusmenuMenuitem *child = l->data; + if (unity_quicklist_handler_menuitem_is_progress_item (child)) + dbusmenu_menuitem_property_set_bool(child, + DBUSMENU_MENUITEM_PROP_VISIBLE, show); + } +} + +static void +progress_ui_handler_update_unity_launcher_entry (NautilusProgressUIHandler *self, + NautilusProgressInfo *info, + UnityLauncherEntry *entry) +{ + g_return_if_fail (self); + g_return_if_fail (entry); + + if (self->priv->active_infos > 0) { + unity_launcher_entry_set_progress_visible (entry, TRUE); + progress_ui_handler_show_unity_quicklist (self, entry, TRUE); + progress_ui_handler_unity_progress_changed (NULL, self); + + if (self->priv->active_infos > 1) { + unity_launcher_entry_set_count (entry, self->priv->active_infos); + unity_launcher_entry_set_count_visible (entry, TRUE); + } else { + unity_launcher_entry_set_count_visible (entry, FALSE); + } + } else { + unity_launcher_entry_set_progress_visible (entry, FALSE); + unity_launcher_entry_set_progress (entry, 0.0); + unity_launcher_entry_set_count_visible (entry, FALSE); + progress_ui_handler_show_unity_quicklist (self, entry, FALSE); + GCancellable *pc = nautilus_progress_info_get_cancellable (info); + + if (!g_cancellable_is_cancelled (pc)) { + unity_launcher_entry_set_urgent (entry, TRUE); + + g_timeout_add_seconds (2, (GSourceFunc) + progress_ui_handler_disable_unity_urgency, + entry); + } + } +} + +static void +progress_ui_handler_update_unity_launcher (NautilusProgressUIHandler *self, + NautilusProgressInfo *info, + gboolean added) +{ + g_return_if_fail (self); + GList *l; + + if (!self->priv->unity_quicklist_handler) { + self->priv->unity_quicklist_handler = unity_quicklist_handler_get_singleton (); + if (!self->priv->unity_quicklist_handler) + return; + + progress_ui_handler_build_unity_quicklist (self); + } + + for (l = unity_quicklist_get_launcher_entries (self->priv->unity_quicklist_handler); l; l = l->next) { + UnityLauncherEntry *entry = l->data; + progress_ui_handler_update_unity_launcher_entry (self, info, entry); + } + + if (added) { + g_signal_connect (info, "progress-changed", + (GCallback) progress_ui_handler_unity_progress_changed, + self); + } +} +#endif + static gboolean progress_window_delete_event (GtkWidget *widget, GdkEvent *event, @@ -317,6 +540,10 @@ progress_ui_handler_show_complete_notification (self); } } + +#ifdef HAVE_UNITY + progress_ui_handler_update_unity_launcher (self, info, FALSE); +#endif } static void @@ -339,6 +566,10 @@ progress_ui_handler_update_notification_or_status (self); } } + +#ifdef HAVE_UNITY + progress_ui_handler_update_unity_launcher (self, info, TRUE); +#endif } typedef struct { Index: nautilus-3.8.1/src/unity-quicklist-handler.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.8.1/src/unity-quicklist-handler.c 2013-06-04 22:54:22.608331062 -0400 @@ -0,0 +1,153 @@ +/*unity-quicklist-handler.c: handle Unity quicklists + * + * Copyright (C) 2012 Canonical + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Didier Roche + * + */ + +#include + +#include "unity-quicklist-handler.h" + +struct _UnityQuicklistHandlerPriv { + GList *launcher_entries; +}; + +G_DEFINE_TYPE (UnityQuicklistHandler, unity_quicklist_handler, G_TYPE_OBJECT); + +static UnityQuicklistHandler *unity_quicklist_handler_singleton = NULL; + +GList * +unity_quicklist_get_launcher_entries (UnityQuicklistHandler *self) +{ + return self->priv->launcher_entries; +} + +gboolean +unity_quicklist_handler_menuitem_is_progress_item (DbusmenuMenuitem *ql) +{ + g_return_val_if_fail(ql, FALSE); + return dbusmenu_menuitem_property_get_bool (ql, UNITY_QUICKLIST_PROGRESS_ITEM); +} + +gboolean +unity_quicklist_handler_menuitem_is_bookmark_item (DbusmenuMenuitem *ql) +{ + g_return_val_if_fail(ql, FALSE); + return (!unity_quicklist_handler_menuitem_is_progress_item(ql)); +} + +void +unity_quicklist_handler_append_menuitem (UnityLauncherEntry *entry, DbusmenuMenuitem *elem) +{ + g_return_if_fail (entry); + + GList *children, *l; + int position = 0; + DbusmenuMenuitem *ql = unity_launcher_entry_get_quicklist (entry); + + gboolean is_bookmark = unity_quicklist_handler_menuitem_is_bookmark_item (elem); + gboolean is_progress = unity_quicklist_handler_menuitem_is_progress_item (elem); + + if (!ql) { + ql = dbusmenu_menuitem_new (); + unity_launcher_entry_set_quicklist (entry, ql); + } + + children = dbusmenu_menuitem_get_children (ql); + for (l = children; l; l = l->next) { + DbusmenuMenuitem *child = l->data; + /* set quicklist groups together, and bookmarks group after progress group. + bookmarks elements are ordered alphabetically */ + if ((is_bookmark && unity_quicklist_handler_menuitem_is_bookmark_item (child) && + (g_strcmp0 (dbusmenu_menuitem_property_get (child, DBUSMENU_MENUITEM_PROP_LABEL), dbusmenu_menuitem_property_get (elem, DBUSMENU_MENUITEM_PROP_LABEL)) < 0)) || + (is_progress && unity_quicklist_handler_menuitem_is_progress_item (child)) || + (is_progress && unity_quicklist_handler_menuitem_is_bookmark_item (child))) + position++; + else + break; + } + + dbusmenu_menuitem_child_add_position (ql, elem, position); +} + +static void +unity_quicklist_handler_dispose (GObject *obj) +{ + UnityQuicklistHandler *self = UNITY_QUICKLIST_HANDLER (obj); + + if (self->priv->launcher_entries) { + g_list_free_full (self->priv->launcher_entries, g_object_unref); + self->priv->launcher_entries = NULL; + } + + G_OBJECT_CLASS (unity_quicklist_handler_parent_class)->dispose (obj); +} + +static void +unity_quicklist_handler_launcher_entry_add (UnityQuicklistHandler *self, + const gchar *entry_id) +{ + GList **entries; + UnityLauncherEntry *entry; + + entries = &(self->priv->launcher_entries); + entry = unity_launcher_entry_get_for_desktop_id (entry_id); + + if (entry) { + *entries = g_list_prepend (*entries, entry); + } +} + +static void +unity_quicklist_handler_init (UnityQuicklistHandler *self) +{ + self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, UNITY_TYPE_QUICKLIST_HANDLER, + UnityQuicklistHandlerPriv); + + unity_quicklist_handler_launcher_entry_add (self, "nautilus.desktop"); + unity_quicklist_handler_launcher_entry_add (self, "nautilus-home.desktop"); + g_return_if_fail (g_list_length (self->priv->launcher_entries) != 0); +} + +static void +unity_quicklist_handler_class_init (UnityQuicklistHandlerClass *klass) +{ + GObjectClass *oclass; + + oclass = G_OBJECT_CLASS (klass); + oclass->dispose = unity_quicklist_handler_dispose; + + g_type_class_add_private (klass, sizeof (UnityQuicklistHandlerPriv)); +} + +UnityQuicklistHandler * +unity_quicklist_handler_get_singleton (void) +{ + if (!unity_quicklist_handler_singleton) + unity_quicklist_handler_singleton = unity_quicklist_handler_new (); + return unity_quicklist_handler_singleton; +} + +UnityQuicklistHandler * +unity_quicklist_handler_new (void) +{ + return g_object_new (UNITY_TYPE_QUICKLIST_HANDLER, NULL); +} + Index: nautilus-3.8.1/src/unity-quicklist-handler.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.8.1/src/unity-quicklist-handler.h 2013-06-04 22:54:22.612331061 -0400 @@ -0,0 +1,75 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* + * unity-quicklist.h: handle unity quicklists. + * + * Copyright (C) 2012 Canonical + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Didier Roche + * + */ + +#ifndef __UNITY_QUICKLIST_HANDLER_H__ +#define __UNITY_QUICKLIST_HANDLER_H__ + +#include +#include + +#include +#include + +#define UNITY_TYPE_QUICKLIST_HANDLER unity_quicklist_handler_get_type() +#define UNITY_QUICKLIST_HANDLER(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), UNITY_TYPE_QUICKLIST_HANDLER, UnityQuicklistHandler)) +#define UNITY_QUICKLIST_HANDLER_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), UNITY_TYPE_QUICKLIST_HANDLER, UnityQuicklistHandlerClass)) +#define UNITY_IS_QUICKLIST_HANDLER(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), UNITY_TYPE_QUICKLIST_HANDLER)) +#define UNITY_IS_QUICKLIST_HANDLER_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), UNITY_TYPE_QUICKLIST_HANDLER)) +#define UNITY_QUICKLIST_HANDLER_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), UNITY_TYPE_QUICKLIST_HANDLER, UnityQuicklistHandlerClass)) + +typedef struct _UnityQuicklistHandlerPriv UnityQuicklistHandlerPriv; + +#define UNITY_QUICKLIST_PROGRESS_ITEM "unity-quicklist-progress-item" + +typedef struct { + GObject parent; + + /* private */ + UnityQuicklistHandlerPriv *priv; +} UnityQuicklistHandler; + +typedef struct { + GObjectClass parent_class; +} UnityQuicklistHandlerClass; + +GType unity_quicklist_handler_get_type (void); + +UnityQuicklistHandler * unity_quicklist_handler_new (void); +UnityQuicklistHandler * unity_quicklist_handler_get_singleton (void); + +GList * unity_quicklist_get_launcher_entries (UnityQuicklistHandler *unity_quicklist_handler); +gboolean unity_quicklist_handler_menuitem_is_progress_item (DbusmenuMenuitem *ql); +gboolean unity_quicklist_handler_menuitem_is_bookmark_item (DbusmenuMenuitem *ql); +void unity_quicklist_handler_append_menuitem (UnityLauncherEntry *entry, DbusmenuMenuitem *elem); + +#define UNITY_QUICKLIST_SHOW_COPY_DIALOG _("Show Copy Dialog") +#define UNITY_QUICKLIST_CANCEL_COPY _("Cancel All In-progress Actions") + +#endif /* __UNITY_QUICKLIST_HANDLER_H__ */ Index: nautilus-3.8.1/src/nautilus-application.c =================================================================== --- nautilus-3.8.1.orig/src/nautilus-application.c 2013-06-04 22:54:22.616331061 -0400 +++ nautilus-3.8.1/src/nautilus-application.c 2013-06-04 22:54:22.612331061 -0400 @@ -79,6 +79,10 @@ #include #include +#ifdef HAVE_UNITY +#include "src/unity-bookmarks-handler.h" +#endif + /* Keep window from shrinking down ridiculously small; numbers are somewhat arbitrary */ #define APPLICATION_WINDOW_MIN_WIDTH 300 #define APPLICATION_WINDOW_MIN_HEIGHT 100 @@ -1646,6 +1650,10 @@ init_desktop (self); nautilus_profile_end (NULL); + +#ifdef HAVE_UNITY + unity_bookmarks_handler_initialize (); +#endif } static void Index: nautilus-3.8.1/src/unity-bookmarks-handler.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.8.1/src/unity-bookmarks-handler.c 2013-06-04 22:54:36.572330478 -0400 @@ -0,0 +1,140 @@ +/*unity-bookmarks-handler.c: handle Unity bookmark for quicklist + * + * Copyright (C) 2012 Canonical + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Didier Roche + * + */ + +#include + +#include "unity-bookmarks-handler.h" + +#include +#include "unity-quicklist-handler.h" + +#include "nautilus-application.h" +#include "nautilus-window-private.h" + +#include + +static UnityQuicklistHandler* unity_quicklist_handler = NULL; +static NautilusBookmarkList* bookmarks = NULL; + +static void +activate_bookmark_by_quicklist (DbusmenuMenuitem *menu, + guint timestamp, + NautilusBookmark *bookmark) +{ + g_return_if_fail (NAUTILUS_IS_BOOKMARK (bookmark)); + + GFile *locations[2]; + GList *windows, *l; + NautilusApplication *application; + + locations[0] = nautilus_bookmark_get_location (bookmark); + locations[1] = NULL; + + application = NAUTILUS_APPLICATION (g_application_get_default ()); + + /* Make sure that the application timestamp matches the event */ + for (l = gtk_application_get_windows (GTK_APPLICATION (application)); l; l = l->next) { + GdkWindow *gdk_window = gtk_widget_get_window (GTK_WIDGET (l->data)); + gdk_x11_window_set_user_time (gdk_window, timestamp); + } + + g_application_open (G_APPLICATION (application), locations, 1, ""); + + g_object_unref (locations[0]); +} + +static void +unity_bookmarks_handler_remove_bookmark_quicklists () { + + GList *children, *l; + + /* remove unity quicklist bookmarks to launcher entries */ + for (l = unity_quicklist_get_launcher_entries (unity_quicklist_handler); l; l = l->next) { + UnityLauncherEntry *entry = l->data; + DbusmenuMenuitem *ql = unity_launcher_entry_get_quicklist (entry); + if (!ql) + break; + + children = dbusmenu_menuitem_get_children (ql); + while (children) { + DbusmenuMenuitem *child = children->data; + children = children->next; + if (unity_quicklist_handler_menuitem_is_bookmark_item (child)) { + g_signal_handlers_disconnect_matched (child, G_SIGNAL_MATCH_FUNC, 0, 0, 0, (GCallback) activate_bookmark_by_quicklist, 0); + dbusmenu_menuitem_child_delete (ql, child); + g_object_unref(child); + } + } + } +} + +static void +unity_bookmarks_handler_update_bookmarks () { + + NautilusBookmark *bookmark; + guint bookmark_count; + guint index; + GList *l; + + /* append new set of bookmarks */ + bookmark_count = nautilus_bookmark_list_length (bookmarks); + for (index = 0; index < bookmark_count; ++index) { + + bookmark = nautilus_bookmark_list_item_at (bookmarks, index); + + for (l = unity_quicklist_get_launcher_entries (unity_quicklist_handler); l; l = l->next) { + UnityLauncherEntry *entry = l->data; + + DbusmenuMenuitem* menuitem = dbusmenu_menuitem_new(); + gchar *bookmark_name_dbusmenu = eel_str_replace_substring (nautilus_bookmark_get_name (bookmark), "_", "__"); + dbusmenu_menuitem_property_set (menuitem, "label", bookmark_name_dbusmenu); + g_free (bookmark_name_dbusmenu); + g_signal_connect (menuitem, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED, + (GCallback) activate_bookmark_by_quicklist, + bookmark); + + unity_quicklist_handler_append_menuitem (entry, menuitem); + } + } +} + +static void +unity_bookmarks_handler_refresh_bookmarks () +{ + unity_bookmarks_handler_remove_bookmark_quicklists (); + unity_bookmarks_handler_update_bookmarks (); +} + +void +unity_bookmarks_handler_initialize () +{ + unity_quicklist_handler = unity_quicklist_handler_get_singleton (); + // get the singleton + bookmarks = nautilus_bookmark_list_new (); + unity_bookmarks_handler_refresh_bookmarks (); + + /* Recreate dynamic part of menu if bookmark list changes */ + g_signal_connect (bookmarks, "changed", + G_CALLBACK (unity_bookmarks_handler_refresh_bookmarks), 0); +} + Index: nautilus-3.8.1/src/unity-bookmarks-handler.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.8.1/src/unity-bookmarks-handler.h 2013-06-04 22:54:22.612331061 -0400 @@ -0,0 +1,31 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ +/* + * unity-bookmarks-handler.h: handle Unity bookmark for quicklist + * + * Copyright (C) 2012 Canonical + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Didier Roche + * + */ + +#ifndef __UNITY_BOOKMARKS_HANDLER_H__ +#define __UNITY_BOOKMARKS_HANDLER_H__ + +void unity_bookmarks_handler_initialize (void); + +#endif /* __UNITY_BOOKMARKS_HANDLER_H__*/ Index: nautilus-3.8.1/po/POTFILES.in =================================================================== --- nautilus-3.8.1.orig/po/POTFILES.in 2013-06-04 22:54:22.616331061 -0400 +++ nautilus-3.8.1/po/POTFILES.in 2013-06-04 22:54:22.612331061 -0400 @@ -90,3 +90,4 @@ src/nautilus-window-private.h src/nautilus-window-slot.c src/nautilus-x-content-bar.c +src/unity-quicklist-handler.h debian/patches/ubuntu_revert_no_wallpaper.patch0000664000000000000000000006310612307626250017325 0ustar Index: nautilus-3.8.2/libnautilus-private/Makefile.am =================================================================== --- nautilus-3.8.2.orig/libnautilus-private/Makefile.am 2014-01-15 14:32:04.681605034 +1300 +++ nautilus-3.8.2/libnautilus-private/Makefile.am 2014-01-15 14:32:04.677605034 +1300 @@ -78,6 +78,8 @@ nautilus-debug.h \ nautilus-default-file-icon.c \ nautilus-default-file-icon.h \ + nautilus-desktop-background.c \ + nautilus-desktop-background.h \ nautilus-desktop-directory-file.c \ nautilus-desktop-directory-file.h \ nautilus-desktop-directory.c \ Index: nautilus-3.8.2/libnautilus-private/nautilus-desktop-background.c =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.8.2/libnautilus-private/nautilus-desktop-background.c 2014-01-15 14:32:04.677605034 +1300 @@ -0,0 +1,599 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ + +/* + * nautilus-desktop-background.c: Helper object to handle desktop background + * changes. + * + * Copyright (C) 2000 Eazel, Inc. + * Copyright (C) 2010 Cosimo Cecchi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Darin Adler + * Cosimo Cecchi + */ + +#include + +#include "nautilus-desktop-background.h" + +#include +#include + +#include "nautilus-global-preferences.h" + +#define GNOME_DESKTOP_USE_UNSTABLE_API +#include +#include + +#include +#include + +static void init_fade (NautilusDesktopBackground *self); +static void free_fade (NautilusDesktopBackground *self); +static void queue_background_change (NautilusDesktopBackground *self); + +static NautilusDesktopBackground *singleton = NULL; + +G_DEFINE_TYPE (NautilusDesktopBackground, nautilus_desktop_background, G_TYPE_OBJECT); + +enum { + PROP_WIDGET = 1, + NUM_PROPERTIES, +}; + +struct NautilusDesktopBackgroundDetails { + + GtkWidget *widget; + GnomeBG *bg; + + /* Realized data: */ + cairo_surface_t *background_surface; + GnomeBGCrossfade *fade; + int background_entire_width; + int background_entire_height; + GdkColor default_color; + + /* Desktop screen size watcher */ + gulong screen_size_handler; + /* Desktop monitors configuration watcher */ + gulong screen_monitors_handler; + guint change_idle_id; +}; + + +static gboolean +background_settings_change_event_cb (GSettings *settings, + gpointer keys, + gint n_keys, + gpointer user_data); + + +static void +free_fade (NautilusDesktopBackground *self) +{ + if (self->details->fade != NULL) { + g_object_unref (self->details->fade); + self->details->fade = NULL; + } +} + +static void +free_background_surface (NautilusDesktopBackground *self) +{ + cairo_surface_t *surface; + + surface = self->details->background_surface; + if (surface != NULL) { + cairo_surface_destroy (surface); + self->details->background_surface = NULL; + } +} + +static void +nautilus_desktop_background_finalize (GObject *object) +{ + NautilusDesktopBackground *self; + + self = NAUTILUS_DESKTOP_BACKGROUND (object); + + g_signal_handlers_disconnect_by_func (gnome_background_preferences, + background_settings_change_event_cb, + self); + + free_background_surface (self); + free_fade (self); + + g_clear_object (&self->details->bg); + + G_OBJECT_CLASS (nautilus_desktop_background_parent_class)->finalize (object); +} + +static void +nautilus_desktop_background_unrealize (NautilusDesktopBackground *self) +{ + free_background_surface (self); + + self->details->background_entire_width = 0; + self->details->background_entire_height = 0; + self->details->default_color.red = 0xffff; + self->details->default_color.green = 0xffff; + self->details->default_color.blue = 0xffff; +} + +static void +nautilus_desktop_background_set_image_uri (NautilusDesktopBackground *self, + const char *image_uri) +{ + char *filename; + + if (image_uri != NULL) { + filename = g_filename_from_uri (image_uri, NULL, NULL); + } + else { + filename = NULL; + } + + gnome_bg_set_filename (self->details->bg, filename); + + g_free (filename); +} + +static void +init_fade (NautilusDesktopBackground *self) +{ + GtkWidget *widget; + gboolean do_fade; + + widget = self->details->widget; + + if (widget == NULL || !gtk_widget_get_realized (widget)) + return; + + do_fade = g_settings_get_boolean (nautilus_desktop_preferences, + NAUTILUS_PREFERENCES_DESKTOP_BACKGROUND_FADE); + + if (!do_fade) { + return; + } + + if (self->details->fade == NULL) { + GdkWindow *window; + GdkScreen *screen; + int old_width, old_height, width, height; + + /* If this was the result of a screen size change, + * we don't want to crossfade + */ + window = gtk_widget_get_window (widget); + old_width = gdk_window_get_width (window); + old_height = gdk_window_get_height (window); + + screen = gtk_widget_get_screen (widget); + width = gdk_screen_get_width (screen); + height = gdk_screen_get_height (screen); + + if (old_width == width && old_height == height) { + self->details->fade = gnome_bg_crossfade_new (width, height); + g_signal_connect_swapped (self->details->fade, + "finished", + G_CALLBACK (free_fade), + self); + } + } + + if (self->details->fade != NULL && !gnome_bg_crossfade_is_started (self->details->fade)) { + cairo_surface_t *start_surface; + + if (self->details->background_surface == NULL) { + start_surface = gnome_bg_get_surface_from_root (gtk_widget_get_screen (widget)); + } else { + start_surface = cairo_surface_reference (self->details->background_surface); + } + gnome_bg_crossfade_set_start_surface (self->details->fade, + start_surface); + cairo_surface_destroy (start_surface); + } +} + +static void +screen_size_changed (GdkScreen *screen, + NautilusDesktopBackground *self) +{ + queue_background_change (self); +} + +static gboolean +nautilus_desktop_background_ensure_realized (NautilusDesktopBackground *self) +{ + int entire_width; + int entire_height; + GdkScreen *screen; + GdkWindow *window; + + screen = gtk_widget_get_screen (self->details->widget); + entire_height = gdk_screen_get_height (screen); + entire_width = gdk_screen_get_width (screen); + + /* If the window size is the same as last time, don't update */ + if (entire_width == self->details->background_entire_width && + entire_height == self->details->background_entire_height) { + return FALSE; + } + + free_background_surface (self); + + window = gtk_widget_get_window (self->details->widget); + self->details->background_surface = gnome_bg_create_surface (self->details->bg, + window, + entire_width, entire_height, + TRUE); + + /* We got the surface and everything, so we don't care about a change + that is pending (unless things actually change after this time) */ + g_object_set_data (G_OBJECT (self), + "ignore-pending-change", GINT_TO_POINTER (TRUE)); + + self->details->background_entire_width = entire_width; + self->details->background_entire_height = entire_height; + + return TRUE; +} + +static void +on_fade_finished (GnomeBGCrossfade *fade, + GdkWindow *window, + gpointer user_data) +{ + NautilusDesktopBackground *self = user_data; + + nautilus_desktop_background_ensure_realized (self); + if (self->details->background_surface != NULL) + gnome_bg_set_surface_as_root (gdk_window_get_screen (window), + self->details->background_surface); +} + +static gboolean +fade_to_surface (NautilusDesktopBackground *self, + GdkWindow *window, + cairo_surface_t *surface) +{ + if (self->details->fade == NULL) { + return FALSE; + } + + if (!gnome_bg_crossfade_set_end_surface (self->details->fade, + surface)) { + return FALSE; + } + + if (!gnome_bg_crossfade_is_started (self->details->fade)) { + gnome_bg_crossfade_start (self->details->fade, window); + g_signal_connect (self->details->fade, + "finished", + G_CALLBACK (on_fade_finished), self); + } + + return gnome_bg_crossfade_is_started (self->details->fade); +} + +static void +nautilus_desktop_background_set_up_widget (NautilusDesktopBackground *self) +{ + GdkWindow *window; + gboolean in_fade = FALSE; + GtkWidget *widget; + + widget = self->details->widget; + + if (!gtk_widget_get_realized (widget)) { + return; + } + + nautilus_desktop_background_ensure_realized (self); + if (self->details->background_surface == NULL) + return; + + window = gtk_layout_get_bin_window (GTK_LAYOUT (widget)); + + in_fade = fade_to_surface (self, window, + self->details->background_surface); + + if (!in_fade) { + cairo_pattern_t *pattern; + + pattern = cairo_pattern_create_for_surface (self->details->background_surface); + gdk_window_set_background_pattern (window, pattern); + cairo_pattern_destroy (pattern); + + gnome_bg_set_surface_as_root (gtk_widget_get_screen (widget), + self->details->background_surface); + } +} + +static gboolean +background_changed_cb (NautilusDesktopBackground *self) +{ + self->details->change_idle_id = 0; + + nautilus_desktop_background_unrealize (self); + nautilus_desktop_background_set_up_widget (self); + + gtk_widget_queue_draw (self->details->widget); + + return FALSE; +} + +static void +queue_background_change (NautilusDesktopBackground *self) +{ + if (self->details->change_idle_id != 0) { + g_source_remove (self->details->change_idle_id); + } + + self->details->change_idle_id = + g_idle_add ((GSourceFunc) background_changed_cb, self); +} + +static void +nautilus_desktop_background_changed (GnomeBG *bg, + gpointer user_data) +{ + NautilusDesktopBackground *self; + + self = user_data; + init_fade (self); + queue_background_change (self); +} + +static void +nautilus_desktop_background_transitioned (GnomeBG *bg, + gpointer user_data) +{ + NautilusDesktopBackground *self; + + self = user_data; + free_fade (self); + queue_background_change (self); +} + +static void +widget_realize_cb (GtkWidget *widget, + gpointer user_data) +{ + GdkScreen *screen; + NautilusDesktopBackground *self = user_data; + + screen = gtk_widget_get_screen (widget); + + if (self->details->screen_size_handler > 0) { + g_signal_handler_disconnect (screen, + self->details->screen_size_handler); + } + self->details->screen_size_handler = + g_signal_connect (screen, "size-changed", + G_CALLBACK (screen_size_changed), self); + + if (self->details->screen_monitors_handler > 0) { + g_signal_handler_disconnect (screen, + self->details->screen_monitors_handler); + } + self->details->screen_monitors_handler = + g_signal_connect (screen, "monitors-changed", + G_CALLBACK (screen_size_changed), self); + + init_fade (self); + nautilus_desktop_background_set_up_widget (self); +} + +static void +widget_unrealize_cb (GtkWidget *widget, + gpointer user_data) +{ + NautilusDesktopBackground *self = user_data; + + if (self->details->screen_size_handler > 0) { + g_signal_handler_disconnect (gtk_widget_get_screen (GTK_WIDGET (widget)), + self->details->screen_size_handler); + self->details->screen_size_handler = 0; + } + if (self->details->screen_monitors_handler > 0) { + g_signal_handler_disconnect (gtk_widget_get_screen (GTK_WIDGET (widget)), + self->details->screen_monitors_handler); + self->details->screen_monitors_handler = 0; + } +} + +static void +on_widget_destroyed (GtkWidget *widget, + gpointer user_data) +{ + NautilusDesktopBackground *self = user_data; + + if (self->details->change_idle_id != 0) { + g_source_remove (self->details->change_idle_id); + self->details->change_idle_id = 0; + } + + free_fade (self); + self->details->widget = NULL; +} + +static gboolean +background_change_event_idle_cb (NautilusDesktopBackground *self) +{ + gnome_bg_load_from_preferences (self->details->bg, + gnome_background_preferences); + + g_object_unref (self); + + return FALSE; +} + +static gboolean +background_settings_change_event_cb (GSettings *settings, + gpointer keys, + gint n_keys, + gpointer user_data) +{ + NautilusDesktopBackground *self = user_data; + + /* Need to defer signal processing otherwise + * we would make the dconf backend deadlock. + */ + g_idle_add ((GSourceFunc) background_change_event_idle_cb, + g_object_ref (self)); + + return FALSE; +} + +static void +nautilus_desktop_background_constructed (GObject *obj) +{ + NautilusDesktopBackground *self; + GtkWidget *widget; + + self = NAUTILUS_DESKTOP_BACKGROUND (obj); + + if (G_OBJECT_CLASS (nautilus_desktop_background_parent_class)->constructed != NULL) { + G_OBJECT_CLASS (nautilus_desktop_background_parent_class)->constructed (obj); + } + + widget = self->details->widget; + + g_assert (widget != NULL); + + g_signal_connect_object (widget, "destroy", + G_CALLBACK (on_widget_destroyed), self, 0); + g_signal_connect_object (widget, "realize", + G_CALLBACK (widget_realize_cb), self, 0); + g_signal_connect_object (widget, "unrealize", + G_CALLBACK (widget_unrealize_cb), self, 0); + + gnome_bg_load_from_preferences (self->details->bg, + gnome_background_preferences); + + /* Let's receive batch change events instead of every single one */ + g_signal_connect (gnome_background_preferences, + "change-event", + G_CALLBACK (background_settings_change_event_cb), + self); + + queue_background_change (self); +} + +static void +nautilus_desktop_background_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + NautilusDesktopBackground *self; + + self = NAUTILUS_DESKTOP_BACKGROUND (object); + + switch (property_id) { + case PROP_WIDGET: + self->details->widget = g_value_get_object (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static GObject * +nautilus_desktop_background_constructor (GType type, + guint n_construct_params, + GObjectConstructParam *construct_params) +{ + GObject *retval; + + if (singleton != NULL) { + return g_object_ref (singleton); + } + + retval = G_OBJECT_CLASS (nautilus_desktop_background_parent_class)->constructor + (type, n_construct_params, construct_params); + + singleton = NAUTILUS_DESKTOP_BACKGROUND (retval); + g_object_add_weak_pointer (retval, (gpointer) &singleton); + + return retval; +} + +static void +nautilus_desktop_background_class_init (NautilusDesktopBackgroundClass *klass) +{ + GObjectClass *object_class; + GParamSpec *pspec; + + object_class = G_OBJECT_CLASS (klass); + object_class->finalize = nautilus_desktop_background_finalize; + object_class->set_property = nautilus_desktop_background_set_property; + object_class->constructor = nautilus_desktop_background_constructor; + object_class->constructed = nautilus_desktop_background_constructed; + + pspec = g_param_spec_object ("widget", "The widget for this background", + "The widget that gets its background set", + NAUTILUS_TYPE_CANVAS_CONTAINER, + G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS); + g_object_class_install_property (object_class, PROP_WIDGET, pspec); + + g_type_class_add_private (klass, sizeof (NautilusDesktopBackgroundDetails)); +} + +static void +nautilus_desktop_background_init (NautilusDesktopBackground *self) +{ + self->details = + G_TYPE_INSTANCE_GET_PRIVATE (self, + NAUTILUS_TYPE_DESKTOP_BACKGROUND, + NautilusDesktopBackgroundDetails); + + self->details->bg = gnome_bg_new (); + self->details->default_color.red = 0xffff; + self->details->default_color.green = 0xffff; + self->details->default_color.blue = 0xffff; + + g_signal_connect (self->details->bg, "changed", + G_CALLBACK (nautilus_desktop_background_changed), self); + g_signal_connect (self->details->bg, "transitioned", + G_CALLBACK (nautilus_desktop_background_transitioned), self); +} + +void +nautilus_desktop_background_receive_dropped_background_image (NautilusDesktopBackground *self, + const char *image_uri) +{ + /* Currently, we only support tiled images. So we set the placement. + */ + gnome_bg_set_placement (self->details->bg, + G_DESKTOP_BACKGROUND_STYLE_WALLPAPER); + gnome_bg_set_draw_background (self->details->bg, TRUE); + nautilus_desktop_background_set_image_uri (self, image_uri); + + gnome_bg_save_to_preferences (self->details->bg, + gnome_background_preferences); +} + +NautilusDesktopBackground * +nautilus_desktop_background_new (NautilusCanvasContainer *container) +{ + return g_object_new (NAUTILUS_TYPE_DESKTOP_BACKGROUND, + "widget", container, + NULL); +} Index: nautilus-3.8.2/libnautilus-private/nautilus-desktop-background.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ nautilus-3.8.2/libnautilus-private/nautilus-desktop-background.h 2014-01-15 14:32:04.677605034 +1300 @@ -0,0 +1,68 @@ +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ + +/* + * nautilus-desktop-background.c: Helper object to handle desktop background + * changes. + * + * Copyright (C) 2000 Eazel, Inc. + * Copyright (C) 2010 Cosimo Cecchi + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Darin Adler + * Cosimo Cecchi + */ + +#ifndef __NAUTILIUS_DESKTOP_BACKGROUND_H__ +#define __NAUTILIUS_DESKTOP_BACKGROUND_H__ + +#include + +#include "nautilus-canvas-container.h" + +typedef struct NautilusDesktopBackground NautilusDesktopBackground; +typedef struct NautilusDesktopBackgroundClass NautilusDesktopBackgroundClass; + +#define NAUTILUS_TYPE_DESKTOP_BACKGROUND nautilus_desktop_background_get_type() +#define NAUTILUS_DESKTOP_BACKGROUND(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_DESKTOP_BACKGROUND, NautilusDesktopBackground)) +#define NAUTILUS_DESKTOP_BACKGROUND_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_DESKTOP_BACKGROUND, NautilusDesktopBackgroundClass)) +#define NAUTILUS_IS_DESKTOP_BACKGROUND(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_DESKTOP_BACKGROUND)) +#define NAUTILUS_IS_DESKTOP_BACKGROUND_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_DESKTOP_BACKGROUND)) +#define NAUTILUS_DESKTOP_BACKGROUND_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_DESKTOP_BACKGROUND, NautilusDesktopBackgroundClass)) + +GType nautilus_desktop_background_get_type (void); +NautilusDesktopBackground * nautilus_desktop_background_new (NautilusCanvasContainer *container); + +void nautilus_desktop_background_receive_dropped_background_image (NautilusDesktopBackground *self, + const gchar *image_uri); + +typedef struct NautilusDesktopBackgroundDetails NautilusDesktopBackgroundDetails; + +struct NautilusDesktopBackground { + GObject parent; + NautilusDesktopBackgroundDetails *details; +}; + +struct NautilusDesktopBackgroundClass { + GObjectClass parent_class; +}; + +#endif /* __NAUTILIUS_DESKTOP_BACKGROUND_H__ */ Index: nautilus-3.8.2/src/nautilus-desktop-canvas-view.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-desktop-canvas-view.c 2014-01-15 14:32:04.681605034 +1300 +++ nautilus-3.8.2/src/nautilus-desktop-canvas-view.c 2014-01-15 14:32:04.677605034 +1300 @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -75,6 +76,8 @@ gulong delayed_init_signal; guint reload_desktop_timeout; gboolean pending_rescan; + + NautilusDesktopBackground *background; }; static void default_zoom_level_changed (gpointer user_data); @@ -231,6 +234,22 @@ return GDK_FILTER_CONTINUE; } +static void +real_begin_loading (NautilusView *object) +{ + NautilusCanvasContainer *canvas_container; + NautilusDesktopCanvasView *view; + + view = NAUTILUS_DESKTOP_CANVAS_VIEW (object); + + canvas_container = get_canvas_container (view); + if (view->details->background == NULL) { + view->details->background = nautilus_desktop_background_new (canvas_container); + } + + NAUTILUS_VIEW_CLASS (nautilus_desktop_canvas_view_parent_class)->begin_loading (object); +} + static const char * real_get_id (NautilusView *view) { @@ -268,6 +287,11 @@ nautilus_view_update_menus, canvas_view); + if (canvas_view->details->background != NULL) { + g_object_unref (canvas_view->details->background); + canvas_view->details->background = NULL; + } + G_OBJECT_CLASS (nautilus_desktop_canvas_view_parent_class)->dispose (object); } @@ -280,6 +304,7 @@ G_OBJECT_CLASS (class)->dispose = nautilus_desktop_canvas_view_dispose; + vclass->begin_loading = real_begin_loading; vclass->merge_menus = real_merge_menus; vclass->update_menus = real_update_menus; vclass->get_view_id = real_get_id; @@ -322,17 +347,6 @@ desktop_canvas_view); } -static void -desktop_canvas_container_realize (GtkWidget *widget, - NautilusDesktopCanvasView *desktop_canvas_view) -{ - GdkWindow *bin_window; - GdkRGBA transparent = { 0, 0, 0, 0 }; - - bin_window = gtk_layout_get_bin_window (GTK_LAYOUT (widget)); - gdk_window_set_background_rgba (bin_window, &transparent); -} - static NautilusZoomLevel get_default_zoom_level (void) { @@ -498,9 +512,6 @@ nautilus_view_set_show_foreign (NAUTILUS_VIEW (desktop_canvas_view), FALSE); - g_signal_connect_object (canvas_container, "realize", - G_CALLBACK (desktop_canvas_container_realize), desktop_canvas_view, 0); - g_signal_connect_object (desktop_canvas_view, "realize", G_CALLBACK (realized_callback), desktop_canvas_view, 0); g_signal_connect_object (desktop_canvas_view, "unrealize", Index: nautilus-3.8.2/src/nautilus-desktop-window.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-desktop-window.c 2014-01-15 14:32:04.681605034 +1300 +++ nautilus-3.8.2/src/nautilus-desktop-window.c 2014-01-15 14:32:04.677605034 +1300 @@ -207,7 +207,6 @@ { NautilusDesktopWindow *window; NautilusDesktopWindowDetails *details; - GdkVisual *visual; window = NAUTILUS_DESKTOP_WINDOW (widget); details = window->details; @@ -216,11 +215,6 @@ gtk_widget_set_events (widget, gtk_widget_get_events (widget) | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK); - visual = gdk_screen_get_rgba_visual (gtk_widget_get_screen (widget)); - if (visual) { - gtk_widget_set_visual (widget, visual); - } - /* Do the work of realizing. */ GTK_WIDGET_CLASS (nautilus_desktop_window_parent_class)->realize (widget); debian/patches/git_invalid_symlink_handling.patch0000664000000000000000000000200712307626250017545 0ustar From c2a5e05231ea0743ef89e666c37a0a77534b9573 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 07 Nov 2013 03:53:45 +0000 Subject: NautilusFile: fix crash in modify_link_hash_table We crash in g_hash_table_lookup_extended if the file's symlink_name is set but the file is not a symlink, since the hash function (g_str_hash) does not allow NULL values but target_uri is NULL. https://bugzilla.gnome.org/show_bug.cgi?id=711583 --- Index: nautilus-3.8.2/libnautilus-private/nautilus-file.c =================================================================== --- nautilus-3.8.2.orig/libnautilus-private/nautilus-file.c 2014-01-15 14:32:11.321604804 +1300 +++ nautilus-3.8.2/libnautilus-private/nautilus-file.c 2014-01-15 14:32:11.317604804 +1300 @@ -556,7 +556,7 @@ GList **list_ptr; /* Check if there is a symlink name. If none, we are OK. */ - if (file->details->symlink_name == NULL) { + if (file->details->symlink_name == NULL || !nautilus_file_is_symbolic_link (file)) { return; } debian/patches/11_copy_skipping_pager.patch0000664000000000000000000000173512307626250016206 0ustar Index: nautilus-3.8.2/src/nautilus-progress-ui-handler.c =================================================================== --- nautilus-3.8.2.orig/src/nautilus-progress-ui-handler.c 2014-01-15 14:31:36.965605994 +1300 +++ nautilus-3.8.2/src/nautilus-progress-ui-handler.c 2014-01-15 14:31:36.961605994 +1300 @@ -203,6 +203,7 @@ progress_ui_handler_ensure_window (NautilusProgressUIHandler *self) { GtkWidget *vbox, *progress_window; + const gchar *desktop_environment = g_getenv ("DESKTOP_SESSION"); if (self->priv->progress_window != NULL) { return; @@ -222,6 +223,10 @@ GTK_WIN_POS_CENTER); gtk_window_set_icon_name (GTK_WINDOW (progress_window), "system-file-manager"); + if ((!g_strcmp0(desktop_environment, "ubuntu")) || + (!g_strcmp0(desktop_environment, "ubuntu-2d"))) + gtk_window_set_skip_taskbar_hint (GTK_WINDOW (progress_window), + TRUE); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_box_set_spacing (GTK_BOX (vbox), 5); debian/patches/17_static_unity_quicklist.patch0000664000000000000000000000101712307626250016760 0ustar Index: nautilus-3.8.2/data/nautilus.desktop.in.in =================================================================== --- nautilus-3.8.2.orig/data/nautilus.desktop.in.in 2014-01-15 14:31:44.521605732 +1300 +++ nautilus-3.8.2/data/nautilus.desktop.in.in 2014-01-15 14:31:44.517605732 +1300 @@ -15,3 +15,9 @@ X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Version=@VERSION@ X-GNOME-UsesNotifications=true +Actions=Window; + +[Desktop Action Window] +_Name=Open a New Window +Exec=nautilus --new-window +OnlyShowIn=Unity; debian/patches/ubuntu_backspace_behaviour.patch0000664000000000000000000000644512307626250017236 0ustar From b97f085565bac06d90a8577c3e3b9c2969ab3456 Mon Sep 17 00:00:00 2001 From: Sebastien Noël Date: Tue, 28 Jan 2014 19:08:31 +0000 Subject: Restore backspace for going to parent folder This restores the behaviour from nautilus <= 3.4. --- diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c index e428e70..f63251f 100644 --- a/src/nautilus-list-view.c +++ b/src/nautilus-list-view.c @@ -1903,6 +1903,7 @@ create_and_set_up_tree_view (NautilusListView *view) { GtkCellRenderer *cell; GtkTreeViewColumn *column; + GtkBindingSet *binding_set; AtkObject *atk_obj; GList *nautilus_columns; GList *l; @@ -1915,6 +1916,10 @@ create_and_set_up_tree_view (NautilusListView *view) NULL); gtk_tree_view_set_enable_search (view->details->tree_view, FALSE); + /* Don't handle backspace key. It's used to open the parent folder. */ + binding_set = gtk_binding_set_by_class (GTK_WIDGET_GET_CLASS (view->details->tree_view)); + gtk_binding_entry_remove (binding_set, GDK_KEY_BackSpace, 0); + view->details->drag_dest = nautilus_tree_view_drag_dest_new (view->details->tree_view); diff --git a/src/nautilus-query-editor.c b/src/nautilus-query-editor.c index 92ddac7..989d28b 100644 --- a/src/nautilus-query-editor.c +++ b/src/nautilus-query-editor.c @@ -123,7 +123,7 @@ nautilus_query_editor_handle_event (NautilusQueryEditor *editor, } /* never handle these events */ - if (event->keyval == GDK_KEY_slash || event->keyval == GDK_KEY_Delete) { + if (event->keyval == GDK_KEY_slash || event->keyval == GDK_KEY_Delete || event->keyval == GDK_KEY_BackSpace) { return FALSE; } diff --git a/src/nautilus-shell-ui.xml b/src/nautilus-shell-ui.xml index 53f8022..b6ef7e0 100644 --- a/src/nautilus-shell-ui.xml +++ b/src/nautilus-shell-ui.xml @@ -16,6 +16,7 @@ + diff --git a/src/nautilus-window-menus.c b/src/nautilus-window-menus.c index ae14fc2..b8189ac 100644 --- a/src/nautilus-window-menus.c +++ b/src/nautilus-window-menus.c @@ -448,6 +448,13 @@ action_prompt_for_location_tilde_callback (GtkAction *action, } static void +action_window_go_up_callback (GtkAction *action, + NautilusWindow *window) +{ + nautilus_window_slot_go_up (nautilus_window_get_active_slot (window), 0); +} + +static void action_view_radio_changed (GtkRadioAction *action, GtkRadioAction *current, NautilusWindow *window) @@ -491,6 +498,10 @@ static const GtkActionEntry main_entries[] = { /* label, accelerator */ "ReloadAccel", "F5", /* tooltip */ NULL, G_CALLBACK (action_reload_callback) }, + /* name, stock id */ { "GoUpAccel", NULL, + /* label, accelerator */ "GoUpAccel", "BackSpace", + /* tooltip */ NULL, + G_CALLBACK (action_window_go_up_callback) }, /* name, stock id */ { NAUTILUS_ACTION_HELP, NULL, /* label, accelerator */ N_("_All Topics"), "F1", /* tooltip */ N_("Display Nautilus help"), -- cgit v0.9.0.3 debian/patches/ubuntu_titlebar_css.patch0000664000000000000000000000531012307626250015722 0ustar From: Tim Lunn Date: Fri, 24 Jan 2014 08:24:31 +1100 Subject: [PATCH] Override some css theming for nautilus topbar Description: This patch overrides a few css properties for the nautilus header bar, done from here rather than in the themes since nautilus uses a non-standard header bar implementation. --- src/nautilus-toolbar.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) --- a/src/nautilus-toolbar.c +++ b/src/nautilus-toolbar.c @@ -81,6 +81,43 @@ !show_location_entry); } +static void +toolbar_override_css (GtkWidget *widget, + const gchar *name, + const gchar *css_string) +{ + GtkCssProvider *css; + GtkSettings* settings; + GError *error = NULL; + gchar *theme_name; + + settings = gtk_settings_get_default(); + g_object_get(settings, "gtk-theme-name", &theme_name, NULL); + + if (g_strcmp0(theme_name, "Ambiance") == 0 || g_strcmp0(theme_name, "Radiance") == 0) + { + gtk_widget_set_name (widget, name); + css = gtk_css_provider_new (); + if (gtk_css_provider_load_from_data (css, + css_string, + -1, &error)) + { + GtkStyleContext *context = gtk_widget_get_style_context (widget); + gtk_style_context_add_provider (context, (GtkStyleProvider *) css, + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + } + else + { + g_warning ("Error processing CSS theme override: %s", error->message); + g_clear_error (&error); + } + g_object_unref (css); + } + g_free (theme_name); +} + + + static GtkWidget * toolbar_create_toolbutton (NautilusToolbar *self, gboolean create_menu, @@ -91,6 +128,7 @@ GtkWidget *button, *image; GtkActionGroup *action_group; GtkAction *action; + const gchar *css_string; action_group = nautilus_window_get_main_action_group (self->priv->window); @@ -117,6 +155,9 @@ gtk_widget_set_tooltip_text (button, gtk_action_get_tooltip (action)); } + css_string = "GtkButton#toolbar-button {padding: 9px;}"; + toolbar_override_css (button, "toolbar-button", css_string); + return button; } @@ -399,6 +440,7 @@ GtkWidget *separator; GtkUIManager *ui_manager; gboolean rtl; + const gchar *css_string; G_OBJECT_CLASS (nautilus_toolbar_parent_class)->constructed (obj); @@ -408,6 +450,9 @@ self->priv->toolbar = toolbar = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); gtk_container_add (GTK_CONTAINER (self), toolbar); + css_string = ".header-bar { border-radius: 0; padding: 1px;}"; + toolbar_override_css (GTK_WIDGET (self), "toolbar", css_string); + rtl = gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL; ui_manager = nautilus_window_get_ui_manager (self->priv->window); debian/patches/git_location_icon_rtl.patch0000664000000000000000000000255012307626250016211 0ustar From 79bb5a6726630fc3cda3b6ab4c3b00b02820e3f5 Mon Sep 17 00:00:00 2001 From: Yosef Or Boczko Date: Sun, 16 Feb 2014 08:58:05 +0000 Subject: location-entry: Set the arrow icon according to locale's text direction https://bugzilla.gnome.org/show_bug.cgi?id=719355 --- diff --git a/src/nautilus-location-entry.c b/src/nautilus-location-entry.c index e10ee8b..7aa8a77 100644 --- a/src/nautilus-location-entry.c +++ b/src/nautilus-location-entry.c @@ -655,19 +655,24 @@ void nautilus_location_entry_set_secondary_action (NautilusLocationEntry *entry, NautilusLocationEntryAction secondary_action) { + gboolean rtl; + if (entry->details->secondary_action == secondary_action) { return; } + + rtl = gtk_widget_get_direction (GTK_WIDGET (entry)) == GTK_TEXT_DIR_RTL; + switch (secondary_action) { case NAUTILUS_LOCATION_ENTRY_ACTION_CLEAR: gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, - "edit-clear-symbolic"); + rtl ? "edit-clear-rtl-symbolic" : "edit-clear-symbolic"); break; case NAUTILUS_LOCATION_ENTRY_ACTION_GOTO: gtk_entry_set_icon_from_icon_name (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY, - "go-next-symbolic"); + rtl ? "go-next-rtl-symbolic" : "go-next-symbolic"); break; default: g_assert_not_reached (); -- cgit v0.9.2 debian/patches/03_translations_list_update.patch0000664000000000000000000000076512307626250017273 0ustar Index: nautilus-3.5.91/po/POTFILES.in =================================================================== --- nautilus-3.5.91.orig/po/POTFILES.in 2012-09-08 14:38:20.745220728 -0400 +++ nautilus-3.5.91/po/POTFILES.in 2012-09-08 14:38:22.693220647 -0400 @@ -5,6 +5,8 @@ data/nautilus-connect-server.desktop.in.in data/nautilus.desktop.in.in data/nautilus.xml.in +debian/mount-archive.desktop.in +debian/nautilus-home.desktop.in eel/eel-canvas.c eel/eel-editable-label.c eel/eel-glib-extensions.c debian/patches/restore-traditional-menu-bar.patch0000664000000000000000000005441612307626250017354 0ustar From 8fb2f4ad90992b0df7849202f13f1cd5d9bbcb5b Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Thu, 27 Feb 2014 13:34:43 +0100 Subject: [PATCH] Restore traditional menu bar This is probably only useful for Unity, as it relies on unity-gtk-module exporting the GtkMenu. --- src/nautilus-application.c | 38 +++++++++++----- src/nautilus-canvas-view-ui.xml | 19 ++++++++ src/nautilus-directory-view-ui.xml | 79 ++++++++++++++++++++++++++++++++ src/nautilus-list-view-ui.xml | 7 +++ src/nautilus-shell-ui.xml | 92 ++++++++++++++++++++++++++++++++++++++ src/nautilus-toolbar.c | 64 +++++++++++++++----------- src/nautilus-window-menus.c | 56 ++++++++++++----------- src/nautilus-window-private.h | 3 +- src/nautilus-window.c | 10 +++-- 9 files changed, 299 insertions(+), 69 deletions(-) diff --git a/src/nautilus-application.c b/src/nautilus-application.c index 21b22cf..ab8aace 100644 --- a/src/nautilus-application.c +++ b/src/nautilus-application.c @@ -1010,8 +1010,8 @@ static GActionEntry app_entries[] = { static void nautilus_application_init_actions (NautilusApplication *self) { - GtkBuilder *builder; - GError *error = NULL; + gboolean show_app_menu; + gboolean show_menubar; const gchar *debug_no_app_menu; g_action_map_add_action_entries (G_ACTION_MAP (self), @@ -1019,18 +1019,32 @@ nautilus_application_init_actions (NautilusApplication *self) self); gtk_application_add_accelerator (GTK_APPLICATION (self), "F10", "win.gear-menu", NULL); - builder = gtk_builder_new (); - gtk_builder_add_from_resource (builder, "/org/gnome/nautilus/nautilus-app-menu.ui", &error); + g_object_get (gtk_settings_get_default (), + "gtk-shell-shows-app-menu", &show_app_menu, + "gtk-shell-shows-menubar", &show_menubar, + NULL); - if (error == NULL) { - gtk_application_set_app_menu (GTK_APPLICATION (self), - G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu"))); - } else { - g_critical ("Unable to add the application menu: %s\n", error->message); - g_error_free (error); - } + /* Only add the app menu when the shell doesn't show the menu + * bar, because we merge the app menu into the menu bar. + */ + if (show_app_menu && !show_menubar) { + GtkBuilder *builder; + GError *error = NULL; - g_object_unref (builder); + builder = gtk_builder_new (); + gtk_builder_add_from_resource (builder, "/org/gnome/nautilus/nautilus-app-menu.ui", &error); + + if (error == NULL) { + + gtk_application_set_app_menu (GTK_APPLICATION (self), + G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu"))); + } else { + g_critical ("Unable to add the application menu: %s\n", error->message); + g_error_free (error); + } + + g_object_unref (builder); + } debug_no_app_menu = g_getenv ("NAUTILUS_DEBUG_NO_APP_MENU"); if (debug_no_app_menu) { diff --git a/src/nautilus-canvas-view-ui.xml b/src/nautilus-canvas-view-ui.xml index 4ead416..14f407d 100644 --- a/src/nautilus-canvas-view-ui.xml +++ b/src/nautilus-canvas-view-ui.xml @@ -1,4 +1,23 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/nautilus-directory-view-ui.xml b/src/nautilus-directory-view-ui.xml index 0f06fc6..64a9fc6 100644 --- a/src/nautilus-directory-view-ui.xml +++ b/src/nautilus-directory-view-ui.xml @@ -4,6 +4,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/nautilus-list-view-ui.xml b/src/nautilus-list-view-ui.xml index 20f336d..45d21dc 100644 --- a/src/nautilus-list-view-ui.xml +++ b/src/nautilus-list-view-ui.xml @@ -1,4 +1,11 @@ + + + + + + + diff --git a/src/nautilus-shell-ui.xml b/src/nautilus-shell-ui.xml index 53f8022..280ce9e 100644 --- a/src/nautilus-shell-ui.xml +++ b/src/nautilus-shell-ui.xml @@ -91,4 +91,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/nautilus-toolbar.c b/src/nautilus-toolbar.c index d44ba37..0732879 100644 --- a/src/nautilus-toolbar.c +++ b/src/nautilus-toolbar.c @@ -388,6 +388,18 @@ close_button_clicked (GtkButton *button, gtk_window_close (GTK_WINDOW (self->priv->window)); } +static gboolean +nautilus_toolbar_show_menu_buttons () +{ + gboolean show_menubar; + + g_object_get (gtk_settings_get_default (), + "gtk-shell-shows-menubar", &show_menubar, + NULL); + + return !show_menubar; +} + static void nautilus_toolbar_constructed (GObject *obj) { @@ -471,19 +483,6 @@ nautilus_toolbar_constructed (GObject *obj) /* View buttons */ box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); - - button = toolbar_create_toolbutton (self, FALSE, TRUE, NAUTILUS_ACTION_VIEW_LIST, NULL); - gtk_widget_set_valign (button, GTK_ALIGN_CENTER); - gtk_container_add (GTK_CONTAINER (box), button); - button = toolbar_create_toolbutton (self, FALSE, TRUE, NAUTILUS_ACTION_VIEW_GRID, NULL); - gtk_widget_set_valign (button, GTK_ALIGN_CENTER); - gtk_container_add (GTK_CONTAINER (box), button); - button = toolbar_create_toolbutton (self, TRUE, FALSE, "go-down-symbolic", _("View options")); - gtk_widget_set_valign (button, GTK_ALIGN_CENTER); - gtk_container_add (GTK_CONTAINER (box), button); - menu = gtk_ui_manager_get_widget (ui_manager, "/ViewMenu"); - gtk_menu_button_set_popup (GTK_MENU_BUTTON (button), menu); - gtk_style_context_add_class (gtk_widget_get_style_context (box), GTK_STYLE_CLASS_RAISED); gtk_style_context_add_class (gtk_widget_get_style_context (box), @@ -496,20 +495,35 @@ nautilus_toolbar_constructed (GObject *obj) gtk_widget_set_margin_left (box, 6); } - /* Action Menu */ - button = toolbar_create_toolbutton (self, TRUE, FALSE, "emblem-system-symbolic", _("Location options")); + button = toolbar_create_toolbutton (self, FALSE, TRUE, NAUTILUS_ACTION_VIEW_LIST, NULL); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_container_add (GTK_CONTAINER (box), button); + button = toolbar_create_toolbutton (self, FALSE, TRUE, NAUTILUS_ACTION_VIEW_GRID, NULL); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); - menu = gtk_ui_manager_get_widget (ui_manager, "/ActionMenu"); - gtk_widget_set_halign (menu, GTK_ALIGN_END); - gtk_menu_button_set_popup (GTK_MENU_BUTTON (button), menu); - gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.gear-menu"); - g_signal_connect (menu, "key-press-event", G_CALLBACK (gear_menu_key_press), self); + gtk_container_add (GTK_CONTAINER (box), button); - gtk_container_add (GTK_CONTAINER (toolbar), button); - if (rtl) { - gtk_widget_set_margin_right (button, 6); - } else { - gtk_widget_set_margin_left (button, 6); + if (nautilus_toolbar_show_menu_buttons ()) { + button = toolbar_create_toolbutton (self, TRUE, FALSE, "go-down-symbolic", _("View options")); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + gtk_container_add (GTK_CONTAINER (box), button); + menu = gtk_ui_manager_get_widget (ui_manager, "/ViewMenu"); + gtk_menu_button_set_popup (GTK_MENU_BUTTON (button), menu); + + /* Action Menu */ + button = toolbar_create_toolbutton (self, TRUE, FALSE, "emblem-system-symbolic", _("Location options")); + gtk_widget_set_valign (button, GTK_ALIGN_CENTER); + menu = gtk_ui_manager_get_widget (ui_manager, "/ActionMenu"); + gtk_widget_set_halign (menu, GTK_ALIGN_END); + gtk_menu_button_set_popup (GTK_MENU_BUTTON (button), menu); + gtk_actionable_set_action_name (GTK_ACTIONABLE (button), "win.gear-menu"); + g_signal_connect (menu, "key-press-event", G_CALLBACK (gear_menu_key_press), self); + + gtk_container_add (GTK_CONTAINER (toolbar), button); + if (rtl) { + gtk_widget_set_margin_right (button, 6); + } else { + gtk_widget_set_margin_left (button, 6); + } } /* Separator and Close */ diff --git a/src/nautilus-window-menus.c b/src/nautilus-window-menus.c index ae14fc2..ae27d47 100644 --- a/src/nautilus-window-menus.c +++ b/src/nautilus-window-menus.c @@ -466,6 +466,11 @@ action_view_radio_changed (GtkRadioAction *action, } static const GtkActionEntry main_entries[] = { + /* name, stock id, label */ { "File", NULL, N_("_File") }, + /* name, stock id, label */ { "Edit", NULL, N_("_Edit") }, + /* name, stock id, label */ { "View", NULL, N_("_View") }, + /* name, stock id, label */ { "Go", NULL, N_("Go") }, + /* name, stock id, label */ { "Bookmarks", NULL, N_("Bookmarks") }, /* name, stock id, label */ { "Help", NULL, N_("_Help") }, /* name, stock id */ { NAUTILUS_ACTION_CLOSE, NULL, /* label, accelerator */ N_("_Close"), "W", @@ -621,7 +626,7 @@ static const GtkToggleActionEntry main_toggle_entries[] = { static const GtkRadioActionEntry view_radio_entries[] = { { NAUTILUS_ACTION_VIEW_LIST, "view-list-symbolic", N_("List"), "1", N_("View items as a list"), 0 }, - { NAUTILUS_ACTION_VIEW_GRID, "view-grid-symbolic", N_("List"), + { NAUTILUS_ACTION_VIEW_GRID, "view-grid-symbolic", N_("Icons"), "2", N_("View items as a grid of icons"), 1 } }; @@ -665,24 +670,17 @@ nautilus_window_initialize_actions (NautilusWindow *window) } static void -nautilus_window_menus_set_visibility_for_app_menu (NautilusWindow *window) +nautilus_window_menus_hide_app_actions (NautilusWindow *window) { const gchar *action_name; - gboolean shows_app_menu; - GtkSettings *settings; GtkAction *action; gint idx; - settings = gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (window))); - g_object_get (settings, - "gtk-shell-shows-app-menu", &shows_app_menu, - NULL); - for (idx = 0; idx < G_N_ELEMENTS (app_actions); idx++) { action_name = app_actions[idx]; action = gtk_action_group_get_action (window->details->main_action_group, action_name); - gtk_action_set_visible (action, !shows_app_menu); + gtk_action_set_visible (action, FALSE); } } @@ -691,14 +689,19 @@ nautilus_window_menus_set_visibility_for_app_menu (NautilusWindow *window) * * Create and install the set of menus for this window. * @window: A recently-created NautilusWindow. + * + * Returns: (allow-none): the menubar to be installed on the main + * window, or %NULL */ -void +GtkWidget * nautilus_window_initialize_menus (NautilusWindow *window) { GtkActionGroup *action_group; GtkUIManager *ui_manager; GtkAction *action; gint i; + gboolean show_app_menu; + gboolean show_menubar; window->details->ui_manager = gtk_ui_manager_new (); ui_manager = window->details->ui_manager; @@ -718,12 +721,6 @@ nautilus_window_initialize_menus (NautilusWindow *window) -1, G_CALLBACK (action_view_radio_changed), window); - nautilus_window_menus_set_visibility_for_app_menu (window); - window->details->app_menu_visibility_id = - g_signal_connect_swapped (gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (window))), - "notify::gtk-shell-shows-app-menu", - G_CALLBACK (nautilus_window_menus_set_visibility_for_app_menu), window); - action = gtk_action_group_get_action (action_group, NAUTILUS_ACTION_UP); g_object_set (action, "short_label", _("_Up"), NULL); @@ -762,18 +759,23 @@ nautilus_window_initialize_menus (NautilusWindow *window) g_signal_connect (ui_manager, "connect-proxy", G_CALLBACK (connect_proxy_cb), window); - /* add the UI */ + g_object_get (gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (window))), + "gtk-shell-shows-app-menu", &show_app_menu, + "gtk-shell-shows-menubar", &show_menubar, + NULL); + + if (show_app_menu && !show_menubar) + nautilus_window_menus_hide_app_actions (window); + gtk_ui_manager_add_ui_from_resource (ui_manager, "/org/gnome/nautilus/nautilus-shell-ui.xml", NULL); -} -void -nautilus_window_finalize_menus (NautilusWindow *window) -{ - if (window->details->app_menu_visibility_id != 0) { - g_signal_handler_disconnect (gtk_settings_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (window))), - window->details->app_menu_visibility_id); - window->details->app_menu_visibility_id = 0; - } + /* Only return a menbar if it is exported to the shell. + * Otherwise the view/action menu buttons will be used + */ + if (show_menubar) + return gtk_ui_manager_get_widget (ui_manager, "/menubar"); + else + return NULL; } static GList * diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h index 9cc6891..bfeac84 100644 --- a/src/nautilus-window-private.h +++ b/src/nautilus-window-private.h @@ -110,8 +110,7 @@ void nautilus_window_sync_up_button (NautilusWindow *window); /* window menus */ void nautilus_window_initialize_actions (NautilusWindow *window); -void nautilus_window_initialize_menus (NautilusWindow *window); -void nautilus_window_finalize_menus (NautilusWindow *window); +GtkWidget * nautilus_window_initialize_menus (NautilusWindow *window); void nautilus_window_update_show_hide_menu_items (NautilusWindow *window); diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 67b5899..b51a57b 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -1487,6 +1487,7 @@ nautilus_window_constructed (GObject *self) GtkWidget *grid; NautilusWindowSlot *slot; NautilusApplication *application; + GtkWidget *menubar; window = NAUTILUS_WINDOW (self); @@ -1507,9 +1508,14 @@ nautilus_window_constructed (GObject *self) gtk_widget_show (grid); gtk_container_add (GTK_CONTAINER (window), grid); - nautilus_window_initialize_menus (window); + menubar = nautilus_window_initialize_menus (window); nautilus_window_initialize_actions (window); + if (menubar) { + gtk_container_add (GTK_CONTAINER (grid), menubar); + gtk_widget_show_all (menubar); + } + /* Register to menu provider extension signal managing menu updates */ g_signal_connect_object (nautilus_signaller_get_current (), "popup-menu-changed", G_CALLBACK (nautilus_window_load_extension_menus), window, G_CONNECT_SWAPPED); @@ -1635,8 +1641,6 @@ nautilus_window_finalize (GObject *object) window->details->sidebar_width_handler_id = 0; } - nautilus_window_finalize_menus (window); - g_clear_object (&window->details->ui_manager); /* nautilus_window_close() should have run */ -- 1.9.0 debian/patches/git_directory_warning.patch0000664000000000000000000000450612307626250016244 0ustar From ea52580945dc9bc8d0f63b8984e345ac65131ee1 Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 17 Feb 2014 23:44:34 +0000 Subject: directory: collect all directories when invalidating Otherwise we risk modifying the directories hash table from within the iteration callback, which will trigger a critical warning. https://bugzilla.gnome.org/show_bug.cgi?id=697890 --- diff --git a/libnautilus-private/nautilus-directory.c b/libnautilus-private/nautilus-directory.c index 98dac79..8239cbe 100644 --- a/libnautilus-private/nautilus-directory.c +++ b/libnautilus-private/nautilus-directory.c @@ -244,28 +244,37 @@ nautilus_directory_finalize (GObject *object) } static void -invalidate_one_count (gpointer key, gpointer value, gpointer user_data) +collect_all_directories (gpointer key, gpointer value, gpointer callback_data) { NautilusDirectory *directory; - - g_assert (key != NULL); - g_assert (NAUTILUS_IS_DIRECTORY (value)); - g_assert (user_data == NULL); + GList **dirs; directory = NAUTILUS_DIRECTORY (value); - - nautilus_directory_invalidate_count_and_mime_list (directory); + dirs = callback_data; + + *dirs = g_list_prepend (*dirs, nautilus_directory_ref (directory)); } static void filtering_changed_callback (gpointer callback_data) { + GList *dirs, *l; + NautilusDirectory *directory; + g_assert (callback_data == NULL); + dirs = NULL; + g_hash_table_foreach (directories, collect_all_directories, &dirs); + /* Preference about which items to show has changed, so we * can't trust any of our precomputed directory counts. */ - g_hash_table_foreach (directories, invalidate_one_count, NULL); + for (l = dirs; l != NULL; l = l->next) { + directory = NAUTILUS_DIRECTORY (l->data); + nautilus_directory_invalidate_count_and_mime_list (directory); + } + + nautilus_directory_list_unref (dirs); } void @@ -284,18 +293,6 @@ emit_change_signals_for_all_files (NautilusDirectory *directory) nautilus_file_list_free (files); } -static void -collect_all_directories (gpointer key, gpointer value, gpointer callback_data) -{ - NautilusDirectory *directory; - GList **dirs; - - directory = NAUTILUS_DIRECTORY (value); - dirs = callback_data; - - *dirs = g_list_prepend (*dirs, nautilus_directory_ref (directory)); -} - void emit_change_signals_for_all_files_in_all_directories (void) { -- cgit v0.9.2 debian/source_nautilus.py0000664000000000000000000000153112307626250012771 0ustar import os, apport.packaging from apport.hookutils import * def add_info(report): # the crash is not in nautilus code so reassign if "Stacktrace" in report and "/usr/lib/nautilus" in report["Stacktrace"]: for words in report["Stacktrace"].split(): if words.startswith("/usr/lib/nautilus"): report.add_package_info(apport.packaging.get_file_package(words)) return # collect informations on the /usr/lib/nautilus components plugin_packages = set() for dirpath, dirnames, filenames in os.walk("/usr/lib/nautilus"): for filename in filenames: path = os.path.join(dirpath, filename) package = apport.packaging.get_file_package(path) if package == 'nautilus': continue plugin_packages.add(package) report["usr_lib_nautilus"] = package_versions(*sorted(plugin_packages)) attach_gsettings_package(report, 'nautilus-data') debian/nautilus.migrations0000664000000000000000000000004712307626250013136 0ustar debian/nautilus-unity-launcher-icon.py debian/libnautilus-extension-dev.install0000664000000000000000000000016512307626250015706 0ustar usr/lib/libnautilus-extension*.so usr/include usr/lib/pkgconfig usr/share/gir-1.0/Nautilus-3.0.gir usr/share/gtk-doc debian/nautilus-data.install0000664000000000000000000000041212307626250013333 0ustar usr/share/gnome-shell usr/share/nautilus usr/share/locale usr/share/mime/packages/nautilus.xml usr/share/GConf usr/share/glib-2.0/schemas/org.gnome.nautilus.gschema.xml debian/nautilus.xpm /usr/share/pixmaps debian/source_nautilus.py /usr/share/apport/package-hooks debian/nautilus-folder-handler.desktop0000664000000000000000000001123412307626250015317 0ustar [Desktop Entry] Name=Files Name[ar]=الملفات Name[as]=নথিপত্ৰসমূহ Name[be]=Файлы Name[bg]=Файлове Name[bn]=ফাইল Name[ca]=Fitxers Name[ca@valencia]=Fitxers Name[cs]=Soubory Name[da]=Filer Name[de]=Dateien Name[en_GB]=Files Name[eo]=Dosieroj Name[es]=Archivos Name[et]=Failid Name[eu]=Fitxategiak Name[fa]=پرونده‌ها Name[fi]=Tiedostot Name[fr]=Fichiers Name[ga]=Comhaid Name[gl]=Ficheiros Name[gu]=ફાઇલો Name[he]=קבצים Name[hu]=Fájlok Name[id]=Berkas Name[it]=File Name[ja]=ファイル Name[kn]=ಕಡತಗಳು Name[ko]=파일 Name[lt]=Failai Name[lv]=Faili Name[mr]=फाइल्स् Name[nb]=Filer Name[nl]=Bestanden Name[nn]=Filer Name[or]=ଫାଇଲଗୁଡିକ Name[pa]=ਫਾਇਲਾਂ Name[pl]=Pliki Name[pt]=Ficheiros Name[pt_BR]=Arquivos Name[ro]=Fișiere Name[ru]=Файлы Name[sk]=Súbory Name[sl]=Datoteke Name[sr]=Датотеке Name[sr@latin]=Datoteke Name[sv]=Filer Name[ta]=கோப்புகள் Name[te]=ఫైళ్ళు Name[th]=แฟ้ม Name[tr]=Dosyalar Name[ug]=ھۆججەتلەر Name[uk]=Файли Name[vi]=Tập tin Name[zh_CN]=文件 Name[zh_HK]=檔案 Name[zh_TW]=檔案 Comment=Access and organize files Comment[ar]=نظم الملفات و صِل إليها Comment[as]=প্ৰবেশাধিকাৰ লওক আৰু নথিপত্ৰসমূহ আয়োজিত কৰক Comment[be]=Доступ і кіраванне файламі Comment[bg]=Достъп и управление на файлове Comment[bn]=ফাইলে ব্যবাহর এবং সাজানো Comment[ca]=Organitzeu i accediu a fitxers Comment[ca@valencia]=Organitzeu i accediu a fitxers Comment[cs]=Přístup a organizace souborů Comment[da]=Tilgå og organisér filer Comment[de]=Auf Dateien zugreifen und diese organisieren Comment[en_GB]=Access and organise files Comment[es]=Acceder a los archivos y organizarlos Comment[et]=Ligipääs failidele ning failipuu korrastamine Comment[eu]=Atzitu eta antolatu fitxategiak Comment[fa]=دسترسی و سازماندهی پرونده‌ها Comment[fi]=Avaa ja järjestä tiedostoja Comment[fr]=Accéder aux fichiers et les organiser Comment[gl]=Acceda e organice ficheiros Comment[gu]=ફાઇલોને વાપરો અને સંચાલિત કરો Comment[he]=גישה לקבצים וארגונם Comment[hu]=Fájlok elérése és rendszerezése Comment[id]=Mengakses dan mengelola berkas Comment[it]=Accede ai file e li organizza Comment[ja]=ファイルの操作や整理をします Comment[kn]=ಕಡತಗಳನ್ನು ನಿಲುಕಿಸಿಕೊಳ್ಳಿ ಹಾಗು ವ್ಯವಸ್ಥಿತವಾಗಿ ಜೋಡಿಸಿ Comment[ko]=파일 접근 및 정리 Comment[lt]= Comment[lv]=Piekļūt un organizēt failus Comment[mr]=फाइल्स्ला प्रवेश द्वया व संघटित करा Comment[nb]=Aksesser og organiser filer Comment[nl]=Bestanden gebruiken en organiseren Comment[nn]=Aksesser og organiser filer Comment[or]=ଫାଇଲମାନଙ୍କୁ ଅଭିଗମ କରନ୍ତୁ ଏବଂ ସଙ୍ଗଠନ କରନ୍ତୁ Comment[pa]=ਫਾਇਲਾਂ ਦੀ ਵਰਤੋਂ ਤੇ ਪਰਬੰਧ Comment[pl]=Organizowanie plików Comment[pt]=Aceder e organizar ficheiros Comment[pt_BR]=Acessar e organizar arquivos Comment[ro]=Accesați și organizați fișiere Comment[ru]=Управление и доступ к файлам Comment[sk]=Prístup a organizácia súborov Comment[sl]=Dostop in razvrščanje datotek Comment[sr]=Приступите и организујте датотеке Comment[sr@latin]=Pristupite i organizujte datoteke Comment[sv]=Kom åt och organisera filer Comment[ta]=கோப்புகளை அணுகு மற்றும் ஒழுங்கு படுத்து Comment[te]=ఫైళ్ళను నిర్వహించు మరియు వాడుకొను Comment[th]=เข้าถึงและจัดระเบียบแฟ้ม Comment[tr]=Dosyalara erişin ve düzenleyin Comment[ug]=ھۆججەتلەرنى تەشكىللەش ۋە زىيارەت Comment[uk]=Доступ до файлів Comment[vi]=Truy cập và tổ chức tập tin Comment[zh_CN]=访问和组织文件 Comment[zh_HK]=存取與組織檔案 Comment[zh_TW]=存取與組織檔案 Exec=nautilus %U Icon=system-file-manager Terminal=false NoDisplay=true Type=Application StartupNotify=true OnlyShowIn=GNOME;Unity; Categories=GNOME;GTK;Utility;Core; MimeType=inode/directory;application/x-gnome-saved-search; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=nautilus X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Version=3.2.1