+ char *title = NULL, *password_title, *p;
+ EvPageCache *page_cache;
+
+ if (window_title->document != NULL) {
+ char *doc_title;
+
+ page_cache = ev_page_cache_get (window_title->document);
+ g_return_if_fail (page_cache != NULL);
+ doc_title = (char *)ev_page_cache_get_title (page_cache);
+
+ /* Make sure we get a valid title back */
+ if (doc_title != NULL) {
+ doc_title = g_strstrip (doc_title);
+
+ if (doc_title[0] != '\0' &&
+ g_utf8_validate (doc_title, -1, NULL)) {
+ title = g_strdup (doc_title);
+ }
+ }
+ }
+
+ if (title && window_title->uri) {
+ ev_window_title_sanitize_extension (window_title, &title);
+ } else if (window_title->uri) {
+ title = get_filename_from_uri (window_title->uri);
+ } else if (!title) {
+ title = g_strdup (_("Document Viewer"));
+ }
+
+ for (p = title; *p; ++p) {
+ /* an '\n' byte is always ASCII, no need for UTF-8 special casing */
+ if (*p == '\n') *p = ' ';
+ }