summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2005-10-24 20:01:57 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2005-10-24 20:01:57 +0000
commitf2724a2515b384185cba4c16172ae4e28c7709af (patch)
treeb5ed8be53db1dd1602f7b374eff21bd4754d75dc
parent3fe6e98689dc004935dfe94411b4927fd014ab28 (diff)
downloadgtk+-f2724a2515b384185cba4c16172ae4e28c7709af.tar.gz
Add settings to hide the input method and Unicode control character
2005-10-24 Matthias Clasen <mclasen@redhat.com> Add settings to hide the input method and Unicode control character submenus in the context menus of GtkEntry and GtkTextView. * gdk/x11/gdkevents-x11.c: Map GTK+ settings to X settings. * gtk/gtksettings.c (gtk_settings_class_init): Declare GTK+ settings here. * gtk/gtktextview.c (popup_targets_received): * gtk/gtkentry.c (popup_targets_received): Use the settings here.
-rw-r--r--ChangeLog12
-rw-r--r--ChangeLog.pre-2-1012
-rw-r--r--gdk/x11/gdkevents-x11.c2
-rw-r--r--gtk/gtkentry.c64
-rw-r--r--gtk/gtksettings.c23
-rw-r--r--gtk/gtktextview.c64
6 files changed, 129 insertions, 48 deletions
diff --git a/ChangeLog b/ChangeLog
index 59175ee84c..3f0fbb8aa0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2005-10-24 Matthias Clasen <mclasen@redhat.com>
+
+ Add settings to hide the input method and Unicode control character
+ submenus in the context menus of GtkEntry and GtkTextView.
+
+ * gdk/x11/gdkevents-x11.c: Map GTK+ settings to X settings.
+
+ * gtk/gtksettings.c (gtk_settings_class_init): Declare GTK+ settings here.
+
+ * gtk/gtktextview.c (popup_targets_received):
+ * gtk/gtkentry.c (popup_targets_received): Use the settings here.
+
2005-10-24 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted): emitting
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 59175ee84c..3f0fbb8aa0 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,3 +1,15 @@
+2005-10-24 Matthias Clasen <mclasen@redhat.com>
+
+ Add settings to hide the input method and Unicode control character
+ submenus in the context menus of GtkEntry and GtkTextView.
+
+ * gdk/x11/gdkevents-x11.c: Map GTK+ settings to X settings.
+
+ * gtk/gtksettings.c (gtk_settings_class_init): Declare GTK+ settings here.
+
+ * gtk/gtktextview.c (popup_targets_received):
+ * gtk/gtkentry.c (popup_targets_received): Use the settings here.
+
2005-10-24 Kristian Rietveld <kris@gtk.org>
* gtk/gtktreemodelsort.c (gtk_tree_model_sort_row_inserted): emitting
diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c
index 522e1cdf68..4e6dc94065 100644
--- a/gdk/x11/gdkevents-x11.c
+++ b/gdk/x11/gdkevents-x11.c
@@ -2805,6 +2805,8 @@ static const struct
{ "Gtk/MenuBarAccel", "gtk-menu-bar-accel" },
{ "Gtk/CursorThemeName", "gtk-cursor-theme-name" },
{ "Gtk/CursorThemeSize", "gtk-cursor-theme-size" },
+ { "Gtk/ShowInputMethodMenu", "gtk-show-input-method-menu" },
+ { "Gtk/ShowUnicodeMenu", "gtk-show-unicode-menu" },
{ "Xft/Antialias", "gtk-xft-antialias" },
{ "Xft/Hinting", "gtk-xft-hinting" },
{ "Xft/HintStyle", "gtk-xft-hintstyle" },
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index de4d8139a5..83cc9f409c 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -4557,10 +4557,13 @@ popup_targets_received (GtkClipboard *clipboard,
if (GTK_WIDGET_REALIZED (entry))
{
- gboolean clipboard_contains_text = gtk_selection_data_targets_include_text (data);
+ gboolean clipboard_contains_text;
GtkWidget *menuitem;
GtkWidget *submenu;
+ gboolean show_input_method_menu;
+ gboolean show_unicode_menu;
+ clipboard_contains_text = gtk_selection_data_targets_include_text (data);
if (entry->popup_menu)
gtk_widget_destroy (entry->popup_menu);
@@ -4594,33 +4597,46 @@ popup_targets_received (GtkClipboard *clipboard,
gtk_widget_show (menuitem);
gtk_menu_shell_append (GTK_MENU_SHELL (entry->popup_menu), menuitem);
- menuitem = gtk_separator_menu_item_new ();
- gtk_widget_show (menuitem);
- gtk_menu_shell_append (GTK_MENU_SHELL (entry->popup_menu), menuitem);
-
- menuitem = gtk_menu_item_new_with_mnemonic (_("Input _Methods"));
- gtk_widget_set_sensitive (menuitem, entry->editable);
- gtk_widget_show (menuitem);
- submenu = gtk_menu_new ();
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
+ g_object_get (gtk_widget_get_settings (GTK_WIDGET (entry)),
+ "gtk-show-input-method-menu", &show_input_method_menu,
+ "gtk-show-unicode-menu", &show_unicode_menu,
+ NULL);
- gtk_menu_shell_append (GTK_MENU_SHELL (entry->popup_menu), menuitem);
+ if (show_input_method_menu || show_unicode_menu)
+ {
+ menuitem = gtk_separator_menu_item_new ();
+ gtk_widget_show (menuitem);
+ gtk_menu_shell_append (GTK_MENU_SHELL (entry->popup_menu), menuitem);
+ }
- gtk_im_multicontext_append_menuitems (GTK_IM_MULTICONTEXT (entry->im_context),
- GTK_MENU_SHELL (submenu));
+ if (show_input_method_menu)
+ {
+ menuitem = gtk_menu_item_new_with_mnemonic (_("Input _Methods"));
+ gtk_widget_set_sensitive (menuitem, entry->editable);
+ gtk_widget_show (menuitem);
+ submenu = gtk_menu_new ();
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (entry->popup_menu), menuitem);
- menuitem = gtk_menu_item_new_with_mnemonic (_("_Insert Unicode Control Character"));
- gtk_widget_show (menuitem);
+ gtk_im_multicontext_append_menuitems (GTK_IM_MULTICONTEXT (entry->im_context),
+ GTK_MENU_SHELL (submenu));
+ }
- submenu = gtk_menu_new ();
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
- gtk_menu_shell_append (GTK_MENU_SHELL (entry->popup_menu), menuitem);
-
- _gtk_text_util_append_special_char_menuitems (GTK_MENU_SHELL (submenu),
- unichar_chosen_func,
- entry);
- if (!entry->editable)
- gtk_widget_set_sensitive (menuitem, FALSE);
+ if (show_unicode_menu)
+ {
+ menuitem = gtk_menu_item_new_with_mnemonic (_("_Insert Unicode Control Character"));
+ gtk_widget_set_sensitive (menuitem, entry->editable);
+ gtk_widget_show (menuitem);
+
+ submenu = gtk_menu_new ();
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
+ gtk_menu_shell_append (GTK_MENU_SHELL (entry->popup_menu), menuitem);
+
+ _gtk_text_util_append_special_char_menuitems (GTK_MENU_SHELL (submenu),
+ unichar_chosen_func,
+ entry);
+ }
g_signal_emit (entry,
signals[POPULATE_POPUP],
diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c
index 8251e174d5..9daa41f4e4 100644
--- a/gtk/gtksettings.c
+++ b/gtk/gtksettings.c
@@ -77,7 +77,9 @@ enum {
PROP_CURSOR_THEME_NAME,
PROP_CURSOR_THEME_SIZE,
#endif
- PROP_ALTERNATIVE_BUTTON_ORDER
+ PROP_ALTERNATIVE_BUTTON_ORDER,
+ PROP_SHOW_INPUT_METHOD_MENU,
+ PROP_SHOW_UNICODE_MENU
};
@@ -385,6 +387,25 @@ gtk_settings_class_init (GtkSettingsClass *class)
GTK_PARAM_READWRITE),
NULL);
g_assert (result == PROP_ALTERNATIVE_BUTTON_ORDER);
+
+ result = settings_install_property_parser (class,
+ g_param_spec_boolean ("gtk-show-input-method-menu",
+ P_("Show the 'Input Methods' menu"),
+ P_("Whether the context menus of entries and text views should offer to change the input method"),
+ TRUE,
+ GTK_PARAM_READWRITE),
+ NULL);
+ g_assert (result == PROP_SHOW_INPUT_METHOD_MENU);
+
+ result = settings_install_property_parser (class,
+ g_param_spec_boolean ("gtk-show-unicode-menu",
+ P_("Show the 'Insert Unicode Control Character' menu"),
+ P_("Whether the context menus of entries and text views should offer to insert control characters"),
+ TRUE,
+ GTK_PARAM_READWRITE),
+ NULL);
+ g_assert (result == PROP_SHOW_UNICODE_MENU);
+
}
static void
diff --git a/gtk/gtktextview.c b/gtk/gtktextview.c
index a194e9d69b..950e794bc6 100644
--- a/gtk/gtktextview.c
+++ b/gtk/gtktextview.c
@@ -7070,14 +7070,18 @@ popup_targets_received (GtkClipboard *clipboard,
/* We implicitely rely here on the fact that if we are pasting ourself, we'll
* have text targets as well as the private GTK_TEXT_BUFFER_CONTENTS target.
*/
- gboolean clipboard_contains_text = gtk_selection_data_targets_include_text (data);
+ gboolean clipboard_contains_text;
GtkWidget *menuitem;
GtkWidget *submenu;
gboolean have_selection;
gboolean can_insert;
GtkTextIter iter;
GtkTextIter sel_start, sel_end;
+ gboolean show_input_method_menu;
+ gboolean show_unicode_menu;
+ clipboard_contains_text = gtk_selection_data_targets_include_text (data);
+
if (text_view->popup_menu)
gtk_widget_destroy (text_view->popup_menu);
@@ -7125,33 +7129,47 @@ popup_targets_received (GtkClipboard *clipboard,
gtk_widget_show (menuitem);
gtk_menu_shell_append (GTK_MENU_SHELL (text_view->popup_menu), menuitem);
- menuitem = gtk_separator_menu_item_new ();
- gtk_widget_show (menuitem);
- gtk_menu_shell_append (GTK_MENU_SHELL (text_view->popup_menu), menuitem);
+ g_object_get (gtk_widget_get_settings (GTK_WIDGET (text_view)),
+ "gtk-show-input-method-menu", &show_input_method_menu,
+ "gtk-show-unicode-menu", &show_unicode_menu,
+ NULL);
- menuitem = gtk_menu_item_new_with_mnemonic (_("Input _Methods"));
- gtk_widget_show (menuitem);
- gtk_widget_set_sensitive (menuitem, can_insert);
+ if (show_input_method_menu || show_unicode_menu)
+ {
+ menuitem = gtk_separator_menu_item_new ();
+ gtk_widget_show (menuitem);
+ gtk_menu_shell_append (GTK_MENU_SHELL (text_view->popup_menu), menuitem);
+ }
- submenu = gtk_menu_new ();
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
- gtk_menu_shell_append (GTK_MENU_SHELL (text_view->popup_menu), menuitem);
-
- gtk_im_multicontext_append_menuitems (GTK_IM_MULTICONTEXT (text_view->im_context),
- GTK_MENU_SHELL (submenu));
+ if (show_input_method_menu)
+ {
+ menuitem = gtk_menu_item_new_with_mnemonic (_("Input _Methods"));
+ gtk_widget_show (menuitem);
+ gtk_widget_set_sensitive (menuitem, can_insert);
- menuitem = gtk_menu_item_new_with_mnemonic (_("_Insert Unicode Control Character"));
- gtk_widget_show (menuitem);
- gtk_widget_set_sensitive (menuitem, can_insert);
-
- submenu = gtk_menu_new ();
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
- gtk_menu_shell_append (GTK_MENU_SHELL (text_view->popup_menu), menuitem);
+ submenu = gtk_menu_new ();
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
+ gtk_menu_shell_append (GTK_MENU_SHELL (text_view->popup_menu), menuitem);
+
+ gtk_im_multicontext_append_menuitems (GTK_IM_MULTICONTEXT (text_view->im_context),
+ GTK_MENU_SHELL (submenu));
+ }
- _gtk_text_util_append_special_char_menuitems (GTK_MENU_SHELL (submenu),
- unichar_chosen_func,
- text_view);
+ if (show_unicode_menu)
+ {
+ menuitem = gtk_menu_item_new_with_mnemonic (_("_Insert Unicode Control Character"));
+ gtk_widget_show (menuitem);
+ gtk_widget_set_sensitive (menuitem, can_insert);
+ submenu = gtk_menu_new ();
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);
+ gtk_menu_shell_append (GTK_MENU_SHELL (text_view->popup_menu), menuitem);
+
+ _gtk_text_util_append_special_char_menuitems (GTK_MENU_SHELL (submenu),
+ unichar_chosen_func,
+ text_view);
+ }
+
g_signal_emit (text_view,
signals[POPULATE_POPUP],
0,