Sophie

Sophie

distrib > Mandriva > 2011.0 > i586 > by-pkgid > a6cf605bd2a7b4eec3aaa60c783169bb > files > 6

nautilus-2.32.2.1-2.src.rpm

diff -p -up nautilus-2.27.2/libnautilus-private/apps_nautilus_preferences.schemas.in.lockdown-contextmenus nautilus-2.27.2/libnautilus-private/apps_nautilus_preferences.schemas.in
--- nautilus-2.27.2/libnautilus-private/apps_nautilus_preferences.schemas.in.lockdown-contextmenus	2009-06-15 10:05:58.000000000 +0200
+++ nautilus-2.27.2/libnautilus-private/apps_nautilus_preferences.schemas.in	2009-06-15 11:32:25.000000000 +0200
@@ -1186,6 +1186,21 @@ most cases, this should be left alone. -
          </long>
       </locale>
     </schema>
-        
+
+    <schema>
+      <key>/schemas/apps/nautilus/lockdown/disable_context_menus</key>
+      <applyto>/apps/nautilus/lockdown/disable_context_menus</applyto>
+      <owner>nautilus</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+         <short>Disable context menus in file views</short>
+         <long>
+          Set this to true if you are deploying a kiosk and don't want users
+          to access the context menu in file views.
+         </long>
+      </locale>
+    </schema>
+
   </schemalist>  
 </gconfschemafile>
diff -p -up nautilus-2.27.2/libnautilus-private/nautilus-debug-log.h.lockdown-contextmenus nautilus-2.27.2/libnautilus-private/nautilus-debug-log.h
--- nautilus-2.27.2/libnautilus-private/nautilus-debug-log.h.lockdown-contextmenus	2009-04-20 12:57:19.000000000 +0200
+++ nautilus-2.27.2/libnautilus-private/nautilus-debug-log.h	2009-06-15 11:32:25.000000000 +0200
@@ -30,6 +30,7 @@
 #define NAUTILUS_DEBUG_LOG_DOMAIN_USER		"USER"   /* always enabled */
 #define NAUTILUS_DEBUG_LOG_DOMAIN_ASYNC		"async"	 /* when asynchronous notifications come in */
 #define NAUTILUS_DEBUG_LOG_DOMAIN_GLOG          "GLog"	 /* used for GLog messages; don't use it yourself */
+#define NAUTILUS_DEBUG_LOG_DOMAIN_LOCKDOWN	"lockdown"	/* when things get *not* done due to lockdown */
 
 void nautilus_debug_log (gboolean is_milestone, const char *domain, const char *format, ...);
 
diff -p -up nautilus-2.27.2/libnautilus-private/nautilus-global-preferences.c.lockdown-contextmenus nautilus-2.27.2/libnautilus-private/nautilus-global-preferences.c
--- nautilus-2.27.2/libnautilus-private/nautilus-global-preferences.c.lockdown-contextmenus	2009-05-25 12:04:11.000000000 +0200
+++ nautilus-2.27.2/libnautilus-private/nautilus-global-preferences.c	2009-06-15 11:33:53.000000000 +0200
@@ -239,6 +239,10 @@ static const PreferenceDefault preferenc
 	  PREFERENCE_BOOLEAN,
 	  GINT_TO_POINTER (TRUE)
 	},
+	{ NAUTILUS_LOCKDOWN_DISABLE_CONTEXT_MENUS,
+	  PREFERENCE_BOOLEAN,
+	  GINT_TO_POINTER (FALSE)
+	},
 	{ NAUTILUS_PREFERENCES_SHOW_HIDDEN_FILES,
 	  PREFERENCE_BOOLEAN,
 	  GINT_TO_POINTER (FALSE)
diff -p -up nautilus-2.27.2/libnautilus-private/nautilus-global-preferences.h.lockdown-contextmenus nautilus-2.27.2/libnautilus-private/nautilus-global-preferences.h
--- nautilus-2.27.2/libnautilus-private/nautilus-global-preferences.h.lockdown-contextmenus	2009-05-25 12:04:11.000000000 +0200
+++ nautilus-2.27.2/libnautilus-private/nautilus-global-preferences.h	2009-06-15 11:34:42.000000000 +0200
@@ -33,6 +33,8 @@ G_BEGIN_DECLS
 /* Whether exit when last window destroyed */
 #define NAUTILUS_PREFERENCES_EXIT_WITH_LAST_WINDOW				"preferences/exit_with_last_window"
 
+#define NAUTILUS_LOCKDOWN_DISABLE_CONTEXT_MENUS			"lockdown/disable_context_menus"
+
 /* Which theme is active */
 #define NAUTILUS_PREFERENCES_THEME				"/desktop/gnome/file_views/icon_theme"
 
diff -p -up nautilus-2.27.2/src/file-manager/fm-directory-view.c.lockdown-contextmenus nautilus-2.27.2/src/file-manager/fm-directory-view.c
--- nautilus-2.27.2/src/file-manager/fm-directory-view.c.lockdown-contextmenus	2009-05-23 20:13:29.000000000 +0200
+++ nautilus-2.27.2/src/file-manager/fm-directory-view.c	2009-06-15 11:32:25.000000000 +0200
@@ -8081,6 +8081,12 @@ fm_directory_view_pop_up_selection_conte
 {
 	g_assert (FM_IS_DIRECTORY_VIEW (view));
 
+	if (eel_preferences_get_boolean (NAUTILUS_LOCKDOWN_DISABLE_CONTEXT_MENUS)) {
+		nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_LOCKDOWN,
+				    "Ignoring request to pop up the context menu for the view's selection");
+		return;
+	}
+
 	/* Make the context menu items not flash as they update to proper disabled,
 	 * etc. states by forcing menus to update now.
 	 */
@@ -8110,6 +8116,12 @@ fm_directory_view_pop_up_background_cont
 {
 	g_assert (FM_IS_DIRECTORY_VIEW (view));
 
+	if (eel_preferences_get_boolean (NAUTILUS_LOCKDOWN_DISABLE_CONTEXT_MENUS)) {
+		nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_LOCKDOWN,
+				    "Ignoring request to pop up the context menu for the view's background");
+		return;
+	}
+
 	/* Make the context menu items not flash as they update to proper disabled,
 	 * etc. states by forcing menus to update now.
 	 */
@@ -8217,6 +8229,12 @@ fm_directory_view_pop_up_location_contex
 
 	g_assert (FM_IS_DIRECTORY_VIEW (view));
 
+	if (eel_preferences_get_boolean (NAUTILUS_LOCKDOWN_DISABLE_CONTEXT_MENUS)) {
+		nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_LOCKDOWN,
+				    "Ignoring request to pop up the context menu for the view");
+		return;
+	}  
+
 	if (location != NULL) {
 		file = nautilus_file_get_by_uri (location);
 	} else {