Merge lp:~3v1n0/nautilus/reuse-already-opened-views into lp:~ubuntu-desktop/nautilus/ubuntu

Proposed by Marco Trevisan (Treviño)
Status: Superseded
Proposed branch: lp:~3v1n0/nautilus/reuse-already-opened-views
Merge into: lp:~ubuntu-desktop/nautilus/ubuntu
Diff against target: 671 lines (+391/-66)
5 files modified
debian/changelog (+15/-0)
debian/patches/10_reuse_already_opened_views.patch (+290/-0)
debian/patches/12_unity_launcher_support.patch (+80/-61)
debian/patches/17_static_unity_quicklist.patch (+5/-5)
debian/patches/series (+1/-0)
To merge this branch: bzr merge lp:~3v1n0/nautilus/reuse-already-opened-views
Reviewer Review Type Date Requested Status
Ubuntu Desktop Pending
Review via email: mp+152980@code.launchpad.net

This proposal has been superseded by a proposal from 2013-03-12.

Commit message

* 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:
  - 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

Description of the change

- Backported the upstream patches I wrote to fix bug https://bugzilla.gnome.org/show_bug.cgi?id=694034
- Updated the unity launcher support patch to use g_application_open to use the same codepath
- Updated the Exec and the static quicklist to use the --new-window flag

To post a comment you must log in.
363. By Marco Trevisan (Treviño) on 2013-03-12

* debian/patches/19_add_desktop_keywords.patch:
  - Adding .desktop files keywords from upstream

364. By Marco Trevisan (Treviño) on 2013-03-13

debian/changelog: added missing entry

365. By Marco Trevisan (Treviño) on 2013-03-13

