X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=shell%2Fev-window-title.c;h=94dd33315f666c2c718c98618e76ec9cfab44db5;hb=1e63533e4d2fe74b17883a51f984ecacb9138231;hp=baafa74f399278d607418375085c43efb0c1d0d0;hpb=28ffb1e81e22421674091f6ad73613684bad12de;p=evince.git diff --git a/shell/ev-window-title.c b/shell/ev-window-title.c index baafa74f..94dd3331 100644 --- a/shell/ev-window-title.c +++ b/shell/ev-window-title.c @@ -14,7 +14,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include @@ -75,7 +75,7 @@ get_filename_from_uri (const char *uri) char *filename; char *basename; - filename = escape_uri_for_display (uri); + filename = g_uri_unescape_string (uri, NULL); basename = g_path_get_basename (filename); g_free(filename); @@ -83,7 +83,7 @@ get_filename_from_uri (const char *uri) } /* Some docs report titles with confusing extensions (ex. .doc for pdf). - Let's show the filename in this case */ + Erase the confusing extension of the title */ static void ev_window_title_sanitize_title (EvWindowTitle *window_title, char **title) { const gchar *backend; @@ -97,7 +97,7 @@ ev_window_title_sanitize_title (EvWindowTitle *window_title, char **title) { char *new_title; char *filename = get_filename_from_uri (window_title->uri); - new_title = g_strdup_printf ("%s (%s)", *title, filename); + new_title = g_strndup (*title, strlen(*title) - strlen(bad_extensions[i].text)); g_free (*title); *title = new_title; @@ -122,14 +122,11 @@ ev_window_title_update (EvWindowTitle *window_title) { GtkWindow *window = GTK_WINDOW (window_title->window); char *title = NULL, *password_title, *p; - EvPageCache *page_cache; if (window_title->document != NULL) { - char *doc_title; + gchar *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); + doc_title = g_strdup (ev_document_get_title (window_title->document)); /* Make sure we get a valid title back */ if (doc_title != NULL) { @@ -139,11 +136,21 @@ ev_window_title_update (EvWindowTitle *window_title) g_utf8_validate (doc_title, -1, NULL)) { title = g_strdup (doc_title); } + + g_free (doc_title); } } if (title && window_title->uri) { + char *tmp_title; + char *filename = get_filename_from_uri (window_title->uri); + ev_window_title_sanitize_title (window_title, &title); + tmp_title = g_strdup_printf ("%s — %s", filename, title); + g_free (title); + g_free (filename); + + title = tmp_title; } else if (window_title->uri) { title = get_filename_from_uri (window_title->uri); } else if (!title) { @@ -160,7 +167,7 @@ ev_window_title_update (EvWindowTitle *window_title) gtk_window_set_title (window, title); break; case EV_WINDOW_TITLE_PASSWORD: - password_title = g_strdup_printf (_("%s - Password Required"), title); + password_title = g_strdup_printf (_("%s — Password Required"), title); gtk_window_set_title (window, password_title); g_free (password_title); break;