aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
Diffstat (limited to 'shell')
-rw-r--r--shell/ChangeLog6
-rw-r--r--shell/Evolution-Shortcuts.idl7
-rw-r--r--shell/e-corba-shortcuts.c12
3 files changed, 23 insertions, 2 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index 2a09776847..79b0d524ef 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,5 +1,11 @@
2001-10-02 Ettore Perazzoli <ettore@ximian.com>
+ * e-shell-view.c (e_shell_view_construct): Use
+ `bonobo_ui_component_new_default()', not
+ `bonobo_ui_component_new()'.
+
+2001-10-02 Ettore Perazzoli <ettore@ximian.com>
+
* e-shell-view.c (storage_set_removed_folder_callback): New,
callback for the ::removed_folder signal on the shell's
EStorageSet.
diff --git a/shell/Evolution-Shortcuts.idl b/shell/Evolution-Shortcuts.idl
index 7ffb55a164..ffd3a9cf21 100644
--- a/shell/Evolution-Shortcuts.idl
+++ b/shell/Evolution-Shortcuts.idl
@@ -29,6 +29,8 @@ module Evolution {
typedef sequence<Group> GroupList;
exception NotFound {};
+ exception InvalidPosition {};
+ exception CannotRemove {};
readonly attribute GroupList groups; // FIXME: Could be non-readonly
@@ -39,9 +41,10 @@ module Evolution {
Shortcut get (in short group_num, in short item_num)
raises (NotFound);
- void addGroup (in short position, in string name);
+ void addGroup (in short position, in string name)
+ raises (InvalidPosition);
void removeGroup (in short group_num)
- raises (NotFound);
+ raises (NotFound, CannotRemove);
Group getGroup (in short group_num)
raises (NotFound);
diff --git a/shell/e-corba-shortcuts.c b/shell/e-corba-shortcuts.c
index 076b49d796..6a583d3b00 100644
--- a/shell/e-corba-shortcuts.c
+++ b/shell/e-corba-shortcuts.c
@@ -179,6 +179,12 @@ impl_addGroup (PortableServer_Servant servant,
corba_shortcuts = E_CORBA_SHORTCUTS (bonobo_object_from_servant (servant));
priv = corba_shortcuts->priv;
+ if (position == 0) {
+ CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
+ ex_GNOME_Evolution_Shortcuts_InvalidPosition, NULL);
+ return;
+ }
+
e_shortcuts_add_group (priv->shortcuts, position, name);
}
@@ -193,6 +199,12 @@ impl_removeGroup (PortableServer_Servant servant,
corba_shortcuts = E_CORBA_SHORTCUTS (bonobo_object_from_servant (servant));
priv = corba_shortcuts->priv;
+ if (group_num == 0) {
+ CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
+ ex_GNOME_Evolution_Shortcuts_CannotRemove, NULL);
+ return;
+ }
+
e_shortcuts_remove_group (priv->shortcuts, group_num);
}