Author: vuntz
Date: Sun Feb 10 21:59:38 2008
New Revision: 10798
URL: http://svn.gnome.org/viewvc/gnome-panel?rev=10798&view=rev

Log:
2008-02-10  Vincent Untz  <[EMAIL PROTECTED]>

        * panel-menu-items.c: (panel_menu_items_append_from_desktop): fix
        compilation
        (panel_place_menu_item_drives_changed): new
        (panel_place_menu_item_volumes_changed): new
        (panel_place_menu_item_finalize): disconnect new signal handlers
        (panel_place_menu_item_init): connect to the drive-* and volume-*
        signals too


Modified:
   trunk/gnome-panel/ChangeLog
   trunk/gnome-panel/panel-menu-items.c

Modified: trunk/gnome-panel/panel-menu-items.c
==============================================================================
--- trunk/gnome-panel/panel-menu-items.c        (original)
+++ trunk/gnome-panel/panel-menu-items.c        Sun Feb 10 21:59:38 2008
@@ -75,6 +75,12 @@
        GFileMonitor *bookmarks_monitor;
 
        GVolumeMonitor *volume_monitor;
+       gulong       drive_changed_id;
+       gulong       drive_connected_id;
+       gulong       drive_disconnected_id;
+       gulong       volume_added_id;
+       gulong       volume_changed_id;
+       gulong       volume_removed_id;
        gulong       mount_added_id;
        gulong       mount_changed_id;
        gulong       mount_removed_id;
@@ -229,7 +235,7 @@
        g_signal_connect (G_OBJECT (item), "button_press_event",
                          G_CALLBACK (menu_dummy_button_press_event), NULL);
 
-       uri = g_filename_to_uri (full_path);
+       uri = g_filename_to_uri (full_path, NULL, NULL);
 
        setup_uri_drag (item, uri, icon);
        g_free (uri);
@@ -961,6 +967,22 @@
 }
 
 static void
+panel_place_menu_item_drives_changed (GVolumeMonitor *monitor,
+                                     GDrive         *drive,
+                                     GtkWidget      *place_menu)
+{
+       panel_place_menu_item_recreate_menu (place_menu);
+}
+
+static void
+panel_place_menu_item_volumes_changed (GVolumeMonitor *monitor,
+                                      GVolume        *volume,
+                                      GtkWidget      *place_menu)
+{
+       panel_place_menu_item_recreate_menu (place_menu);
+}
+
+static void
 panel_place_menu_item_mounts_changed (GVolumeMonitor *monitor,
                                      GMount         *mount,
                                      GtkWidget      *place_menu)
@@ -1047,6 +1069,36 @@
        }
        menuitem->priv->bookmarks_monitor = NULL;
 
+       if (menuitem->priv->drive_changed_id)
+               g_signal_handler_disconnect (menuitem->priv->volume_monitor,
+                                            menuitem->priv->drive_changed_id);
+       menuitem->priv->drive_changed_id = 0;
+
+       if (menuitem->priv->drive_connected_id)
+               g_signal_handler_disconnect (menuitem->priv->volume_monitor,
+                                            
menuitem->priv->drive_connected_id);
+       menuitem->priv->drive_connected_id = 0;
+
+       if (menuitem->priv->drive_disconnected_id)
+               g_signal_handler_disconnect (menuitem->priv->volume_monitor,
+                                            
menuitem->priv->drive_disconnected_id);
+       menuitem->priv->drive_disconnected_id = 0;
+
+       if (menuitem->priv->volume_added_id)
+               g_signal_handler_disconnect (menuitem->priv->volume_monitor,
+                                            menuitem->priv->volume_added_id);
+       menuitem->priv->volume_added_id = 0;
+
+       if (menuitem->priv->volume_changed_id)
+               g_signal_handler_disconnect (menuitem->priv->volume_monitor,
+                                            menuitem->priv->volume_changed_id);
+       menuitem->priv->volume_changed_id = 0;
+
+       if (menuitem->priv->volume_removed_id)
+               g_signal_handler_disconnect (menuitem->priv->volume_monitor,
+                                            menuitem->priv->volume_removed_id);
+       menuitem->priv->volume_removed_id = 0;
+
        if (menuitem->priv->mount_added_id)
                g_signal_handler_disconnect (menuitem->priv->volume_monitor,
                                             menuitem->priv->mount_added_id);
@@ -1136,6 +1188,30 @@
 
        menuitem->priv->volume_monitor = g_volume_monitor_get ();
 
+       menuitem->priv->drive_changed_id = g_signal_connect 
(menuitem->priv->volume_monitor,
+                                                          "drive-changed",
+                                                          G_CALLBACK 
(panel_place_menu_item_drives_changed),
+                                                          menuitem);
+       menuitem->priv->drive_connected_id = g_signal_connect 
(menuitem->priv->volume_monitor,
+                                                            "drive-connected",
+                                                            G_CALLBACK 
(panel_place_menu_item_drives_changed),
+                                                            menuitem);
+       menuitem->priv->drive_disconnected_id = g_signal_connect 
(menuitem->priv->volume_monitor,
+                                                            
"drive-disconnected",
+                                                            G_CALLBACK 
(panel_place_menu_item_drives_changed),
+                                                            menuitem);
+       menuitem->priv->volume_added_id = g_signal_connect 
(menuitem->priv->volume_monitor,
+                                                          "volume-added",
+                                                          G_CALLBACK 
(panel_place_menu_item_volumes_changed),
+                                                          menuitem);
+       menuitem->priv->volume_changed_id = g_signal_connect 
(menuitem->priv->volume_monitor,
+                                                            "volume-changed",
+                                                            G_CALLBACK 
(panel_place_menu_item_volumes_changed),
+                                                            menuitem);
+       menuitem->priv->volume_removed_id = g_signal_connect 
(menuitem->priv->volume_monitor,
+                                                            "volume-removed",
+                                                            G_CALLBACK 
(panel_place_menu_item_volumes_changed),
+                                                            menuitem);
        menuitem->priv->mount_added_id = g_signal_connect 
(menuitem->priv->volume_monitor,
                                                           "mount-added",
                                                           G_CALLBACK 
(panel_place_menu_item_mounts_changed),
_______________________________________________
SVN-commits-list mailing list (read only)
http://mail.gnome.org/mailman/listinfo/svn-commits-list

Want to limit the commits to a few modules? Go to above URL, log in to edit 
your options and select the modules ('topics') you want.
Module maintainer? It is possible to set the reply-to to your development 
mailing list. Email [EMAIL PROTECTED] if interested.

Reply via email to