[gedit] Bug 730947 - Fix highlight mode selector to activate selected language on activate
- From: Garrett Regier <gregier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit] Bug 730947 - Fix highlight mode selector to activate selected language on activate
- Date: Tue, 3 Jun 2014 23:48:46 +0000 (UTC)
commit c95a2d9f85ae51a992039038b7beab2a645d4673
Author: Garrett Regier <garrettregier gmail com>
Date: Thu May 29 17:46:55 2014 -0700
Bug 730947 - Fix highlight mode selector to activate selected language on activate
Also, only emit language-selected if their is a language.
gedit/gedit-highlight-mode-dialog.c | 14 ++++++++++++++
gedit/gedit-highlight-mode-selector.c | 26 +++++++++++++++++---------
2 files changed, 31 insertions(+), 9 deletions(-)
---
diff --git a/gedit/gedit-highlight-mode-dialog.c b/gedit/gedit-highlight-mode-dialog.c
index 995cbde..1e00452 100644
--- a/gedit/gedit-highlight-mode-dialog.c
+++ b/gedit/gedit-highlight-mode-dialog.c
@@ -36,9 +36,20 @@ gedit_highlight_mode_dialog_response (GtkDialog *dialog,
if (response_id == GTK_RESPONSE_OK)
{
+ /* The dialog will be destroyed if a language is selected */
gedit_highlight_mode_selector_activate_selected_language (priv->selector);
}
+ else
+ {
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+ }
+}
+static void
+on_language_selected (GeditHighlightModeSelector *sel,
+ GtkSourceLanguage *language,
+ GtkDialog *dialog)
+{
gtk_widget_destroy (GTK_WIDGET (dialog));
}
@@ -63,6 +74,9 @@ gedit_highlight_mode_dialog_init (GeditHighlightModeDialog *dlg)
gtk_widget_init_template (GTK_WIDGET (dlg));
gtk_dialog_set_default_response (GTK_DIALOG (dlg), GTK_RESPONSE_OK);
+
+ g_signal_connect (dlg->priv->selector, "language-selected",
+ G_CALLBACK (on_language_selected), dlg);
}
GtkWidget *
diff --git a/gedit/gedit-highlight-mode-selector.c b/gedit/gedit-highlight-mode-selector.c
index 4f7727d..a7a64ba 100644
--- a/gedit/gedit-highlight-mode-selector.c
+++ b/gedit/gedit-highlight-mode-selector.c
@@ -113,6 +113,13 @@ visible_func (GtkTreeModel *model,
}
static void
+on_entry_activate (GtkEntry *entry,
+ GeditHighlightModeSelector *selector)
+{
+ gedit_highlight_mode_selector_activate_selected_language (selector);
+}
+
+static void
on_entry_changed (GtkEntry *entry,
GeditHighlightModeSelector *selector)
{
@@ -233,6 +240,8 @@ gedit_highlight_mode_selector_init (GeditHighlightModeSelector *selector)
selector,
NULL);
+ g_signal_connect (priv->entry, "activate",
+ G_CALLBACK (on_entry_activate), selector);
g_signal_connect (priv->entry, "changed",
G_CALLBACK (on_entry_changed), selector);
g_signal_connect (priv->entry, "key-press-event",
@@ -332,24 +341,23 @@ void
gedit_highlight_mode_selector_activate_selected_language (GeditHighlightModeSelector *selector)
{
GeditHighlightModeSelectorPrivate *priv = selector->priv;
- GtkSourceLanguage *lang = NULL;
+ GtkSourceLanguage *lang;
GtkTreeIter iter;
g_return_if_fail (GEDIT_IS_HIGHLIGHT_MODE_SELECTOR (selector));
- if (gtk_tree_selection_get_selected (priv->treeview_selection, NULL, &iter))
+ if (!gtk_tree_selection_get_selected (priv->treeview_selection, NULL, &iter))
{
- gtk_tree_model_get (GTK_TREE_MODEL (priv->treemodelfilter), &iter,
- COLUMN_LANG, &lang,
- -1);
+ return;
}
+ gtk_tree_model_get (GTK_TREE_MODEL (priv->treemodelfilter), &iter,
+ COLUMN_LANG, &lang,
+ -1);
+
g_signal_emit (G_OBJECT (selector), signals[LANGUAGE_SELECTED], 0, lang);
- if (lang)
- {
- g_object_unref (lang);
- }
+ g_object_unref (lang);
}
/* ex:set ts=8 noet: */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]