Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@yandex.ru>2008-10-13 20:54:15 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2008-10-13 20:54:15 (GMT)
commitf9e30fddad31007cd22eb5d7cc55483d8387f23f (patch)
treedf41daf477d3bbf7eaddfd7d1dd3c5fa3a01a7e5 /shell
parent638e2b86d54922c4edddd41d1f969e10354c316d (diff)
Removes bad prefixes from window title. Patch by Robin Sonefors
2008-10-14 Nickolay V. Shmyrev <nshmyrev@yandex.ru> * shell/ev-window-title.c (ev_window_title_sanitize_title): Removes bad prefixes from window title. Patch by Robin Sonefors <ozamosi@blinkenlights.se> fixes bug #534684. svn path=/trunk/; revision=3220
Diffstat (limited to 'shell')
-rw-r--r--shell/ev-window-title.c29
1 files changed, 23 insertions, 6 deletions
diff --git a/shell/ev-window-title.c b/shell/ev-window-title.c
index b43775a..9cfd865 100644
--- a/shell/ev-window-title.c
+++ b/shell/ev-window-title.c
@@ -21,6 +21,7 @@
#include "ev-window-title.h"
#include "ev-backends-manager.h"
+#include <string.h>
#include <gio/gio.h>
#include <glib/gi18n.h>
@@ -31,8 +32,8 @@
typedef struct
{
const gchar *backend;
- const gchar *ext;
-} BadExtensionEntry;
+ const gchar *text;
+} BadTitleEntry;
struct _EvWindowTitle
{
@@ -42,7 +43,7 @@ struct _EvWindowTitle
char *uri;
};
-static const BadExtensionEntry bad_extensions[] = {
+static const BadTitleEntry bad_extensions[] = {
{ EV_BACKEND_PS, ".dvi" },
{ EV_BACKEND_PDF, ".doc" },
{ EV_BACKEND_PDF, ".dvi" },
@@ -50,6 +51,11 @@ static const BadExtensionEntry bad_extensions[] = {
{ EV_BACKEND_PDF, ".rtf" }
};
+static const BadTitleEntry bad_prefixes[] = {
+ { EV_BACKEND_PDF, "Microsoft Word - " },
+ { EV_BACKEND_PDF, "Microsoft PowerPoint - " }
+};
+
EvWindowTitle *
ev_window_title_new (EvWindow *window)
{
@@ -78,7 +84,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 */
static void
-ev_window_title_sanitize_extension (EvWindowTitle *window_title, char **title) {
+ev_window_title_sanitize_title (EvWindowTitle *window_title, char **title) {
const gchar *backend;
int i;
@@ -86,7 +92,7 @@ ev_window_title_sanitize_extension (EvWindowTitle *window_title, char **title) {
for (i = 0; i < G_N_ELEMENTS (bad_extensions); i++) {
if (g_ascii_strcasecmp (bad_extensions[i].backend, backend) == 0 &&
- g_str_has_suffix (*title, bad_extensions[i].ext)) {
+ g_str_has_suffix (*title, bad_extensions[i].text)) {
char *new_title;
char *filename = get_filename_from_uri (window_title->uri);
@@ -97,6 +103,17 @@ ev_window_title_sanitize_extension (EvWindowTitle *window_title, char **title) {
g_free (filename);
}
}
+ for (i = 0; i < G_N_ELEMENTS (bad_prefixes); i++) {
+ if (g_ascii_strcasecmp (bad_prefixes[i].backend, backend) == 0 &&
+ g_str_has_prefix (*title, bad_prefixes[i].text)) {
+ char *new_title;
+ int len = strlen(bad_prefixes[i].text);
+
+ new_title = g_strdup_printf ("%s", (*title) + len);
+ g_free (*title);
+ *title = new_title;
+ }
+ }
}
static void
@@ -125,7 +142,7 @@ ev_window_title_update (EvWindowTitle *window_title)
}
if (title && window_title->uri) {
- ev_window_title_sanitize_extension (window_title, &title);
+ ev_window_title_sanitize_title (window_title, &title);
} else if (window_title->uri) {
title = get_filename_from_uri (window_title->uri);
} else if (!title) {