aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ephy-window.c28
-rw-r--r--src/window-commands.c10
-rw-r--r--src/window-commands.h2
3 files changed, 39 insertions, 1 deletions
diff --git a/src/ephy-window.c b/src/ephy-window.c
index 588406b1d..48513c880 100644
--- a/src/ephy-window.c
+++ b/src/ephy-window.c
@@ -35,6 +35,7 @@
#include "ephy-shell.h"
#include "eel-gconf-extensions.h"
#include "ephy-prefs.h"
+#include "ephy-embed-prefs.h"
#include "ephy-zoom.h"
#include "ephy-debug.h"
#include "ephy-file-helpers.h"
@@ -240,7 +241,10 @@ static GtkToggleActionEntry ephy_menu_toggle_entries [] =
G_CALLBACK (window_cmd_view_statusbar), TRUE },
{ "ViewFullscreen", STOCK_FULLSCREEN, N_("_Fullscreen"), "F11",
N_("Browse at full screen"),
- G_CALLBACK (window_cmd_view_fullscreen), FALSE}
+ G_CALLBACK (window_cmd_view_fullscreen), FALSE },
+ { "BrowseWithCaret", NULL, N_("Selection Caret"), "F7",
+ "",
+ G_CALLBACK (window_cmd_browse_with_caret), FALSE }
};
static guint ephy_menu_n_toggle_entries = G_N_ELEMENTS (ephy_menu_toggle_entries);
@@ -329,6 +333,7 @@ struct EphyWindowPrivate
guint show_statusbar_notifier_id;
guint hide_menubar_notifier_id;
guint disable_save_to_disk_notifier_id;
+ guint browse_with_caret_notifier_id;
};
enum
@@ -1741,6 +1746,20 @@ actions_notifier (GConfClient *client,
}
static void
+browse_with_caret_notifier (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ EphyWindow *window)
+{
+ GtkAction *action;
+
+ action = gtk_action_group_get_action (window->priv->action_group,
+ "BrowseWithCaret");
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
+ eel_gconf_get_boolean (CONF_BROWSE_WITH_CARET));
+}
+
+static void
ephy_window_init (EphyWindow *window)
{
EphyExtension *manager;
@@ -1836,6 +1855,12 @@ ephy_window_init (EphyWindow *window)
(CONF_LOCKDOWN_DISABLE_SAVE_TO_DISK,
(GConfClientNotifyFunc)actions_notifier, window);
+ /* other notifiers */
+ browse_with_caret_notifier (NULL, 0, NULL, window);
+ window->priv->browse_with_caret_notifier_id = eel_gconf_notification_add
+ (CONF_BROWSE_WITH_CARET,
+ (GConfClientNotifyFunc)browse_with_caret_notifier, window);
+
/* ensure the UI is updated */
gtk_ui_manager_ensure_update (GTK_UI_MANAGER (window->ui_merge));
@@ -1853,6 +1878,7 @@ ephy_window_finalize (GObject *object)
eel_gconf_notification_remove (window->priv->show_statusbar_notifier_id);
eel_gconf_notification_remove (window->priv->hide_menubar_notifier_id);
eel_gconf_notification_remove (window->priv->disable_save_to_disk_notifier_id);
+ eel_gconf_notification_remove (window->priv->browse_with_caret_notifier_id);
if (window->priv->find_dialog)
{
diff --git a/src/window-commands.c b/src/window-commands.c
index 4b809321c..bb98bf12e 100644
--- a/src/window-commands.c
+++ b/src/window-commands.c
@@ -31,6 +31,7 @@
#include "print-dialog.h"
#include "eel-gconf-extensions.h"
#include "ephy-prefs.h"
+#include "ephy-embed-prefs.h"
#include "ephy-dialog.h"
#include "ephy-bookmarks-editor.h"
#include "ephy-history-window.h"
@@ -1105,3 +1106,12 @@ window_cmd_load_location (GtkAction *action,
}
}
+void
+window_cmd_browse_with_caret (GtkAction *action,
+ EphyWindow *window)
+{
+ gboolean active;
+
+ active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
+ eel_gconf_set_boolean (CONF_BROWSE_WITH_CARET, active);
+}
diff --git a/src/window-commands.h b/src/window-commands.h
index 228434c27..b6aa7505c 100644
--- a/src/window-commands.h
+++ b/src/window-commands.h
@@ -172,3 +172,5 @@ void window_cmd_tabs_detach (GtkAction *action,
void window_cmd_load_location (GtkAction *action,
EphyWindow *window);
+void window_cmd_browse_with_caret (GtkAction *action,
+ EphyWindow *window);