aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell-view.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2001-09-14 05:11:22 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2001-09-14 05:11:22 +0800
commitc788ba0fafe0143c06efb32a633aef139d21e142 (patch)
tree2c593a485ad3d35f6f453f1f46b7a1394d828337 /shell/e-shell-view.c
parent080576bf0dc05633d2e0d4ed7fef8db98a853fc9 (diff)
downloadgsoc2013-evolution-c788ba0fafe0143c06efb32a633aef139d21e142.tar.gz
gsoc2013-evolution-c788ba0fafe0143c06efb32a633aef139d21e142.tar.zst
gsoc2013-evolution-c788ba0fafe0143c06efb32a633aef139d21e142.zip
Disable DnD on the EStorageSetView to avoid strange behaviors.
* e-shell-view.c (pop_up_folder_bar): Disable DnD on the EStorageSetView to avoid strange behaviors. (reparent_storage_set_view_box_and_destroy_popup): Re-enable DnD here. (popdown_transient_folder_bar): And here as well. * evolution-storage-set-view-factory.c (evolution_storage_set_view_factory_new_view): Disable DnD on the EStorageSetView. * e-shell-folder-selection-dialog.c (e_shell_folder_selection_dialog_construct): Disable DnD on the EStorageSetView. * e-shell-folder-creation-dialog.c (add_storage_set_view): Disable DnD on the EStorageSetView. * e-storage-set-view.c: New member `allow_dnd' in `EStorageSetViewPrivate'. (init): Init to `allow_dnd' %TRUE. (tree_start_drag): If `allow_dnd' is false, don't start the drag and return %FALSE. (tree_drag_motion): If `allow_dnd' is false, return %FALSE. (e_storage_set_view_get_allow_dnd): New. (e_storage_set_view_set_allow_dnd): New. svn path=/trunk/; revision=12810
Diffstat (limited to 'shell/e-shell-view.c')
-rw-r--r--shell/e-shell-view.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c
index 2182c53d8d..974da73007 100644
--- a/shell/e-shell-view.c
+++ b/shell/e-shell-view.c
@@ -307,6 +307,10 @@ reparent_storage_set_view_box_and_destroy_popup (EShellView *shell_view)
gtk_widget_destroy (priv->folder_bar_popup);
priv->folder_bar_popup = NULL;
+
+ /* Re-enable DnD on the StorageSetView (it got disabled when displaying
+ the pop-up). */
+ e_storage_set_view_set_allow_dnd (E_STORAGE_SET_VIEW (priv->storage_set_view), TRUE);
}
static void
@@ -320,6 +324,10 @@ popdown_transient_folder_bar (EShellView *shell_view)
gtk_widget_hide (priv->storage_set_view_box);
e_shell_folder_title_bar_set_toggle_state (E_SHELL_FOLDER_TITLE_BAR (priv->folder_title_bar), FALSE);
+
+ /* Re-enable DnD on the StorageSetView (it got disabled when displaying
+ the pop-up). */
+ e_storage_set_view_set_allow_dnd (E_STORAGE_SET_VIEW (priv->storage_set_view), TRUE);
}
static int
@@ -485,6 +493,9 @@ pop_up_folder_bar (EShellView *shell_view)
gtk_widget_show (priv->storage_set_view_box);
gtk_widget_popup (priv->folder_bar_popup, x, y);
+
+ /* Disable DnD or "interesting" things will happen. */
+ e_storage_set_view_set_allow_dnd (E_STORAGE_SET_VIEW (priv->storage_set_view), FALSE);
}