aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.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.c
parent080576bf0dc05633d2e0d4ed7fef8db98a853fc9 (diff)
downloadgsoc2013-evolution-c788ba0fafe0143c06efb32a633aef139d21e142.tar
gsoc2013-evolution-c788ba0fafe0143c06efb32a633aef139d21e142.tar.gz
gsoc2013-evolution-c788ba0fafe0143c06efb32a633aef139d21e142.tar.bz2
gsoc2013-evolution-c788ba0fafe0143c06efb32a633aef139d21e142.tar.lz
gsoc2013-evolution-c788ba0fafe0143c06efb32a633aef139d21e142.tar.xz
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.c')
-rw-r--r--shell/e-shell.c30
1 files changed, 18 insertions, 12 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index a328e3384e..aa258f5bea 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -112,6 +112,11 @@ struct _EShellPrivate {
/* Configuration Database */
Bonobo_ConfigDatabase db;
+
+ /* Whether the shell is succesfully initialized. This is needed during
+ the start-up sequence, to avoid CORBA calls to do make wrong things
+ to happen while the shell is initializing. */
+ gboolean is_initialized;
};
@@ -842,6 +847,7 @@ init (EShell *shell)
priv->crash_type_names = NULL;
priv->line_status = E_SHELL_LINE_STATUS_ONLINE;
priv->db = CORBA_OBJECT_NIL;
+ priv->is_initialized = FALSE;
shell->priv = priv;
}
@@ -904,18 +910,7 @@ e_shell_construct (EShell *shell,
}
CORBA_exception_free (&ev);
-
- /* Now we can register into OAF. Notice that we shouldn't be
- registering into OAF until we are sure we can complete the
- process. */
-
- /* FIXME: Multi-display stuff. */
- corba_object = bonobo_object_corba_objref (BONOBO_OBJECT (shell));
- if (oaf_active_server_register (iid, corba_object) != OAF_REG_SUCCESS) {
- CORBA_exception_free (&ev);
- return E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER;
- }
-
+
if (! show_splash) {
splash = NULL;
} else {
@@ -984,6 +979,17 @@ e_shell_construct (EShell *shell,
e_shortcuts_add_default_group (priv->shortcuts);
g_free (shortcut_path);
+
+ /* Now we can register into OAF. Notice that we shouldn't be
+ registering into OAF until we are initialized. */
+
+ /* FIXME: Multi-display stuff. */
+ corba_object = bonobo_object_corba_objref (BONOBO_OBJECT (shell));
+ if (oaf_active_server_register (iid, corba_object) != OAF_REG_SUCCESS) {
+ CORBA_exception_free (&ev);
+ return E_SHELL_CONSTRUCT_RESULT_CANNOTREGISTER;
+ }
+
return E_SHELL_CONSTRUCT_RESULT_OK;
}