diff -rupN mousepad-0.3.0/mousepad/mousepad-document.c mousepad-0.3.0-modified/mousepad/mousepad-document.c
--- mousepad-0.3.0/mousepad/mousepad-document.c 2013-11-14 16:07:46.703862580 +1300
+++ mousepad-0.3.0-modified/mousepad/mousepad-document.c 2013-11-14 15:05:04.076907000 +1300
@@ -176,7 +176,7 @@ static void
mousepad_document_init (MousepadDocument *document)
{
GtkTargetList *target_list;
- gboolean word_wrap, auto_indent, line_numbers, insert_spaces;
+ gboolean word_wrap, auto_indent, highlight_current, line_numbers, insert_spaces;
gchar *font_name, *color_scheme;
gint tab_size;
GtkSourceStyleScheme *scheme = NULL;
@@ -223,6 +223,7 @@ mousepad_document_init (MousepadDocument
/* read all the default settings */
g_object_get (G_OBJECT (preferences),
"view-word-wrap", &word_wrap,
+ "view-highlight-current", &highlight_current,
"view-line-numbers", &line_numbers,
"view-auto-indent", &auto_indent,
"view-font-name", &font_name,
@@ -237,6 +238,7 @@ mousepad_document_init (MousepadDocument
/* set all the settings */
mousepad_document_set_word_wrap (document, word_wrap);
mousepad_document_set_font (document, font_name);
+ mousepad_view_set_highlight_current (document->textview, highlight_current);
mousepad_view_set_line_numbers (document->textview, line_numbers);
mousepad_view_set_auto_indent (document->textview, auto_indent);
mousepad_view_set_tab_size (document->textview, tab_size);
diff -rupN mousepad-0.3.0/mousepad/mousepad-encoding-dialog.c mousepad-0.3.0-modified/mousepad/mousepad-encoding-dialog.c
--- mousepad-0.3.0/mousepad/mousepad-encoding-dialog.c 2013-11-14 16:07:46.697195819 +1300
+++ mousepad-0.3.0-modified/mousepad/mousepad-encoding-dialog.c 2013-11-14 15:05:04.076907000 +1300
@@ -210,6 +210,7 @@ mousepad_encoding_dialog_init (MousepadE
gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (dialog->document), TRUE, TRUE, 0);
gtk_text_view_set_editable (GTK_TEXT_VIEW (dialog->document->textview), FALSE);
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (dialog->document->textview), FALSE);
+ mousepad_view_set_highlight_current (dialog->document->textview, FALSE);
mousepad_view_set_line_numbers (dialog->document->textview, FALSE);
mousepad_document_set_word_wrap (dialog->document, FALSE);
gtk_widget_show (GTK_WIDGET (dialog->document));
diff -rupN mousepad-0.3.0/mousepad/mousepad-preferences.c mousepad-0.3.0-modified/mousepad/mousepad-preferences.c
--- mousepad-0.3.0/mousepad/mousepad-preferences.c 2013-11-14 16:07:46.683862289 +1300
+++ mousepad-0.3.0-modified/mousepad/mousepad-preferences.c 2013-11-14 15:08:19.636597000 +1300
@@ -57,6 +57,7 @@ enum
/* textview preferences */
PROP_VIEW_AUTO_INDENT,
PROP_VIEW_FONT_NAME,
+ PROP_VIEW_HIGHLIGHT_CURRENT,
PROP_VIEW_LINE_NUMBERS,
PROP_VIEW_TAB_WIDTH,
PROP_VIEW_TABS_AS_SPACES,
@@ -184,6 +185,14 @@ mousepad_preferences_class_init (Mousepa
MOUSEPAD_PARAM_READWRITE));
g_object_class_install_property (gobject_class,
+ PROP_VIEW_HIGHLIGHT_CURRENT,
+ g_param_spec_boolean ("view-highlight-current",
+ "ViewHighlightCurrent",
+ NULL,
+ FALSE,
+ MOUSEPAD_PARAM_READWRITE));
+
+ g_object_class_install_property (gobject_class,
PROP_VIEW_LINE_NUMBERS,
g_param_spec_boolean ("view-line-numbers",
"ViewLineNumbers",
diff -rupN mousepad-0.3.0/mousepad/mousepad-view.c mousepad-0.3.0-modified/mousepad/mousepad-view.c
--- mousepad-0.3.0/mousepad/mousepad-view.c 2013-11-14 16:07:46.660528583 +1300
+++ mousepad-0.3.0-modified/mousepad/mousepad-view.c 2013-11-14 15:05:04.080240000 +1300
@@ -2277,6 +2277,17 @@ mousepad_view_indent (MousepadView *view
void
+mousepad_view_set_highlight_current (MousepadView *view,
+ gboolean highlight_current)
+{
+ mousepad_return_if_fail (MOUSEPAD_IS_VIEW (view));
+
+ gtk_source_view_set_highlight_current_line (GTK_SOURCE_VIEW (view), highlight_current);
+}
+
+
+
+void
mousepad_view_set_line_numbers (MousepadView *view,
gboolean line_numbers)
{
@@ -2359,6 +2370,16 @@ mousepad_view_get_selection_length (Mous
}
+
+gboolean
+mousepad_view_get_highlight_current (MousepadView *view)
+{
+ mousepad_return_val_if_fail (MOUSEPAD_IS_VIEW (view), FALSE);
+
+ return gtk_source_view_get_highlight_current_line (GTK_SOURCE_VIEW (view));
+}
+
+
gboolean
mousepad_view_get_line_numbers (MousepadView *view)
diff -rupN mousepad-0.3.0/mousepad/mousepad-view.h mousepad-0.3.0-modified/mousepad/mousepad-view.h
--- mousepad-0.3.0/mousepad/mousepad-view.h 2013-11-14 16:07:46.647195041 +1300
+++ mousepad-0.3.0-modified/mousepad/mousepad-view.h 2013-11-14 15:05:04.080240000 +1300
@@ -92,6 +92,9 @@ void mousepad_view_duplicate
void mousepad_view_indent (MousepadView *view,
gint type);
+void mousepad_view_set_highlight_current (MousepadView *view,
+ gboolean highlight_current);
+
void mousepad_view_set_line_numbers (MousepadView *view,
gboolean line_numbers);
@@ -107,6 +110,8 @@ void mousepad_view_set_insert
gint mousepad_view_get_selection_length (MousepadView *view,
gboolean *is_column_selection);
+gboolean mousepad_view_get_highlight_current (MousepadView *view);
+
gboolean mousepad_view_get_line_numbers (MousepadView *view);
gboolean mousepad_view_get_auto_indent (MousepadView *view);
diff -rupN mousepad-0.3.0/mousepad/mousepad-window.c mousepad-0.3.0-modified/mousepad/mousepad-window.c
--- mousepad-0.3.0/mousepad/mousepad-window.c 2013-11-14 16:07:46.637194890 +1300
+++ mousepad-0.3.0-modified/mousepad/mousepad-window.c 2013-11-14 19:39:59.607440000 +1300
@@ -288,6 +288,8 @@ static void mousepad_window
MousepadWindow *window);
static void mousepad_window_action_color_scheme (GtkToggleAction *action,
MousepadWindow *window);
+static void mousepad_window_action_highlight_current (GtkToggleAction *action,
+ MousepadWindow *window);
static void mousepad_window_action_line_numbers (GtkToggleAction *action,
MousepadWindow *window);
static void mousepad_window_action_statusbar_overwrite (MousepadWindow *window,
@@ -471,6 +473,7 @@ static const GtkActionEntry action_entri
static const GtkToggleActionEntry toggle_action_entries[] =
{
+ { "highlight-current", NULL, N_("_Highlight Current"), NULL, N_("Highlight the line where the cursor is"), G_CALLBACK (mousepad_window_action_highlight_current), FALSE, },
{ "line-numbers", NULL, N_("Line N_umbers"), NULL, N_("Show line numbers"), G_CALLBACK (mousepad_window_action_line_numbers), FALSE, },
{ "statusbar", NULL, N_("St_atusbar"), NULL, N_("Change the visibility of the statusbar"), G_CALLBACK (mousepad_window_action_statusbar), FALSE, },
{ "auto-indent", NULL, N_("_Auto Indent"), NULL, N_("Auto indent a new line"), G_CALLBACK (mousepad_window_action_auto_indent), FALSE, },
@@ -2263,6 +2266,10 @@ mousepad_window_update_actions (Mousepad
action = gtk_action_group_get_action (window->action_group, "word-wrap");
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), active);
+ active = mousepad_view_get_highlight_current (document->textview);
+ action = gtk_action_group_get_action (window->action_group, "highlight-current");
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), active);
+
active = mousepad_view_get_line_numbers (document->textview);
action = gtk_action_group_get_action (window->action_group, "line-numbers");
gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), active);
@@ -4522,6 +4529,39 @@ mousepad_window_action_color_scheme (Gtk
}
}
+static void
+mousepad_window_action_highlight_current (GtkToggleAction *action,
+ MousepadWindow *window)
+{
+ gint page_num = 0;
+ gboolean active;
+ GtkWidget *page;
+ MousepadDocument *document;
+
+ mousepad_return_if_fail (MOUSEPAD_IS_WINDOW (window));
+ mousepad_return_if_fail (MOUSEPAD_IS_DOCUMENT (window->active));
+
+ /* leave when menu updates are locked */
+ if (lock_menu_updates == 0)
+ {
+ /* get the current state */
+ active = gtk_toggle_action_get_active (action);
+
+ /* save as the last used line number setting */
+ g_object_set (G_OBJECT (window->preferences), "view-highlight-current", active, NULL);
+
+ /* apply current line highlight setting to all open textviews */
+ while ((page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->notebook), page_num)))
+ {
+ if (G_LIKELY (MOUSEPAD_IS_DOCUMENT (page)))
+ {
+ document = MOUSEPAD_DOCUMENT (page);
+ mousepad_view_set_highlight_current (document->textview, active);
+ }
+ page_num++;
+ }
+ }
+}
static void
diff -rupN mousepad-0.3.0/mousepad/mousepad-window-ui.h mousepad-0.3.0-modified/mousepad/mousepad-window-ui.h
--- mousepad-0.3.0/mousepad/mousepad-window-ui.h 2013-11-14 16:07:46.497192736 +1300
+++ mousepad-0.3.0-modified/mousepad/mousepad-window-ui.h 1970-01-01 12:00:00.000000000 +1200
diff -rupN mousepad-0.3.0/mousepad/mousepad-window-ui.h mousepad-0.3.0-modified/mousepad/mousepad-window-ui.h
--- mousepad-0.3.0/mousepad/mousepad-window-ui.h 2013-11-14 16:07:46.497192736 +1300
+++ mousepad-0.3.0-modified/mousepad/mousepad-window-ui.h 2013-11-15 01:21:45.304555000 +1300
@@ -26,37 +26,38 @@ static const char mousepad_window_ui[] =
"-selection\" />