aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2003-03-25 22:01:46 +0800
committerDan Winship <danw@src.gnome.org>2003-03-25 22:01:46 +0800
commit7733348dcc86add1bdd241e20f7b3afeb66250ec (patch)
treec2d300796ffc9e9822af582f509ab2ecfaad39cf /shell/e-shell.c
parent5d40c589ac1f330e06d6384ebd150f24f15c04a9 (diff)
downloadgsoc2013-evolution-7733348dcc86add1bdd241e20f7b3afeb66250ec.tar.gz
gsoc2013-evolution-7733348dcc86add1bdd241e20f7b3afeb66250ec.tar.zst
gsoc2013-evolution-7733348dcc86add1bdd241e20f7b3afeb66250ec.zip
add a "new_view_xid" arg, so the component has a window id to make use of
* Evolution-ShellComponent.idl (interactive): add a "new_view_xid" arg, so the component has a window id to make use of as a parent if it needs to pop up a dialog. * e-shell.c (set_interactive): Pass the new_view_xid when going interactive. (e_shell_set_interactive): Remove this since it wasn't being used, and couldn't be used for anything except lying to the components. * evolution-shell-component.c (evolution_shell_component_class_init): Update "interactive" signal definition (impl_interactive): Update prototype and signal emission * e-shell-marshal.list (NONE:BOOL,INT): add svn path=/trunk/; revision=20493
Diffstat (limited to 'shell/e-shell.c')
-rw-r--r--shell/e-shell.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index ff7a844ae3..69c959fbcb 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -204,6 +204,7 @@ set_interactive (EShell *shell,
{
EShellPrivate *priv;
GList *id_list, *p;
+ Window new_view_xid;
priv = shell->priv;
@@ -212,6 +213,16 @@ set_interactive (EShell *shell,
priv->is_interactive = interactive;
+ if (interactive) {
+ GtkWidget *new_view;
+
+ g_return_if_fail (priv->views && priv->views->data);
+ new_view = priv->views->data;
+
+ new_view_xid = GDK_WINDOW_XWINDOW (new_view->window);
+ } else
+ new_view_xid = None;
+
id_list = e_component_registry_get_id_list (priv->component_registry);
for (p = id_list; p != NULL; p = p->next) {
EvolutionShellComponentClient *shell_component_client;
@@ -225,7 +236,7 @@ set_interactive (EShell *shell,
CORBA_exception_init (&ev);
- GNOME_Evolution_ShellComponent_interactive (shell_component_objref, interactive, &ev);
+ GNOME_Evolution_ShellComponent_interactive (shell_component_objref, interactive, new_view_xid, &ev);
if (ev._major != CORBA_NO_EXCEPTION)
g_warning ("Error changing interactive status of component %s to %s -- %s\n",
id, interactive ? "TRUE" : "FALSE", BONOBO_EX_REPOID (&ev));
@@ -649,16 +660,6 @@ impl_Shell_setLineStatus (PortableServer_Servant servant,
}
-void
-e_shell_set_interactive (EShell *shell,
- gboolean interactive)
-{
- g_return_if_fail (E_IS_SHELL (shell));
-
- set_interactive (shell, interactive);
-}
-
-
/* Set up the ::Activity interface. */
static void