From 39e1b868fe021ab8fe04ade6774d04ed87c05a81 Mon Sep 17 00:00:00 2001 From: Christian Persch <chpe@cvs.gnome.org> Date: Sun, 10 Jul 2005 20:57:14 +0000 Subject: Implement a way to disallow dragging from resp. dropping on certain nodes. 2005-07-10 Christian Persch <chpe@cvs.gnome.org> * lib/ephy-node-common.h: * lib/ephy-node.c: (ephy_node_new_with_id), (ephy_node_signal_disconnect), (ephy_node_set_is_drag_source), (ephy_node_get_is_drag_source), (ephy_node_set_is_drag_dest), (ephy_node_get_is_drag_dest): * lib/ephy-node.h: * lib/widgets/ephy-node-view.c: (drag_motion_cb), (drag_data_received_cb): Implement a way to disallow dragging from resp. dropping on certain nodes. * src/bookmarks/ephy-bookmarks-editor.c: (ephy_bookmarks_editor_update_menu): * src/bookmarks/ephy-bookmarks.c: (save_filter), (save_filter_local), (ephy_bookmarks_save), (update_bookmark_keywords), (bookmark_is_categorized), (resolve_cb), (browse_cb), (ephy_local_bookmarks_init), (ephy_local_bookmarks_stop), (ephy_bookmarks_init), (ephy_bookmarks_finalize), (ephy_bookmarks_get_topic_uri), (ephy_bookmarks_find_keyword), (ephy_bookmarks_get_favorites), (ephy_bookmarks_get_local): * src/bookmarks/ephy-bookmarks.h: Implement "Local Sites" topic, filled with zeroconf-discovered bookmarks. Patch by Bastien Nocera, fixes bug #144969. --- lib/ephy-node.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'lib/ephy-node.c') diff --git a/lib/ephy-node.c b/lib/ephy-node.c index 9e98ccd8c..67889893b 100644 --- a/lib/ephy-node.c +++ b/lib/ephy-node.c @@ -69,6 +69,8 @@ struct _EphyNode int signal_id; guint emissions; guint invalidated_signals; + guint is_drag_source : 1; + guint is_drag_dest : 1; EphyNodeDb *db; }; @@ -365,6 +367,8 @@ ephy_node_new_with_id (EphyNodeDb *db, guint reserved_id) node->signal_id = 0; node->emissions = 0; node->invalidated_signals = 0; + node->is_drag_source = TRUE; + node->is_drag_dest = TRUE; _ephy_node_db_add_id (db, reserved_id, node); @@ -1273,6 +1277,32 @@ ephy_node_signal_disconnect (EphyNode *node, } } +void +ephy_node_set_is_drag_source (EphyNode *node, + gboolean allow) +{ + node->is_drag_source = allow != FALSE; +} + +gboolean +ephy_node_get_is_drag_source (EphyNode *node) +{ + return node->is_drag_source; +} + +void +ephy_node_set_is_drag_dest (EphyNode *node, + gboolean allow) +{ + node->is_drag_dest = allow != FALSE; +} + +gboolean +ephy_node_get_is_drag_dest (EphyNode *node) +{ + return node->is_drag_dest; +} + GType ephy_node_get_type (void) { -- cgit