debian/patches/10_reuse_already_opened_views.patch: added DEP-3 headers

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2013-03-08 15:56:13 +0000
3+++ debian/changelog 2013-03-12 18:30:31 +0000
4@@ -1,3 +1,18 @@
5+nautilus (1:3.6.3-0ubuntu9) UNRELEASED; urgency=low
6+
7+ * debian/patches/10_reuse_already_opened_views.patch
8+ - Try to reuse the available windows or tabs when opening an already opened
9+ location (lp: #692444)
10+ * debian/patches/12_unity_launcher_support.patch:
11+ - Quicklist entries to show the copy dialog should use a separator (lp: #1154109)
12+ - Transfer dialog should be presented using the correct timestamp (lp: #1154111)
13+ - Use the quicklist activation timestamp to set the application user time
14+ so that the opened windows will be focused (lp: #1154237)
15+ * debian/patches/17_static_unity_quicklist.patch:
16+ - Use nautilus --new-window to open a New window
17+
18+ -- Marco Trevisan (Treviño) <marco@ubuntu.com> Tue, 12 Mar 2013 18:57:21 +0100
19+
20 nautilus (1:3.6.3-0ubuntu8) raring; urgency=low
21
22 * debian/control.in:
23
24=== added file 'debian/patches/10_reuse_already_opened_views.patch'
25--- debian/patches/10_reuse_already_opened_views.patch 1970-01-01 00:00:00 +0000
26+++ debian/patches/10_reuse_already_opened_views.patch 2013-03-12 18:30:31 +0000
27@@ -0,0 +1,290 @@
28+Index: nautilus/data/nautilus.desktop.in.in
29+===================================================================
30+--- nautilus.orig/data/nautilus.desktop.in.in 2013-03-12 16:26:12.000000000 +0100
31++++ nautilus/data/nautilus.desktop.in.in 2013-03-12 16:27:57.254745628 +0100
32+@@ -1,7 +1,8 @@
33+ [Desktop Entry]
34+ _Name=Files
35+ _Comment=Access and organize files
36+-Exec=nautilus %U
37++_Keywords=folder;manager;explore;disk;filesystem;
38++Exec=nautilus --new-window %U
39+ Icon=system-file-manager
40+ Terminal=false
41+ Type=Application
42+Index: nautilus/libnautilus-private/nautilus-file-utilities.c
43+===================================================================
44+--- nautilus.orig/libnautilus-private/nautilus-file-utilities.c 2013-03-12 16:26:03.146976000 +0100
45++++ nautilus/libnautilus-private/nautilus-file-utilities.c 2013-03-12 16:39:11.822510184 +0100
46+@@ -1296,6 +1296,48 @@
47+ return NULL;
48+ }
49+
50++gboolean
51++nautilus_file_selection_equal (GList *selection_a,
52++ GList *selection_b)
53++{
54++ GList *al, *bl;
55++ gboolean selection_matches;
56++
57++ if (selection_a == NULL || selection_b == NULL) {
58++ return (selection_a == selection_b);
59++ }
60++
61++ if (g_list_length (selection_a) != g_list_length (selection_b)) {
62++ return FALSE;
63++ }
64++
65++ selection_matches = TRUE;
66++
67++ for (al = selection_a; al; al = al->next) {
68++ GFile *a_location = nautilus_file_get_location (NAUTILUS_FILE (al->data));
69++ gboolean found = FALSE;
70++
71++ for (bl = selection_b; bl; bl = bl->next) {
72++ GFile *b_location = nautilus_file_get_location (NAUTILUS_FILE (bl->data));
73++ found = g_file_equal (b_location, a_location);
74++ g_object_unref (b_location);
75++
76++ if (found) {
77++ break;
78++ }
79++ }
80++
81++ selection_matches = found;
82++ g_object_unref (a_location);
83++
84++ if (!selection_matches) {
85++ break;
86++ }
87++ }
88++
89++ return selection_matches;
90++}
91++
92+ #if !defined (NAUTILUS_OMIT_SELF_CHECK)
93+
94+ void
95+Index: nautilus/libnautilus-private/nautilus-file-utilities.h
96+===================================================================
97+--- nautilus.orig/libnautilus-private/nautilus-file-utilities.h 2013-03-12 16:26:03.146976000 +0100
98++++ nautilus/libnautilus-private/nautilus-file-utilities.h 2013-03-12 16:39:11.822510184 +0100
99+@@ -95,4 +95,6 @@
100+ GCancellable *cancellable,
101+ gpointer user_data);
102+
103++gboolean nautilus_file_selection_equal (GList *selection_a, GList *selection_b);
104++
105+ #endif /* NAUTILUS_FILE_UTILITIES_H */
106+Index: nautilus/src/nautilus-application.c
107+===================================================================
108+--- nautilus.orig/src/nautilus-application.c 2013-03-12 16:26:13.000000000 +0100
109++++ nautilus/src/nautilus-application.c 2013-03-12 16:28:01.818743973 +0100
110+@@ -576,6 +576,47 @@
111+ }
112+ }
113+
114++static NautilusWindowSlot *
115++get_window_slot_for_location (NautilusApplication *application, GFile *location)
116++{
117++ NautilusWindowSlot *slot;
118++ GList *l, *sl;
119++
120++ slot = NULL;
121++
122++ if (g_file_query_file_type (location, G_FILE_QUERY_INFO_NONE, NULL) != G_FILE_TYPE_DIRECTORY) {
123++ location = g_file_get_parent (location);
124++ } else {
125++ g_object_ref (location);
126++ }
127++
128++ for (l = gtk_application_get_windows (GTK_APPLICATION (application)); l; l = l->next) {
129++ NautilusWindow *win = NAUTILUS_WINDOW (l->data);
130++
131++ if (NAUTILUS_IS_DESKTOP_WINDOW (win))
132++ continue;
133++
134++ for (sl = nautilus_window_get_slots (win); sl; sl = sl->next) {
135++ NautilusWindowSlot *current = NAUTILUS_WINDOW_SLOT (sl->data);
136++ GFile *slot_location = nautilus_window_slot_get_location (current);
137++
138++ if (g_file_equal (slot_location, location)) {
139++ slot = current;
140++ break;
141++ }
142++ }
143++
144++ if (slot) {
145++ break;
146++ }
147++ }
148++
149++ g_object_unref (location);
150++
151++ return slot;
152++}
153++
154++
155+ static void
156+ open_window (NautilusApplication *application,
157+ GFile *location, GdkScreen *screen, const char *geometry)
158+@@ -609,6 +650,7 @@
159+
160+ static void
161+ open_windows (NautilusApplication *application,
162++ gboolean force_new,
163+ GFile **files,
164+ gint n_files,
165+ GdkScreen *screen,
166+@@ -621,8 +663,22 @@
167+ open_window (application, NULL, screen, geometry);
168+ } else {
169+ /* Open windows at each requested location. */
170+- for (i = 0; i < n_files; i++) {
171+- open_window (application, files[i], screen, geometry);
172++ for (i = 0; i < n_files; ++i) {
173++ NautilusWindowSlot *slot = NULL;
174++
175++ if (!force_new)
176++ slot = get_window_slot_for_location (application, files[i]);
177++
178++ if (!slot) {
179++ open_window (application, files[i], screen, geometry);
180++ } else {
181++ /* We open the location again to update any possible selection */
182++ nautilus_window_slot_open_location (slot, files[i], 0);
183++
184++ NautilusWindow *window = nautilus_window_slot_get_window (slot);
185++ nautilus_window_set_active_slot (window, slot);
186++ gtk_window_present (GTK_WINDOW (window));
187++ }
188+ }
189+ }
190+ }
191+@@ -634,19 +690,28 @@
192+ const char *startup_id)
193+ {
194+ NautilusWindow *window;
195++ NautilusWindowSlot *slot;
196+ GList *sel_list = NULL;
197+
198+ nautilus_profile_start (NULL);
199+
200+- window = nautilus_application_create_window (application, gdk_screen_get_default ());
201+- gtk_window_set_startup_id (GTK_WINDOW (window), startup_id);
202++ slot = get_window_slot_for_location (application, location);
203++
204++ if (!slot) {
205++ window = nautilus_application_create_window (application, gdk_screen_get_default ());
206++ slot = nautilus_window_get_active_slot (window);
207++ } else {
208++ window = nautilus_window_slot_get_window (slot);
209++ nautilus_window_set_active_slot (window, slot);
210++ gtk_window_present (GTK_WINDOW (window));
211++ }
212+
213+ if (selection != NULL) {
214+ sel_list = g_list_prepend (sel_list, nautilus_file_get (selection));
215+ }
216+
217+- nautilus_window_slot_open_location_full (nautilus_window_get_active_slot (window), location,
218+- 0, sel_list, NULL, NULL);
219++ gtk_window_set_startup_id (GTK_WINDOW (window), startup_id);
220++ nautilus_window_slot_open_location_full (slot, location, 0, sel_list, NULL, NULL);
221+
222+ if (sel_list != NULL) {
223+ nautilus_file_list_free (sel_list);
224+@@ -665,7 +730,9 @@
225+
226+ DEBUG ("Open called on the GApplication instance; %d files", n_files);
227+
228+- open_windows (self, files, n_files,
229++ gboolean force_new = (g_strcmp0 (hint, "new-window") == 0);
230++
231++ open_windows (self, force_new, files, n_files,
232+ gdk_screen_get_default (),
233+ self->priv->geometry);
234+ }
235+@@ -1059,6 +1126,7 @@
236+ gboolean version = FALSE;
237+ gboolean browser = FALSE;
238+ gboolean kill_shell = FALSE;
239++ gboolean open_new_window = FALSE;
240+ gboolean no_default_window = FALSE;
241+ gchar **remaining = NULL;
242+ NautilusApplication *self = NAUTILUS_APPLICATION (application);
243+@@ -1075,6 +1143,8 @@
244+ N_("Show the version of the program."), NULL },
245+ { "geometry", 'g', 0, G_OPTION_ARG_STRING, &self->priv->geometry,
246+ N_("Create the initial window with the given geometry."), N_("GEOMETRY") },
247++ { "new-window", 'w', 0, G_OPTION_ARG_NONE, &open_new_window,
248++ N_("Always open a new window for browsing specified URIs"), NULL },
249+ { "no-default-window", 'n', 0, G_OPTION_ARG_NONE, &no_default_window,
250+ N_("Only create windows for explicitly specified URIs."), NULL },
251+ { "no-desktop", '\0', 0, G_OPTION_ARG_NONE, &self->priv->no_desktop,
252+@@ -1089,7 +1159,6 @@
253+ GError *error = NULL;
254+ gint argc = 0;
255+ gchar **argv = NULL;
256+-
257+ *exit_status = EXIT_SUCCESS;
258+
259+ nautilus_profile_start (NULL);
260+@@ -1127,8 +1196,8 @@
261+ goto out;
262+ }
263+
264+- DEBUG ("Parsing local command line, no_default_window %d, quit %d, "
265+- "self checks %d, no_desktop %d",
266++ DEBUG ("Parsing local command line, open_new_window %d, no_default_window %d, "
267++ "quit %d, self checks %d, no_desktop %d", open_new_window,
268+ no_default_window, kill_shell, perform_self_check, self->priv->no_desktop);
269+
270+ g_application_register (application, NULL, &error);
271+@@ -1185,7 +1254,7 @@
272+
273+ /* Invoke "Open" to create new windows */
274+ if (len > 0) {
275+- g_application_open (application, files, len, "");
276++ g_application_open (application, files, len, open_new_window ? "new-window" : "");
277+ }
278+
279+ for (idx = 0; idx < len; idx++) {
280+Index: nautilus/src/nautilus-window-manage-views.c
281+===================================================================
282+--- nautilus.orig/src/nautilus-window-manage-views.c 2013-03-12 13:22:34.506542000 +0100
283++++ nautilus/src/nautilus-window-manage-views.c 2013-03-12 16:38:09.442531224 +0100
284+@@ -427,6 +427,7 @@
285+ NautilusWindowSlot *target_slot;
286+ NautilusWindowOpenFlags slot_flags;
287+ GFile *old_location;
288++ GList *old_selection;
289+ char *old_uri, *new_uri;
290+ int new_slot_position;
291+ gboolean use_same;
292+@@ -525,9 +526,14 @@
293+ }
294+ }
295+
296+- if (target_window == window && target_slot == slot &&
297++ old_selection = NULL;
298++ if (slot->content_view != NULL) {
299++ old_selection = nautilus_view_get_selection (slot->content_view);
300++ }
301++
302++ if (target_window == window && target_slot == slot && !is_desktop &&
303+ old_location && g_file_equal (old_location, location) &&
304+- !is_desktop) {
305++ nautilus_file_selection_equal (old_selection, new_selection)) {
306+
307+ if (callback != NULL) {
308+ callback (window, location, NULL, user_data);
309+@@ -537,7 +543,7 @@
310+ }
311+
312+ slot->pending_use_default_location = ((flags & NAUTILUS_WINDOW_OPEN_FLAG_USE_DEFAULT_LOCATION) != 0);
313+- begin_location_change (target_slot, location, old_location, new_selection,
314++ begin_location_change (target_slot, location, old_location, new_selection,
315+ NAUTILUS_LOCATION_CHANGE_STANDARD, 0, NULL, callback, user_data);
316+
317+ done:
318
319=== modified file 'debian/patches/12_unity_launcher_support.patch'
320--- debian/patches/12_unity_launcher_support.patch 2012-10-31 07:02:17 +0000
321+++ debian/patches/12_unity_launcher_support.patch 2013-03-12 18:30:31 +0000
322@@ -1,8 +1,8 @@
323 === modified file 'configure.in'
324-Index: nautilus-3.6.2/configure.in
325+Index: nautilus/configure.in
326 ===================================================================
327---- nautilus-3.6.2.orig/configure.in 2012-10-31 02:33:43.228876867 -0400
328-+++ nautilus-3.6.2/configure.in 2012-10-31 02:34:01.976876084 -0400
329+--- nautilus.orig/configure.in 2013-03-12 17:57:43.417743091 +0100
330++++ nautilus/configure.in 2013-03-12 17:57:43.413743092 +0100
331 @@ -10,6 +10,8 @@
332 m4_define(exif_minver, 0.6.20)
333 m4_define(exempi_minver, 2.1.0)
334@@ -50,10 +50,10 @@
335 nautilus-sendto ext: $enable_nst_extension
336 Tracker support: $enable_tracker
337
338-Index: nautilus-3.6.2/libnautilus-private/nautilus-progress-info.c
339+Index: nautilus/libnautilus-private/nautilus-progress-info.c
340 ===================================================================
341---- nautilus-3.6.2.orig/libnautilus-private/nautilus-progress-info.c 2012-10-31 02:33:43.228876867 -0400
342-+++ nautilus-3.6.2/libnautilus-private/nautilus-progress-info.c 2012-10-31 02:34:01.976876084 -0400
343+--- nautilus.orig/libnautilus-private/nautilus-progress-info.c 2013-03-12 17:57:43.417743091 +0100
344++++ nautilus/libnautilus-private/nautilus-progress-info.c 2013-03-12 17:57:43.413743092 +0100
345 @@ -52,6 +52,8 @@
346 char *status;
347 char *details;
348@@ -115,10 +115,10 @@
349 info->progress_at_idle = TRUE;
350 queue_idle (info, FALSE);
351 }
352-Index: nautilus-3.6.2/libnautilus-private/nautilus-progress-info.h
353+Index: nautilus/libnautilus-private/nautilus-progress-info.h
354 ===================================================================
355---- nautilus-3.6.2.orig/libnautilus-private/nautilus-progress-info.h 2012-10-31 02:33:43.228876867 -0400
356-+++ nautilus-3.6.2/libnautilus-private/nautilus-progress-info.h 2012-10-31 02:34:01.980876084 -0400
357+--- nautilus.orig/libnautilus-private/nautilus-progress-info.h 2013-03-12 17:57:43.417743091 +0100
358++++ nautilus/libnautilus-private/nautilus-progress-info.h 2013-03-12 17:57:43.413743092 +0100
359 @@ -62,6 +62,8 @@
360 gboolean nautilus_progress_info_get_is_started (NautilusProgressInfo *info);
361 gboolean nautilus_progress_info_get_is_finished (NautilusProgressInfo *info);
362@@ -128,10 +128,10 @@
363
364 void nautilus_progress_info_start (NautilusProgressInfo *info);
365 void nautilus_progress_info_finish (NautilusProgressInfo *info);
366-Index: nautilus-3.6.2/src/Makefile.am
367+Index: nautilus/src/Makefile.am
368 ===================================================================
369---- nautilus-3.6.2.orig/src/Makefile.am 2012-10-31 02:33:43.228876867 -0400
370-+++ nautilus-3.6.2/src/Makefile.am 2012-10-31 02:34:01.980876084 -0400
371+--- nautilus.orig/src/Makefile.am 2013-03-12 17:57:43.417743091 +0100
372++++ nautilus/src/Makefile.am 2013-03-12 17:57:43.413743092 +0100
373 @@ -31,6 +31,7 @@
374 -DSYSCONFDIR=\""$(sysconfdir)"\" \
375 -DVERSION="\"$(VERSION)\"" \
376@@ -159,10 +159,10 @@
377 $(NULL)
378
379 nodist_nautilus_SOURCES = \
380-Index: nautilus-3.6.2/src/nautilus-progress-ui-handler.c
381+Index: nautilus/src/nautilus-progress-ui-handler.c
382 ===================================================================
383---- nautilus-3.6.2.orig/src/nautilus-progress-ui-handler.c 2012-10-31 02:33:43.228876867 -0400
384-+++ nautilus-3.6.2/src/nautilus-progress-ui-handler.c 2012-10-31 02:34:01.980876084 -0400
385+--- nautilus.orig/src/nautilus-progress-ui-handler.c 2013-03-12 17:57:43.417743091 +0100
386++++ nautilus/src/nautilus-progress-ui-handler.c 2013-03-12 17:57:43.413743092 +0100
387 @@ -38,6 +38,11 @@
388
389 #include <libnotify/notify.h>
390@@ -185,7 +185,7 @@
391 };
392
393 G_DEFINE_TYPE (NautilusProgressUIHandler, nautilus_progress_ui_handler, G_TYPE_OBJECT);
394-@@ -181,6 +189,208 @@
395+@@ -181,6 +189,221 @@
396 gtk_status_icon_set_visible (self->priv->status_icon, TRUE);
397 }
398
399@@ -246,12 +246,7 @@
400 +{
401 + g_return_if_fail (self);
402 +
403-+ if (!gtk_widget_get_visible (self->priv->progress_window)) {
404-+ gtk_window_present (GTK_WINDOW (self->priv->progress_window));
405-+ } else {
406-+ gtk_window_set_keep_above (GTK_WINDOW (self->priv->progress_window), TRUE);
407-+ gtk_window_set_keep_above (GTK_WINDOW (self->priv->progress_window), FALSE);
408-+ }
409++ gtk_window_present_with_time (GTK_WINDOW (self->priv->progress_window), timestamp);
410 +}
411 +
412 +static void
413@@ -279,28 +274,46 @@
414 +
415 + for (l = unity_quicklist_get_launcher_entries (self->priv->unity_quicklist_handler); l; l = l->next) {
416 + UnityLauncherEntry *entry = l->data;
417-+
418-+ DbusmenuMenuitem *quickmenu = dbusmenu_menuitem_new ();
419++ DbusmenuMenuitem *ql = unity_launcher_entry_get_quicklist (entry);
420++ DbusmenuMenuitem *quickmenu;
421++
422++ if (ql) {
423++ quickmenu = dbusmenu_menuitem_new ();
424++ dbusmenu_menuitem_property_set (quickmenu,
425++ DBUSMENU_MENUITEM_PROP_TYPE,
426++ DBUSMENU_CLIENT_TYPES_SEPARATOR);
427++ dbusmenu_menuitem_property_set_bool (quickmenu,
428++ DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
429++ dbusmenu_menuitem_property_set_bool (quickmenu,
430++ UNITY_QUICKLIST_PROGRESS_ITEM, TRUE);
431++ unity_quicklist_handler_append_menuitem (entry, quickmenu);
432++ }
433++
434++ quickmenu = dbusmenu_menuitem_new ();
435 + dbusmenu_menuitem_property_set (quickmenu,
436 + DBUSMENU_MENUITEM_PROP_LABEL,
437-+ UNITY_QUICKLIST_SHOW_COPY_DIALOG);
438++ UNITY_QUICKLIST_SHOW_COPY_DIALOG);
439 + dbusmenu_menuitem_property_set_bool (quickmenu,
440 + DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
441++ dbusmenu_menuitem_property_set_bool (quickmenu,
442++ UNITY_QUICKLIST_PROGRESS_ITEM, TRUE);
443 + unity_quicklist_handler_append_menuitem (entry, quickmenu);
444 + g_signal_connect (quickmenu, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
445 + (GCallback) progress_ui_handler_unity_quicklist_show_activated,
446-+ self);
447++ self);
448 +
449 + quickmenu = dbusmenu_menuitem_new ();
450 + dbusmenu_menuitem_property_set (quickmenu,
451-+ DBUSMENU_MENUITEM_PROP_LABEL,
452-+ UNITY_QUICKLIST_CANCEL_COPY);
453++ DBUSMENU_MENUITEM_PROP_LABEL,
454++ UNITY_QUICKLIST_CANCEL_COPY);
455 + dbusmenu_menuitem_property_set_bool (quickmenu,
456 + DBUSMENU_MENUITEM_PROP_VISIBLE, FALSE);
457++ dbusmenu_menuitem_property_set_bool (quickmenu,
458++ UNITY_QUICKLIST_PROGRESS_ITEM, TRUE);
459 + unity_quicklist_handler_append_menuitem (entry, quickmenu);
460 + g_signal_connect (quickmenu, DBUSMENU_MENUITEM_SIGNAL_ITEM_ACTIVATED,
461 + (GCallback) progress_ui_handler_unity_quicklist_cancel_activated,
462-+ self);
463++ self);
464 + }
465 +}
466 +
467@@ -394,7 +407,7 @@
468 static gboolean
469 progress_window_delete_event (GtkWidget *widget,
470 GdkEvent *event,
471-@@ -313,6 +523,10 @@
472+@@ -313,6 +536,10 @@
473 progress_ui_handler_show_complete_notification (self);
474 }
475 }
476@@ -405,7 +418,7 @@
477 }
478
479 static void
480-@@ -335,6 +549,10 @@
481+@@ -335,6 +562,10 @@
482 progress_ui_handler_update_notification_or_status (self);
483 }
484 }
485@@ -416,11 +429,11 @@
486 }
487
488 typedef struct {
489-Index: nautilus-3.6.2/src/unity-quicklist-handler.c
490+Index: nautilus/src/unity-quicklist-handler.c
491 ===================================================================
492 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
493-+++ nautilus-3.6.2/src/unity-quicklist-handler.c 2012-10-31 02:34:01.980876084 -0400
494-@@ -0,0 +1,156 @@
495++++ nautilus/src/unity-quicklist-handler.c 2013-03-12 17:57:43.413743092 +0100
496+@@ -0,0 +1,153 @@
497 +/*unity-quicklist-handler.c: handle Unity quicklists
498 + *
499 + * Copyright (C) 2012 Canonical
500@@ -466,10 +479,7 @@
501 +unity_quicklist_handler_menuitem_is_progress_item (DbusmenuMenuitem *ql)
502 +{
503 + g_return_val_if_fail(ql, FALSE);
504-+ const gchar *label = dbusmenu_menuitem_property_get (ql, DBUSMENU_MENUITEM_PROP_LABEL);
505-+
506-+ return ((g_strcmp0 (label, (const gchar*)UNITY_QUICKLIST_SHOW_COPY_DIALOG) == 0) ||
507-+ (g_strcmp0 (label, (const gchar*)UNITY_QUICKLIST_CANCEL_COPY) == 0));
508++ return dbusmenu_menuitem_property_get_bool (ql, UNITY_QUICKLIST_PROGRESS_ITEM);
509 +}
510 +
511 +gboolean
512@@ -577,11 +587,11 @@
513 + return g_object_new (UNITY_TYPE_QUICKLIST_HANDLER, NULL);
514 +}
515 +
516-Index: nautilus-3.6.2/src/unity-quicklist-handler.h
517+Index: nautilus/src/unity-quicklist-handler.h
518 ===================================================================
519 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
520-+++ nautilus-3.6.2/src/unity-quicklist-handler.h 2012-10-31 02:34:01.980876084 -0400
521-@@ -0,0 +1,73 @@
522++++ nautilus/src/unity-quicklist-handler.h 2013-03-12 17:57:43.413743092 +0100
523+@@ -0,0 +1,75 @@
524 +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
525 +/*
526 + * unity-quicklist.h: handle unity quicklists.
527@@ -630,6 +640,8 @@
528 +
529 +typedef struct _UnityQuicklistHandlerPriv UnityQuicklistHandlerPriv;
530 +
531++#define UNITY_QUICKLIST_PROGRESS_ITEM "unity-quicklist-progress-item"
532++
533 +typedef struct {
534 + GObject parent;
535 +
536@@ -655,10 +667,10 @@
537 +#define UNITY_QUICKLIST_CANCEL_COPY _("Cancel All In-progress Actions")
538 +
539 +#endif /* __UNITY_QUICKLIST_HANDLER_H__ */
540-Index: nautilus-3.6.2/src/nautilus-application.c
541+Index: nautilus/src/nautilus-application.c
542 ===================================================================
543---- nautilus-3.6.2.orig/src/nautilus-application.c 2012-10-31 02:33:43.228876867 -0400
544-+++ nautilus-3.6.2/src/nautilus-application.c 2012-10-31 02:34:01.980876084 -0400
545+--- nautilus.orig/src/nautilus-application.c 2013-03-12 17:57:43.417743091 +0100
546++++ nautilus/src/nautilus-application.c 2013-03-12 17:57:43.417743091 +0100
547 @@ -79,6 +79,10 @@
548 #include <gdk/gdkx.h>
549 #include <gtk/gtk.h>
550@@ -670,7 +682,7 @@
551 /* Keep window from shrinking down ridiculously small; numbers are somewhat arbitrary */
552 #define APPLICATION_WINDOW_MIN_WIDTH 300
553 #define APPLICATION_WINDOW_MIN_HEIGHT 100
554-@@ -1479,6 +1483,10 @@
555+@@ -1548,6 +1552,10 @@
556 nautilus_application_init_actions (self);
557
558 nautilus_profile_end (NULL);
559@@ -681,11 +693,11 @@
560 }
561
562 static void
563-Index: nautilus-3.6.2/src/unity-bookmarks-handler.c
564+Index: nautilus/src/unity-bookmarks-handler.c
565 ===================================================================
566 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
567-+++ nautilus-3.6.2/src/unity-bookmarks-handler.c 2012-10-31 02:34:01.980876084 -0400
568-@@ -0,0 +1,137 @@
569++++ nautilus/src/unity-bookmarks-handler.c 2013-03-12 18:57:09.410958729 +0100
570+@@ -0,0 +1,144 @@
571 +/*unity-bookmarks-handler.c: handle Unity bookmark for quicklist
572 + *
573 + * Copyright (C) 2012 Canonical
574@@ -729,19 +741,26 @@
575 + guint timestamp,
576 + NautilusBookmark *bookmark)
577 +{
578-+ g_assert (NAUTILUS_IS_BOOKMARK (bookmark));
579++ g_return_if_fail (NAUTILUS_IS_BOOKMARK (bookmark));
580 +
581-+ GFile *location;
582++ GFile *locations[2];
583++ GList *windows, *l;
584 + NautilusApplication *application;
585-+ NautilusWindow *new_window;
586 +
587-+ location = nautilus_bookmark_get_location (bookmark);
588++ locations[0] = nautilus_bookmark_get_location (bookmark);
589++ locations[1] = NULL;
590 +
591 + application = NAUTILUS_APPLICATION (g_application_get_default ());
592-+ new_window = nautilus_application_create_window (application, gdk_screen_get_default ());
593-+ nautilus_window_slot_open_location (nautilus_window_get_active_slot (new_window), location, 0);
594-+
595-+ g_object_unref (location);
596++
597++ /* Make sure that the application timestamp matches the event */
598++ for (l = gtk_application_get_windows (GTK_APPLICATION (application)); l; l = l->next) {
599++ GdkWindow *gdk_window = gtk_widget_get_window (GTK_WIDGET (l->data));
600++ gdk_x11_window_set_user_time (gdk_window, timestamp);
601++ }
602++
603++ g_application_open (G_APPLICATION (application), locations, 1, "");
604++
605++ g_object_unref (locations[0]);
606 +}
607 +
608 +static void
609@@ -823,10 +842,10 @@
610 + G_CALLBACK (unity_bookmarks_handler_refresh_bookmarks), 0);
611 +}
612 +
613-Index: nautilus-3.6.2/src/unity-bookmarks-handler.h
614+Index: nautilus/src/unity-bookmarks-handler.h
615 ===================================================================
616 --- /dev/null 1970-01-01 00:00:00.000000000 +0000
617-+++ nautilus-3.6.2/src/unity-bookmarks-handler.h 2012-10-31 02:34:01.980876084 -0400
618++++ nautilus/src/unity-bookmarks-handler.h 2013-03-12 17:57:43.417743091 +0100
619 @@ -0,0 +1,31 @@
620 +/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
621 +/*
622@@ -859,10 +878,10 @@
623 +void unity_bookmarks_handler_initialize (void);
624 +
625 +#endif /* __UNITY_BOOKMARKS_HANDLER_H__*/
626-Index: nautilus-3.6.2/po/POTFILES.in
627+Index: nautilus/po/POTFILES.in
628 ===================================================================
629---- nautilus-3.6.2.orig/po/POTFILES.in 2012-10-31 02:33:43.228876867 -0400
630-+++ nautilus-3.6.2/po/POTFILES.in 2012-10-31 02:34:01.980876084 -0400
631+--- nautilus.orig/po/POTFILES.in 2013-03-12 17:57:43.417743091 +0100
632++++ nautilus/po/POTFILES.in 2013-03-12 17:57:43.417743091 +0100
633 @@ -90,3 +90,4 @@
634 src/nautilus-window-private.h
635 src/nautilus-window-slot.c
636
637=== modified file 'debian/patches/17_static_unity_quicklist.patch'
638--- debian/patches/17_static_unity_quicklist.patch 2013-03-08 13:44:44 +0000
639+++ debian/patches/17_static_unity_quicklist.patch 2013-03-12 18:30:31 +0000
640@@ -1,8 +1,8 @@
641-Index: nautilus-3.5.5/data/nautilus.desktop.in.in
642+Index: nautilus/data/nautilus.desktop.in.in
643 ===================================================================
644---- nautilus-3.5.5.orig/data/nautilus.desktop.in.in 2012-05-08 06:28:08.000000000 +0200
645-+++ nautilus-3.5.5/data/nautilus.desktop.in.in 2012-08-08 09:41:30.183206868 +0200
646-@@ -13,3 +13,9 @@
647+--- nautilus.orig/data/nautilus.desktop.in.in 2013-03-12 17:08:37.121951465 +0100
648++++ nautilus/data/nautilus.desktop.in.in 2013-03-12 17:11:35.029894735 +0100
649+@@ -14,3 +14,9 @@
650 X-GNOME-Bugzilla-Product=nautilus
651 X-GNOME-Bugzilla-Component=general
652 X-GNOME-Bugzilla-Version=@VERSION@
653@@ -10,5 +10,5 @@
654 +
655 +[Desktop Action Window]
656 +_Name=Open a New Window
657-+Exec=nautilus
658++Exec=nautilus --new-window
659 +OnlyShowIn=Unity;
660
661=== modified file 'debian/patches/series'
662--- debian/patches/series 2013-03-08 13:44:44 +0000
663+++ debian/patches/series 2013-03-12 18:30:31 +0000
664@@ -4,6 +4,7 @@
665 06_never_exec_nonexec_launchers.patch
666 08_clean_session_capplet.patch
667 09_no-initial-fade.patch
668+10_reuse_already_opened_views.patch
669 11_copy_skipping_pager.patch
670 12_unity_launcher_support.patch
671 14_bring_del_instead_ctrl_del.patch

Subscribers

People subscribed via source and target branches

to all changes: