aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2009-10-21 12:02:08 +0800
committerMatthew Barnes <mbarnes@redhat.com>2009-10-21 12:02:08 +0800
commitc15a8e695a4164ea0cb6c43dd8ae1370e772f1af (patch)
treedda6dab3f128bc95a2c89043f7412e2cc8dbf134 /shell
parent72854d0bb831b5b4e0d36a9d3ecbe06cfa94a450 (diff)
downloadgsoc2013-evolution-c15a8e695a4164ea0cb6c43dd8ae1370e772f1af.tar
gsoc2013-evolution-c15a8e695a4164ea0cb6c43dd8ae1370e772f1af.tar.gz
gsoc2013-evolution-c15a8e695a4164ea0cb6c43dd8ae1370e772f1af.tar.bz2
gsoc2013-evolution-c15a8e695a4164ea0cb6c43dd8ae1370e772f1af.tar.lz
gsoc2013-evolution-c15a8e695a4164ea0cb6c43dd8ae1370e772f1af.tar.xz
gsoc2013-evolution-c15a8e695a4164ea0cb6c43dd8ae1370e772f1af.tar.zst
gsoc2013-evolution-c15a8e695a4164ea0cb6c43dd8ae1370e772f1af.zip
Clean up e_shell_get_active_window()
Clarify the documentation and simplify the logic.
Diffstat (limited to 'shell')
-rw-r--r--shell/e-shell.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index 924441fa56..61ce8d7c02 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -1349,29 +1349,33 @@ e_shell_get_watched_windows (EShell *shell)
/**
* e_shell_get_active_window:
- * @shell: an #EShell; can be NULL, in that case is used
- * result of @e_shell_get_default
+ * @shell: an #EShell or %NULL to use the default shell
*
- * Returns: an active, the most recently focused, window.
+ * Returns the most recently focused watched window, according to
+ * e_shell_get_watched_windows(). Convenient for finding a parent
+ * for a transient window.
+ *
+ * Note the returned window is not necessarily an #EShellWindow.
+ *
+ * Returns: the most recently focused watched window
**/
GtkWindow *
e_shell_get_active_window (EShell *shell)
{
- GList *w;
- GtkWindow *window = NULL;
+ GList *watched_windows;
- if (!shell)
+ if (shell == NULL)
shell = e_shell_get_default ();
- g_return_val_if_fail (shell != NULL, NULL);
+ g_return_val_if_fail (E_IS_SHELL (shell), NULL);
- for (w = e_shell_get_watched_windows (shell); w && !window; w = w->next) {
- window = GTK_WINDOW (w->data);
- }
+ watched_windows = e_shell_get_watched_windows (shell);
- g_return_val_if_fail (window != NULL, NULL);
+ /* Sanity checks */
+ g_return_val_if_fail (watched_windows != NULL, NULL);
+ g_return_val_if_fail (GTK_IS_WINDOW (watched_windows->data), NULL);
- return window;
+ return GTK_WINDOW (watched_windows->data);
}
/**