From 1743162eef31aab9bb28a2c8201240e7dc4bd1cd Mon Sep 17 00:00:00 2001 From: Chris Lahey Date: Fri, 9 Jan 2004 20:49:11 +0000 Subject: Added disable_bookmark_editing key. * data/epiphany-lockdown.schemas.in, lib/ephy-prefs.h: Added disable_bookmark_editing key. * lib/ephy-node-db.c, ephy-node-db.h, ephy-node.c: Added immutable property. * lib/egg/egg-editable-toolbar.c (drag_data_received_cb, toolbar_drag_motion_cb), src/ephy-toolbars-model.c (impl_get_item_id): Made these handle immutable models/node_dbs. * src/ephy-automation.c, src/ephy-session.c: Don't show the bookmark editor if disabled. * src/ephy-window.c: Disable a bunch of menus if bookmark editing is disabled. * src/bookmarks/ephy-bookmarks-import.c, src/bookmarks/ephy-bookmarks.c: Disable bookmark editing and importing is key is set. Uses immutable property. --- lib/egg/egg-editable-toolbar.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'lib/egg') diff --git a/lib/egg/egg-editable-toolbar.c b/lib/egg/egg-editable-toolbar.c index 746affc42..7d1fe1f8a 100755 --- a/lib/egg/egg-editable-toolbar.c +++ b/lib/egg/egg-editable-toolbar.c @@ -419,8 +419,7 @@ drag_data_received_cb (GtkWidget *widget, target = gtk_drag_dest_find_target (widget, context, NULL); type = egg_toolbars_model_get_item_type (etoolbar->priv->model, target); - id = egg_toolbars_model_get_item_id (etoolbar->priv->model, type, - selection_data->data); + id = egg_toolbars_model_get_item_id (etoolbar->priv->model, type, selection_data->data); /* This function can be called for two reasons * @@ -433,6 +432,13 @@ drag_data_received_cb (GtkWidget *widget, * actually add a new item to the toolbar. */ + if (id == NULL) + { + etoolbar->priv->pending = FALSE; + g_free (type); + return; + } + if (etoolbar->priv->pending) { etoolbar->priv->pending = FALSE; @@ -453,11 +459,6 @@ drag_data_received_cb (GtkWidget *widget, } else { - type = egg_toolbars_model_get_item_type (etoolbar->priv->model, - target); - id = egg_toolbars_model_get_item_id (etoolbar->priv->model, type, - selection_data->data); - egg_toolbars_model_add_item (etoolbar->priv->model, toolbar_pos, pos, id, type); } @@ -591,9 +592,12 @@ toolbar_drag_motion_cb (GtkWidget *widget, /* The handler will make sure the item is created */ gtk_drag_get_data (widget, context, target, time); - g_assert (etoolbar->priv->dragged_item); g_assert (!etoolbar->priv->pending); + if (etoolbar->priv->dragged_item == NULL) { + return TRUE; + } + g_object_ref (etoolbar->priv->dragged_item); gtk_object_sink (GTK_OBJECT (etoolbar->priv->dragged_item)); } -- cgit v1.2.3