Author: olivier
Date: 2008-10-18 20:54:34 +0000 (Sat, 18 Oct 2008)
New Revision: 28296
Modified:
xfce4-settings/trunk/ChangeLog
xfce4-settings/trunk/NEWS
xfce4-settings/trunk/dialogs/keyboard-settings/keyboard-dialog.glade
xfce4-settings/trunk/dialogs/keyboard-settings/xfce-keyboard-settings.c
xfce4-settings/trunk/xfce4-settings-helper/keyboard-layout.c
Log:
Add an option to disable keyboard settings.
Modified: xfce4-settings/trunk/ChangeLog
===================================================================
--- xfce4-settings/trunk/ChangeLog 2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/ChangeLog 2008-10-18 20:54:34 UTC (rev 28296)
@@ -1,3 +1,10 @@
+2008-10-18 olivier
+
+ * dialogs/keyboard-settings/xfce-keyboard-settings.c,
+ dialogs/keyboard-settings/keyboard-dialog.glade,
+ xfce4-settings-helper/keyboard-layout.c: Add an option to disable
+ keyboard settings.
+
2008-10-16 olivier
* dialogs/keyboard-settings/xfce-keyboard-settings.c: Remove misleading
Modified: xfce4-settings/trunk/NEWS
===================================================================
--- xfce4-settings/trunk/NEWS 2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/NEWS 2008-10-18 20:54:34 UTC (rev 28296)
@@ -1,5 +1,6 @@
4.5.92 (Xfce 4.6 beta2)
+ * Add an option to disable keyboard settings.
4.5.91 (Xfce 4.6 beta1)
Modified: xfce4-settings/trunk/dialogs/keyboard-settings/keyboard-dialog.glade
===================================================================
--- xfce4-settings/trunk/dialogs/keyboard-settings/keyboard-dialog.glade
2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/dialogs/keyboard-settings/keyboard-dialog.glade
2008-10-18 20:54:34 UTC (rev 28296)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
-<!--Generated with glade3 3.4.5 on Mon Oct 13 01:03:42 2008 -->
+<!--Generated with glade3 3.4.5 on Sat Oct 18 21:05:03 2008 -->
<glade-interface>
<requires lib="xfce4"/>
<widget class="XfceTitledDialog" id="keyboard-settings-dialog">
@@ -398,11 +398,49 @@
<widget class="GtkVBox" id="xkb_tab_layout_vbox">
<property name="border_width">12</property>
<child>
- <widget class="GtkFrame" id="frame1">
+ <widget class="GtkFrame" id="frame5">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
<child>
+ <widget class="GtkAlignment" id="alignment5">
+ <property name="visible">True</property>
+ <property name="top_padding">6</property>
+ <property name="bottom_padding">6</property>
+ <property name="left_padding">12</property>
+ <child>
+ <widget class="GtkCheckButton"
id="xkb_use_system_default_checkbutton">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">_Use
system defaults</property>
+ <property name="use_underline">True</property>
+ <property name="response_id">0</property>
+ <property name="draw_indicator">True</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="label"
translatable="yes"><b>Keyboard settings</b></property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkFrame" id="xkb_model_frame">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
<widget class="GtkAlignment" id="alignment1">
<property name="visible">True</property>
<property name="bottom_padding">6</property>
@@ -438,7 +476,7 @@
</packing>
</child>
<child>
- <widget class="GtkFrame" id="frame4">
+ <widget class="GtkFrame" id="xkb_layout_frame">
<property name="visible">True</property>
<property name="label_xalign">0</property>
<property name="shadow_type">GTK_SHADOW_NONE</property>
Modified:
xfce4-settings/trunk/dialogs/keyboard-settings/xfce-keyboard-settings.c
===================================================================
--- xfce4-settings/trunk/dialogs/keyboard-settings/xfce-keyboard-settings.c
2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/dialogs/keyboard-settings/xfce-keyboard-settings.c
2008-10-18 20:54:34 UTC (rev 28296)
@@ -142,6 +142,8 @@
#ifdef HAVE_LIBXKLAVIER
static gchar * xfce_keyboard_settings_model_description
(XklConfigItem *config_item);
+static void xfce_keyboard_settings_system_default_cb
(GtkToggleButton *toggle,
+
XfceKeyboardSettings *settings);
static void xfce_keyboard_settings_set_layout
(XfceKeyboardSettings *settings);
static void xfce_keyboard_settings_init_layout
(XfceKeyboardSettings *settings);
static void xfce_keyboard_settings_add_model_to_combo
(XklConfigRegistry *config_registry,
@@ -304,6 +306,7 @@
GtkWidget *kbd_shortcuts_view;
GtkWidget *button;
#ifdef HAVE_LIBXKLAVIER
+ GtkWidget *xkb_use_system_default_checkbutton;
GtkWidget *xkb_tab_layout_vbox;
GtkWidget *xkb_model_combo;
GtkWidget *xkb_layout_view;
@@ -386,6 +389,15 @@
xkb_tab_layout_vbox = glade_xml_get_widget (settings->priv->glade_xml,
"xkb_tab_layout_vbox");
gtk_widget_show (GTK_WIDGET (xkb_tab_layout_vbox));
+ /* USe system defaults, ie disable options */
+ xkb_use_system_default_checkbutton = glade_xml_get_widget
(settings->priv->glade_xml, "xkb_use_system_default_checkbutton");
+ g_signal_connect (G_OBJECT (xkb_use_system_default_checkbutton),
+ "toggled",
+ G_CALLBACK (xfce_keyboard_settings_system_default_cb),
+ settings);
+ xfconf_g_property_bind (settings->priv->keyboard_layout_channel,
"/Default/XkbDisable", G_TYPE_BOOLEAN,
+ (GObject *) xkb_use_system_default_checkbutton,
"active");
+
/* Keyboard model combo */
xkb_model_combo = glade_xml_get_widget (settings->priv->glade_xml,
"xkb_model_combo");
gtk_cell_layout_clear (GTK_CELL_LAYOUT (xkb_model_combo));
@@ -1044,6 +1056,24 @@
static void
+xfce_keyboard_settings_system_default_cb (GtkToggleButton *toggle,
XfceKeyboardSettings *settings)
+{
+ GtkWidget *xkb_model_frame;
+ GtkWidget *xkb_layout_frame;
+ gboolean use_system_defaults;
+
+ use_system_defaults = gtk_toggle_button_get_active (toggle);
+ xkb_model_frame = glade_xml_get_widget (settings->priv->glade_xml,
"xkb_model_frame");
+ xkb_layout_frame = glade_xml_get_widget (settings->priv->glade_xml,
"xkb_layout_frame");
+
+ gtk_widget_set_sensitive (xkb_model_frame, !use_system_defaults);
+ gtk_widget_set_sensitive (xkb_layout_frame, !use_system_defaults);
+
+}
+
+
+
+static void
xfce_keyboard_settings_set_layout (XfceKeyboardSettings *settings)
{
GtkWidget *view;
Modified: xfce4-settings/trunk/xfce4-settings-helper/keyboard-layout.c
===================================================================
--- xfce4-settings/trunk/xfce4-settings-helper/keyboard-layout.c
2008-10-18 18:54:51 UTC (rev 28295)
+++ xfce4-settings/trunk/xfce4-settings-helper/keyboard-layout.c
2008-10-18 20:54:34 UTC (rev 28296)
@@ -66,6 +66,7 @@
/* xfconf channel */
XfconfChannel *channel;
+ gboolean xkb_disable_settings;
#ifdef HAVE_LIBXKLAVIER
/* libxklavier */
@@ -105,6 +106,7 @@
#endif /* HAVE_LIBXKLAVIER */
/* load settings */
+ helper->xkb_disable_settings = xfconf_channel_get_bool (helper->channel,
"/Default/XkbDisable", FALSE);
xfce_keyboard_layout_helper_set_model (helper);
xfce_keyboard_layout_helper_set_layout (helper);
xfce_keyboard_layout_helper_set_variant (helper);
@@ -128,10 +130,13 @@
#ifdef HAVE_LIBXKLAVIER
gchar *xkbmodel;
- xkbmodel = xfconf_channel_get_string (helper->channel,
"/Default/XkbModel", helper->config->model);
- g_free (helper->config->model);
- helper->config->model = xkbmodel;
- xkl_config_rec_activate (helper->config, helper->engine);
+ if (!helper->xkb_disable_settings)
+ {
+ xkbmodel = xfconf_channel_get_string (helper->channel,
"/Default/XkbModel", helper->config->model);
+ g_free (helper->config->model);
+ helper->config->model = xkbmodel;
+ xkl_config_rec_activate (helper->config, helper->engine);
+ }
#endif /* HAVE_LIBXKLAVIER */
}
@@ -142,14 +147,17 @@
gchar *default_layouts, *val_layout;
gchar **layouts;
- default_layouts = g_strjoinv(",", helper->config->layouts);
- val_layout = xfconf_channel_get_string (helper->channel,
"/Default/XkbLayout", default_layouts);
- layouts = g_strsplit_set (val_layout, ",", 0);
- g_strfreev(helper->config->layouts);
- helper->config->layouts = layouts;
- xkl_config_rec_activate (helper->config, helper->engine);
- g_free (val_layout);
- g_free (default_layouts);
+ if (!helper->xkb_disable_settings)
+ {
+ default_layouts = g_strjoinv(",", helper->config->layouts);
+ val_layout = xfconf_channel_get_string (helper->channel,
"/Default/XkbLayout", default_layouts);
+ layouts = g_strsplit_set (val_layout, ",", 0);
+ g_strfreev(helper->config->layouts);
+ helper->config->layouts = layouts;
+ xkl_config_rec_activate (helper->config, helper->engine);
+ g_free (val_layout);
+ g_free (default_layouts);
+ }
#endif /* HAVE_LIBXKLAVIER */
}
@@ -160,14 +168,17 @@
gchar *default_variants, *val_variant;
gchar **variants;
- default_variants = g_strjoinv(",", helper->config->variants);
- val_variant = xfconf_channel_get_string (helper->channel,
"/Default/XkbVariant", default_variants);
- variants = g_strsplit_set (val_variant, ",", 0);
- g_strfreev(helper->config->variants);
- helper->config->variants = variants;
- xkl_config_rec_activate (helper->config, helper->engine);
- g_free (val_variant);
- g_free (default_variants);
+ if (!helper->xkb_disable_settings)
+ {
+ default_variants = g_strjoinv(",", helper->config->variants);
+ val_variant = xfconf_channel_get_string (helper->channel,
"/Default/XkbVariant", default_variants);
+ variants = g_strsplit_set (val_variant, ",", 0);
+ g_strfreev(helper->config->variants);
+ helper->config->variants = variants;
+ xkl_config_rec_activate (helper->config, helper->engine);
+ g_free (val_variant);
+ g_free (default_variants);
+ }
#endif /* HAVE_LIBXKLAVIER */
}
@@ -179,10 +190,18 @@
{
g_return_if_fail (helper->channel == channel);
- if (strcmp (property_name, "/Default/XkbModel") == 0)
+ if (strcmp (property_name, "/Default/XkbDisable") == 0)
{
+ helper->xkb_disable_settings = g_value_get_boolean (value);
+ /* Apply all settings */
+ xfce_keyboard_layout_helper_set_model (helper);
xfce_keyboard_layout_helper_set_layout (helper);
+ xfce_keyboard_layout_helper_set_variant (helper);
}
+ else if (strcmp (property_name, "/Default/XkbModel") == 0)
+ {
+ xfce_keyboard_layout_helper_set_layout (helper);
+ }
else if (strcmp (property_name, "/Default/XkbLayout") == 0)
{
xfce_keyboard_layout_helper_set_layout (helper);
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits