Gentoo Archives: gentoo-commits

From: Alexandre Restovtsev <tetromino@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gnome:gnome-next commit in: gnome-base/nautilus/, gnome-base/nautilus/files/
Date: Tue, 27 Sep 2011 05:58:33
Message-Id: d35781f16fced09c5ba16ea77ffe88ad232691fb.tetromino@gentoo
1 commit: d35781f16fced09c5ba16ea77ffe88ad232691fb
2 Author: Alexandre Rostovtsev <tetromino <AT> gmail <DOT> com>
3 AuthorDate: Tue Sep 27 03:52:45 2011 +0000
4 Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
5 CommitDate: Tue Sep 27 03:53:30 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=d35781f1
7
8 gnome-base/nautilus: 3.1.90 → 3.2.0
9
10 Version bump, now with tracker support. Require glib-2.30.0 and
11 gdbus-codegen-2.30.0 due to GDBus API changes between 2.29.92 and 2.30.0.
12 The 3.1.90 patches were applied upstream, and the symbolic icon patch
13 was fixed upstream in a different way (see gnome bug 651209).
14
15 ---
16 ...2-segfault-in-gtk_icon_info_load_symbolic.patch | 88 -----
17 .../nautilus-3.1.90-XDG_CURRENT_DESKTOP.patch | 62 ----
18 .../files/nautilus-3.1.90-is_renaming.patch | 341 --------------------
19 .../nautilus-3.1.90-previewer-gerror-leak.patch | 20 --
20 .../files/nautilus-3.1.90-revert-f76c50a0.patch | 151 ---------
21 .../files/nautilus-3.1.90-window-keybindings.patch | 47 ---
22 .../files/nautilus-3.1.90-window-unref-NULL.patch | 29 --
23 ...autilus-3.1.90.ebuild => nautilus-3.2.0.ebuild} | 23 +-
24 gnome-base/nautilus/nautilus-9999.ebuild | 12 +-
25 9 files changed, 16 insertions(+), 757 deletions(-)
26
27 diff --git a/gnome-base/nautilus/files/nautilus-3.0.2-segfault-in-gtk_icon_info_load_symbolic.patch b/gnome-base/nautilus/files/nautilus-3.0.2-segfault-in-gtk_icon_info_load_symbolic.patch
28 deleted file mode 100644
29 index 82781f7..0000000
30 --- a/gnome-base/nautilus/files/nautilus-3.0.2-segfault-in-gtk_icon_info_load_symbolic.patch
31 +++ /dev/null
32 @@ -1,88 +0,0 @@
33 -From a37ecf869f4772b1ea3b578b687b5b83dd4bd067 Mon Sep 17 00:00:00 2001
34 -From: Alexandre Rostovtsev <tetromino@×××××.com>
35 -Date: Fri, 27 May 2011 01:10:24 -0400
36 -Subject: [PATCH] Prevent segfault in gtk_icon_info_load_symbolic when icon is not found (gnome bug 651209)
37 -
38 -Users of Gentoo and Fedora have reported segfaults in nautilus-3.0.x
39 -in gtk_icon_info_load_symbolic (see Gentoo bug 365779, Fedora bug
40 -690357). One of them was helpful enough to post a backtrace with
41 -debugging information: https://bugzilla.redhat.com/attachment.cgi?id=489928
42 -
43 -The backtrace shows that the crash occurs because we are passing a
44 -NULL icon_info to gtk_icon_info_load_symbolic in lookup_and_color_symbolic_find
45 -in nautilus-search-bar.c; indeed, icon_info will be NULL if
46 -gtk_icon_theme_lookup_icon fails to find an icon.
47 -
48 -An identical problem exists in get_eject_icon in nautilus-places-sidebar.c,
49 -where gtk_icon_info_load_symbolic_for_context and
50 -gtk_icon_theme_lookup_by_gicon are used.
51 -
52 -The solution is to check for the NULL icon_info, and return a
53 -NULL GdkPixbuf. Note that returning a NULL from
54 -lookup_and_color_symbolic_find and get_eject_icon is
55 -safe: in both cases, the return value is only used in functions
56 -that can safely deal with a NULL.
57 ----
58 - src/nautilus-places-sidebar.c | 11 ++++++-----
59 - src/nautilus-search-bar.c | 9 +++++----
60 - 2 files changed, 11 insertions(+), 9 deletions(-)
61 -
62 -diff --git a/src/nautilus-places-sidebar.c b/src/nautilus-places-sidebar.c
63 -index aa08f14..de53cd1 100644
64 ---- a/src/nautilus-places-sidebar.c
65 -+++ b/src/nautilus-places-sidebar.c
66 -@@ -214,7 +214,7 @@ static GdkPixbuf *
67 - get_eject_icon (NautilusPlacesSidebar *sidebar,
68 - gboolean highlighted)
69 - {
70 -- GdkPixbuf *eject;
71 -+ GdkPixbuf *eject = NULL;
72 - GtkIconInfo *icon_info;
73 - GIcon *icon;
74 - int icon_size;
75 -@@ -227,10 +227,11 @@ get_eject_icon (NautilusPlacesSidebar *sidebar,
76 - icon_info = gtk_icon_theme_lookup_by_gicon (icon_theme, icon, icon_size, 0);
77 -
78 - style = gtk_widget_get_style_context (GTK_WIDGET (sidebar));
79 -- eject = gtk_icon_info_load_symbolic_for_context (icon_info,
80 -- style,
81 -- NULL,
82 -- NULL);
83 -+ if (icon_info != NULL)
84 -+ eject = gtk_icon_info_load_symbolic_for_context (icon_info,
85 -+ style,
86 -+ NULL,
87 -+ NULL);
88 -
89 - if (highlighted) {
90 - GdkPixbuf *high;
91 -diff --git a/src/nautilus-search-bar.c b/src/nautilus-search-bar.c
92 -index 6148807..17412d9 100644
93 ---- a/src/nautilus-search-bar.c
94 -+++ b/src/nautilus-search-bar.c
95 -@@ -160,7 +160,7 @@ lookup_and_color_symbolic_find (NautilusSearchBar *bar)
96 - {
97 - GtkIconInfo *icon_info;
98 - GdkRGBA color;
99 -- GdkPixbuf *icon;
100 -+ GdkPixbuf *icon = NULL;
101 - GtkStyleContext *context;
102 -
103 - context = gtk_widget_get_style_context (GTK_WIDGET (bar));
104 -@@ -172,9 +172,10 @@ lookup_and_color_symbolic_find (NautilusSearchBar *bar)
105 - "edit-find-symbolic",
106 - nautilus_get_icon_size_for_stock_size (GTK_ICON_SIZE_MENU),
107 - GTK_ICON_LOOKUP_GENERIC_FALLBACK);
108 -- icon = gtk_icon_info_load_symbolic (icon_info, &color,
109 -- NULL, NULL, NULL,
110 -- NULL, NULL);
111 -+ if (icon_info != NULL)
112 -+ icon = gtk_icon_info_load_symbolic (icon_info, &color,
113 -+ NULL, NULL, NULL,
114 -+ NULL, NULL);
115 -
116 - gtk_style_context_restore (context);
117 -
118 ---
119 -1.7.5.rc3
120 -
121
122 diff --git a/gnome-base/nautilus/files/nautilus-3.1.90-XDG_CURRENT_DESKTOP.patch b/gnome-base/nautilus/files/nautilus-3.1.90-XDG_CURRENT_DESKTOP.patch
123 deleted file mode 100644
124 index 3318b23..0000000
125 --- a/gnome-base/nautilus/files/nautilus-3.1.90-XDG_CURRENT_DESKTOP.patch
126 +++ /dev/null
127 @@ -1,62 +0,0 @@
128 -From 37e379a5a484b604bd25f0b4cb3269f6e4c942ba Mon Sep 17 00:00:00 2001
129 -From: Michael Terry <michael.terry@×××××××××.com>
130 -Date: Wed, 29 Jun 2011 15:56:31 +0000
131 -Subject: Look at XDG_CURRENT_DESKTOP to decide if a link is foreign
132 -
133 -https://bugzilla.gnome.org/show_bug.cgi?id=653660
134 ----
135 -diff --git a/libnautilus-private/nautilus-link.c b/libnautilus-private/nautilus-link.c
136 -index 2c56c0f..339a1b4 100644
137 ---- a/libnautilus-private/nautilus-link.c
138 -+++ b/libnautilus-private/nautilus-link.c
139 -@@ -554,6 +554,21 @@ string_array_contains (char **array,
140 - return FALSE;
141 - }
142 -
143 -+static const gchar *
144 -+get_session (void)
145 -+{
146 -+ const gchar * session;
147 -+
148 -+ session = g_getenv ("XDG_CURRENT_DESKTOP");
149 -+
150 -+ if (session == NULL || session[0] == 0) {
151 -+ /* historic behavior */
152 -+ session = "GNOME";
153 -+ }
154 -+
155 -+ return session;
156 -+}
157 -+
158 - void
159 - nautilus_link_get_link_info_given_file_contents (const char *file_contents,
160 - int link_file_size,
161 -@@ -568,7 +583,9 @@ nautilus_link_get_link_info_given_file_contents (const char *file_contents,
162 - char *type;
163 - char **only_show_in;
164 - char **not_show_in;
165 -+ const gchar *session;
166 -
167 -+ session = get_session ();
168 - key_file = g_key_file_new ();
169 - if (!g_key_file_load_from_data (key_file,
170 - file_contents,
171 -@@ -594,14 +611,14 @@ nautilus_link_get_link_info_given_file_contents (const char *file_contents,
172 - *is_foreign = FALSE;
173 - only_show_in = g_key_file_get_string_list (key_file, MAIN_GROUP,
174 - "OnlyShowIn", NULL, NULL);
175 -- if (only_show_in && !string_array_contains (only_show_in, "GNOME")) {
176 -+ if (session && only_show_in && !string_array_contains (only_show_in, session)) {
177 - *is_foreign = TRUE;
178 - }
179 - g_strfreev (only_show_in);
180 -
181 - not_show_in = g_key_file_get_string_list (key_file, MAIN_GROUP,
182 - "NotShowIn", NULL, NULL);
183 -- if (not_show_in && string_array_contains (not_show_in, "GNOME")) {
184 -+ if (session && not_show_in && string_array_contains (not_show_in, session)) {
185 - *is_foreign = TRUE;
186 - }
187 - g_strfreev (not_show_in);
188 ---
189 -cgit v0.9.0.2
190
191 diff --git a/gnome-base/nautilus/files/nautilus-3.1.90-is_renaming.patch b/gnome-base/nautilus/files/nautilus-3.1.90-is_renaming.patch
192 deleted file mode 100644
193 index b175a7a..0000000
194 --- a/gnome-base/nautilus/files/nautilus-3.1.90-is_renaming.patch
195 +++ /dev/null
196 @@ -1,341 +0,0 @@
197 -From a67212a39bbcd342f0a503d693ebd80fab48ac9c Mon Sep 17 00:00:00 2001
198 -From: Cosimo Cecchi <cosimoc@×××××.org>
199 -Date: Thu, 08 Sep 2011 16:06:39 +0000
200 -Subject: view: add an is_renaming property to NautilusView
201 -
202 -And keep it in sync with the renaming widget. This will be useful to
203 -forward events to the view if it's renaming.
204 ----
205 -diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c
206 -index 3aa7d32..a46f75d 100644
207 ---- a/libnautilus-private/nautilus-icon-container.c
208 -+++ b/libnautilus-private/nautilus-icon-container.c
209 -@@ -239,10 +239,10 @@ enum {
210 - ICON_POSITION_CHANGED,
211 - GET_STORED_LAYOUT_TIMESTAMP,
212 - STORE_LAYOUT_TIMESTAMP,
213 -- ICON_TEXT_CHANGED,
214 -+ ICON_RENAME_STARTED,
215 -+ ICON_RENAME_ENDED,
216 - ICON_STRETCH_STARTED,
217 - ICON_STRETCH_ENDED,
218 -- RENAMING_ICON,
219 - LAYOUT_CHANGED,
220 - MOVE_COPY_ITEMS,
221 - HANDLE_NETSCAPE_URL,
222 -@@ -5778,17 +5778,6 @@ nautilus_icon_container_class_init (NautilusIconContainerClass *class)
223 - G_TYPE_NONE, 2,
224 - G_TYPE_POINTER,
225 - G_TYPE_POINTER);
226 -- signals[ICON_TEXT_CHANGED]
227 -- = g_signal_new ("icon_text_changed",
228 -- G_TYPE_FROM_CLASS (class),
229 -- G_SIGNAL_RUN_LAST,
230 -- G_STRUCT_OFFSET (NautilusIconContainerClass,
231 -- icon_text_changed),
232 -- NULL, NULL,
233 -- g_cclosure_marshal_generic,
234 -- G_TYPE_NONE, 2,
235 -- G_TYPE_POINTER,
236 -- G_TYPE_STRING);
237 - signals[ICON_STRETCH_STARTED]
238 - = g_signal_new ("icon_stretch_started",
239 - G_TYPE_FROM_CLASS (class),
240 -@@ -5809,16 +5798,27 @@ nautilus_icon_container_class_init (NautilusIconContainerClass *class)
241 - g_cclosure_marshal_VOID__POINTER,
242 - G_TYPE_NONE, 1,
243 - G_TYPE_POINTER);
244 -- signals[RENAMING_ICON]
245 -- = g_signal_new ("renaming_icon",
246 -+ signals[ICON_RENAME_STARTED]
247 -+ = g_signal_new ("icon_rename_started",
248 - G_TYPE_FROM_CLASS (class),
249 - G_SIGNAL_RUN_LAST,
250 - G_STRUCT_OFFSET (NautilusIconContainerClass,
251 -- renaming_icon),
252 -+ icon_rename_started),
253 - NULL, NULL,
254 - g_cclosure_marshal_VOID__POINTER,
255 - G_TYPE_NONE, 1,
256 - G_TYPE_POINTER);
257 -+ signals[ICON_RENAME_ENDED]
258 -+ = g_signal_new ("icon_rename_ended",
259 -+ G_TYPE_FROM_CLASS (class),
260 -+ G_SIGNAL_RUN_LAST,
261 -+ G_STRUCT_OFFSET (NautilusIconContainerClass,
262 -+ icon_rename_ended),
263 -+ NULL, NULL,
264 -+ g_cclosure_marshal_generic,
265 -+ G_TYPE_NONE, 2,
266 -+ G_TYPE_POINTER,
267 -+ G_TYPE_STRING);
268 - signals[GET_ICON_URI]
269 - = g_signal_new ("get_icon_uri",
270 - G_TYPE_FROM_CLASS (class),
271 -@@ -8325,7 +8325,7 @@ nautilus_icon_container_start_renaming_selected_item (NautilusIconContainer *con
272 - end_offset);
273 -
274 - g_signal_emit (container,
275 -- signals[RENAMING_ICON], 0,
276 -+ signals[ICON_RENAME_STARTED], 0,
277 - GTK_EDITABLE (details->rename_widget));
278 -
279 - nautilus_icon_container_update_icon (container, icon);
280 -@@ -8339,7 +8339,7 @@ static void
281 - end_renaming_mode (NautilusIconContainer *container, gboolean commit)
282 - {
283 - NautilusIcon *icon;
284 -- const char *changed_text;
285 -+ const char *changed_text = NULL;
286 -
287 - set_pending_icon_to_rename (container, NULL);
288 -
289 -@@ -8363,18 +8363,18 @@ end_renaming_mode (NautilusIconContainer *container, gboolean commit)
290 - if (commit) {
291 - /* Verify that text has been modified before signalling change. */
292 - changed_text = eel_editable_label_get_text (EEL_EDITABLE_LABEL (container->details->rename_widget));
293 -- if (strcmp (container->details->original_text, changed_text) != 0) {
294 -- g_signal_emit (container,
295 -- signals[ICON_TEXT_CHANGED], 0,
296 -- icon->data,
297 -- changed_text);
298 -+ if (strcmp (container->details->original_text, changed_text) == 0) {
299 -+ changed_text = NULL;
300 - }
301 - }
302 -
303 -- gtk_widget_hide (container->details->rename_widget);
304 -+ g_signal_emit (container,
305 -+ signals[ICON_RENAME_ENDED], 0,
306 -+ icon->data,
307 -+ changed_text);
308 -
309 -+ gtk_widget_hide (container->details->rename_widget);
310 - g_free (container->details->original_text);
311 --
312 - }
313 -
314 - gboolean
315 -diff --git a/libnautilus-private/nautilus-icon-container.h b/libnautilus-private/nautilus-icon-container.h
316 -index cdae0ca..ad6c926 100644
317 ---- a/libnautilus-private/nautilus-icon-container.h
318 -+++ b/libnautilus-private/nautilus-icon-container.h
319 -@@ -217,11 +217,11 @@ typedef struct {
320 - void (* icon_position_changed) (NautilusIconContainer *container,
321 - NautilusIconData *data,
322 - const NautilusIconPosition *position);
323 -- void (* icon_text_changed) (NautilusIconContainer *container,
324 -+ void (* icon_rename_started) (NautilusIconContainer *container,
325 -+ GtkWidget *renaming_widget);
326 -+ void (* icon_rename_ended) (NautilusIconContainer *container,
327 - NautilusIconData *data,
328 - const char *text);
329 -- void (* renaming_icon) (NautilusIconContainer *container,
330 -- GtkWidget *renaming_widget);
331 - void (* icon_stretch_started) (NautilusIconContainer *container,
332 - NautilusIconData *data);
333 - void (* icon_stretch_ended) (NautilusIconContainer *container,
334 -diff --git a/src/nautilus-icon-view.c b/src/nautilus-icon-view.c
335 -index 0a42e14..aa00a90 100644
336 ---- a/src/nautilus-icon-view.c
337 -+++ b/src/nautilus-icon-view.c
338 -@@ -1772,20 +1772,6 @@ band_select_ended_callback (NautilusIconContainer *container,
339 - nautilus_view_stop_batching_selection_changes (NAUTILUS_VIEW (icon_view));
340 - }
341 -
342 --static void
343 --renaming_icon_callback (NautilusIconContainer *container,
344 -- GtkWidget *widget,
345 -- gpointer callback_data)
346 --{
347 -- NautilusView *directory_view;
348 --
349 -- directory_view = NAUTILUS_VIEW (callback_data);
350 -- nautilus_clipboard_set_up_editable
351 -- (GTK_EDITABLE (widget),
352 -- nautilus_view_get_ui_manager (directory_view),
353 -- FALSE);
354 --}
355 --
356 - int
357 - nautilus_icon_view_compare_files (NautilusIconView *icon_view,
358 - NautilusFile *a,
359 -@@ -1990,23 +1976,39 @@ icon_position_changed_callback (NautilusIconContainer *container,
360 -
361 - /* Attempt to change the filename to the new text. Notify user if operation fails. */
362 - static void
363 --nautilus_icon_view_icon_text_changed_callback (NautilusIconContainer *container,
364 -- NautilusFile *file,
365 -- char *new_name,
366 -- NautilusIconView *icon_view)
367 -+icon_rename_ended_cb (NautilusIconContainer *container,
368 -+ NautilusFile *file,
369 -+ const char *new_name,
370 -+ NautilusIconView *icon_view)
371 - {
372 - g_assert (NAUTILUS_IS_FILE (file));
373 -- g_assert (new_name != NULL);
374 -+
375 -+ nautilus_view_set_is_renaming (NAUTILUS_VIEW (icon_view), FALSE);
376 -
377 - /* Don't allow a rename with an empty string. Revert to original
378 - * without notifying the user.
379 - */
380 -- if (new_name[0] == '\0') {
381 -+ if ((new_name == NULL) || (new_name[0] == '\0')) {
382 - return;
383 - }
384 -+
385 - nautilus_rename_file (file, new_name, NULL, NULL);
386 - }
387 -
388 -+static void
389 -+icon_rename_started_cb (NautilusIconContainer *container,
390 -+ GtkWidget *widget,
391 -+ gpointer callback_data)
392 -+{
393 -+ NautilusView *directory_view;
394 -+
395 -+ directory_view = NAUTILUS_VIEW (callback_data);
396 -+ nautilus_clipboard_set_up_editable
397 -+ (GTK_EDITABLE (widget),
398 -+ nautilus_view_get_ui_manager (directory_view),
399 -+ FALSE);
400 -+}
401 -+
402 - static char *
403 - get_icon_uri_callback (NautilusIconContainer *container,
404 - NautilusFile *file,
405 -@@ -2313,8 +2315,6 @@ create_icon_container (NautilusIconView *icon_view)
406 - G_CALLBACK (icon_container_context_click_background_callback), icon_view, 0);
407 - g_signal_connect_object (icon_container, "icon_position_changed",
408 - G_CALLBACK (icon_position_changed_callback), icon_view, 0);
409 -- g_signal_connect_object (icon_container, "icon_text_changed",
410 -- G_CALLBACK (nautilus_icon_view_icon_text_changed_callback), icon_view, 0);
411 - g_signal_connect_object (icon_container, "selection_changed",
412 - G_CALLBACK (selection_changed_callback), icon_view, 0);
413 - /* FIXME: many of these should move into fm-icon-container as virtual methods */
414 -@@ -2332,8 +2332,10 @@ create_icon_container (NautilusIconView *icon_view)
415 - G_CALLBACK (get_stored_icon_position_callback), icon_view, 0);
416 - g_signal_connect_object (icon_container, "layout_changed",
417 - G_CALLBACK (layout_changed_callback), icon_view, 0);
418 -- g_signal_connect_object (icon_container, "renaming_icon",
419 -- G_CALLBACK (renaming_icon_callback), icon_view, 0);
420 -+ g_signal_connect_object (icon_container, "icon_rename_started",
421 -+ G_CALLBACK (icon_rename_started_cb), icon_view, 0);
422 -+ g_signal_connect_object (icon_container, "icon_rename_ended",
423 -+ G_CALLBACK (icon_rename_ended_cb), icon_view, 0);
424 - g_signal_connect_object (icon_container, "icon_stretch_started",
425 - G_CALLBACK (nautilus_view_update_menus), icon_view,
426 - G_CONNECT_SWAPPED);
427 -diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c
428 -index 2858af5..cf30a93 100644
429 ---- a/src/nautilus-list-view.c
430 -+++ b/src/nautilus-list-view.c
431 -@@ -1205,8 +1205,10 @@ editable_focus_out_cb (GtkWidget *widget,
432 - {
433 - NautilusListView *view = user_data;
434 -
435 -- nautilus_view_unfreeze_updates (NAUTILUS_VIEW (view));
436 - view->details->editable_widget = NULL;
437 -+
438 -+ nautilus_view_set_is_renaming (NAUTILUS_VIEW (view), FALSE);
439 -+ nautilus_view_unfreeze_updates (NAUTILUS_VIEW (view));
440 - }
441 -
442 - static void
443 -@@ -1236,10 +1238,11 @@ cell_renderer_editing_started_cb (GtkCellRenderer *renderer,
444 -
445 - static void
446 - cell_renderer_editing_canceled (GtkCellRendererText *cell,
447 -- NautilusListView *view)
448 -+ NautilusListView *view)
449 - {
450 - view->details->editable_widget = NULL;
451 -
452 -+ nautilus_view_set_is_renaming (NAUTILUS_VIEW (view), FALSE);
453 - nautilus_view_unfreeze_updates (NAUTILUS_VIEW (view));
454 - }
455 -
456 -@@ -1247,13 +1250,14 @@ static void
457 - cell_renderer_edited (GtkCellRendererText *cell,
458 - const char *path_str,
459 - const char *new_text,
460 -- NautilusListView *view)
461 -+ NautilusListView *view)
462 - {
463 - GtkTreePath *path;
464 - NautilusFile *file;
465 - GtkTreeIter iter;
466 -
467 - view->details->editable_widget = NULL;
468 -+ nautilus_view_set_is_renaming (NAUTILUS_VIEW (view), FALSE);
469 -
470 - /* Don't allow a rename with an empty string. Revert to original
471 - * without notifying the user.
472 -@@ -2912,6 +2916,9 @@ nautilus_list_view_start_renaming_file (NautilusView *view,
473 - return;
474 - }
475 -
476 -+ /* call parent class to make sure the right icon is selected */
477 -+ NAUTILUS_VIEW_CLASS (nautilus_list_view_parent_class)->start_renaming_file (view, file, select_all);
478 -+
479 - /* Freeze updates to the view to prevent losing rename focus when the tree view updates */
480 - nautilus_view_freeze_updates (NAUTILUS_VIEW (view));
481 -
482 -diff --git a/src/nautilus-view.c b/src/nautilus-view.c
483 -index 69379b0..399e8f6 100644
484 ---- a/src/nautilus-view.c
485 -+++ b/src/nautilus-view.c
486 -@@ -231,6 +231,8 @@ struct NautilusViewDetails
487 - guint updates_queued;
488 - gboolean needs_reload;
489 -
490 -+ gboolean is_renaming;
491 -+
492 - gboolean sort_directories_first;
493 -
494 - gboolean show_foreign_files;
495 -@@ -4090,11 +4092,26 @@ can_rename_file (NautilusView *view, NautilusFile *file)
496 - return nautilus_file_can_rename (file);
497 - }
498 -
499 -+gboolean
500 -+nautilus_view_get_is_renaming (NautilusView *view)
501 -+{
502 -+ return view->details->is_renaming;
503 -+}
504 -+
505 -+void
506 -+nautilus_view_set_is_renaming (NautilusView *view,
507 -+ gboolean is_renaming)
508 -+{
509 -+ view->details->is_renaming = is_renaming;
510 -+}
511 -+
512 - static void
513 - start_renaming_file (NautilusView *view,
514 - NautilusFile *file,
515 - gboolean select_all)
516 - {
517 -+ view->details->is_renaming = TRUE;
518 -+
519 - if (file != NULL) {
520 - nautilus_view_select_file (view, file);
521 - }
522 -diff --git a/src/nautilus-view.h b/src/nautilus-view.h
523 -index 8d2e124..54f4650 100644
524 ---- a/src/nautilus-view.h
525 -+++ b/src/nautilus-view.h
526 -@@ -353,6 +353,9 @@ gboolean nautilus_view_handle_scroll_event (NautilusView
527 -
528 - void nautilus_view_freeze_updates (NautilusView *view);
529 - void nautilus_view_unfreeze_updates (NautilusView *view);
530 -+gboolean nautilus_view_get_is_renaming (NautilusView *view);
531 -+void nautilus_view_set_is_renaming (NautilusView *view,
532 -+ gboolean renaming);
533 - void nautilus_view_add_subdirectory (NautilusView *view,
534 - NautilusDirectory*directory);
535 - void nautilus_view_remove_subdirectory (NautilusView *view,
536 ---
537 -cgit v0.9.0.2
538
539 diff --git a/gnome-base/nautilus/files/nautilus-3.1.90-previewer-gerror-leak.patch b/gnome-base/nautilus/files/nautilus-3.1.90-previewer-gerror-leak.patch
540 deleted file mode 100644
541 index 8294c88..0000000
542 --- a/gnome-base/nautilus/files/nautilus-3.1.90-previewer-gerror-leak.patch
543 +++ /dev/null
544 @@ -1,20 +0,0 @@
545 -From af0022fc388a587726f1186bbe131c666e4d50a3 Mon Sep 17 00:00:00 2001
546 -From: Tomas Bzatek <tbzatek@××××××.com>
547 -Date: Fri, 02 Sep 2011 16:21:58 +0000
548 -Subject: previewer: Fix leaked GError
549 -
550 ----
551 -diff --git a/src/nautilus-previewer.c b/src/nautilus-previewer.c
552 -index 742e083..3f53fce 100644
553 ---- a/src/nautilus-previewer.c
554 -+++ b/src/nautilus-previewer.c
555 -@@ -84,6 +84,7 @@ nautilus_previewer_init (NautilusPreviewer *self)
556 -
557 - if (error != NULL) {
558 - g_printerr ("Unable to initialize DBus connection: %s", error->message);
559 -+ g_error_free (error);
560 - return;
561 - }
562 - }
563 ---
564 -cgit v0.9.0.2
565
566 diff --git a/gnome-base/nautilus/files/nautilus-3.1.90-revert-f76c50a0.patch b/gnome-base/nautilus/files/nautilus-3.1.90-revert-f76c50a0.patch
567 deleted file mode 100644
568 index a7d55c3..0000000
569 --- a/gnome-base/nautilus/files/nautilus-3.1.90-revert-f76c50a0.patch
570 +++ /dev/null
571 @@ -1,151 +0,0 @@
572 -From 88b535828ddacd7ec2313d52a21f164aee535fa3 Mon Sep 17 00:00:00 2001
573 -From: Cosimo Cecchi <cosimoc@×××××.org>
574 -Date: Thu, 08 Sep 2011 14:29:29 +0000
575 -Subject: Revert "window: reverse the order of key-press event processing"
576 -
577 -This reverts commit f76c50a0e46aa7786820f76b3f71b57b44b8d7fb.
578 ----
579 -diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c
580 -index bff309a..3aa7d32 100644
581 ---- a/libnautilus-private/nautilus-icon-container.c
582 -+++ b/libnautilus-private/nautilus-icon-container.c
583 -@@ -5492,6 +5492,12 @@ key_press_event (GtkWidget *widget,
584 - "context_click_background");
585 - }
586 - break;
587 -+ case GDK_KEY_v:
588 -+ /* Eat Control + v to not enable type ahead */
589 -+ if ((event->state & GDK_CONTROL_MASK) != 0) {
590 -+ handled = TRUE;
591 -+ }
592 -+ break;
593 - default:
594 - break;
595 - }
596 -@@ -5507,8 +5513,7 @@ key_press_event (GtkWidget *widget,
597 - if (!handled &&
598 - event->keyval != GDK_KEY_slash /* don't steal slash key event, used for "go to" */ &&
599 - event->keyval != GDK_KEY_BackSpace &&
600 -- event->keyval != GDK_KEY_Delete &&
601 -- !(event->keyval == GDK_KEY_v && event->state == GDK_CONTROL_MASK)) {
602 -+ event->keyval != GDK_KEY_Delete) {
603 - GdkEvent *new_event;
604 - GdkWindow *window;
605 - char *old_text;
606 -diff --git a/src/nautilus-list-view.c b/src/nautilus-list-view.c
607 -index 1cc69e2..2858af5 100644
608 ---- a/src/nautilus-list-view.c
609 -+++ b/src/nautilus-list-view.c
610 -@@ -1004,20 +1004,6 @@ subdirectory_unloaded_callback (NautilusListModel *model,
611 - }
612 -
613 - static gboolean
614 --key_release_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_data)
615 --{
616 -- switch (event->keyval) {
617 -- case GDK_KEY_v:
618 -- /* Re-enable tree search entry; disabled in key_press_callback */
619 -- if ((event->state & GDK_CONTROL_MASK) != 0) {
620 -- gtk_tree_view_set_enable_search (GTK_TREE_VIEW (widget), TRUE);
621 -- }
622 -- }
623 --
624 -- return FALSE;
625 --}
626 --
627 --static gboolean
628 - key_press_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_data)
629 - {
630 - NautilusView *view;
631 -@@ -1088,21 +1074,9 @@ key_press_callback (GtkWidget *widget, GdkEventKey *event, gpointer callback_dat
632 - handled = TRUE;
633 - break;
634 - case GDK_KEY_v:
635 -- /* HACK: see https://bugzilla.gnome.org/show_bug.cgi?id=314431
636 -- *
637 -- * We force event propagating to the focus window before the keybindings
638 -- * in nautilus-window.c:nautilus_window_key_press_event(),
639 -- * but that will trigger the type-ahead window when Ctrl+V is pressed.
640 -- * We used to special-case Ctrl+V here, and handle the event,
641 -- * to block the default GtkTreeView handler to run and show the window,
642 -- * but that's ineffective as well, because it would break Copy/Paste, as keybindings
643 -- * are now processed later, and they won't run if we return TRUE here.
644 -- * So, we resort to disabling search while the handler runs, and re-enable it later
645 -- * in the key_release callback, while not handling the event, so the accelerator
646 -- * can still run.
647 -- */
648 -+ /* Eat Control + v to not enable type ahead */
649 - if ((event->state & GDK_CONTROL_MASK) != 0) {
650 -- gtk_tree_view_set_enable_search (tree_view, FALSE);
651 -+ handled = TRUE;
652 - }
653 - break;
654 -
655 -@@ -1648,8 +1622,6 @@ create_and_set_up_tree_view (NautilusListView *view)
656 - G_CALLBACK (button_release_callback), view, 0);
657 - g_signal_connect_object (view->details->tree_view, "key_press_event",
658 - G_CALLBACK (key_press_callback), view, 0);
659 -- g_signal_connect_object (view->details->tree_view, "key_release_event",
660 -- G_CALLBACK (key_release_callback), view, 0);
661 - g_signal_connect_object (view->details->tree_view, "popup_menu",
662 - G_CALLBACK (popup_menu_callback), view, 0);
663 - g_signal_connect_object (view->details->tree_view, "row_expanded",
664 -diff --git a/src/nautilus-window.c b/src/nautilus-window.c
665 -index 09a3f85..810f69f 100644
666 ---- a/src/nautilus-window.c
667 -+++ b/src/nautilus-window.c
668 -@@ -1091,27 +1091,10 @@ static gboolean
669 - nautilus_window_key_press_event (GtkWidget *widget,
670 - GdkEventKey *event)
671 - {
672 -- static gpointer grand_parent_class = NULL;
673 - NautilusWindow *window;
674 - int i;
675 -- gboolean handled;
676 -
677 - window = NAUTILUS_WINDOW (widget);
678 -- handled = FALSE;
679 --
680 -- if (!grand_parent_class) {
681 -- grand_parent_class = g_type_class_peek_parent (nautilus_window_parent_class);
682 -- }
683 --
684 -- /* See https://bugzilla.gnome.org/show_bug.cgi?id=314431
685 -- *
686 -- * We need to handle the keybindings for the currently focused widget
687 -- * before the common accelerator bindings.
688 -- */
689 -- handled = gtk_window_propagate_key_event (GTK_WINDOW (window), event);
690 -- if (handled) {
691 -- return TRUE;
692 -- }
693 -
694 - for (i = 0; i < G_N_ELEMENTS (extra_window_keybindings); i++) {
695 - if (extra_window_keybindings[i].keyval == event->keyval) {
696 -@@ -1129,22 +1112,14 @@ nautilus_window_key_press_event (GtkWidget *widget,
697 - g_assert (action != NULL);
698 - if (gtk_action_is_sensitive (action)) {
699 - gtk_action_activate (action);
700 -- handled = TRUE;
701 -+ return TRUE;
702 - }
703 -
704 - break;
705 - }
706 - }
707 -
708 -- if (!handled) {
709 -- handled = gtk_window_activate_key (GTK_WINDOW (window), event);
710 -- }
711 --
712 -- if (!handled) {
713 -- handled = GTK_WIDGET_CLASS (grand_parent_class)->key_press_event (widget, event);
714 -- }
715 --
716 -- return handled;
717 -+ return GTK_WIDGET_CLASS (nautilus_window_parent_class)->key_press_event (widget, event);
718 - }
719 -
720 - /*
721 ---
722 -cgit v0.9.0.2
723
724 diff --git a/gnome-base/nautilus/files/nautilus-3.1.90-window-keybindings.patch b/gnome-base/nautilus/files/nautilus-3.1.90-window-keybindings.patch
725 deleted file mode 100644
726 index cb1971a..0000000
727 --- a/gnome-base/nautilus/files/nautilus-3.1.90-window-keybindings.patch
728 +++ /dev/null
729 @@ -1,47 +0,0 @@
730 -From 92e40dd094a812db6bcc3e60c0830d20b3f07b15 Mon Sep 17 00:00:00 2001
731 -From: Cosimo Cecchi <cosimoc@×××××.org>
732 -Date: Thu, 08 Sep 2011 16:07:37 +0000
733 -Subject: window: steal all accelerators/mnemonics keybindings when renaming
734 -
735 -If we're renaming, we really want to ignore all the accelerators
736 -and mnemonics coming from NautilusWindow and NautilusView, as they might
737 -conflict with the regular bindings expected in an editable widget, such
738 -as an editable GtkCellRendererText or EelEditableLabel.
739 -This should fix all the recent keybinding-related regressions, such as
740 -
741 -https://bugzilla.gnome.org/show_bug.cgi?id=658105
742 -https://bugzilla.gnome.org/show_bug.cgi?id=651574
743 ----
744 -diff --git a/src/nautilus-window.c b/src/nautilus-window.c
745 -index 810f69f..1d86e26 100644
746 ---- a/src/nautilus-window.c
747 -+++ b/src/nautilus-window.c
748 -@@ -1092,10 +1092,26 @@ nautilus_window_key_press_event (GtkWidget *widget,
749 - GdkEventKey *event)
750 - {
751 - NautilusWindow *window;
752 -+ NautilusWindowSlot *active_slot;
753 -+ NautilusView *view;
754 - int i;
755 -
756 - window = NAUTILUS_WINDOW (widget);
757 -
758 -+ active_slot = nautilus_window_get_active_slot (window);
759 -+ view = active_slot->content_view;
760 -+
761 -+ if (view != NULL && nautilus_view_get_is_renaming (view)) {
762 -+ /* if we're renaming, just forward the event to the
763 -+ * focused widget and return. We don't want to process the window
764 -+ * accelerator bindings, as they might conflict with the
765 -+ * editable widget bindings.
766 -+ */
767 -+ if (gtk_window_propagate_key_event (GTK_WINDOW (window), event)) {
768 -+ return TRUE;
769 -+ }
770 -+ }
771 -+
772 - for (i = 0; i < G_N_ELEMENTS (extra_window_keybindings); i++) {
773 - if (extra_window_keybindings[i].keyval == event->keyval) {
774 - const GList *action_groups;
775 ---
776 -cgit v0.9.0.2
777
778 diff --git a/gnome-base/nautilus/files/nautilus-3.1.90-window-unref-NULL.patch b/gnome-base/nautilus/files/nautilus-3.1.90-window-unref-NULL.patch
779 deleted file mode 100644
780 index 714e9c7..0000000
781 --- a/gnome-base/nautilus/files/nautilus-3.1.90-window-unref-NULL.patch
782 +++ /dev/null
783 @@ -1,29 +0,0 @@
784 -From ee73c255d75165607c7f04defd5e8edfa3524914 Mon Sep 17 00:00:00 2001
785 -From: Cosimo Cecchi <cosimoc@×××××.org>
786 -Date: Thu, 08 Sep 2011 18:53:45 +0000
787 -Subject: window: make sure not to unref NULL GFiles
788 -
789 -The GFile pointed by parent here can be NULL after the cycle, so fold
790 -the unref in the != NULL block.
791 ----
792 -diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c
793 -index 247f66a..66d47cf 100644
794 ---- a/src/nautilus-window-manage-views.c
795 -+++ b/src/nautilus-window-manage-views.c
796 -@@ -712,11 +712,13 @@ begin_location_change (NautilusWindowSlot *slot,
797 - from_folder = parent;
798 - parent = g_file_get_parent (from_folder);
799 - }
800 -+
801 - if (parent != NULL) {
802 - new_selection = g_list_prepend (NULL, nautilus_file_get (from_folder));
803 -+ g_object_unref (parent);
804 - }
805 -+
806 - g_object_unref (from_folder);
807 -- g_object_unref (parent);
808 - }
809 -
810 - end_location_change (slot);
811 ---
812 -cgit v0.9.0.2
813
814 diff --git a/gnome-base/nautilus/nautilus-3.1.90.ebuild b/gnome-base/nautilus/nautilus-3.2.0.ebuild
815 similarity index 79%
816 rename from gnome-base/nautilus/nautilus-3.1.90.ebuild
817 rename to gnome-base/nautilus/nautilus-3.2.0.ebuild
818 index d3e1fa7..1f0bba2 100644
819 --- a/gnome-base/nautilus/nautilus-3.1.90.ebuild
820 +++ b/gnome-base/nautilus/nautilus-3.2.0.ebuild
821 @@ -6,7 +6,7 @@ EAPI="4"
822 GCONF_DEBUG="no"
823 GNOME2_LA_PUNT="yes"
824
825 -inherit eutils gnome2 virtualx
826 +inherit gnome2 virtualx
827 if [[ ${PV} = 9999 ]]; then
828 inherit gnome2-live
829 fi
830 @@ -21,9 +21,11 @@ if [[ ${PV} = 9999 ]]; then
831 else
832 KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux"
833 fi
834 -IUSE="doc exif gnome +introspection packagekit +previewer sendto xmp"
835 +IUSE="doc exif gnome +introspection packagekit +previewer sendto tracker xmp"
836
837 -COMMON_DEPEND=">=dev-libs/glib-2.29.13:2
838 +# Require {glib,gdbus-codegen}-2.30.0 due to GDBus API changes between 2.29.92
839 +# and 2.30.0
840 +COMMON_DEPEND=">=dev-libs/glib-2.30.0:2
841 >=x11-libs/pango-1.28.3
842 >=x11-libs/gtk+-3.1.6:3[introspection?]
843 >=dev-libs/libxml2-2.7.8:2
844 @@ -38,10 +40,11 @@ COMMON_DEPEND=">=dev-libs/glib-2.29.13:2
845
846 exif? ( >=media-libs/libexif-0.6.20 )
847 introspection? ( >=dev-libs/gobject-introspection-0.6.4 )
848 + tracker? ( >=app-misc/tracker-0.12 )
849 xmp? ( >=media-libs/exempi-2.1.0 )"
850 DEPEND="${COMMON_DEPEND}
851 >=dev-lang/perl-5
852 - dev-util/gdbus-codegen
853 + >=dev-util/gdbus-codegen-2.30.0
854 >=dev-util/pkgconfig-0.9
855 >=dev-util/intltool-0.40.1
856 sys-devel/gettext
857 @@ -67,22 +70,12 @@ pkg_setup() {
858 $(use_enable introspection)
859 $(use_enable packagekit)
860 $(use_enable sendto nst-extension)
861 + $(use_enable tracker)
862 $(use_enable xmp)"
863 DOCS="AUTHORS ChangeLog* HACKING MAINTAINERS NEWS README THANKS TODO"
864 }
865
866 src_prepare() {
867 - # Gentoo bug #365779 + https://bugzilla.gnome.org/show_bug.cgi?id=651209
868 - epatch "${FILESDIR}/${PN}-3.0.2-segfault-in-gtk_icon_info_load_symbolic.patch"
869 -
870 - # Useful patches from upstream, will be in next release
871 - epatch "${FILESDIR}/${P}-previewer-gerror-leak.patch"
872 - epatch "${FILESDIR}/${P}-XDG_CURRENT_DESKTOP.patch"
873 - epatch "${FILESDIR}/${P}-revert-f76c50a0.patch"
874 - epatch "${FILESDIR}/${P}-is_renaming.patch"
875 - epatch "${FILESDIR}/${P}-window-keybindings.patch"
876 - epatch "${FILESDIR}/${P}-window-unref-NULL.patch"
877 -
878 gnome2_src_prepare
879
880 # Remove crazy CFLAGS
881
882 diff --git a/gnome-base/nautilus/nautilus-9999.ebuild b/gnome-base/nautilus/nautilus-9999.ebuild
883 index 2e6f8b1..1f0bba2 100644
884 --- a/gnome-base/nautilus/nautilus-9999.ebuild
885 +++ b/gnome-base/nautilus/nautilus-9999.ebuild
886 @@ -6,7 +6,7 @@ EAPI="4"
887 GCONF_DEBUG="no"
888 GNOME2_LA_PUNT="yes"
889
890 -inherit eutils gnome2 virtualx
891 +inherit gnome2 virtualx
892 if [[ ${PV} = 9999 ]]; then
893 inherit gnome2-live
894 fi
895 @@ -21,9 +21,11 @@ if [[ ${PV} = 9999 ]]; then
896 else
897 KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux"
898 fi
899 -IUSE="doc exif gnome +introspection packagekit +previewer sendto xmp"
900 +IUSE="doc exif gnome +introspection packagekit +previewer sendto tracker xmp"
901
902 -COMMON_DEPEND=">=dev-libs/glib-2.29.13:2
903 +# Require {glib,gdbus-codegen}-2.30.0 due to GDBus API changes between 2.29.92
904 +# and 2.30.0
905 +COMMON_DEPEND=">=dev-libs/glib-2.30.0:2
906 >=x11-libs/pango-1.28.3
907 >=x11-libs/gtk+-3.1.6:3[introspection?]
908 >=dev-libs/libxml2-2.7.8:2
909 @@ -38,10 +40,11 @@ COMMON_DEPEND=">=dev-libs/glib-2.29.13:2
910
911 exif? ( >=media-libs/libexif-0.6.20 )
912 introspection? ( >=dev-libs/gobject-introspection-0.6.4 )
913 + tracker? ( >=app-misc/tracker-0.12 )
914 xmp? ( >=media-libs/exempi-2.1.0 )"
915 DEPEND="${COMMON_DEPEND}
916 >=dev-lang/perl-5
917 - dev-util/gdbus-codegen
918 + >=dev-util/gdbus-codegen-2.30.0
919 >=dev-util/pkgconfig-0.9
920 >=dev-util/intltool-0.40.1
921 sys-devel/gettext
922 @@ -67,6 +70,7 @@ pkg_setup() {
923 $(use_enable introspection)
924 $(use_enable packagekit)
925 $(use_enable sendto nst-extension)
926 + $(use_enable tracker)
927 $(use_enable xmp)"
928 DOCS="AUTHORS ChangeLog* HACKING MAINTAINERS NEWS README THANKS TODO"
929 }