aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--data/ui/epiphany-ui.xml1
-rw-r--r--doc/reference/epiphany-docs.sgml1
-rw-r--r--doc/reference/epiphany-sections.txt10
-rw-r--r--doc/reference/epiphany.types2
-rw-r--r--doc/reference/tmpl/ephy-window.sgml9
-rw-r--r--embed/ephy-web-view.c259
-rw-r--r--embed/ephy-web-view.h127
-rw-r--r--src/Makefile.am4
-rw-r--r--src/ephy-lockdown.c4
-rw-r--r--src/ephy-statusbar.c181
-rw-r--r--src/ephy-statusbar.h69
-rw-r--r--src/ephy-window.c231
-rw-r--r--src/ephy-window.h2
13 files changed, 358 insertions, 542 deletions
diff --git a/data/ui/epiphany-ui.xml b/data/ui/epiphany-ui.xml
index 5be9e4f26..c2a9b44cd 100644
--- a/data/ui/epiphany-ui.xml
+++ b/data/ui/epiphany-ui.xml
@@ -46,7 +46,6 @@
<menuitem name="ViewToolbarEditorMenu" action="ViewToolbarEditor"/>
<separator/>
</menu>
- <menuitem name="ViewStatusbarMenu" action="ViewStatusbar"/>
</placeholder>
<separator name="ViewSep1"/>
<menuitem name="ViewPopupsMenu" action="ViewPopupWindows"/>
diff --git a/doc/reference/epiphany-docs.sgml b/doc/reference/epiphany-docs.sgml
index 9ce575a40..402a9466d 100644
--- a/doc/reference/epiphany-docs.sgml
+++ b/doc/reference/epiphany-docs.sgml
@@ -10,7 +10,6 @@
<title>Epiphany</title>
<xi:include href="xml/ephy-web-view.xml"/>
<xi:include href="xml/ephy-location-action.xml"/>
- <xi:include href="xml/ephy-statusbar.xml"/>
<xi:include href="xml/ephy-toolbar.xml"/>
<xi:include href="xml/ephy-window.xml"/>
</chapter>
diff --git a/doc/reference/epiphany-sections.txt b/doc/reference/epiphany-sections.txt
index 72479d94b..75f78263b 100644
--- a/doc/reference/epiphany-sections.txt
+++ b/doc/reference/epiphany-sections.txt
@@ -215,15 +215,6 @@ ephy_location_action_set_address
</SECTION>
<SECTION>
-<FILE>ephy-statusbar</FILE>
-<TITLE>EphyStatusbar</TITLE>
-EphyStatusbar
-ephy_statusbar_new
-ephy_statusbar_add_widget
-ephy_statusbar_remove_widget
-</SECTION>
-
-<SECTION>
<FILE>ephy-toolbar</FILE>
<TITLE>EphyToolbar</TITLE>
EphyToolbar
@@ -251,7 +242,6 @@ ephy_window_get_ui_manager
ephy_window_get_toolbar
ephy_window_get_notebook
ephy_window_get_find_toolbar
-ephy_window_get_statusbar
ephy_window_load_url
ephy_window_set_zoom
ephy_window_activate_location
diff --git a/doc/reference/epiphany.types b/doc/reference/epiphany.types
index 21e23be52..c9637f5cd 100644
--- a/doc/reference/epiphany.types
+++ b/doc/reference/epiphany.types
@@ -24,11 +24,9 @@ ephy_zoom_control_get_type
ephy_dialog_get_type
#include <ephy-location-action.h>
-#include <ephy-statusbar.h>
#include <ephy-toolbar.h>
#include <ephy-window.h>
ephy_location_action_get_type
-ephy_statusbar_get_type
ephy_toolbar_get_type
ephy_window_get_type
diff --git a/doc/reference/tmpl/ephy-window.sgml b/doc/reference/tmpl/ephy-window.sgml
index 9e59c490c..861065217 100644
--- a/doc/reference/tmpl/ephy-window.sgml
+++ b/doc/reference/tmpl/ephy-window.sgml
@@ -79,15 +79,6 @@ EphyWindow
@Returns:
-<!-- ##### FUNCTION ephy_window_get_statusbar ##### -->
-<para>
-
-</para>
-
-@window:
-@Returns:
-
-
<!-- ##### FUNCTION ephy_window_load_url ##### -->
<para>
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index c51b81b35..65298ebf5 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -98,6 +98,15 @@ struct _EphyWebViewPrivate {
GSList *hidden_popups;
GSList *shown_popups;
+ GSList *messages;
+ GSList *keys;
+
+ guint seq_context_id;
+ guint seq_message_id;
+
+ char *text;
+ GdkRectangle text_rectangle;
+
GtkWidget *password_info_bar;
};
@@ -107,6 +116,12 @@ typedef struct {
char *features;
} PopupInfo;
+typedef struct {
+ gchar *text;
+ guint context_id;
+ guint message_id;
+} EphyWebViewStatusbarMsg;
+
enum {
PROP_0,
PROP_ADDRESS,
@@ -1276,6 +1291,7 @@ static void
ephy_web_view_finalize (GObject *object)
{
EphyWebViewPrivate *priv = EPHY_WEB_VIEW (object)->priv;
+ GSList *list;
if (priv->icon != NULL) {
g_object_unref (priv->icon);
@@ -1287,6 +1303,26 @@ ephy_web_view_finalize (GObject *object)
priv->non_search_regex = NULL;
}
+ for (list = priv->messages; list; list = list->next) {
+ EphyWebViewStatusbarMsg *msg;
+
+ msg = list->data;
+ g_free (msg->text);
+ g_slice_free (EphyWebViewStatusbarMsg, msg);
+ }
+
+ g_slist_free (priv->messages);
+ priv->messages = NULL;
+
+
+ for (list = priv->keys; list; list = list->next)
+ g_free (list->data);
+
+ g_slist_free (priv->keys);
+ priv->keys = NULL;
+
+ g_free (priv->text);
+
ephy_web_view_popups_manager_reset (EPHY_WEB_VIEW (object));
g_free (priv->address);
@@ -1364,6 +1400,59 @@ ephy_web_view_constructed (GObject *object)
NULL);
}
+static gboolean
+ephy_web_view_expose_event (GtkWidget *widget, GdkEventExpose *event)
+{
+ EphyWebViewPrivate *priv;
+
+ GTK_WIDGET_CLASS (ephy_web_view_parent_class)->expose_event (widget, event);
+
+ priv = EPHY_WEB_VIEW (widget)->priv;
+
+ if (priv->text && priv->text[0] != '\0') {
+ gint x, y, width, height;
+ guint border_width;
+ PangoLayout *layout;
+ GtkAllocation allocation;
+ GdkWindow *window;
+ GtkStyle *style;
+
+ gtk_widget_get_allocation (widget, &allocation);
+
+ layout = gtk_widget_create_pango_layout (widget, priv->text);
+ pango_layout_set_width (layout, PANGO_SCALE * (allocation.width * 0.9));
+ pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END);
+
+ pango_layout_get_pixel_size (layout, &width, &height);
+
+ border_width = gtk_container_get_border_width (GTK_CONTAINER (widget));
+ x = border_width;
+ y = allocation.height - height - border_width;
+
+ window = gtk_widget_get_window (widget);
+ style = gtk_widget_get_style (widget);
+ gtk_paint_box (style, window,
+ GTK_STATE_NORMAL, GTK_SHADOW_IN,
+ NULL, widget, NULL,
+ x, allocation.height - height - border_width,
+ width, height);
+
+ priv->text_rectangle.x = x;
+ priv->text_rectangle.y = allocation.height - height - border_width;
+ priv->text_rectangle.width = width;
+ priv->text_rectangle.height = height;
+
+ gtk_paint_layout (style, window,
+ GTK_STATE_NORMAL, FALSE,
+ NULL, widget, NULL,
+ x, y, layout);
+
+ g_object_unref (layout);
+ }
+
+ return FALSE;
+}
+
static void
ephy_web_view_class_init (EphyWebViewClass *klass)
{
@@ -1378,6 +1467,7 @@ ephy_web_view_class_init (EphyWebViewClass *klass)
widget_class->button_press_event = ephy_web_view_button_press_event;
widget_class->key_press_event = ephy_web_view_key_press_event;
+ widget_class->expose_event = ephy_web_view_expose_event;
/**
* EphyWebView:address:
@@ -2164,6 +2254,30 @@ close_web_view_cb (WebKitWebView *web_view,
}
static void
+adj_changed_cb (GtkAdjustment *adj, EphyWebView *view)
+{
+ EphyWebViewPrivate *priv;
+ GdkWindow *window;
+
+ priv = view->priv;
+
+ window = gtk_widget_get_window (GTK_WIDGET (view));
+
+ if (view && window)
+ gdk_window_invalidate_rect (window, &priv->text_rectangle, TRUE);
+}
+
+static void
+set_scroll_adjustments_cb (EphyWebView *view, GtkAdjustment *hadj, GtkAdjustment *vadj)
+{
+ if (hadj)
+ g_signal_connect (hadj, "value-changed", G_CALLBACK (adj_changed_cb), view);
+
+ if (vadj)
+ g_signal_connect (vadj, "value-changed", G_CALLBACK (adj_changed_cb), view);
+}
+
+static void
ephy_web_view_init (EphyWebView *web_view)
{
EphyWebViewPrivate *priv;
@@ -2178,6 +2292,8 @@ ephy_web_view_init (EphyWebView *web_view)
priv->document_type = EPHY_WEB_VIEW_DOCUMENT_HTML;
priv->security_level = EPHY_WEB_VIEW_STATE_IS_UNKNOWN;
priv->monitor_directory = FALSE;
+ priv->seq_context_id = 1;
+ priv->seq_message_id = 1;
priv->non_search_regex = g_regex_new ("(^localhost(\\.[^[:space:]]+)?(:\\d+)?(/.*)?$|"
"^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]$|"
@@ -2218,6 +2334,10 @@ ephy_web_view_init (EphyWebView *web_view)
G_CALLBACK (ge_popup_blocked_cb),
web_view, (GConnectFlags)0);
+ g_signal_connect (web_view, "set-scroll-adjustments",
+ G_CALLBACK (set_scroll_adjustments_cb),
+ NULL);
+
cache = EPHY_FAVICON_CACHE
(ephy_embed_shell_get_favicon_cache (embed_shell));
g_signal_connect_object (G_OBJECT (cache), "changed",
@@ -3618,3 +3738,142 @@ ephy_web_view_load_homepage (EphyWebView *view)
return is_empty;
}
+static void
+ephy_web_view_statusbar_update (EphyWebView *view, const char *text)
+{
+ EphyWebViewPrivate *priv;
+ GdkWindow *window;
+ GdkRectangle rect;
+
+ priv = view->priv;
+
+ if (priv->text)
+ g_free (priv->text);
+
+ priv->text = g_strdup (text);
+
+ /* FIXME: we should invalidate the union of the sizes of the
+ * rectangles of the previous and next statusbar text */
+ window = gtk_widget_get_window (GTK_WIDGET (view));
+ if (window) {
+ GtkAllocation allocation;
+
+ gtk_widget_get_allocation (GTK_WIDGET (view), &allocation);
+
+ rect = priv->text_rectangle;
+ rect.width = allocation.width;
+ if (rect.height == 0)
+ rect.height = allocation.height;
+
+ gdk_window_invalidate_rect (window, &rect, TRUE);
+ }
+}
+
+/* Portions of the following code based on GTK+.
+ * License block as follows:
+ *
+ * GTK - The GIMP Toolkit
+ * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
+ * GtkStatusbar Copyright (C) 1998 Shawn T. Amundson
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
+ * file for a list of people on the GTK+ Team. See the ChangeLog
+ * files for a list of changes. These files are distributed with
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
+ *
+ */
+
+guint
+ephy_web_view_statusbar_get_context_id (EphyWebView *view, const char *context_description)
+{
+ char *string;
+ guint id;
+
+ g_return_val_if_fail (EPHY_IS_WEB_VIEW (view), 0);
+ g_return_val_if_fail (context_description != NULL, 0);
+
+ /* we need to preserve namespaces on object datas */
+ string = g_strconcat ("ephy-web-view-status-bar-context:", context_description, NULL);
+
+ id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (view), string));
+ if (id == 0) {
+ EphyWebViewPrivate *priv = view->priv;
+
+ id = priv->seq_context_id++;
+ g_object_set_data_full (G_OBJECT (view), string, GUINT_TO_POINTER (id), NULL);
+ priv->keys = g_slist_prepend (priv->keys, string);
+ } else
+ g_free (string);
+
+ return id;
+}
+
+guint
+ephy_web_view_statusbar_push (EphyWebView *view, guint context_id, const char *text)
+{
+ EphyWebViewPrivate *priv;
+ EphyWebViewStatusbarMsg *msg;
+
+ g_return_val_if_fail (EPHY_IS_WEB_VIEW (view), 0);
+ g_return_val_if_fail (context_id != 0, 0);
+ g_return_val_if_fail (text != NULL, 0);
+
+ priv = view->priv;
+
+ msg = g_slice_new (EphyWebViewStatusbarMsg);
+ msg->text = g_strdup (text);
+ msg->context_id = context_id;
+ msg->message_id = priv->seq_message_id++;
+
+ priv->messages = g_slist_prepend (priv->messages, msg);
+
+ ephy_web_view_statusbar_update (view, text);
+
+ return msg->message_id;
+}
+
+void
+ephy_web_view_statusbar_pop (EphyWebView *view, guint context_id)
+{
+ EphyWebViewPrivate *priv;
+ EphyWebViewStatusbarMsg *msg;
+ GSList *list;
+
+ g_return_if_fail (EPHY_IS_WEB_VIEW (view));
+ g_return_if_fail (context_id != 0);
+
+ priv = view->priv;
+
+ for (list = priv->messages; list; list = list->next) {
+ EphyWebViewStatusbarMsg *msg = list->data;
+
+ if (msg->context_id == context_id) {
+ priv->messages = g_slist_remove_link (priv->messages, list);
+ g_free (msg->text);
+ g_slice_free (EphyWebViewStatusbarMsg, msg);
+ g_slist_free_1 (list);
+ break;
+ }
+ }
+
+ msg = priv->messages ? priv->messages->data : NULL;
+ ephy_web_view_statusbar_update (view, msg ? msg->text : NULL);
+}
+
+
+
diff --git a/embed/ephy-web-view.h b/embed/ephy-web-view.h
index 6ccaaf6eb..5243aa772 100644
--- a/embed/ephy-web-view.h
+++ b/embed/ephy-web-view.h
@@ -128,69 +128,74 @@ struct _EphyWebViewClass
const char *uri);
};
-GType ephy_web_view_get_type (void);
-GType ephy_web_view_chrome_get_type (void);
-GType ephy_web_view_security_level_get_type (void);
-GtkWidget * ephy_web_view_new (void);
-void ephy_web_view_load_request (EphyWebView *view,
- WebKitNetworkRequest *request);
-void ephy_web_view_load_url (EphyWebView *view,
- const char *url);
-void ephy_web_view_copy_back_history (EphyWebView *source,
- EphyWebView *dest);
-void ephy_web_view_clear_history (EphyWebView *view);
-gboolean ephy_web_view_is_loading (EphyWebView *view);
-const char * ephy_web_view_get_loading_title (EphyWebView *view);
-GdkPixbuf * ephy_web_view_get_icon (EphyWebView *view);
-EphyWebViewDocumentType ephy_web_view_get_document_type (EphyWebView *view);
-EphyWebViewNavigationFlags ephy_web_view_get_navigation_flags (EphyWebView *view);
-const char * ephy_web_view_get_status_message (EphyWebView *view);
-const char * ephy_web_view_get_link_message (EphyWebView *view);
-gboolean ephy_web_view_get_visibility (EphyWebView *view);
-void ephy_web_view_set_link_message (EphyWebView *view,
- char *link_message);
-void ephy_web_view_set_security_level (EphyWebView *view,
- EphyWebViewSecurityLevel level);
-void ephy_web_view_set_visibility (EphyWebView *view,
- gboolean visibility);
-const char * ephy_web_view_get_typed_address (EphyWebView *view);
-void ephy_web_view_set_typed_address (EphyWebView *view,
- const char *address);
-gboolean ephy_web_view_get_is_blank (EphyWebView *view);
-gboolean ephy_web_view_has_modified_forms (EphyWebView *view);
-char * ephy_web_view_get_location (EphyWebView *view,
- gboolean toplevel);
-void ephy_web_view_go_up (EphyWebView *view);
-char * ephy_web_view_get_js_status (EphyWebView *view);
-void ephy_web_view_get_security_level (EphyWebView *view,
- EphyWebViewSecurityLevel *level,
- char **description);
-void ephy_web_view_show_page_certificate (EphyWebView *view);
-void ephy_web_view_show_print_preview (EphyWebView *view);
-void ephy_web_view_print (EphyWebView *view);
-GSList * ephy_web_view_get_go_up_list (EphyWebView *view);
-void ephy_web_view_set_title (EphyWebView *view,
- const char *view_title);
-const char * ephy_web_view_get_title (EphyWebView *view);
-gboolean ephy_web_view_can_go_up (EphyWebView *view);
-const char * ephy_web_view_get_address (EphyWebView *view);
-const char * ephy_web_view_get_title_composite (EphyWebView *view);
+GType ephy_web_view_get_type (void);
+GType ephy_web_view_chrome_get_type (void);
+GType ephy_web_view_security_level_get_type (void);
+GtkWidget * ephy_web_view_new (void);
+void ephy_web_view_load_request (EphyWebView *view,
+ WebKitNetworkRequest *request);
+void ephy_web_view_load_url (EphyWebView *view,
+ const char *url);
+void ephy_web_view_copy_back_history (EphyWebView *source,
+ EphyWebView *dest);
+void ephy_web_view_clear_history (EphyWebView *view);
+gboolean ephy_web_view_is_loading (EphyWebView *view);
+const char * ephy_web_view_get_loading_title (EphyWebView *view);
+GdkPixbuf * ephy_web_view_get_icon (EphyWebView *view);
+EphyWebViewDocumentType ephy_web_view_get_document_type (EphyWebView *view);
+EphyWebViewNavigationFlags ephy_web_view_get_navigation_flags (EphyWebView *view);
+const char * ephy_web_view_get_status_message (EphyWebView *view);
+const char * ephy_web_view_get_link_message (EphyWebView *view);
+gboolean ephy_web_view_get_visibility (EphyWebView *view);
+void ephy_web_view_set_link_message (EphyWebView *view,
+ char *link_message);
+void ephy_web_view_set_security_level (EphyWebView *view,
+ EphyWebViewSecurityLevel level);
+void ephy_web_view_set_visibility (EphyWebView *view,
+ gboolean visibility);
+const char * ephy_web_view_get_typed_address (EphyWebView *view);
+void ephy_web_view_set_typed_address (EphyWebView *view,
+ const char *address);
+gboolean ephy_web_view_get_is_blank (EphyWebView *view);
+gboolean ephy_web_view_has_modified_forms (EphyWebView *view);
+char * ephy_web_view_get_location (EphyWebView *view,
+ gboolean toplevel);
+void ephy_web_view_go_up (EphyWebView *view);
+char * ephy_web_view_get_js_status (EphyWebView *view);
+void ephy_web_view_get_security_level (EphyWebView *view,
+ EphyWebViewSecurityLevel *level,
+ char **description);
+void ephy_web_view_show_page_certificate (EphyWebView *view);
+void ephy_web_view_show_print_preview (EphyWebView *view);
+void ephy_web_view_print (EphyWebView *view);
+GSList * ephy_web_view_get_go_up_list (EphyWebView *view);
+void ephy_web_view_set_title (EphyWebView *view,
+ const char *view_title);
+const char * ephy_web_view_get_title (EphyWebView *view);
+gboolean ephy_web_view_can_go_up (EphyWebView *view);
+const char * ephy_web_view_get_address (EphyWebView *view);
+const char * ephy_web_view_get_title_composite (EphyWebView *view);
-/* These should be private */
-void ephy_web_view_set_address (EphyWebView *view,
- const char *address);
-void ephy_web_view_location_changed (EphyWebView *view,
- const char *location);
-void ephy_web_view_set_loading_title (EphyWebView *view,
- const char *title,
- gboolean is_address);
-void ephy_web_view_popups_manager_reset (EphyWebView *view);
-
-void ephy_web_view_save (EphyWebView *view,
- const char *uri);
-
-gboolean ephy_web_view_load_homepage (EphyWebView *view);
+/* These should be private */
+void ephy_web_view_set_address (EphyWebView *view,
+ const char *address);
+void ephy_web_view_location_changed (EphyWebView *view,
+ const char *location);
+void ephy_web_view_set_loading_title (EphyWebView *view,
+ const char *title,
+ gboolean is_address);
+void ephy_web_view_popups_manager_reset (EphyWebView *view);
+void ephy_web_view_save (EphyWebView *view,
+ const char *uri);
+gboolean ephy_web_view_load_homepage (EphyWebView *view);
+void ephy_web_view_statusbar_pop (EphyWebView *view,
+ guint context_id);
+guint ephy_web_view_statusbar_push (EphyWebView *view,
+ guint context_id,
+ const char *text);
+guint ephy_web_view_statusbar_get_context_id (EphyWebView *view,
+ const char *context_description);
G_END_DECLS
#endif
diff --git a/src/Makefile.am b/src/Makefile.am
index e9d3715f4..219b083f4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -48,7 +48,6 @@ INST_H_FILES = \
ephy-notebook.h \
ephy-session.h \
ephy-shell.h \
- ephy-statusbar.h \
ephy-window.h \
epiphany.h \
$(NULL)
@@ -80,7 +79,6 @@ libephymain_la_SOURCES = \
ephy-password-info.c \
ephy-session.c \
ephy-shell.c \
- ephy-statusbar.c \
ephy-tabs-menu.c \
ephy-toolbars-model.c \
ephy-toolbar.c \
@@ -298,7 +296,6 @@ EPHY_GIR_H_FILES = \
$(top_srcdir)/src/ephy-notebook.h \
$(top_srcdir)/src/ephy-session.h \
$(top_srcdir)/src/ephy-shell.h \
- $(top_srcdir)/src/ephy-statusbar.h \
$(top_srcdir)/src/ephy-toolbar.h \
$(top_srcdir)/src/ephy-window.h \
$(NULL)
@@ -332,7 +329,6 @@ EPHY_GIR_C_FILES = \
$(top_srcdir)/src/ephy-notebook.c \
$(top_srcdir)/src/ephy-session.c \
$(top_srcdir)/src/ephy-shell.c \
- $(top_srcdir)/src/ephy-statusbar.c \
$(top_srcdir)/src/ephy-toolbar.c \
$(top_srcdir)/src/ephy-window.c \
$(NULL)
diff --git a/src/ephy-lockdown.c b/src/ephy-lockdown.c
index 37a4eb27f..1910aca2c 100644
--- a/src/ephy-lockdown.c
+++ b/src/ephy-lockdown.c
@@ -151,10 +151,6 @@ update_window (EphyWindow *window,
action = gtk_action_group_get_action (action_group, "ViewToolbar");
ephy_action_change_sensitivity_flags (action, LOCKDOWN_FLAG, !writable);
- writable = eel_gconf_key_is_writable (CONF_WINDOWS_SHOW_STATUSBAR);
- action = gtk_action_group_get_action (action_group, "ViewStatusbar");
- ephy_action_change_sensitivity_flags (action, LOCKDOWN_FLAG, !writable);
-
disabled = eel_gconf_get_boolean (CONF_LOCKDOWN_DISABLE_ARBITRARY_URL);
action = gtk_action_group_get_action (action_group, "GoLocation");
ephy_action_change_sensitivity_flags (action, LOCKDOWN_FLAG, disabled);
diff --git a/src/ephy-statusbar.c b/src/ephy-statusbar.c
deleted file mode 100644
index 1fbcb555e..000000000
--- a/src/ephy-statusbar.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/*
- * Copyright © 2002 Jorn Baayen
- * Copyright © 2003, 2004 Marco Pesenti Gritti
- * Copyright © 2004, 2007 Christian Persch
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include "config.h"
-
-#include "ephy-statusbar.h"
-#include "ephy-stock-icons.h"
-
-#include <string.h>
-#include <glib/gi18n.h>
-#include <gtk/gtk.h>
-
-/**
- * SECTION:ephy-statusbar
- * @short_description: A statusbar widget for Epiphany
- *
- * #EphyStatusbar is Epiphany's default statusbar for all windows.
- */
-
-static void ephy_statusbar_class_init (EphyStatusbarClass *klass);
-static void ephy_statusbar_init (EphyStatusbar *t);
-
-#define EPHY_STATUSBAR_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EPHY_TYPE_STATUSBAR, EphyStatusbarPrivate))
-
-struct _EphyStatusbarPrivate
-{
- GtkWidget *hbox;
- GtkWidget *icon_container;
-};
-
-G_DEFINE_TYPE (EphyStatusbar, ephy_statusbar, GTK_TYPE_STATUSBAR)
-
-static void
-ephy_statusbar_class_init (EphyStatusbarClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- g_type_class_add_private (object_class, sizeof (EphyStatusbarPrivate));
-}
-
-static void
-ephy_statusbar_init (EphyStatusbar *t)
-{
- GtkStatusbar *gstatusbar = GTK_STATUSBAR (t);
- EphyStatusbarPrivate *priv;
-
- priv = t->priv = EPHY_STATUSBAR_GET_PRIVATE (t);
-
- gtk_statusbar_set_has_resize_grip (gstatusbar, TRUE);
-
-#if GTK_CHECK_VERSION (2, 19, 1)
- priv->hbox = gtk_statusbar_get_message_area (gstatusbar);
-#else
- priv->hbox = gtk_hbox_new (FALSE, 4);
-#endif
- priv->icon_container = gtk_hbox_new (FALSE, 4);
- gtk_box_pack_start (GTK_BOX (priv->hbox), priv->icon_container,
- FALSE, FALSE, 0);
- gtk_widget_show (priv->icon_container);
-
-#if GTK_CHECK_VERSION (2, 19, 1)
- gtk_box_reorder_child (GTK_BOX (priv->hbox), priv->icon_container, 0);
-#else
- /* Put the label in the hbox, and substitute the hbox into the frame */
- g_object_ref (gstatusbar->label);
- gtk_container_remove (GTK_CONTAINER (gstatusbar->frame), gstatusbar->label);
- gtk_box_pack_start (GTK_BOX (priv->hbox), gstatusbar->label, TRUE, TRUE, 0);
- g_object_unref (gstatusbar->label);
- gtk_container_add (GTK_CONTAINER (gstatusbar->frame), priv->hbox);
- gtk_widget_show (priv->hbox);
-#endif
-}
-
-/**
- * ephy_statusbar_new:
- *
- * Creates a new #EphyStatusbar.
- *
- * Return value: the new #EphyStatusbar object
- **/
-GtkWidget *
-ephy_statusbar_new (void)
-{
- return GTK_WIDGET (g_object_new (EPHY_TYPE_STATUSBAR, NULL));
-}
-
-static void
-sync_visibility (GtkWidget *widget,
- GParamSpec *pspec,
- GtkWidget *separator)
-{
- if (gtk_widget_get_visible (widget))
- {
- gtk_widget_show (separator);
- }
- else
- {
- gtk_widget_hide (separator);
- }
-}
-
-/**
- * ephy_statusbar_add_widget:
- * @statusbar: an #EphyStatusbar
- * @widget: a #GtkWidget
- *
- * Adds the @widget to the statusbar. Use this function whenever you want to
- * add a widget to the statusbar. You can remove the widget again with
- * ephy_statusbar_remove_widget().
- **/
-void
-ephy_statusbar_add_widget (EphyStatusbar *statusbar,
- GtkWidget *widget)
-{
- EphyStatusbarPrivate *priv;
- GtkWidget *vsep;
-
- g_return_if_fail (EPHY_IS_STATUSBAR (statusbar));
- g_return_if_fail (GTK_IS_WIDGET (widget));
-
- priv = statusbar->priv;
-
- gtk_box_pack_start (GTK_BOX (priv->icon_container),
- widget, FALSE, FALSE, 0);
-
- vsep = gtk_vseparator_new ();
- gtk_box_pack_start (GTK_BOX (priv->icon_container),
- vsep, FALSE, FALSE, 0);
- sync_visibility (widget, NULL, vsep);
- g_object_set_data (G_OBJECT (widget), "EphyStatusbar::separator", vsep);
- g_signal_connect (widget, "notify::visible",
- G_CALLBACK (sync_visibility), vsep);
-}
-
-/**
- * ephy_statusbar_remove_widget:
- * @statusbar: an #EphyStatusbar
- * @widget: a #GtkWidget
- *
- * Removes @widget, which must have been added to @statusbar using
- * ephy_statusbar_add_widget ().
- */
-void
-ephy_statusbar_remove_widget (EphyStatusbar *statusbar,
- GtkWidget *widget)
-{
- EphyStatusbarPrivate *priv;
- GtkWidget *vsep;
-
- g_return_if_fail (EPHY_IS_STATUSBAR (statusbar));
- g_return_if_fail (GTK_IS_WIDGET (widget));
-
- priv = statusbar->priv;
-
- vsep = g_object_steal_data (G_OBJECT (widget), "EphyStatusbar::separator");
- g_return_if_fail (vsep != NULL);
-
- g_signal_handlers_disconnect_by_func
- (widget, G_CALLBACK (sync_visibility), vsep);
-
- gtk_container_remove (GTK_CONTAINER (priv->icon_container), vsep);
- gtk_container_remove (GTK_CONTAINER (priv->icon_container), widget);
-}
diff --git a/src/ephy-statusbar.h b/src/ephy-statusbar.h
deleted file mode 100644
index 1cef654e9..000000000
--- a/src/ephy-statusbar.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright © 2002 Jorn Baayen
- * Copyright © 2003, 2004 Marco Pesenti Gritti
- * Copyright © 2004 Christian Persch
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#if !defined (__EPHY_EPIPHANY_H_INSIDE__) && !defined (EPIPHANY_COMPILATION)
-#error "Only <epiphany/epiphany.h> can be included directly."
-#endif
-
-#ifndef EPHY_STATUSBAR_H
-#define EPHY_STATUSBAR_H
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define EPHY_TYPE_STATUSBAR (ephy_statusbar_get_type ())
-#define EPHY_STATUSBAR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EPHY_TYPE_STATUSBAR, EphyStatusbar))
-#define EPHY_STATUSBAR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), EPHY_TYPE_STATUSBAR, EphyStatusbarClass))
-#define EPHY_IS_STATUSBAR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EPHY_TYPE_STATUSBAR))
-#define EPHY_IS_STATUSBAR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EPHY_TYPE_STATUSBAR))
-#define EPHY_STATUSBAR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), EPHY_TYPE_STATUSBAR, EphyStatusbarClass))
-
-typedef struct _EphyStatusbar EphyStatusbar;
-typedef struct _EphyStatusbarPrivate EphyStatusbarPrivate;
-typedef struct _EphyStatusbarClass EphyStatusbarClass;
-
-struct _EphyStatusbar
-{
- GtkStatusbar parent;
-
- /*< private >*/
- EphyStatusbarPrivate *priv;
-};
-
-struct _EphyStatusbarClass
-{
- GtkStatusbarClass parent_class;
-};
-
-GType ephy_statusbar_get_type (void);
-
-GtkWidget *ephy_statusbar_new (void);
-
-void ephy_statusbar_add_widget (EphyStatusbar *statusbar,
- GtkWidget *widget);
-
-void ephy_statusbar_remove_widget (EphyStatusbar *statusbar,
- GtkWidget *widget);
-
-G_END_DECLS
-
-#endif
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 4b394ae11..b5d7434e8 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -38,7 +38,6 @@
#include "ephy-zoom.h"
#include "ephy-debug.h"
#include "ephy-file-helpers.h"
-#include "ephy-statusbar.h"
#include "egg-editable-toolbar.h"
#include "ephy-toolbar.h"
#include "popup-commands.h"
@@ -90,8 +89,6 @@ static void notebook_switch_page_cb (GtkNotebook *notebook,
GtkNotebookPage *page,
guint page_num,
EphyWindow *window);
-static void ephy_window_view_statusbar_cb (GtkAction *action,
- EphyWindow *window);
static void ephy_window_view_toolbar_cb (GtkAction *action,
EphyWindow *window);
static void ephy_window_view_popup_windows_cb (GtkAction *action,
@@ -282,9 +279,6 @@ static const GtkToggleActionEntry ephy_menu_toggle_entries [] =
{ "ViewToolbar", NULL, N_("_Hide Toolbars"), NULL,
N_("Show or hide toolbar"),
G_CALLBACK (ephy_window_view_toolbar_cb), FALSE },
- { "ViewStatusbar", NULL, N_("St_atusbar"), NULL,
- N_("Show or hide statusbar"),
- G_CALLBACK (ephy_window_view_statusbar_cb), TRUE },
{ "ViewFullscreen", GTK_STOCK_FULLSCREEN, N_("_Fullscreen"), "F11",
N_("Browse at full screen"),
G_CALLBACK (window_cmd_view_fullscreen), FALSE },
@@ -434,7 +428,6 @@ struct _EphyWindowPrivate
GtkWidget *menu_dock;
GtkWidget *fullscreen_popup;
EphyToolbar *toolbar;
- GtkWidget *statusbar;
GtkUIManager *manager;
GtkActionGroup *action_group;
GtkActionGroup *popups_action_group;
@@ -494,10 +487,18 @@ impl_add_child (EphyEmbedContainer *container,
gboolean jump_to)
{
EphyWindow *window = EPHY_WINDOW (container);
+ EphyWebView *view;
g_return_val_if_fail (!window->priv->is_popup ||
gtk_notebook_get_n_pages (GTK_NOTEBOOK (window->priv->notebook)) < 1, -1);
+ view = ephy_embed_get_web_view (child);
+
+ window->priv->tab_message_cid = ephy_web_view_statusbar_get_context_id
+ (view, "tab_message");
+ window->priv->help_message_cid = ephy_web_view_statusbar_get_context_id
+ (view, "help_message");
+
return ephy_notebook_add_tab (EPHY_NOTEBOOK (window->priv->notebook),
child, position, jump_to);
}
@@ -749,7 +750,6 @@ get_toolbar_visibility (EphyWindow *window)
static void
get_chromes_visibility (EphyWindow *window,
gboolean *show_menubar,
- gboolean *show_statusbar,
gboolean *show_toolbar,
gboolean *show_tabsbar)
{
@@ -759,13 +759,12 @@ get_chromes_visibility (EphyWindow *window,
if (window->priv->fullscreen_mode)
{
*show_toolbar = (flags & EPHY_WEB_VIEW_CHROME_TOOLBAR) != 0;
- *show_menubar = *show_statusbar = FALSE;
+ *show_menubar = FALSE;
*show_tabsbar = !priv->is_popup;
}
else
{
*show_menubar = (flags & EPHY_WEB_VIEW_CHROME_MENUBAR) != 0;
- *show_statusbar = (flags & EPHY_WEB_VIEW_CHROME_STATUSBAR) != 0;
*show_toolbar = (flags & EPHY_WEB_VIEW_CHROME_TOOLBAR) != 0;
*show_tabsbar = !priv->is_popup;
}
@@ -777,12 +776,12 @@ sync_chromes_visibility (EphyWindow *window)
EphyWindowPrivate *priv = window->priv;
GtkWidget *menubar;
GtkAction *action;
- gboolean show_statusbar, show_menubar, show_toolbar, show_tabsbar;
+ gboolean show_menubar, show_toolbar, show_tabsbar;
if (priv->closing) return;
get_chromes_visibility (window, &show_menubar,
- &show_statusbar, &show_toolbar,
+ &show_toolbar,
&show_tabsbar);
menubar = gtk_ui_manager_get_widget (window->priv->manager, "/menubar");
@@ -790,7 +789,6 @@ sync_chromes_visibility (EphyWindow *window)
g_object_set (menubar, "visible", show_menubar, NULL);
g_object_set (priv->toolbar, "visible", show_toolbar, NULL);
- g_object_set (priv->statusbar, "visible", show_statusbar, NULL);
ephy_notebook_set_show_tabs (EPHY_NOTEBOOK (priv->notebook), show_tabsbar);
@@ -1218,6 +1216,13 @@ init_menu_updaters (EphyWindow *window)
G_CALLBACK (edit_menu_hide_cb), window);
}
+static EphyWebView*
+ephy_window_get_active_web_view (EphyWindow *window)
+{
+ EphyEmbed *active_embed = window->priv->active_embed;
+ return ephy_embed_get_web_view (active_embed);
+}
+
static void
menu_item_select_cb (GtkMenuItem *proxy,
EphyWindow *window)
@@ -1231,8 +1236,8 @@ menu_item_select_cb (GtkMenuItem *proxy,
g_object_get (action, "tooltip", &message, NULL);
if (message)
{
- gtk_statusbar_push (GTK_STATUSBAR (window->priv->statusbar),
- window->priv->help_message_cid, message);
+ EphyWebView *view = ephy_window_get_active_web_view (window);
+ ephy_web_view_statusbar_push (view, window->priv->help_message_cid, message);
g_free (message);
}
}
@@ -1241,8 +1246,8 @@ static void
menu_item_deselect_cb (GtkMenuItem *proxy,
EphyWindow *window)
{
- gtk_statusbar_pop (GTK_STATUSBAR (window->priv->statusbar),
- window->priv->help_message_cid);
+ EphyWebView *view = ephy_window_get_active_web_view (window);
+ ephy_web_view_statusbar_pop (view, window->priv->help_message_cid);
}
static gboolean
@@ -1264,8 +1269,8 @@ tool_item_enter_cb (GtkWidget *proxy,
g_object_get (action, "tooltip", &message, NULL);
if (message)
{
- gtk_statusbar_push (GTK_STATUSBAR (window->priv->statusbar),
- window->priv->help_message_cid, message);
+ EphyWebView *view = ephy_window_get_active_web_view (window);
+ ephy_web_view_statusbar_push (view, window->priv->help_message_cid, message);
g_free (message);
}
}
@@ -1280,8 +1285,8 @@ tool_item_leave_cb (GtkWidget *proxy,
{
if (event->mode == GDK_CROSSING_NORMAL)
{
- gtk_statusbar_pop (GTK_STATUSBAR (window->priv->statusbar),
- window->priv->help_message_cid);
+ EphyWebView *view = ephy_window_get_active_web_view (window);
+ ephy_web_view_statusbar_pop (view, window->priv->help_message_cid);
}
return FALSE;
@@ -1292,8 +1297,8 @@ tool_item_drag_begin_cb (GtkWidget *widget,
GdkDragContext *context,
EphyWindow *window)
{
- gtk_statusbar_pop (GTK_STATUSBAR (window->priv->statusbar),
- window->priv->help_message_cid);
+ EphyWebView *view = ephy_window_get_active_web_view (window);
+ ephy_web_view_statusbar_pop (view, window->priv->help_message_cid);
}
@@ -1374,10 +1379,10 @@ update_chromes_actions (EphyWindow *window)
{
GtkActionGroup *action_group = window->priv->action_group;
GtkAction *action;
- gboolean show_statusbar, show_menubar, show_toolbar, show_tabsbar;
+ gboolean show_menubar, show_toolbar, show_tabsbar;
get_chromes_visibility (window, &show_menubar,
- &show_statusbar, &show_toolbar,
+ &show_toolbar,
&show_tabsbar);
action = gtk_action_group_get_action (action_group, "ViewToolbar");
@@ -1388,15 +1393,6 @@ update_chromes_actions (EphyWindow *window)
g_signal_handlers_unblock_by_func (G_OBJECT (action),
G_CALLBACK (ephy_window_view_toolbar_cb),
window);
-
- action = gtk_action_group_get_action (action_group, "ViewStatusbar");
- g_signal_handlers_block_by_func (G_OBJECT (action),
- G_CALLBACK (ephy_window_view_statusbar_cb),
- window);
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), show_statusbar);
- g_signal_handlers_unblock_by_func (G_OBJECT (action),
- G_CALLBACK (ephy_window_view_statusbar_cb),
- window);
}
static void
@@ -1608,18 +1604,17 @@ sync_tab_load_progress (EphyWebView *view, GParamSpec *pspec, EphyWindow *window
static void
sync_tab_message (EphyWebView *view, GParamSpec *pspec, EphyWindow *window)
{
- GtkStatusbar *s = GTK_STATUSBAR (window->priv->statusbar);
const char *message;
if (window->priv->closing) return;
message = ephy_web_view_get_status_message (view);
- gtk_statusbar_pop (s, window->priv->tab_message_cid);
+ ephy_web_view_statusbar_pop (view, window->priv->tab_message_cid);
if (message)
{
- gtk_statusbar_push (s, window->priv->tab_message_cid, message);
+ ephy_web_view_statusbar_push (view, window->priv->tab_message_cid, message);
}
}
@@ -2369,12 +2364,11 @@ web_view_ready_cb (WebKitWebView *web_view,
{
int width, height;
gboolean toolbar_visible;
- gboolean statusbar_visible;
gboolean menubar_visible;
EphyWebViewChrome chrome_mask;
WebKitWebWindowFeatures *features;
- toolbar_visible = statusbar_visible = menubar_visible = TRUE;
+ toolbar_visible = menubar_visible = TRUE;
features = webkit_web_view_get_window_features (web_view);
chrome_mask = window->priv->chrome;
@@ -2383,7 +2377,6 @@ web_view_ready_cb (WebKitWebView *web_view,
"width", &width,
"height", &height,
"toolbar-visible", &toolbar_visible,
- "statusbar-visible", &statusbar_visible,
"menubar-visible", &menubar_visible,
NULL);
@@ -2392,9 +2385,6 @@ web_view_ready_cb (WebKitWebView *web_view,
if (!toolbar_visible)
chrome_mask &= ~EPHY_WEB_VIEW_CHROME_TOOLBAR;
- if (!statusbar_visible)
- chrome_mask &= ~EPHY_WEB_VIEW_CHROME_STATUSBAR;
-
if (!menubar_visible)
chrome_mask &= ~EPHY_WEB_VIEW_CHROME_MENUBAR;
@@ -2525,106 +2515,6 @@ policy_decision_required_cb (WebKitWebView *web_view,
return FALSE;
}
-/* FIXME: get rid of this stuff when the DOM API lands */
-/* FIXME: would be nice to get transparent background/opaque text, but
- not sure if I can be bothered */
-const char *add_node_string =
- "var node = document.getElementById('epiphanyWebKitFloatingStatusBar');"\
- "if (node) node.parentNode.removeChild(node);"\
- "var node = document.createElement('div');"\
- "node.id = 'epiphanyWebKitFloatingStatusBar';"\
- "node.style.padding = '0.4em';"\
- "node.style.zIndex = '9999';"\
- "node.style.border = '1px solid black';"\
- "node.style.background = 'rgb(%d,%d,%d)';"\
- "node.style.color = 'rgb(%d,%d,%d)';"\
- "node.style.position = 'fixed';"\
- "node.style.left = '0';"\
- "node.style.bottom = '0';"\
- "node.style.opacity = 0.95;"\
- "var text = document.createTextNode('%s');"\
- "var body = document.getElementsByTagName('body')[0];"\
- "node.appendChild(text);"\
- "body.appendChild(node);";
-
-const char *remove_node_string =
- "var node = document.getElementById('epiphanyWebKitFloatingStatusBar');"\
- "if (node) node.parentNode.removeChild(node);";
-
-static void
-ephy_window_link_message_cb (EphyWebView *web_view, GParamSpec *spec, EphyWindow *window)
-{
- gboolean visible;
- const char *link_message;
- WebKitWebView *view;
-
- g_object_get (window->priv->statusbar, "visible", &visible, NULL);
-
- view = WEBKIT_WEB_VIEW (web_view);
- link_message = ephy_web_view_get_link_message (web_view);
-
- /* If the statusbar is visible remove the test, it might get
- stuck otherwise */
- if (link_message && visible == FALSE)
- {
- char *script;
- GdkColor bg, fg;
- GtkWidget *widget;
- GtkAllocation allocation;
- GtkStyle *style;
- GtkStateType state;
- PangoLayout *layout;
- PangoLayoutLine *line;
- PangoLayoutRun *run;
- PangoItem *item;
- const char *text;
- char *freeme;
-
- widget = GTK_WIDGET (view);
- layout = gtk_widget_create_pango_layout (widget, link_message);
- gtk_widget_get_allocation (widget, &allocation);
- pango_layout_set_width (layout, PANGO_SCALE * (allocation.width * 0.9));
- pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END);
-
- line = pango_layout_get_line_readonly (layout, 0);
- run = line->runs->data;
- item = run->item;
-
- freeme = NULL;
- text = pango_layout_get_text (layout);
- if (item->num_chars < g_utf8_strlen (text, -1))
- {
- char buffer[2048]; /* Should be enough ... */
- g_utf8_strncpy (buffer, text, item->num_chars - 3);
- freeme = g_strconcat (buffer, "...", NULL);
- }
-
- g_utf8_strncpy ((gchar *)text, pango_layout_get_text (layout), item->num_chars);
- style = gtk_widget_get_style (widget);
- state = gtk_widget_get_state (widget);
- bg = style->bg[state];
- fg = style->fg[state];
-
- script = g_strdup_printf(add_node_string,
- (int) (bg.red / 65535. * 255),
- (int) (bg.green / 65535. * 255),
- (int) (bg.blue / 65535. * 255),
- (int) (fg.red / 65535. * 255),
- (int) (fg.green / 65535. * 255),
- (int) (fg.blue / 65535. * 255),
- freeme ? freeme : text);
- webkit_web_view_execute_script (view, script);
- g_object_unref (layout);
- g_free (script);
- g_free (freeme);
- }
- else
- {
- const char *script = remove_node_string;
- webkit_web_view_execute_script (view, script);
- }
-}
-
static void
ephy_window_set_active_tab (EphyWindow *window, EphyEmbed *new_embed)
{
@@ -2712,9 +2602,6 @@ ephy_window_set_active_tab (EphyWindow *window, EphyEmbed *new_embed)
g_signal_handlers_disconnect_by_func (view,
G_CALLBACK (ephy_window_visibility_cb),
window);
- g_signal_handlers_disconnect_by_func (view,
- G_CALLBACK (ephy_window_link_message_cb),
- window);
g_signal_handlers_disconnect_by_func
(view, G_CALLBACK (ephy_window_dom_mouse_click_cb), window);
@@ -2814,9 +2701,6 @@ ephy_window_set_active_tab (EphyWindow *window, EphyEmbed *new_embed)
g_signal_connect_object (view, "notify::visibility",
G_CALLBACK (ephy_window_visibility_cb),
window, 0);
- g_signal_connect_object (view, "notify::link-message",
- G_CALLBACK (ephy_window_link_message_cb),
- window, 0);
g_object_notify (G_OBJECT (window), "active-child");
}
@@ -3184,11 +3068,6 @@ ephy_window_set_chrome (EphyWindow *window, EphyWebViewChrome mask)
chrome_mask &= ~EPHY_WEB_VIEW_CHROME_TOOLBAR;
}
- if (!eel_gconf_get_boolean (CONF_WINDOWS_SHOW_STATUSBAR))
- {
- chrome_mask &= ~EPHY_WEB_VIEW_CHROME_STATUSBAR;
- }
-
if (eel_gconf_get_boolean (CONF_LOCKDOWN_HIDE_MENUBAR))
{
chrome_mask &= ~EPHY_WEB_VIEW_CHROME_MENUBAR;
@@ -3356,15 +3235,6 @@ ephy_window_state_event (GtkWidget *widget,
window_state_event (widget, event);
}
- if (event->changed_mask & (GDK_WINDOW_STATE_MAXIMIZED))
- {
- gboolean show;
-
- show = (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED) == 0;
-
- gtk_statusbar_set_has_resize_grip (GTK_STATUSBAR (priv->statusbar), show);
- }
-
if (event->changed_mask & GDK_WINDOW_STATE_FULLSCREEN)
{
GtkActionGroup *action_group;
@@ -3630,15 +3500,6 @@ ephy_window_constructor (GType type,
GTK_WIDGET (priv->find_toolbar), FALSE, FALSE, 0);
/* don't show the find toolbar here! */
- priv->statusbar = ephy_statusbar_new ();
- gtk_box_pack_end (GTK_BOX (priv->main_vbox),
- GTK_WIDGET (priv->statusbar),
- FALSE, TRUE, 0);
- priv->tab_message_cid = gtk_statusbar_get_context_id
- (GTK_STATUSBAR (priv->statusbar), "tab_message");
- priv->help_message_cid = gtk_statusbar_get_context_id
- (GTK_STATUSBAR (priv->statusbar), "help_message");
-
/* get the toolbars model *before* getting the bookmarksbar model
* (via ephy_bookmarsbar_new()), so that the toolbars model is
* instantiated *before* the bookmarksbarmodel, to make forwarding
@@ -3856,22 +3717,6 @@ ephy_window_get_find_toolbar (EphyWindow *window)
return GTK_WIDGET (window->priv->find_toolbar);
}
-/**
- * ephy_window_get_statusbar:
- * @window: an #EphyWindow
- *
- * Returns this window's statusbar as an #EphyStatusbar.
- *
- * Return value: (transfer none): This window's statusbar
- **/
-GtkWidget *
-ephy_window_get_statusbar (EphyWindow *window)
-{
- g_return_val_if_fail (EPHY_IS_WINDOW (window), NULL);
-
- return GTK_WIDGET (window->priv->statusbar);
-}
-
static EphyEmbed *
real_get_active_tab (EphyWindow *window, int page_num)
{
@@ -4025,8 +3870,6 @@ sync_prefs_with_chrome (EphyWindow *window)
{
eel_gconf_set_boolean (CONF_WINDOWS_SHOW_TOOLBARS,
flags & EPHY_WEB_VIEW_CHROME_TOOLBAR);
- eel_gconf_set_boolean (CONF_WINDOWS_SHOW_STATUSBAR,
- flags & EPHY_WEB_VIEW_CHROME_STATUSBAR);
}
}
@@ -4048,14 +3891,6 @@ sync_chrome_with_view_toggle (GtkAction *action,
}
static void
-ephy_window_view_statusbar_cb (GtkAction *action,
- EphyWindow *window)
-{
- sync_chrome_with_view_toggle (action, window,
- EPHY_WEB_VIEW_CHROME_STATUSBAR, FALSE);
-}
-
-static void
ephy_window_view_toolbar_cb (GtkAction *action,
EphyWindow *window)
{
diff --git a/src/ephy-window.h b/src/ephy-window.h
index ab0e35b29..4daa96cdf 100644
--- a/src/ephy-window.h
+++ b/src/ephy-window.h
@@ -71,8 +71,6 @@ GtkWidget *ephy_window_get_notebook (EphyWindow *window);
GtkWidget *ephy_window_get_find_toolbar (EphyWindow *window);
-GtkWidget *ephy_window_get_statusbar (EphyWindow *window);
-
void ephy_window_load_url (EphyWindow *window,
const char *url);