aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog29
-rw-r--r--configure.ac2
-rw-r--r--embed/mozilla/GeckoPrintSession.cpp2
-rw-r--r--embed/mozilla/GtkNSSDialogs.cpp2
-rw-r--r--lib/egg/.cvsignore1
-rw-r--r--lib/ephy-print-utils.c2
-rw-r--r--lib/widgets/ephy-spinner.c88
-rw-r--r--m4/gecko.m45
-rwxr-xr-xsrc/ephy-statusbar.c1
-rw-r--r--src/popup-commands.c1
10 files changed, 68 insertions, 65 deletions
diff --git a/ChangeLog b/ChangeLog
index b007ccef5..8756d804b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2006-12-04 Christian Persch <chpe@cvs.gnome.org>
+
+ * configure.ac:
+
+ Version 2.17.3.
+
+ * embed/mozilla/GtkNSSDialogs.cpp:
+
+ Use NULL for gtk_label_new instead of "".
+
+ * lib/ephy-print-utils.c:
+ (ephy_print_utils_page_setup_new_from_key_file):
+
+ Fix possible invalid free.
+
+ * lib/widgets/ephy-spinner.c: (ephy_spinner_images_unref),
+ (ephy_spinner_images_load), (ephy_spinner_load_images),
+ (ephy_spinner_expose), (bump_spinner_frame_cb),
+ (ephy_spinner_start), (ephy_spinner_stop):
+
+ Fix compliance with icon theme spec by skipping the first frame in the
+ animation when in spinning mode. Bug #382207.
+ Try the "process-working" icon first and fall back to "gnome-spinner"
+ when it's not available.
+
+ * m4/gecko.m4:
+
+ Updated.
+
2006-12-04 Luca Ferretti <elle.uca@libero.it>
* configure.in:
diff --git a/configure.ac b/configure.ac
index 01a2af746..870fb2c05 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,7 +15,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-AC_INIT([GNOME Web Browser],[2.17.2.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=epiphany],[epiphany])
+AC_INIT([GNOME Web Browser],[2.17.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=epiphany],[epiphany])
GNOME_COMMON_INIT
diff --git a/embed/mozilla/GeckoPrintSession.cpp b/embed/mozilla/GeckoPrintSession.cpp
index 290b0eb7a..4c60bc74f 100644
--- a/embed/mozilla/GeckoPrintSession.cpp
+++ b/embed/mozilla/GeckoPrintSession.cpp
@@ -130,7 +130,7 @@ GeckoPrintSession::SetSettings (GtkPrintSettings *aSettings,
{
char *base, *tmpName;
- /* FIXME: use pure glib here! */
+ /* FIXME: use pure glib here (g_mkstemp)! */
base = g_build_filename (ephy_file_tmp_dir (), "print-XXXXXX", (const char *) NULL);
tmpName = ephy_file_tmp_filename (base, "ps");
g_free (base);
diff --git a/embed/mozilla/GtkNSSDialogs.cpp b/embed/mozilla/GtkNSSDialogs.cpp
index 391d6cbcd..ddf14848f 100644
--- a/embed/mozilla/GtkNSSDialogs.cpp
+++ b/embed/mozilla/GtkNSSDialogs.cpp
@@ -148,7 +148,7 @@ higgy_indent_widget (GtkWidget *widget)
hbox = gtk_hbox_new (FALSE, 6);
- label = gtk_label_new ("");
+ label = gtk_label_new (NULL);
gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, TRUE, 6);
gtk_widget_show (label);
diff --git a/lib/egg/.cvsignore b/lib/egg/.cvsignore
index dbe4c8909..430b664b4 100644
--- a/lib/egg/.cvsignore
+++ b/lib/egg/.cvsignore
@@ -5,6 +5,7 @@ eggmarshalers.c
stamp-*
eggtypebuiltins.?
*.lo
+*.la
.deps
.libs
diff --git a/lib/ephy-print-utils.c b/lib/ephy-print-utils.c
index 2c4320805..b014ad807 100644
--- a/lib/ephy-print-utils.c
+++ b/lib/ephy-print-utils.c
@@ -256,7 +256,7 @@ ephy_print_utils_page_setup_new_from_key_file (GKeyFile *key_file,
GError **error)
{
GtkPageSetup *page_setup = NULL;
- GtkPaperSize *paper_size;
+ GtkPaperSize *paper_size = NULL;
gdouble width, height, top, bottom, left, right;
char *name = NULL, *ppd_name = NULL, *display_name = NULL, *orientation = NULL;
gboolean retval = TRUE;
diff --git a/lib/widgets/ephy-spinner.c b/lib/widgets/ephy-spinner.c
index dcb0e0ab6..f1c17b763 100644
--- a/lib/widgets/ephy-spinner.c
+++ b/lib/widgets/ephy-spinner.c
@@ -76,14 +76,13 @@ typedef struct
GtkIconSize size;
int width;
int height;
- GdkPixbuf *quiescent_pixbuf;
GdkPixbuf **animation_pixbufs;
guint n_animation_pixbufs;
} EphySpinnerImages;
#define LAST_ICON_SIZE GTK_ICON_SIZE_DIALOG + 1
-#define SPINNER_ICON_NAME "gnome-spinner"
-#define SPINNER_REST_ICON_NAME "gnome-spinner-rest"
+#define SPINNER_ICON_NAME "process-working"
+#define SPINNER_FALLBAC_ICON_NAME "gnome-spinner"
#define EPHY_SPINNER_IMAGES_INVALID ((EphySpinnerImages *) 0x1)
typedef struct
@@ -154,8 +153,6 @@ ephy_spinner_images_unref (EphySpinnerImages *images)
}
g_free (images->animation_pixbufs);
- g_object_unref (images->quiescent_pixbuf);
-
g_free (images);
}
}
@@ -234,7 +231,6 @@ ephy_spinner_images_load (GdkScreen *screen,
GtkIconSize icon_size)
{
EphySpinnerImages *images;
- GdkPixbuf *rest_pixbuf = NULL;
GdkPixbuf *icon_pixbuf, *pixbuf;
GtkIconInfo *icon_info = NULL;
int grid_width, grid_height, x, y, requested_size, size, isw, ish, n;
@@ -250,44 +246,25 @@ ephy_spinner_images_load (GdkScreen *screen,
requested_size = MAX (ish, isw);
- /* Load the rest icon */
- icon_info = gtk_icon_theme_lookup_icon (icon_theme,
- SPINNER_REST_ICON_NAME,
- requested_size, 0);
- if (icon_info == NULL)
- {
- g_warning ("Throbber rest icon not found");
- goto loser;
- }
-
- size = gtk_icon_info_get_base_size (icon_info);
- icon = gtk_icon_info_get_filename (icon_info);
- if (icon == NULL) goto loser;
-
- rest_pixbuf = gdk_pixbuf_new_from_file (icon, NULL);
- gtk_icon_info_free (icon_info);
- icon_info = NULL;
-
- if (rest_pixbuf == NULL)
- {
- g_warning ("Could not load spinner rest icon");
- goto loser;
- }
-
- if (size > requested_size)
- {
- rest_pixbuf = scale_to_size (rest_pixbuf, isw, ish);
- }
-
- /* Load the animation */
+ /* Load the animation. The 'rest icon' is the 0th frame */
icon_info = gtk_icon_theme_lookup_icon (icon_theme,
SPINNER_ICON_NAME,
requested_size, 0);
if (icon_info == NULL)
{
g_warning ("Throbber animation not found");
- goto loser;
+
+ /* If the icon naming spec compliant name wasn't found, try the old name */
+ icon_info = gtk_icon_theme_lookup_icon (icon_theme,
+ SPINNER_FALLBAC_ICON_NAME,
+ requested_size, 0);
+ if (icon_info == NULL)
+ {
+ g_warning ("Throbber fallback animation not found either");
+ goto loser;
+ }
}
+ g_assert (icon_info != NULL);
size = gtk_icon_info_get_base_size (icon_info);
icon = gtk_icon_info_get_filename (icon_info);
@@ -344,13 +321,13 @@ ephy_spinner_images_load (GdkScreen *screen,
images->size = icon_size;
images->width = images->height = requested_size;
- images->quiescent_pixbuf = rest_pixbuf;
images->n_animation_pixbufs = n;
images->animation_pixbufs = g_new (GdkPixbuf *, n);
for (l = list; l != NULL; l = l->next)
{
+ g_assert (l->data != NULL);
images->animation_pixbufs[--n] = l->data;
}
g_assert (n == 0);
@@ -366,10 +343,6 @@ loser:
{
gtk_icon_info_free (icon_info);
}
- if (rest_pixbuf)
- {
- g_object_unref (rest_pixbuf);
- }
g_slist_foreach (list, (GFunc) g_object_unref, NULL);
STOP_PROFILER ("loading spinner animation")
@@ -591,7 +564,7 @@ ephy_spinner_load_images (EphySpinner *spinner)
STOP_PROFILER ("ephy_spinner_load_images")
- details->current_image = 0;
+ details->current_image = 0; /* 'rest' icon */
details->need_load = FALSE;
}
@@ -666,23 +639,15 @@ ephy_spinner_expose (GtkWidget *widget,
return FALSE;
}
- if (details->spinning &&
- images->n_animation_pixbufs > 0)
- {
- g_assert (details->current_image >= 0 &&
- details->current_image < images->n_animation_pixbufs);
+ /* Otherwise |images| will be NULL anyway */
+ g_assert (images->n_animation_pixbufs > 0);
+
+ g_assert (details->current_image >= 0 &&
+ details->current_image < images->n_animation_pixbufs);
- pixbuf = images->animation_pixbufs[details->current_image];
- }
- else
- {
- pixbuf = images->quiescent_pixbuf;
- }
+ pixbuf = images->animation_pixbufs[details->current_image];
- if (pixbuf == NULL)
- {
- return FALSE;
- }
+ g_assert (pixbuf != NULL);
width = gdk_pixbuf_get_width (pixbuf);
height = gdk_pixbuf_get_height (pixbuf);
@@ -727,7 +692,8 @@ bump_spinner_frame_cb (EphySpinner *spinner)
details->current_image++;
if (details->current_image >= details->images->n_animation_pixbufs)
{
- details->current_image = 0;
+ /* the 0th frame is the 'rest' icon */
+ details->current_image = MIN (1, details->images->n_animation_pixbufs);
}
gtk_widget_queue_draw (GTK_WIDGET (spinner));
@@ -753,7 +719,8 @@ ephy_spinner_start (EphySpinner *spinner)
details->timer_task == 0 &&
ephy_spinner_load_images (spinner))
{
- details->current_image = 0;
+ /* the 0th frame is the 'rest' icon */
+ details->current_image = MIN (1, details->images->n_animation_pixbufs);
details->timer_task =
g_timeout_add_full (G_PRIORITY_LOW,
@@ -788,6 +755,7 @@ ephy_spinner_stop (EphySpinner *spinner)
EphySpinnerDetails *details = spinner->details;
details->spinning = FALSE;
+ details->current_image = 0;
if (details->timer_task != 0)
{
diff --git a/m4/gecko.m4 b/m4/gecko.m4
index cefb65215..506698ad0 100644
--- a/m4/gecko.m4
+++ b/m4/gecko.m4
@@ -324,16 +324,19 @@ $1[]_VERSION_INT=$gecko_cv_gecko_version_int
# **************************************************
gecko_cv_extra_libs=
+gecko_cv_glue_libs=
gecko_cv_extra_pkg_dependencies=
if test "$gecko_cv_gecko_version_int" -ge "1009000"; then
- gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul -lxpcomglue_s"
+ gecko_cv_extra_libs="-L$_GECKO_LIBDIR -lxul"
+ gecko_cv_glue_libs="-L$_GECKO_LIBDIR -lxpcomglue_s"
else
gecko_cv_extra_pkg_dependencies="${gecko_cv_gecko}-gtkmozembed"
fi
$1[]_EXTRA_PKG_DEPENDENCIES="$gecko_cv_extra_pkg_dependencies"
$1[]_EXTRA_LIBS="$gecko_cv_extra_libs"
+$1[]_GLUE_LIBS="$gecko_cv_glue_libs"
])
diff --git a/src/ephy-statusbar.c b/src/ephy-statusbar.c
index 89e600e91..e5ed179e7 100755
--- a/src/ephy-statusbar.c
+++ b/src/ephy-statusbar.c
@@ -92,6 +92,7 @@ ephy_statusbar_get_type (void)
return type;
}
+/* FIXME: remove this hack once gtk bug #372452 is fixed! */
static void
ephy_statusbar_size_allocate (GtkWidget *widget,
GtkAllocation *allocation)
diff --git a/src/popup-commands.c b/src/popup-commands.c
index d101a892d..7043f6496 100644
--- a/src/popup-commands.c
+++ b/src/popup-commands.c
@@ -451,6 +451,7 @@ popup_cmd_open_image (GtkAction *action,
address = g_value_get_string (value);
scheme = gnome_vfs_get_uri_scheme (address);
+ if (scheme == NULL) return;
if (strcmp (scheme, "file") == 0)
{