gnome-panel r10798 - trunk/gnome-panel
- From: vuntz svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-panel r10798 - trunk/gnome-panel
- Date: Sun, 10 Feb 2008 21:59:38 +0000 (GMT)
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 <vuntz gnome org>
* 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),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]