gnome-panel r11108 - branches/gnome-2-22/gnome-panel



Author: vuntz
Date: Fri May 16 15:45:13 2008
New Revision: 11108
URL: http://svn.gnome.org/viewvc/gnome-panel?rev=11108&view=rev

Log:
2008-05-16  Vincent Untz  <vuntz gnome org>

	* panel-menu-items.c: (activate_uri_on_screen): new, based on
	activate_uri
	(activate_uri): just call activate_uri_on_screen
	(volume_mount_cb): open the mount after having mounted it
	Fix bug #528423


Modified:
   branches/gnome-2-22/gnome-panel/ChangeLog
   branches/gnome-2-22/gnome-panel/panel-menu-items.c

Modified: branches/gnome-2-22/gnome-panel/panel-menu-items.c
==============================================================================
--- branches/gnome-2-22/gnome-panel/panel-menu-items.c	(original)
+++ branches/gnome-2-22/gnome-panel/panel-menu-items.c	Fri May 16 15:45:13 2008
@@ -97,18 +97,15 @@
 };
 
 static void
-activate_uri (GtkWidget  *menuitem,
-	      const char *path)
+activate_uri_on_screen (const char *path,
+			GdkScreen  *screen)
 {
 	GError    *error = NULL;
 	GFile     *file;
-	GdkScreen *screen;
 	char      *escaped;
 	char      *scheme;
 	char      *url;
 
-	screen = menuitem_to_screen (menuitem);
-	
 	scheme = g_uri_parse_scheme (path);
 	if (scheme) {
 		url = g_strdup (path);
@@ -146,6 +143,13 @@
 }
 
 static void
+activate_uri (GtkWidget  *menuitem,
+	      const char *path)
+{
+	activate_uri_on_screen (path, menuitem_to_screen (menuitem));
+}
+
+static void
 activate_home_uri (GtkWidget *menuitem,
 		   gpointer   data)
 {
@@ -575,11 +579,12 @@
 {
 	PanelVolumeMountData *mount_data = user_data;
 	GError *error;
-	char   *primary;
-	char   *name;
 
 	error = NULL;
 	if (!g_volume_mount_finish (G_VOLUME (source_object), res, &error)) {
+		char *primary;
+		char *name;
+
 		if (error->code != G_IO_ERROR_FAILED_HANDLED) {
 			name = g_volume_get_name (G_VOLUME (source_object));
 			primary = g_strdup_printf (_("Unable to mount %s"),
@@ -592,9 +597,19 @@
 			g_free (primary);
 		}
 		g_error_free (error);
+	} else {
+		GMount *mount;
+		GFile  *root;
+		char   *rootpath;
+
+		mount = g_volume_get_mount (G_VOLUME (source_object));
+		root = g_mount_get_root (mount);
+		rootpath = g_file_get_uri (root);
+		activate_uri_on_screen (rootpath, mount_data->screen);
+		g_object_unref (mount);
+		g_object_unref (root);
+		g_free (rootpath);
 	}
-	
-	//FIXME: should we activate the root of the new mount?
 
 	g_object_unref (mount_data->mount_op);
 	g_slice_free (PanelVolumeMountData, mount_data);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]