aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xfce/recipes-xfce
diff options
context:
space:
mode:
Diffstat (limited to 'meta-xfce/recipes-xfce')
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0001-add-cursor-theme-xfce-invisible.patch248
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0002-mouse-settings-dialog-add-touchscreen-pointer-option.patch1236
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0003-XfcePointersHelper-gets-a-pointer-to-XfceXSettingsHe.patch137
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0004-XfceXSettingsHelper-gets-a-property-touchscreen-poin.patch251
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0005-pointers-detect-a-change-of-pointer-device-used-and-.patch582
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/invisiblebin0 -> 4160 bytes
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/waitbin0 -> 126096 bytes
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb18
8 files changed, 2470 insertions, 2 deletions
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0001-add-cursor-theme-xfce-invisible.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0001-add-cursor-theme-xfce-invisible.patch
new file mode 100644
index 0000000000..9272081f01
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0001-add-cursor-theme-xfce-invisible.patch
@@ -0,0 +1,248 @@
+From 4be18d7c8f2ac72b402dcbe8385922638fcd0a89 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Tue, 30 Oct 2012 13:14:11 +0100
+Subject: [PATCH 1/5] add cursor-theme "xfce-invisible"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+Upstream-Status: Submitted [1]
+[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474
+---
+ Makefile.am | 1 +
+ configure.ac | 2 +
+ cursors/Makefile.am | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ cursors/index.theme | 3 +
+ 6 files changed, 184 insertions(+), 0 deletions(-)
+ create mode 100644 cursors/Makefile.am
+ create mode 100644 cursors/index.theme
+
+diff --git a/Makefile.am b/Makefile.am
+index 3060bac..3f0dd1d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,7 @@
+ # $Id$
+
+ SUBDIRS = \
++ cursors \
+ dialogs \
+ xfce4-settings-manager \
+ xfce4-settings-editor \
+diff --git a/configure.ac b/configure.ac
+index 0e7907d..1378049 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -157,6 +157,7 @@ dnl *** Optional support for Xcursor ***
+ dnl ************************************
+ XDT_CHECK_OPTIONAL_PACKAGE([XCURSOR], [xcursor], [1.1.0],
+ [xcursor], [Cursor themes support])
++AC_SUBST(cursordir, "\${datadir}/icons/xfce-invisible/cursors")
+
+ dnl ****************************************
+ dnl *** Optional support for Libxklavier ***
+@@ -232,6 +233,7 @@ AC_SUBST([PLATFORM_LDFLAGS])
+ AC_OUTPUT([
+ Makefile
+ po/Makefile.in
++cursors/Makefile
+ dialogs/Makefile
+ dialogs/appearance-settings/Makefile
+ dialogs/accessibility-settings/Makefile
+diff --git a/cursors/Makefile.am b/cursors/Makefile.am
+new file mode 100644
+index 0000000..c9e5a9f
+--- /dev/null
++++ b/cursors/Makefile.am
+@@ -0,0 +1,178 @@
++CURSOR_NAMES_INVISIBLE = \
++ 00008160000006810000408080010102 \
++ 028006030e0e7ebffc7f7070c0600140 \
++ 2870a09082c103050810ffdffffe0204 \
++ 03b6e0fcb3499374a867c041f52298f0 \
++ 0876e1c15ff2fc01f906f1c363074c0f \
++ 08ffe1cb5fe6fc01f906f1c063814ccf \
++ 08ffe1e65f80fcfdf9fff11263e74c48 \
++ 1001208387f90000800003000700f6ff \
++ 1081e37283d90000800003c07f3ef6bf \
++ 14fef782d02440884392942c11205230 \
++ 208530c400c041818281048008011002 \
++ 3085a0e285430894940527032f8b26df \
++ 4498f0e0c1937ffe01fd06f973665830 \
++ 5aca4d189052212118709018842178c0 \
++ 5c6cd98b3f3ebcb1f9c7f1c204630408 \
++ 6407b0e94181790501fd1e167b474872 \
++ 640fb0e74195791501fd1ed57b41487f \
++ 9081237383d90e509aa00f00170e968f \
++ 9d800788f1b08800ae810202380a0822 \
++ a2a266d0498c3104214a47bd64ab0fc8 \
++ b66166c04f8c3109214a4fbd64a50fc8 \
++ c7088f0f3e6c8088236ef8e1e3e70000 \
++ d9ce0ab605698f320427677b458ad60b \
++ e29285e634086352946a0e7090d73106 \
++ f41c0e382c94c0958e07017e42b00462 \
++ f41c0e382c97c0938e07017e42800402 \
++ fcf1c3c7cd4491d801f1e1c78f100000 \
++ fcf21c00b30f7e3f83fe0dfd12e71cff \
++ alias \
++ all-scroll \
++ arrow \
++ base_arrow_down \
++ base_arrow_up \
++ based_arrow_down \
++ based_arrow_up \
++ bd_double_arrow \
++ boat \
++ bottom_left_corner \
++ bottom_right_corner \
++ bottom_side \
++ bottom_tee \
++ cell \
++ center_ptr \
++ circle \
++ closedhand \
++ color-picker \
++ col-resize \
++ copy \
++ cross \
++ cross_reverse \
++ crossed_circle \
++ crosshair \
++ default \
++ diamond_cross \
++ dnd-ask \
++ dnd-copy \
++ dnd-link \
++ dnd-move \
++ dnd-no-drop \
++ dnd-none \
++ dot \
++ dot_box_mask \
++ dotbox \
++ double_arrow \
++ down_arrow \
++ draft_large \
++ draft_small \
++ draped_box \
++ e-resize \
++ ew-resize \
++ exchange \
++ fd_double_arrow \
++ fleur \
++ forbidden \
++ grab \
++ grabbing \
++ gumby \
++ h_double_arrow \
++ hand \
++ hand1 \
++ hand2 \
++ help \
++ ibeam \
++ icon \
++ left_arrow \
++ left_ptr \
++ left_side \
++ left_tee \
++ link \
++ ll_angle \
++ lr_angle \
++ move \
++ ne-resize \
++ nesw-resize \
++ no-drop \
++ not-allowed \
++ n-resize \
++ ns-resize \
++ nw-resize \
++ nwse-resize \
++ openhand \
++ pencil \
++ pirate \
++ plus \
++ pointer \
++ pointing_hand \
++ question_arrow \
++ right_arrow \
++ right_ptr \
++ right_side \
++ right_tee \
++ row-resize \
++ sailboat \
++ sb_down_arrow \
++ sb_h_double_arrow \
++ sb_left_arrow \
++ sb_right_arrow \
++ sb_up_arrow \
++ sb_v_double_arrow \
++ se-resize \
++ size_all \
++ size_bdiag \
++ size_fdiag \
++ size_hor \
++ size_ver \
++ sizing \
++ shuttle \
++ split_h \
++ split_v \
++ s-resize \
++ sw-resize \
++ target \
++ tcross \
++ text \
++ top_left_arrow \
++ top_left_corner \
++ top_right_corner \
++ top_side \
++ top_tee \
++ trek \
++ ul_angle \
++ up_arrow \
++ ur_angle \
++ vertical-text \
++ v_double_arrow \
++ whats_this \
++ w-resize \
++ X_cursor \
++ xterm \
++ zoom-in \
++ zoom-out
++
++CURSOR_NAMES = \
++ 3ecb610c1bf2410f44200f48c40d3599 \
++ 08e8e1c95fe2fc01f976f1e063a24ccd \
++ 00000000000000020006000e7e9ffc3f \
++ half-busy \
++ left_ptr_watch \
++ progress \
++ watch
++
++
++EXTRA_DIST = invisible wait index.theme
++
++install-data-local:
++ $(mkinstalldirs) $(DESTDIR)@cursordir@;
++ $(INSTALL_DATA) index.theme $(DESTDIR)/@cursordir@/..
++ $(INSTALL_DATA) invisible wait $(DESTDIR)@cursordir@/
++ for CURSOR in $(CURSOR_NAMES_INVISIBLE); do \
++ echo '-- Installing invisible cursor '$$CURSOR; \
++ ln -s invisible $(DESTDIR)@cursordir@/$$CURSOR; \
++ done
++ for CURSOR in $(CURSOR_NAMES); do \
++ echo '-- Installing visible cursor '$$CURSOR; \
++ ln -s wait $(DESTDIR)@cursordir@/$$CURSOR; \
++ done
++
+diff --git a/cursors/index.theme b/cursors/index.theme
+new file mode 100644
+index 0000000..0c48458
+--- /dev/null
++++ b/cursors/index.theme
+@@ -0,0 +1,3 @@
++[Icon Theme]
++Name=xfce-invisible
++Example=invisible
+--
+1.7.6.5
+
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0002-mouse-settings-dialog-add-touchscreen-pointer-option.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0002-mouse-settings-dialog-add-touchscreen-pointer-option.patch
new file mode 100644
index 0000000000..4151c3d784
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0002-mouse-settings-dialog-add-touchscreen-pointer-option.patch
@@ -0,0 +1,1236 @@
+From 7c87f8f202a7743a18b8d7fdab5c66a3d54badd5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 1 Nov 2012 21:01:59 +0100
+Subject: [PATCH 2/5] mouse settings dialog: add touchscreen-pointer option
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+Upstream-Status: Submitted [1]
+[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474
+---
+ dialogs/mouse-settings/main.c | 56 +++++++++++++++++++++++++++++
+ dialogs/mouse-settings/mouse-dialog.glade | 28 ++++++++++++++-
+ dialogs/mouse-settings/mouse-dialog_ui.h | 1056 +++++++++++++++---------------
+ 3 files changed, 422 insertions(+), 329 deletions(-)
+
+diff --git a/dialogs/mouse-settings/main.c b/dialogs/mouse-settings/main.c
+index f4b475b..ff08219 100644
+--- a/dialogs/mouse-settings/main.c
++++ b/dialogs/mouse-settings/main.c
+@@ -956,6 +956,50 @@ mouse_settings_device_set_enabled (GtkToggleButton *button,
+
+
+
++#ifdef HAVE_XCURSOR
++static void
++mouse_settings_on_touchscreen_pointer (GtkToggleButton *button,
++ GtkBuilder *builder)
++{
++ gchar *name = NULL;
++ gchar *prop;
++ gboolean enabled;
++
++ if (locked > 0)
++ return;
++
++ if (mouse_settings_device_get_selected (builder, NULL, &name))
++ {
++ enabled = gtk_toggle_button_get_active (button);
++ prop = g_strconcat ("/", name, "/TouchscreenPointer", NULL);
++ xfconf_channel_set_bool (pointers_channel, prop, enabled);
++ g_free (prop);
++ }
++ g_free (name);
++}
++
++static void
++mouse_settings_set_touchscreen_pointer (GtkBuilder *builder)
++{
++ gchar *name = NULL;
++ gchar *prop;
++ gboolean enabled;
++ GtkToggleButton *button;
++
++ if (mouse_settings_device_get_selected (builder, NULL, &name))
++ {
++ button = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "touchscreen-pointer"));
++ prop = g_strconcat ("/", name, "/TouchscreenPointer", NULL);
++ enabled = xfconf_channel_get_bool (pointers_channel, prop, FALSE);
++ gtk_toggle_button_set_active (button, enabled);
++ g_free (prop);
++ }
++ g_free (name);
++}
++#endif
++
++
++
+ static void
+ mouse_settings_device_selection_changed (GtkBuilder *builder)
+ {
+@@ -1007,6 +1051,9 @@ mouse_settings_device_selection_changed (GtkBuilder *builder)
+ /* get the selected item */
+ if (mouse_settings_device_get_selected (builder, &device, NULL))
+ {
++#ifdef HAVE_XCURSOR
++ mouse_settings_set_touchscreen_pointer (builder);
++#endif
+ gdk_error_trap_push ();
+ device_info = XListInputDevices (xdisplay, &ndevices);
+ if (gdk_error_trap_pop () == 0 && device_info != NULL)
+@@ -1735,11 +1782,20 @@ main (gint argc, gchar **argv)
+ /* populate the themes treeview */
+ mouse_settings_themes_populate_store (builder);
+
++ /* connect & fill touchscreen-pointer */
++ object = gtk_builder_get_object (builder, "touchscreen-pointer");
++ g_signal_connect (G_OBJECT (object), "toggled",
++ G_CALLBACK (mouse_settings_on_touchscreen_pointer), builder);
++ mouse_settings_set_touchscreen_pointer (builder);
++
+ /* connect the cursor size in the cursor tab */
+ object = gtk_builder_get_object (builder, "theme-cursor-size");
+ xfconf_g_property_bind (xsettings_channel, "/Gtk/CursorThemeSize",
+ G_TYPE_INT, G_OBJECT (object), "value");
+ #else
++ /* hide touchscreen-pointer */
++ object = gtk_builder_get_object (builder, "touchscreen-pointer");
++ gtk_widget_hide (GTK_WIDGET (object));
+ /* hide the themes tab */
+ object = gtk_builder_get_object (builder, "themes-hbox");
+ gtk_widget_hide (GTK_WIDGET (object));
+diff --git a/dialogs/mouse-settings/mouse-dialog.glade b/dialogs/mouse-settings/mouse-dialog.glade
+index d3aab0d..573c551 100644
+--- a/dialogs/mouse-settings/mouse-dialog.glade
++++ b/dialogs/mouse-settings/mouse-dialog.glade
+@@ -323,7 +323,7 @@
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">6</property>
+- <property name="n_rows">3</property>
++ <property name="n_rows">4</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">12</property>
+ <property name="row_spacing">6</property>
+@@ -415,6 +415,32 @@
+ <property name="bottom_attach">3</property>
+ </packing>
+ </child>
++ <child>
++ <object class="GtkAlignment" id="alignment8">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="xalign">0</property>
++ <property name="xscale">0</property>
++ <property name="yscale">0</property>
++ <child>
++ <object class="GtkCheckButton" id="touchscreen-pointer">
++ <property name="label" translatable="yes">_Touchscreen pointer</property>
++ <property name="use_action_appearance">False</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="tooltip_text" translatable="yes">When selected, no mouse pointer is displayed for this device and gtk TouchscreenMode is activated</property>
++ <property name="use_underline">True</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="right_attach">2</property>
++ <property name="top_attach">3</property>
++ <property name="bottom_attach">4</property>
++ </packing>
++ </child>
+ </object>
+ </child>
+ </object>
+diff --git a/dialogs/mouse-settings/mouse-dialog_ui.h b/dialogs/mouse-settings/mouse-dialog_ui.h
+index 9e0c267..8a68c3b 100644
+--- a/dialogs/mouse-settings/mouse-dialog_ui.h
++++ b/dialogs/mouse-settings/mouse-dialog_ui.h
+@@ -31,545 +31,555 @@ static const char mouse_dialog_ui[] =
+ "</property></object><object class=\"GtkImage\" id=\"image5\"><property "
+ "name=\"visible\">True</property><property name=\"can_focus\">False</pro"
+ "perty><property name=\"stock\">gtk-revert-to-saved</property></object><"
+- "object class=\"XfceTitledDialog\" id=\"mouse-dialog\"><property name=\""
+- "can_focus\">False</property><property name=\"title\" translatable=\"yes"
+- "\">Mouse and Touchpad</property><property name=\"window_position\">cent"
+- "er-on-parent</property><property name=\"icon_name\">preferences-desktop"
+- "-peripherals</property><property name=\"type_hint\">dialog</property><p"
+- "roperty name=\"subtitle\" translatable=\"yes\">Configure pointer device"
+- " behavior and appearance</property><child internal-child=\"vbox\"><obje"
+- "ct class=\"GtkVBox\" id=\"dialog-vbox1\"><property name=\"visible\">Tru"
+- "e</property><property name=\"can_focus\">False</property><property name"
+- "=\"spacing\">2</property><child internal-child=\"action_area\"><object "
+- "class=\"GtkHButtonBox\" id=\"dialog-action_area1\"><property name=\"vis"
+- "ible\">True</property><property name=\"can_focus\">False</property><pro"
+- "perty name=\"layout_style\">end</property><child><object class=\"GtkBut"
+- "ton\" id=\"button1\"><property name=\"label\">gtk-close</property><prop"
+- "erty name=\"visible\">True</property><property name=\"can_focus\">True<"
+- "/property><property name=\"receives_default\">True</property><property "
+- "name=\"use_action_appearance\">False</property><property name=\"use_sto"
+- "ck\">True</property></object><packing><property name=\"expand\">False</"
+- "property><property name=\"fill\">False</property><property name=\"posit"
+- "ion\">0</property></packing></child><child><object class=\"GtkButton\" "
+- "id=\"button2\"><property name=\"label\">gtk-help</property><property na"
+- "me=\"use_action_appearance\">False</property><property name=\"visible\""
+- ">True</property><property name=\"can_focus\">True</property><property n"
+- "ame=\"receives_default\">True</property><property name=\"use_stock\">Tr"
+- "ue</property></object><packing><property name=\"expand\">False</propert"
+- "y><property name=\"fill\">False</property><property name=\"position\">0"
+- "</property><property name=\"secondary\">True</property></packing></chil"
+- "d></object><packing><property name=\"expand\">False</property><property"
+- " name=\"fill\">True</property><property name=\"pack_type\">end</propert"
+- "y><property name=\"position\">0</property></packing></child><child><obj"
+- "ect class=\"GtkNotebook\" id=\"plug-child\"><property name=\"visible\">"
+- "True</property><property name=\"can_focus\">True</property><property na"
+- "me=\"border_width\">6</property><child><object class=\"GtkVBox\" id=\"v"
+- "box1\"><property name=\"visible\">True</property><property name=\"can_f"
+- "ocus\">False</property><property name=\"border_width\">12</property><pr"
+- "operty name=\"spacing\">6</property><child><object class=\"GtkHBox\" id"
+- "=\"hbox1\"><property name=\"visible\">True</property><property name=\"c"
+- "an_focus\">False</property><property name=\"spacing\">12</property><chi"
+- "ld><object class=\"GtkLabel\" id=\"label7\"><property name=\"visible\">"
+- "True</property><property name=\"can_focus\">False</property><property n"
+- "ame=\"label\" translatable=\"yes\">De_vice:</property><property name=\""
+- "use_underline\">True</property><property name=\"mnemonic_widget\">devic"
+- "e-combobox</property><property name=\"angle\">0.050000000000000003</pro"
+- "perty></object><packing><property name=\"expand\">False</property><prop"
+- "erty name=\"fill\">True</property><property name=\"position\">0</proper"
+- "ty></packing></child><child><object class=\"GtkComboBox\" id=\"device-c"
+- "ombobox\"><property name=\"visible\">True</property><property name=\"ca"
+- "n_focus\">False</property></object><packing><property name=\"expand\">T"
+- "rue</property><property name=\"fill\">True</property><property name=\"p"
+- "osition\">1</property></packing></child></object><packing><property nam"
+- "e=\"expand\">False</property><property name=\"fill\">True</property><pr"
+- "operty name=\"position\">0</property></packing></child><child><object c"
+- "lass=\"GtkCheckButton\" id=\"device-enabled\"><property name=\"label\" "
+- "translatable=\"yes\">_Enable this device</property><property name=\"vis"
+- "ible\">True</property><property name=\"can_focus\">True</property><prop"
+- "erty name=\"receives_default\">False</property><property name=\"use_act"
+- "ion_appearance\">False</property><property name=\"use_underline\">True<"
+- "/property><property name=\"draw_indicator\">True</property></object><pa"
+- "cking><property name=\"expand\">False</property><property name=\"fill\""
+- ">True</property><property name=\"position\">1</property></packing></chi"
+- "ld><child><object class=\"GtkNotebook\" id=\"device-notebook\"><propert"
+- "y name=\"visible\">True</property><property name=\"can_focus\">True</pr"
+- "operty><child><object class=\"GtkVBox\" id=\"device-box\"><property nam"
+- "e=\"visible\">True</property><property name=\"can_focus\">False</proper"
+- "ty><property name=\"border_width\">6</property><property name=\"spacing"
+- "\">6</property><child><object class=\"GtkFrame\" id=\"frame1\"><propert"
+- "y name=\"visible\">True</property><property name=\"can_focus\">False</p"
+- "roperty><property name=\"label_xalign\">0</property><property name=\"sh"
+- "adow_type\">none</property><child><object class=\"GtkAlignment\" id=\"a"
+- "lignment1\"><property name=\"visible\">True</property><property name=\""
+- "can_focus\">False</property><property name=\"left_padding\">12</propert"
+- "y><child><object class=\"GtkVBox\" id=\"vbox12\"><property name=\"visib"
+- "le\">True</property><property name=\"can_focus\">False</property><prope"
+- "rty name=\"border_width\">6</property><property name=\"spacing\">6</pro"
+- "perty><child><object class=\"GtkHBox\" id=\"hbox3\"><property name=\"vi"
+- "sible\">True</property><property name=\"can_focus\">False</property><pr"
+- "operty name=\"spacing\">12</property><child><object class=\"GtkRadioBut"
+- "ton\" id=\"device-right-handed\"><property name=\"label\" translatable="
+- "\"yes\">_Right-handed</property><property name=\"visible\">True</proper"
+- "ty><property name=\"can_focus\">True</property><property name=\"receive"
+- "s_default\">False</property><property name=\"use_action_appearance\">Fa"
+- "lse</property><property name=\"use_underline\">True</property><property"
+- " name=\"active\">True</property><property name=\"draw_indicator\">True<"
+- "/property></object><packing><property name=\"expand\">False</property><"
+- "property name=\"fill\">True</property><property name=\"position\">0</pr"
+- "operty></packing></child><child><object class=\"GtkRadioButton\" id=\"d"
+- "evice-left-handed\"><property name=\"label\" translatable=\"yes\">_Left"
+- "-handed</property><property name=\"visible\">True</property><property n"
+- "ame=\"can_focus\">True</property><property name=\"receives_default\">Fa"
+- "lse</property><property name=\"use_action_appearance\">False</property>"
+- "<property name=\"use_underline\">True</property><property name=\"draw_i"
+- "ndicator\">True</property><property name=\"group\">device-right-handed<"
+- "/property></object><packing><property name=\"expand\">False</property><"
+- "property name=\"fill\">True</property><property name=\"position\">1</pr"
+- "operty></packing></child></object><packing><property name=\"expand\">Tr"
+- "ue</property><property name=\"fill\">True</property><property name=\"po"
+- "sition\">0</property></packing></child><child><object class=\"GtkCheckB"
+- "utton\" id=\"device-reverse-scrolling\"><property name=\"label\" transl"
+- "atable=\"yes\">Reverse scroll d_irection</property><property name=\"vis"
+- "ible\">True</property><property name=\"can_focus\">True</property><prop"
+- "erty name=\"receives_default\">False</property><property name=\"tooltip"
+- "_text\" translatable=\"yes\">When selected, the scroll wheel will work "
+- "in the opposite direction</property><property name=\"use_action_appeara"
+- "nce\">False</property><property name=\"use_underline\">True</property><"
+- "property name=\"draw_indicator\">True</property></object><packing><prop"
+- "erty name=\"expand\">True</property><property name=\"fill\">True</prope"
+- "rty><property name=\"position\">1</property></packing></child></object>"
+- "</child></object></child><child type=\"label\"><object class=\"GtkLabel"
+- "\" id=\"label14\"><property name=\"visible\">True</property><property n"
+- "ame=\"can_focus\">False</property><property name=\"label\" translatable"
+- "=\"yes\">Buttons</property><attributes><attribute name=\"weight\" value"
+- "=\"bold\"/></attributes></object></child></object><packing><property na"
+- "me=\"expand\">False</property><property name=\"fill\">True</property><p"
+- "roperty name=\"position\">0</property></packing></child><child><object "
+- "class=\"GtkFrame\" id=\"frame2\"><property name=\"visible\">True</prope"
+- "rty><property name=\"can_focus\">False</property><property name=\"label"
+- "_xalign\">0</property><property name=\"shadow_type\">none</property><ch"
+- "ild><object class=\"GtkAlignment\" id=\"alignment2\"><property name=\"v"
++ "object class=\"GtkListStore\" id=\"synaptics-scroll-store\"><columns><c"
++ "olumn type=\"gchararray\"/><column type=\"gboolean\"/></columns><data><"
++ "row><col id=\"0\" translatable=\"yes\">Disabled</col><col id=\"1\">True"
++ "</col></row><row><col id=\"0\" translatable=\"yes\">Edge scrolling</col"
++ "><col id=\"1\">True</col></row><row><col id=\"0\" translatable=\"yes\">"
++ "Two-finger scrolling</col><col id=\"1\">True</col></row><row><col id=\""
++ "0\" translatable=\"yes\">Circular scrolling</col><col id=\"1\">True</co"
++ "l></row></data></object><object class=\"GtkAdjustment\" id=\"theme-curs"
++ "or-size\"><property name=\"lower\">16</property><property name=\"upper\""
++ ">48</property><property name=\"value\">24</property><property name=\"st"
++ "ep_increment\">1</property><property name=\"page_increment\">11</proper"
++ "ty></object><object class=\"XfceTitledDialog\" id=\"mouse-dialog\"><pro"
++ "perty name=\"can_focus\">False</property><property name=\"title\" trans"
++ "latable=\"yes\">Mouse and Touchpad</property><property name=\"window_po"
++ "sition\">center-on-parent</property><property name=\"icon_name\">prefer"
++ "ences-desktop-peripherals</property><property name=\"type_hint\">dialog"
++ "</property><property name=\"subtitle\" translatable=\"yes\">Configure p"
++ "ointer device behavior and appearance</property><child internal-child=\""
++ "vbox\"><object class=\"GtkVBox\" id=\"dialog-vbox1\"><property name=\"v"
+ "isible\">True</property><property name=\"can_focus\">False</property><p"
+- "roperty name=\"left_padding\">12</property><child><object class=\"GtkTa"
+- "ble\" id=\"table1\"><property name=\"visible\">True</property><property"
+- " name=\"can_focus\">False</property><property name=\"border_width\">6</"
+- "property><property name=\"n_rows\">3</property><property name=\"n_colum"
+- "ns\">2</property><property name=\"column_spacing\">12</property><proper"
+- "ty name=\"row_spacing\">6</property><child><object class=\"GtkLabel\" i"
+- "d=\"device-acceleration-label\"><property name=\"visible\">True</proper"
+- "ty><property name=\"can_focus\">False</property><property name=\"xalign"
+- "\">0</property><property name=\"label\" translatable=\"yes\">_Accelerat"
+- "ion:</property><property name=\"use_underline\">True</property><propert"
+- "y name=\"mnemonic_widget\">device-acceleration-scale</property></object"
+- "><packing><property name=\"x_options\">GTK_FILL</property><property nam"
+- "e=\"y_options\">GTK_FILL</property></packing></child><child><object cla"
+- "ss=\"GtkHScale\" id=\"device-acceleration-scale\"><property name=\"visi"
+- "ble\">True</property><property name=\"can_focus\">True</property><prope"
+- "rty name=\"tooltip_text\" translatable=\"yes\">The factor at which the "
+- "pointer\'s speed will increase as the mouse is moved</property><propert"
+- "y name=\"update_policy\">delayed</property><property name=\"adjustment\""
+- ">device-acceleration</property><property name=\"round_digits\">1</prope"
+- "rty><property name=\"value_pos\">right</property></object><packing><pro"
+- "perty name=\"left_attach\">1</property><property name=\"right_attach\">"
+- "2</property></packing></child><child><object class=\"GtkHScale\" id=\"d"
+- "evice-threshold-scale\"><property name=\"visible\">True</property><prop"
+- "erty name=\"can_focus\">True</property><property name=\"tooltip_text\" "
+- "translatable=\"yes\">The number of pixels the pointer must move in a sh"
+- "ort time before it starts accelerating</property><property name=\"updat"
+- "e_policy\">delayed</property><property name=\"adjustment\">device-thres"
+- "hold</property><property name=\"round_digits\">0</property><property na"
+- "me=\"digits\">0</property><property name=\"value_pos\">right</property>"
+- "</object><packing><property name=\"left_attach\">1</property><property "
+- "name=\"right_attach\">2</property><property name=\"top_attach\">1</prop"
+- "erty><property name=\"bottom_attach\">2</property></packing></child><ch"
+- "ild><object class=\"GtkLabel\" id=\"device-threshold-label\"><property "
++ "roperty name=\"spacing\">2</property><child internal-child=\"action_are"
++ "a\"><object class=\"GtkHButtonBox\" id=\"dialog-action_area1\"><propert"
++ "y name=\"visible\">True</property><property name=\"can_focus\">False</p"
++ "roperty><property name=\"layout_style\">end</property><child><object cl"
++ "ass=\"GtkButton\" id=\"button2\"><property name=\"label\">gtk-help</pro"
++ "perty><property name=\"use_action_appearance\">False</property><propert"
++ "y name=\"visible\">True</property><property name=\"can_focus\">True</pr"
++ "operty><property name=\"receives_default\">True</property><property nam"
++ "e=\"use_stock\">True</property></object><packing><property name=\"expan"
++ "d\">False</property><property name=\"fill\">False</property><property n"
++ "ame=\"position\">0</property><property name=\"secondary\">True</propert"
++ "y></packing></child><child><object class=\"GtkButton\" id=\"button1\"><"
++ "property name=\"label\">gtk-close</property><property name=\"use_action"
++ "_appearance\">False</property><property name=\"visible\">True</property"
++ "><property name=\"can_focus\">True</property><property name=\"receives_"
++ "default\">True</property><property name=\"use_stock\">True</property></"
++ "object><packing><property name=\"expand\">False</property><property nam"
++ "e=\"fill\">False</property><property name=\"position\">0</property></pa"
++ "cking></child></object><packing><property name=\"expand\">False</proper"
++ "ty><property name=\"fill\">True</property><property name=\"pack_type\">"
++ "end</property><property name=\"position\">0</property></packing></child"
++ "><child><object class=\"GtkNotebook\" id=\"plug-child\"><property name="
++ "\"visible\">True</property><property name=\"can_focus\">True</property>"
++ "<property name=\"border_width\">6</property><child><object class=\"GtkV"
++ "Box\" id=\"vbox1\"><property name=\"visible\">True</property><property "
++ "name=\"can_focus\">False</property><property name=\"border_width\">12</"
++ "property><property name=\"spacing\">6</property><child><object class=\""
++ "GtkHBox\" id=\"hbox1\"><property name=\"visible\">True</property><prope"
++ "rty name=\"can_focus\">False</property><property name=\"spacing\">12</p"
++ "roperty><child><object class=\"GtkLabel\" id=\"label7\"><property name="
++ "\"visible\">True</property><property name=\"can_focus\">False</property"
++ "><property name=\"label\" translatable=\"yes\">De_vice:</property><prop"
++ "erty name=\"use_underline\">True</property><property name=\"mnemonic_wi"
++ "dget\">device-combobox</property><property name=\"angle\">0.05000000000"
++ "0000003</property></object><packing><property name=\"expand\">False</pr"
++ "operty><property name=\"fill\">True</property><property name=\"position"
++ "\">0</property></packing></child><child><object class=\"GtkComboBox\" i"
++ "d=\"device-combobox\"><property name=\"visible\">True</property><proper"
++ "ty name=\"can_focus\">False</property></object><packing><property name="
++ "\"expand\">True</property><property name=\"fill\">True</property><prope"
++ "rty name=\"position\">1</property></packing></child></object><packing><"
++ "property name=\"expand\">False</property><property name=\"fill\">True</"
++ "property><property name=\"position\">0</property></packing></child><chi"
++ "ld><object class=\"GtkCheckButton\" id=\"device-enabled\"><property nam"
++ "e=\"label\" translatable=\"yes\">_Enable this device</property><propert"
++ "y name=\"use_action_appearance\">False</property><property name=\"visib"
++ "le\">True</property><property name=\"can_focus\">True</property><proper"
++ "ty name=\"receives_default\">False</property><property name=\"use_under"
++ "line\">True</property><property name=\"draw_indicator\">True</property>"
++ "</object><packing><property name=\"expand\">False</property><property n"
++ "ame=\"fill\">True</property><property name=\"position\">1</property></p"
++ "acking></child><child><object class=\"GtkNotebook\" id=\"device-noteboo"
++ "k\"><property name=\"visible\">True</property><property name=\"can_focu"
++ "s\">True</property><child><object class=\"GtkVBox\" id=\"device-box\"><"
++ "property name=\"visible\">True</property><property name=\"can_focus\">F"
++ "alse</property><property name=\"border_width\">6</property><property na"
++ "me=\"spacing\">6</property><child><object class=\"GtkFrame\" id=\"frame"
++ "1\"><property name=\"visible\">True</property><property name=\"can_focu"
++ "s\">False</property><property name=\"label_xalign\">0</property><proper"
++ "ty name=\"shadow_type\">none</property><child><object class=\"GtkAlignm"
++ "ent\" id=\"alignment1\"><property name=\"visible\">True</property><prop"
++ "erty name=\"can_focus\">False</property><property name=\"left_padding\""
++ ">12</property><child><object class=\"GtkVBox\" id=\"vbox12\"><property "
+ "name=\"visible\">True</property><property name=\"can_focus\">False</pro"
+- "perty><property name=\"xalign\">0</property><property name=\"label\" tr"
+- "anslatable=\"yes\">_Sensitivity:</property><property name=\"use_underli"
+- "ne\">True</property><property name=\"mnemonic_widget\">device-threshold"
+- "-scale</property></object><packing><property name=\"top_attach\">1</pro"
+- "perty><property name=\"bottom_attach\">2</property><property name=\"x_o"
+- "ptions\">GTK_FILL</property></packing></child><child><object class=\"Gt"
+- "kAlignment\" id=\"alignment7\"><property name=\"visible\">True</propert"
+- "y><property name=\"can_focus\">False</property><property name=\"xalign\""
+- ">0</property><property name=\"xscale\">0</property><property name=\"ysc"
+- "ale\">0</property><child><object class=\"GtkButton\" id=\"device-reset-"
+- "feedback\"><property name=\"label\" translatable=\"yes\">Reset to De_fa"
+- "ults</property><property name=\"visible\">True</property><property name"
+- "=\"can_focus\">True</property><property name=\"receives_default\">True<"
+- "/property><property name=\"tooltip_text\" translatable=\"yes\">Set the "
+- "acceleration and sensitivity for the selected device to the default val"
+- "ues</property><property name=\"use_action_appearance\">False</property>"
+- "<property name=\"image\">image5</property><property name=\"use_underlin"
+- "e\">True</property></object></child></object><packing><property name=\""
+- "right_attach\">2</property><property name=\"top_attach\">2</property><p"
+- "roperty name=\"bottom_attach\">3</property></packing></child></object><"
+- "/child></object></child><child type=\"label\"><object class=\"GtkLabel\""
+- " id=\"label15\"><property name=\"visible\">True</property><property nam"
+- "e=\"can_focus\">False</property><property name=\"label\" translatable=\""
+- "yes\">Pointer Speed</property><attributes><attribute name=\"weight\" va"
+- "lue=\"bold\"/></attributes></object></child></object><packing><property"
+- " name=\"expand\">False</property><property name=\"fill\">True</property"
+- "><property name=\"position\">1</property></packing></child></object></c"
+- "hild><child type=\"tab\"><object class=\"GtkLabel\" id=\"label4\"><prop"
+- "erty name=\"visible\">True</property><property name=\"can_focus\">False"
+- "</property><property name=\"label\" translatable=\"yes\">B_uttons and F"
+- "eedback</property><property name=\"use_underline\">True</property></obj"
+- "ect><packing><property name=\"tab_fill\">False</property></packing></ch"
+- "ild><child><object class=\"GtkVBox\" id=\"synaptics-tab\"><property nam"
+- "e=\"visible\">True</property><property name=\"can_focus\">False</proper"
+- "ty><property name=\"border_width\">6</property><property name=\"spacing"
+- "\">6</property><child><object class=\"GtkFrame\" id=\"frame11\"><proper"
++ "perty><property name=\"border_width\">6</property><property name=\"spac"
++ "ing\">6</property><child><object class=\"GtkHBox\" id=\"hbox3\"><proper"
+ "ty name=\"visible\">True</property><property name=\"can_focus\">False</"
+- "property><property name=\"label_xalign\">0</property><property name=\"s"
+- "hadow_type\">none</property><child><object class=\"GtkAlignment\" id=\""
+- "alignment13\"><property name=\"visible\">True</property><property name="
+- "\"can_focus\">False</property><property name=\"left_padding\">12</prope"
+- "rty><child><object class=\"GtkVBox\" id=\"vbox11\"><property name=\"vis"
+- "ible\">True</property><property name=\"can_focus\">False</property><pro"
+- "perty name=\"border_width\">6</property><property name=\"spacing\">6</p"
+- "roperty><child><object class=\"GtkCheckButton\" id=\"synaptics-disable-"
+- "while-type\"><property name=\"label\" translatable=\"yes\">Disable to_u"
+- "chpad while typing</property><property name=\"visible\">True</property>"
++ "property><property name=\"spacing\">12</property><child><object class=\""
++ "GtkRadioButton\" id=\"device-right-handed\"><property name=\"label\" tr"
++ "anslatable=\"yes\">Ri_ght-handed</property><property name=\"use_action_"
++ "appearance\">False</property><property name=\"visible\">True</property>"
+ "<property name=\"can_focus\">True</property><property name=\"receives_d"
+- "efault\">False</property><property name=\"tooltip_text\" translatable=\""
+- "yes\">When selected, the touchpad will be disabled when the keyboard is"
+- " being used</property><property name=\"use_action_appearance\">False</p"
+- "roperty><property name=\"use_underline\">True</property><property name="
+- "\"draw_indicator\">True</property></object><packing><property name=\"ex"
+- "pand\">True</property><property name=\"fill\">True</property><property "
+- "name=\"position\">0</property></packing></child><child><object class=\""
+- "GtkCheckButton\" id=\"synaptics-tap-to-click\"><property name=\"label\""
+- " translatable=\"yes\">T_ap touchpad to click</property><property name=\""
+- "visible\">True</property><property name=\"can_focus\">True</property><p"
+- "roperty name=\"receives_default\">False</property><property name=\"use_"
+- "action_appearance\">False</property><property name=\"use_underline\">Tr"
+- "ue</property><property name=\"draw_indicator\">True</property></object>"
+- "<packing><property name=\"expand\">True</property><property name=\"fill"
+- "\">True</property><property name=\"position\">1</property></packing></c"
+- "hild></object></child></object></child><child type=\"label\"><object cl"
+- "ass=\"GtkLabel\" id=\"label16\"><property name=\"visible\">True</proper"
+- "ty><property name=\"can_focus\">False</property><property name=\"label\""
+- " translatable=\"yes\">General</property><property name=\"use_markup\">T"
+- "rue</property><attributes><attribute name=\"weight\" value=\"bold\"/></"
+- "attributes></object></child></object><packing><property name=\"expand\""
+- ">False</property><property name=\"fill\">True</property><property name="
+- "\"position\">0</property></packing></child><child><object class=\"GtkFr"
+- "ame\" id=\"frame10\"><property name=\"visible\">True</property><propert"
+- "y name=\"can_focus\">False</property><property name=\"label_xalign\">0<"
+- "/property><property name=\"shadow_type\">none</property><child><object "
+- "class=\"GtkAlignment\" id=\"alignment12\"><property name=\"visible\">Tr"
+- "ue</property><property name=\"can_focus\">False</property><property nam"
+- "e=\"left_padding\">12</property><child><object class=\"GtkVBox\" id=\"v"
+- "box10\"><property name=\"visible\">True</property><property name=\"can_"
+- "focus\">False</property><property name=\"border_width\">6</property><pr"
+- "operty name=\"spacing\">6</property><child><object class=\"GtkHBox\" id"
+- "=\"hbox4\"><property name=\"visible\">True</property><property name=\"c"
+- "an_focus\">False</property><property name=\"spacing\">12</property><chi"
+- "ld><object class=\"GtkRadioButton\" id=\"synaptics-scroll-no\"><propert"
+- "y name=\"label\" translatable=\"yes\">Di_sabled</property><property nam"
+- "e=\"visible\">True</property><property name=\"can_focus\">True</propert"
+- "y><property name=\"receives_default\">False</property><property name=\""
+- "use_action_appearance\">False</property><property name=\"use_underline\""
+- ">True</property><property name=\"active\">True</property><property name"
+- "=\"draw_indicator\">True</property></object><packing><property name=\"e"
+- "xpand\">False</property><property name=\"fill\">True</property><propert"
++ "efault\">False</property><property name=\"use_underline\">True</propert"
++ "y><property name=\"active\">True</property><property name=\"draw_indica"
++ "tor\">True</property></object><packing><property name=\"expand\">False<"
++ "/property><property name=\"fill\">True</property><property name=\"posit"
++ "ion\">0</property></packing></child><child><object class=\"GtkRadioButt"
++ "on\" id=\"device-left-handed\"><property name=\"label\" translatable=\""
++ "yes\">Le_ft-handed</property><property name=\"use_action_appearance\">F"
++ "alse</property><property name=\"visible\">True</property><property name"
++ "=\"can_focus\">True</property><property name=\"receives_default\">False"
++ "</property><property name=\"use_underline\">True</property><property na"
++ "me=\"draw_indicator\">True</property><property name=\"group\">device-ri"
++ "ght-handed</property></object><packing><property name=\"expand\">False<"
++ "/property><property name=\"fill\">True</property><property name=\"posit"
++ "ion\">1</property></packing></child></object><packing><property name=\""
++ "expand\">True</property><property name=\"fill\">True</property><propert"
+ "y name=\"position\">0</property></packing></child><child><object class="
+- "\"GtkRadioButton\" id=\"synaptics-scroll-edge\"><property name=\"label\""
+- " translatable=\"yes\">Edge scro_lling</property><property name=\"visibl"
++ "\"GtkCheckButton\" id=\"device-reverse-scrolling\"><property name=\"lab"
++ "el\" translatable=\"yes\">Reverse scroll d_irection</property><property"
++ " name=\"use_action_appearance\">False</property><property name=\"visibl"
+ "e\">True</property><property name=\"can_focus\">True</property><propert"
+- "y name=\"receives_default\">False</property><property name=\"use_action"
+- "_appearance\">False</property><property name=\"use_underline\">True</pr"
+- "operty><property name=\"draw_indicator\">True</property><property name="
+- "\"group\">synaptics-scroll-no</property></object><packing><property nam"
+- "e=\"expand\">False</property><property name=\"fill\">True</property><pr"
+- "operty name=\"position\">1</property></packing></child><child><object c"
+- "lass=\"GtkRadioButton\" id=\"synaptics-scroll-two\"><property name=\"la"
+- "bel\" translatable=\"yes\">Two-_finger scrolling</property><property na"
+- "me=\"visible\">True</property><property name=\"can_focus\">True</proper"
+- "ty><property name=\"receives_default\">False</property><property name=\""
+- "use_action_appearance\">False</property><property name=\"use_underline\""
+- ">True</property><property name=\"draw_indicator\">True</property><prope"
+- "rty name=\"group\">synaptics-scroll-no</property></object><packing><pro"
+- "perty name=\"expand\">True</property><property name=\"fill\">True</prop"
+- "erty><property name=\"position\">2</property></packing></child></object"
+- "><packing><property name=\"expand\">True</property><property name=\"fil"
+- "l\">True</property><property name=\"position\">0</property></packing></"
+- "child><child><object class=\"GtkCheckButton\" id=\"synaptics-scroll-hor"
+- "iz\"><property name=\"label\" translatable=\"yes\">Enable hori_zontal s"
+- "crolling</property><property name=\"visible\">True</property><property "
+- "name=\"can_focus\">True</property><property name=\"receives_default\">F"
+- "alse</property><property name=\"use_action_appearance\">False</property"
+- "><property name=\"use_underline\">True</property><property name=\"draw_"
+- "indicator\">True</property></object><packing><property name=\"expand\">"
+- "True</property><property name=\"fill\">True</property><property name=\""
+- "position\">1</property></packing></child></object></child></object></ch"
+- "ild><child type=\"label\"><object class=\"GtkLabel\" id=\"label17\"><pr"
+- "operty name=\"visible\">True</property><property name=\"can_focus\">Fal"
+- "se</property><property name=\"label\" translatable=\"yes\">Scrolling</p"
+- "roperty><property name=\"use_markup\">True</property><attributes><attri"
+- "bute name=\"weight\" value=\"bold\"/></attributes></object></child></ob"
+- "ject><packing><property name=\"expand\">False</property><property name="
+- "\"fill\">True</property><property name=\"position\">1</property></packi"
+- "ng></child></object><packing><property name=\"position\">1</property></"
+- "packing></child><child type=\"tab\"><object class=\"GtkLabel\" id=\"syn"
+- "aptics-label\"><property name=\"visible\">True</property><property name"
+- "=\"can_focus\">False</property><property name=\"label\" translatable=\""
+- "yes\">T_ouchpad</property><property name=\"use_underline\">True</proper"
+- "ty></object><packing><property name=\"position\">1</property><property "
+- "name=\"tab_fill\">False</property></packing></child><child><object clas"
+- "s=\"GtkVBox\" id=\"wacom-tab\"><property name=\"visible\">True</propert"
++ "y name=\"receives_default\">False</property><property name=\"tooltip_te"
++ "xt\" translatable=\"yes\">When selected, the scroll wheel will work in "
++ "the opposite direction</property><property name=\"use_underline\">True<"
++ "/property><property name=\"draw_indicator\">True</property></object><pa"
++ "cking><property name=\"expand\">True</property><property name=\"fill\">"
++ "True</property><property name=\"position\">1</property></packing></chil"
++ "d></object></child></object></child><child type=\"label\"><object class"
++ "=\"GtkLabel\" id=\"label14\"><property name=\"visible\">True</property>"
++ "<property name=\"can_focus\">False</property><property name=\"label\" t"
++ "ranslatable=\"yes\">Buttons</property><attributes><attribute name=\"wei"
++ "ght\" value=\"bold\"/></attributes></object></child></object><packing><"
++ "property name=\"expand\">False</property><property name=\"fill\">True</"
++ "property><property name=\"position\">0</property></packing></child><chi"
++ "ld><object class=\"GtkFrame\" id=\"frame2\"><property name=\"visible\">"
++ "True</property><property name=\"can_focus\">False</property><property n"
++ "ame=\"label_xalign\">0</property><property name=\"shadow_type\">none</p"
++ "roperty><child><object class=\"GtkAlignment\" id=\"alignment2\"><proper"
++ "ty name=\"visible\">True</property><property name=\"can_focus\">False</"
++ "property><property name=\"left_padding\">12</property><child><object cl"
++ "ass=\"GtkTable\" id=\"table1\"><property name=\"visible\">True</propert"
+ "y><property name=\"can_focus\">False</property><property name=\"border_"
+- "width\">6</property><property name=\"spacing\">6</property><child><obje"
+- "ct class=\"GtkFrame\" id=\"frame12\"><property name=\"visible\">True</p"
+- "roperty><property name=\"can_focus\">False</property><property name=\"l"
+- "abel_xalign\">0</property><property name=\"shadow_type\">none</property"
+- "><child><object class=\"GtkAlignment\" id=\"alignment14\"><property nam"
+- "e=\"visible\">True</property><property name=\"can_focus\">False</proper"
+- "ty><property name=\"left_padding\">12</property><child><object class=\""
+- "GtkTable\" id=\"table2\"><property name=\"visible\">True</property><pro"
+- "perty name=\"can_focus\">False</property><property name=\"border_width\""
+- ">6</property><property name=\"n_rows\">2</property><property name=\"n_c"
+- "olumns\">2</property><property name=\"column_spacing\">12</property><pr"
+- "operty name=\"row_spacing\">6</property><child><object class=\"GtkLabel"
+- "\" id=\"label9\"><property name=\"visible\">True</property><property na"
+- "me=\"can_focus\">False</property><property name=\"xalign\">0</property>"
+- "<property name=\"label\" translatable=\"yes\">Tr_acking mode:</property"
+- "><property name=\"use_underline\">True</property><property name=\"mnemo"
+- "nic_widget\">wacom-mode</property></object><packing><property name=\"x_"
+- "options\">GTK_FILL</property></packing></child><child><object class=\"G"
+- "tkLabel\" id=\"label10\"><property name=\"visible\">True</property><pro"
+- "perty name=\"can_focus\">False</property><property name=\"xalign\">0</p"
+- "roperty><property name=\"label\" translatable=\"yes\">_Rotation:</prope"
+- "rty><property name=\"use_underline\">True</property><property name=\"mn"
+- "emonic_widget\">wacom-rotation</property></object><packing><property na"
+- "me=\"top_attach\">1</property><property name=\"bottom_attach\">2</prope"
+- "rty><property name=\"x_options\">GTK_FILL</property></packing></child><"
+- "child><object class=\"GtkComboBox\" id=\"wacom-mode\"><property name=\""
+- "visible\">True</property><property name=\"can_focus\">False</property><"
+- "property name=\"model\">wacom-mode-store</property><child><object class"
+- "=\"GtkCellRendererText\" id=\"cellrenderertext1\"/><attributes><attribu"
+- "te name=\"text\">1</attribute></attributes></child></object><packing><p"
+- "roperty name=\"left_attach\">1</property><property name=\"right_attach\""
+- ">2</property></packing></child><child><object class=\"GtkComboBox\" id="
+- "\"wacom-rotation\"><property name=\"visible\">True</property><property "
+- "name=\"can_focus\">False</property><property name=\"model\">wacom-rotat"
+- "ion-store</property><child><object class=\"GtkCellRendererText\" id=\"c"
+- "ellrenderertext2\"/><attributes><attribute name=\"text\">1</attribute><"
+- "/attributes></child></object><packing><property name=\"left_attach\">1<"
+- "/property><property name=\"right_attach\">2</property><property name=\""
+- "top_attach\">1</property><property name=\"bottom_attach\">2</property><"
+- "/packing></child></object></child></object></child><child type=\"label\""
+- "><object class=\"GtkLabel\" id=\"label18\"><property name=\"visible\">T"
++ "width\">6</property><property name=\"n_rows\">4</property><property nam"
++ "e=\"n_columns\">2</property><property name=\"column_spacing\">12</prope"
++ "rty><property name=\"row_spacing\">6</property><child><object class=\"G"
++ "tkLabel\" id=\"device-acceleration-label\"><property name=\"visible\">T"
+ "rue</property><property name=\"can_focus\">False</property><property na"
+- "me=\"label\" translatable=\"yes\">General</property><property name=\"us"
+- "e_markup\">True</property><attributes><attribute name=\"weight\" value="
+- "\"bold\"/></attributes></object></child></object><packing><property nam"
+- "e=\"expand\">False</property><property name=\"fill\">True</property><pr"
+- "operty name=\"position\">0</property></packing></child></object><packin"
+- "g><property name=\"position\">2</property></packing></child><child type"
+- "=\"tab\"><object class=\"GtkLabel\" id=\"wacom-label\"><property name=\""
+- "visible\">True</property><property name=\"can_focus\">False</property><"
+- "property name=\"label\" translatable=\"yes\">Table_t</property><propert"
+- "y name=\"use_underline\">True</property></object><packing><property nam"
+- "e=\"position\">2</property><property name=\"tab_fill\">False</property>"
+- "</packing></child></object><packing><property name=\"expand\">True</pro"
+- "perty><property name=\"fill\">True</property><property name=\"position\""
+- ">2</property></packing></child></object></child><child type=\"tab\"><ob"
+- "ject class=\"GtkLabel\" id=\"label1\"><property name=\"visible\">True</"
+- "property><property name=\"can_focus\">False</property><property name=\""
+- "label\" translatable=\"yes\">_Devices</property><property name=\"use_un"
+- "derline\">True</property></object><packing><property name=\"tab_fill\">"
+- "False</property></packing></child><child><object class=\"GtkVBox\" id=\""
+- "vbox3\"><property name=\"visible\">True</property><property name=\"can_"
+- "focus\">False</property><property name=\"border_width\">12</property><p"
+- "roperty name=\"spacing\">6</property><child><object class=\"GtkFrame\" "
+- "id=\"frame3\"><property name=\"visible\">True</property><property name="
+- "\"can_focus\">False</property><property name=\"label_xalign\">0</proper"
+- "ty><property name=\"shadow_type\">none</property><child><object class=\""
+- "GtkAlignment\" id=\"alignment3\"><property name=\"visible\">True</prope"
+- "rty><property name=\"can_focus\">False</property><property name=\"left_"
+- "padding\">12</property><child><object class=\"GtkVBox\" id=\"vbox4\"><p"
+- "roperty name=\"visible\">True</property><property name=\"can_focus\">Fa"
+- "lse</property><property name=\"border_width\">6</property><property nam"
+- "e=\"spacing\">6</property><child><object class=\"GtkLabel\" id=\"mouse-"
+- "dnd-label\"><property name=\"visible\">True</property><property name=\""
+- "can_focus\">False</property><property name=\"xalign\">0</property><prop"
+- "erty name=\"label\" translatable=\"yes\">Th_reshold:</property><propert"
+- "y name=\"use_underline\">True</property><property name=\"mnemonic_widge"
+- "t\">dnd-threshold-scale</property></object><packing><property name=\"ex"
+- "pand\">True</property><property name=\"fill\">True</property><property "
+- "name=\"position\">0</property></packing></child><child><object class=\""
+- "GtkHScale\" id=\"dnd-threshold-scale\"><property name=\"visible\">True<"
+- "/property><property name=\"can_focus\">True</property><property name=\""
+- "tooltip_text\" translatable=\"yes\">The number of pixels the pointer mu"
+- "st move before a drag operation will start</property><property name=\"u"
+- "pdate_policy\">delayed</property><property name=\"adjustment\">dnd-thre"
+- "shold</property><property name=\"digits\">0</property><property name=\""
+- "value_pos\">right</property></object><packing><property name=\"expand\""
+- ">True</property><property name=\"fill\">True</property><property name=\""
+- "position\">1</property></packing></child></object></child></object></ch"
+- "ild><child type=\"label\"><object class=\"GtkLabel\" id=\"label6\"><pro"
+- "perty name=\"visible\">True</property><property name=\"can_focus\">Fals"
+- "e</property><property name=\"label\" translatable=\"yes\">Drag and Drop"
+- "</property><attributes><attribute name=\"weight\" value=\"bold\"/></att"
+- "ributes></object></child></object><packing><property name=\"expand\">Fa"
+- "lse</property><property name=\"fill\">True</property><property name=\"p"
+- "osition\">0</property></packing></child><child><object class=\"GtkFrame"
+- "\" id=\"frame4\"><property name=\"visible\">True</property><property na"
+- "me=\"can_focus\">False</property><property name=\"label_xalign\">0</pro"
+- "perty><property name=\"shadow_type\">none</property><child><object clas"
+- "s=\"GtkAlignment\" id=\"alignment4\"><property name=\"visible\">True</p"
+- "roperty><property name=\"can_focus\">False</property><property name=\"l"
+- "eft_padding\">12</property><child><object class=\"GtkVBox\" id=\"vbox5\""
++ "me=\"xalign\">0</property><property name=\"label\" translatable=\"yes\""
++ ">Acceleratio_n:</property><property name=\"use_underline\">True</proper"
++ "ty><property name=\"mnemonic_widget\">device-acceleration-scale</proper"
++ "ty></object><packing><property name=\"x_options\">GTK_FILL</property><p"
++ "roperty name=\"y_options\">GTK_FILL</property></packing></child><child>"
++ "<object class=\"GtkHScale\" id=\"device-acceleration-scale\"><property "
++ "name=\"visible\">True</property><property name=\"can_focus\">True</prop"
++ "erty><property name=\"tooltip_text\" translatable=\"yes\">The factor at"
++ " which the pointer\'s speed will increase as the mouse is moved</proper"
++ "ty><property name=\"update_policy\">delayed</property><property name=\""
++ "adjustment\">device-acceleration</property><property name=\"round_digit"
++ "s\">1</property><property name=\"value_pos\">right</property></object><"
++ "packing><property name=\"left_attach\">1</property><property name=\"rig"
++ "ht_attach\">2</property></packing></child><child><object class=\"GtkHSc"
++ "ale\" id=\"device-threshold-scale\"><property name=\"visible\">True</pr"
++ "operty><property name=\"can_focus\">True</property><property name=\"too"
++ "ltip_text\" translatable=\"yes\">The number of pixels the pointer must "
++ "move in a short time before it starts accelerating</property><property "
++ "name=\"update_policy\">delayed</property><property name=\"adjustment\">"
++ "device-threshold</property><property name=\"round_digits\">0</property>"
++ "<property name=\"digits\">0</property><property name=\"value_pos\">righ"
++ "t</property></object><packing><property name=\"left_attach\">1</propert"
++ "y><property name=\"right_attach\">2</property><property name=\"top_atta"
++ "ch\">1</property><property name=\"bottom_attach\">2</property></packing"
++ "></child><child><object class=\"GtkLabel\" id=\"device-threshold-label\""
+ "><property name=\"visible\">True</property><property name=\"can_focus\""
+- ">False</property><property name=\"border_width\">6</property><property "
+- "name=\"spacing\">6</property><child><object class=\"GtkLabel\" id=\"dcl"
+- "ick-time-label\"><property name=\"visible\">True</property><property na"
+- "me=\"can_focus\">False</property><property name=\"xalign\">0</property>"
+- "<property name=\"label\" translatable=\"yes\">Ti_me:</property><propert"
+- "y name=\"use_underline\">True</property><property name=\"mnemonic_widge"
+- "t\">dclick-time-scale</property></object><packing><property name=\"expa"
+- "nd\">True</property><property name=\"fill\">True</property><property na"
+- "me=\"position\">0</property></packing></child><child><object class=\"Gt"
+- "kHScale\" id=\"dclick-time-scale\"><property name=\"visible\">True</pro"
+- "perty><property name=\"can_focus\">True</property><property name=\"tool"
+- "tip_text\" translatable=\"yes\">Two mouse clicks in less than this leng"
+- "th of time (in milliseconds) will be considered a double click</propert"
+- "y><property name=\"update_policy\">delayed</property><property name=\"a"
+- "djustment\">dclick-time</property><property name=\"digits\">0</property"
+- "><property name=\"value_pos\">right</property></object><packing><proper"
+- "ty name=\"expand\">True</property><property name=\"fill\">True</propert"
+- "y><property name=\"position\">1</property></packing></child><child><obj"
+- "ect class=\"GtkLabel\" id=\"dclick-distance-label\"><property name=\"vi"
+- "sible\">True</property><property name=\"can_focus\">False</property><pr"
+- "operty name=\"xalign\">0</property><property name=\"label\" translatabl"
+- "e=\"yes\">D_istance:</property><property name=\"use_underline\">True</p"
+- "roperty><property name=\"mnemonic_widget\">dclick-distance-scale</prope"
+- "rty></object><packing><property name=\"expand\">True</property><propert"
+- "y name=\"fill\">True</property><property name=\"position\">2</property>"
+- "</packing></child><child><object class=\"GtkHScale\" id=\"dclick-distan"
+- "ce-scale\"><property name=\"visible\">True</property><property name=\"c"
+- "an_focus\">True</property><property name=\"tooltip_text\" translatable="
+- "\"yes\">The mouse pointer cannot move farther than this distance betwee"
+- "n two clicks for them to be considered a double click</property><proper"
+- "ty name=\"update_policy\">delayed</property><property name=\"adjustment"
+- "\">dclick-distance</property><property name=\"digits\">0</property><pro"
+- "perty name=\"value_pos\">right</property></object><packing><property na"
+- "me=\"expand\">True</property><property name=\"fill\">True</property><pr"
+- "operty name=\"position\">3</property></packing></child></object></child"
+- "></object></child><child type=\"label\"><object class=\"GtkLabel\" id=\""
+- "label8\"><property name=\"visible\">True</property><property name=\"can"
+- "_focus\">False</property><property name=\"label\" translatable=\"yes\">"
+- "Double Click</property><attributes><attribute name=\"weight\" value=\"b"
+- "old\"/></attributes></object></child></object><packing><property name=\""
+- "expand\">False</property><property name=\"fill\">True</property><proper"
+- "ty name=\"position\">1</property></packing></child></object><packing><p"
+- "roperty name=\"position\">1</property></packing></child><child type=\"t"
+- "ab\"><object class=\"GtkLabel\" id=\"label2\"><property name=\"visible\""
+- ">True</property><property name=\"can_focus\">False</property><property "
+- "name=\"label\" translatable=\"yes\">_Behavior</property><property name="
+- "\"use_underline\">True</property></object><packing><property name=\"pos"
+- "ition\">1</property><property name=\"tab_fill\">False</property></packi"
+- "ng></child><child><object class=\"GtkHBox\" id=\"themes-hbox\"><propert"
+- "y name=\"visible\">True</property><property name=\"can_focus\">False</p"
+- "roperty><property name=\"border_width\">12</property><property name=\"s"
+- "pacing\">12</property><child><object class=\"GtkScrolledWindow\" id=\"s"
+- "crolledwindow2\"><property name=\"visible\">True</property><property na"
+- "me=\"can_focus\">True</property><property name=\"hscrollbar_policy\">au"
+- "tomatic</property><property name=\"vscrollbar_policy\">automatic</prope"
+- "rty><property name=\"shadow_type\">etched-in</property><child><object c"
+- "lass=\"GtkTreeView\" id=\"theme-treeview\"><property name=\"width_reque"
+- "st\">200</property><property name=\"visible\">True</property><property "
+- "name=\"can_focus\">True</property><property name=\"headers_visible\">Fa"
+- "lse</property></object></child></object><packing><property name=\"expan"
+- "d\">True</property><property name=\"fill\">True</property><property nam"
+- "e=\"position\">0</property></packing></child><child><object class=\"Gtk"
+- "VBox\" id=\"vbox9\"><property name=\"visible\">True</property><property"
+- " name=\"can_focus\">False</property><property name=\"spacing\">6</prope"
+- "rty><child><object class=\"GtkFrame\" id=\"frame5\"><property name=\"vi"
+- "sible\">True</property><property name=\"can_focus\">False</property><pr"
+- "operty name=\"label_xalign\">0</property><property name=\"shadow_type\""
+- ">none</property><child><object class=\"GtkAlignment\" id=\"alignment5\""
++ ">False</property><property name=\"xalign\">0</property><property name=\""
++ "label\" translatable=\"yes\">Sensitivit_y:</property><property name=\"u"
++ "se_underline\">True</property><property name=\"mnemonic_widget\">device"
++ "-threshold-scale</property></object><packing><property name=\"top_attac"
++ "h\">1</property><property name=\"bottom_attach\">2</property><property "
++ "name=\"x_options\">GTK_FILL</property></packing></child><child><object "
++ "class=\"GtkAlignment\" id=\"alignment7\"><property name=\"visible\">Tru"
++ "e</property><property name=\"can_focus\">False</property><property name"
++ "=\"xalign\">0</property><property name=\"xscale\">0</property><property"
++ " name=\"yscale\">0</property><child><object class=\"GtkButton\" id=\"de"
++ "vice-reset-feedback\"><property name=\"label\" translatable=\"yes\">_Re"
++ "set to Defaults</property><property name=\"use_action_appearance\">Fals"
++ "e</property><property name=\"visible\">True</property><property name=\""
++ "can_focus\">True</property><property name=\"receives_default\">True</pr"
++ "operty><property name=\"tooltip_text\" translatable=\"yes\">Set the acc"
++ "eleration and sensitivity for the selected device to the default values"
++ "</property><property name=\"image\">image5</property><property name=\"u"
++ "se_underline\">True</property></object></child></object><packing><prope"
++ "rty name=\"right_attach\">2</property><property name=\"top_attach\">2</"
++ "property><property name=\"bottom_attach\">3</property></packing></child"
++ "><child><object class=\"GtkAlignment\" id=\"alignment8\"><property name"
++ "=\"visible\">True</property><property name=\"can_focus\">False</propert"
++ "y><property name=\"xalign\">0</property><property name=\"xscale\">0</pr"
++ "operty><property name=\"yscale\">0</property><child><object class=\"Gtk"
++ "CheckButton\" id=\"touchscreen-pointer\"><property name=\"label\" trans"
++ "latable=\"yes\">_Touchscreen pointer</property><property name=\"use_act"
++ "ion_appearance\">False</property><property name=\"visible\">True</prope"
++ "rty><property name=\"can_focus\">True</property><property name=\"receiv"
++ "es_default\">False</property><property name=\"tooltip_text\" translatab"
++ "le=\"yes\">When selected, no mouse pointer is displayed for this device"
++ " and gtk TouchscreenMode is activated</property><property name=\"use_un"
++ "derline\">True</property><property name=\"draw_indicator\">True</proper"
++ "ty></object></child></object><packing><property name=\"right_attach\">2"
++ "</property><property name=\"top_attach\">3</property><property name=\"b"
++ "ottom_attach\">4</property></packing></child></object></child></object>"
++ "</child><child type=\"label\"><object class=\"GtkLabel\" id=\"label15\""
+ "><property name=\"visible\">True</property><property name=\"can_focus\""
+- ">False</property><property name=\"left_padding\">12</property><child><o"
+- "bject class=\"GtkHBox\" id=\"hbox7\"><property name=\"visible\">True</p"
++ ">False</property><property name=\"label\" translatable=\"yes\">Pointer "
++ "Speed</property><attributes><attribute name=\"weight\" value=\"bold\"/>"
++ "</attributes></object></child></object><packing><property name=\"expand"
++ "\">False</property><property name=\"fill\">True</property><property nam"
++ "e=\"position\">1</property></packing></child></object></child><child ty"
++ "pe=\"tab\"><object class=\"GtkLabel\" id=\"label4\"><property name=\"vi"
++ "sible\">True</property><property name=\"can_focus\">False</property><pr"
++ "operty name=\"label\" translatable=\"yes\">B_uttons and Feedback</prope"
++ "rty><property name=\"use_underline\">True</property></object><packing><"
++ "property name=\"tab_fill\">False</property></packing></child><child><ob"
++ "ject class=\"GtkVBox\" id=\"synaptics-tab\"><property name=\"visible\">"
++ "True</property><property name=\"can_focus\">False</property><property n"
++ "ame=\"border_width\">6</property><property name=\"spacing\">6</property"
++ "><child><object class=\"GtkFrame\" id=\"frame11\"><property name=\"visi"
++ "ble\">True</property><property name=\"can_focus\">False</property><prop"
++ "erty name=\"label_xalign\">0</property><property name=\"shadow_type\">n"
++ "one</property><child><object class=\"GtkAlignment\" id=\"alignment13\">"
++ "<property name=\"visible\">True</property><property name=\"can_focus\">"
++ "False</property><property name=\"left_padding\">12</property><child><ob"
++ "ject class=\"GtkVBox\" id=\"vbox11\"><property name=\"visible\">True</p"
+ "roperty><property name=\"can_focus\">False</property><property name=\"b"
+- "order_width\">6</property><property name=\"spacing\">12</property><chil"
+- "d><object class=\"GtkLabel\" id=\"label21\"><property name=\"visible\">"
++ "order_width\">6</property><property name=\"spacing\">6</property><child"
++ "><object class=\"GtkCheckButton\" id=\"synaptics-disable-while-type\"><"
++ "property name=\"label\" translatable=\"yes\">Disable touchpad _while ty"
++ "ping</property><property name=\"use_action_appearance\">False</property"
++ "><property name=\"visible\">True</property><property name=\"can_focus\""
++ ">True</property><property name=\"receives_default\">False</property><pr"
++ "operty name=\"tooltip_text\" translatable=\"yes\">When selected, the to"
++ "uchpad will be disabled when the keyboard is being used</property><prop"
++ "erty name=\"use_underline\">True</property><property name=\"draw_indica"
++ "tor\">True</property></object><packing><property name=\"expand\">True</"
++ "property><property name=\"fill\">True</property><property name=\"positi"
++ "on\">0</property></packing></child><child><object class=\"GtkCheckButto"
++ "n\" id=\"synaptics-tap-to-click\"><property name=\"label\" translatable"
++ "=\"yes\">Tap touchpad to clic_k</property><property name=\"use_action_a"
++ "ppearance\">False</property><property name=\"visible\">True</property><"
++ "property name=\"can_focus\">True</property><property name=\"receives_de"
++ "fault\">False</property><property name=\"use_underline\">True</property"
++ "><property name=\"draw_indicator\">True</property></object><packing><pr"
++ "operty name=\"expand\">True</property><property name=\"fill\">True</pro"
++ "perty><property name=\"position\">1</property></packing></child></objec"
++ "t></child></object></child><child type=\"label\"><object class=\"GtkLab"
++ "el\" id=\"label16\"><property name=\"visible\">True</property><property"
++ " name=\"can_focus\">False</property><property name=\"label\" translatab"
++ "le=\"yes\">General</property><property name=\"use_markup\">True</proper"
++ "ty><attributes><attribute name=\"weight\" value=\"bold\"/></attributes>"
++ "</object></child></object><packing><property name=\"expand\">False</pro"
++ "perty><property name=\"fill\">True</property><property name=\"position\""
++ ">0</property></packing></child><child><object class=\"GtkFrame\" id=\"f"
++ "rame10\"><property name=\"visible\">True</property><property name=\"can"
++ "_focus\">False</property><property name=\"label_xalign\">0</property><p"
++ "roperty name=\"shadow_type\">none</property><child><object class=\"GtkA"
++ "lignment\" id=\"alignment12\"><property name=\"visible\">True</property"
++ "><property name=\"can_focus\">False</property><property name=\"left_pad"
++ "ding\">12</property><child><object class=\"GtkVBox\" id=\"vbox10\"><pro"
++ "perty name=\"visible\">True</property><property name=\"can_focus\">Fals"
++ "e</property><property name=\"border_width\">6</property><property name="
++ "\"spacing\">6</property><child><object class=\"GtkHBox\" id=\"hbox4\"><"
++ "property name=\"visible\">True</property><property name=\"can_focus\">F"
++ "alse</property><property name=\"spacing\">12</property><child><object c"
++ "lass=\"GtkLabel\" id=\"label23\"><property name=\"visible\">True</prope"
++ "rty><property name=\"can_focus\">False</property><property name=\"xalig"
++ "n\">0</property><property name=\"label\" translatable=\"yes\">Scrolling"
++ " _mode:</property><property name=\"use_underline\">True</property><prop"
++ "erty name=\"mnemonic_widget\">synaptics-scroll</property></object><pack"
++ "ing><property name=\"expand\">False</property><property name=\"fill\">T"
++ "rue</property><property name=\"position\">0</property></packing></child"
++ "><child><object class=\"GtkComboBox\" id=\"synaptics-scroll\"><property"
++ " name=\"visible\">True</property><property name=\"can_focus\">False</pr"
++ "operty><property name=\"model\">synaptics-scroll-store</property><child"
++ "><object class=\"GtkCellRendererText\" id=\"cellrenderertext3\"/><attri"
++ "butes><attribute name=\"sensitive\">1</attribute><attribute name=\"text"
++ "\">0</attribute></attributes></child></object><packing><property name=\""
++ "expand\">True</property><property name=\"fill\">True</property><propert"
++ "y name=\"position\">1</property></packing></child></object><packing><pr"
++ "operty name=\"expand\">True</property><property name=\"fill\">True</pro"
++ "perty><property name=\"position\">0</property></packing></child><child>"
++ "<object class=\"GtkCheckButton\" id=\"synaptics-scroll-horiz\"><propert"
++ "y name=\"label\" translatable=\"yes\">Enable hori_zontal scrolling</pro"
++ "perty><property name=\"use_action_appearance\">False</property><propert"
++ "y name=\"visible\">True</property><property name=\"can_focus\">True</pr"
++ "operty><property name=\"receives_default\">False</property><property na"
++ "me=\"use_underline\">True</property><property name=\"draw_indicator\">T"
++ "rue</property></object><packing><property name=\"expand\">True</propert"
++ "y><property name=\"fill\">True</property><property name=\"position\">1<"
++ "/property></packing></child></object></child></object></child><child ty"
++ "pe=\"label\"><object class=\"GtkLabel\" id=\"label17\"><property name=\""
++ "visible\">True</property><property name=\"can_focus\">False</property><"
++ "property name=\"label\" translatable=\"yes\">Scrolling</property><prope"
++ "rty name=\"use_markup\">True</property><attributes><attribute name=\"we"
++ "ight\" value=\"bold\"/></attributes></object></child></object><packing>"
++ "<property name=\"expand\">False</property><property name=\"fill\">True<"
++ "/property><property name=\"position\">1</property></packing></child></o"
++ "bject><packing><property name=\"position\">1</property></packing></chil"
++ "d><child type=\"tab\"><object class=\"GtkLabel\" id=\"synaptics-label\""
++ "><property name=\"visible\">True</property><property name=\"can_focus\""
++ ">False</property><property name=\"label\" translatable=\"yes\">T_ouchpa"
++ "d</property><property name=\"use_underline\">True</property></object><p"
++ "acking><property name=\"position\">1</property><property name=\"tab_fil"
++ "l\">False</property></packing></child><child><object class=\"GtkVBox\" "
++ "id=\"wacom-tab\"><property name=\"visible\">True</property><property na"
++ "me=\"can_focus\">False</property><property name=\"border_width\">6</pro"
++ "perty><property name=\"spacing\">6</property><child><object class=\"Gtk"
++ "Frame\" id=\"frame12\"><property name=\"visible\">True</property><prope"
++ "rty name=\"can_focus\">False</property><property name=\"label_xalign\">"
++ "0</property><property name=\"shadow_type\">none</property><child><objec"
++ "t class=\"GtkAlignment\" id=\"alignment14\"><property name=\"visible\">"
+ "True</property><property name=\"can_focus\">False</property><property n"
+- "ame=\"label\" translatable=\"yes\">Cursor _size:</property><property na"
+- "me=\"use_underline\">True</property><property name=\"mnemonic_widget\">"
+- "spin1</property></object><packing><property name=\"expand\">False</prop"
+- "erty><property name=\"fill\">True</property><property name=\"position\""
+- ">0</property></packing></child><child><object class=\"GtkSpinButton\" i"
+- "d=\"spin1\"><property name=\"visible\">True</property><property name=\""
+- "can_focus\">True</property><property name=\"primary_icon_activatable\">"
+- "False</property><property name=\"secondary_icon_activatable\">False</pr"
+- "operty><property name=\"primary_icon_sensitive\">True</property><proper"
+- "ty name=\"secondary_icon_sensitive\">True</property><property name=\"ad"
+- "justment\">theme-cursor-size</property><property name=\"snap_to_ticks\""
+- ">True</property><property name=\"numeric\">True</property></object><pac"
+- "king><property name=\"expand\">False</property><property name=\"fill\">"
+- "True</property><property name=\"position\">1</property></packing></chil"
++ "ame=\"left_padding\">12</property><child><object class=\"GtkTable\" id="
++ "\"table2\"><property name=\"visible\">True</property><property name=\"c"
++ "an_focus\">False</property><property name=\"border_width\">6</property>"
++ "<property name=\"n_rows\">2</property><property name=\"n_columns\">2</p"
++ "roperty><property name=\"column_spacing\">12</property><property name=\""
++ "row_spacing\">6</property><child><object class=\"GtkLabel\" id=\"label9"
++ "\"><property name=\"visible\">True</property><property name=\"can_focus"
++ "\">False</property><property name=\"xalign\">0</property><property name"
++ "=\"label\" translatable=\"yes\">Trac_king mode:</property><property nam"
++ "e=\"use_underline\">True</property><property name=\"mnemonic_widget\">w"
++ "acom-mode</property></object><packing><property name=\"x_options\">GTK_"
++ "FILL</property></packing></child><child><object class=\"GtkLabel\" id=\""
++ "label10\"><property name=\"visible\">True</property><property name=\"ca"
++ "n_focus\">False</property><property name=\"xalign\">0</property><proper"
++ "ty name=\"label\" translatable=\"yes\">_Rotation:</property><property n"
++ "ame=\"use_underline\">True</property><property name=\"mnemonic_widget\""
++ ">wacom-rotation</property></object><packing><property name=\"top_attach"
++ "\">1</property><property name=\"bottom_attach\">2</property><property n"
++ "ame=\"x_options\">GTK_FILL</property></packing></child><child><object c"
++ "lass=\"GtkComboBox\" id=\"wacom-mode\"><property name=\"visible\">True<"
++ "/property><property name=\"can_focus\">False</property><property name=\""
++ "model\">wacom-mode-store</property><child><object class=\"GtkCellRender"
++ "erText\" id=\"cellrenderertext1\"/><attributes><attribute name=\"text\""
++ ">1</attribute></attributes></child></object><packing><property name=\"l"
++ "eft_attach\">1</property><property name=\"right_attach\">2</property></"
++ "packing></child><child><object class=\"GtkComboBox\" id=\"wacom-rotatio"
++ "n\"><property name=\"visible\">True</property><property name=\"can_focu"
++ "s\">False</property><property name=\"model\">wacom-rotation-store</prop"
++ "erty><child><object class=\"GtkCellRendererText\" id=\"cellrenderertext"
++ "2\"/><attributes><attribute name=\"text\">1</attribute></attributes></c"
++ "hild></object><packing><property name=\"left_attach\">1</property><prop"
++ "erty name=\"right_attach\">2</property><property name=\"top_attach\">1<"
++ "/property><property name=\"bottom_attach\">2</property></packing></chil"
+ "d></object></child></object></child><child type=\"label\"><object class"
+- "=\"GtkLabel\" id=\"label20\"><property name=\"visible\">True</property>"
++ "=\"GtkLabel\" id=\"label18\"><property name=\"visible\">True</property>"
+ "<property name=\"can_focus\">False</property><property name=\"label\" t"
+- "ranslatable=\"yes\">Size</property><attributes><attribute name=\"weight"
+- "\" value=\"bold\"/></attributes></object></child></object><packing><pro"
+- "perty name=\"expand\">False</property><property name=\"fill\">True</pro"
+- "perty><property name=\"position\">0</property></packing></child><child>"
+- "<object class=\"GtkFrame\" id=\"frame6\"><property name=\"visible\">Tru"
++ "ranslatable=\"yes\">General</property><property name=\"use_markup\">Tru"
++ "e</property><attributes><attribute name=\"weight\" value=\"bold\"/></at"
++ "tributes></object></child></object><packing><property name=\"expand\">F"
++ "alse</property><property name=\"fill\">True</property><property name=\""
++ "position\">0</property></packing></child></object><packing><property na"
++ "me=\"position\">2</property></packing></child><child type=\"tab\"><obje"
++ "ct class=\"GtkLabel\" id=\"wacom-label\"><property name=\"visible\">Tru"
+ "e</property><property name=\"can_focus\">False</property><property name"
+- "=\"label_xalign\">0</property><property name=\"shadow_type\">none</prop"
+- "erty><child><object class=\"GtkAlignment\" id=\"alignment6\"><property "
+- "name=\"visible\">True</property><property name=\"can_focus\">False</pro"
+- "perty><property name=\"border_width\">6</property><property name=\"xali"
+- "gn\">0</property><property name=\"yalign\">0</property><property name=\""
+- "xscale\">0</property><property name=\"yscale\">0</property><property na"
+- "me=\"top_padding\">6</property><property name=\"bottom_padding\">6</pro"
+- "perty><property name=\"left_padding\">18</property><property name=\"rig"
+- "ht_padding\">6</property><child><object class=\"GtkImage\" id=\"theme-p"
+- "review\"><property name=\"visible\">True</property><property name=\"can"
+- "_focus\">False</property><property name=\"stock\">gtk-missing-image</pr"
+- "operty></object></child></object></child><child type=\"label\"><object "
+- "class=\"GtkLabel\" id=\"label22\"><property name=\"visible\">True</prop"
++ "=\"label\" translatable=\"yes\">Tab_let</property><property name=\"use_"
++ "underline\">True</property></object><packing><property name=\"position\""
++ ">2</property><property name=\"tab_fill\">False</property></packing></ch"
++ "ild></object><packing><property name=\"expand\">True</property><propert"
++ "y name=\"fill\">True</property><property name=\"position\">2</property>"
++ "</packing></child></object></child><child type=\"tab\"><object class=\""
++ "GtkLabel\" id=\"label1\"><property name=\"visible\">True</property><pro"
++ "perty name=\"can_focus\">False</property><property name=\"label\" trans"
++ "latable=\"yes\">_Devices</property><property name=\"use_underline\">Tru"
++ "e</property></object><packing><property name=\"tab_fill\">False</proper"
++ "ty></packing></child><child><object class=\"GtkVBox\" id=\"vbox3\"><pro"
++ "perty name=\"visible\">True</property><property name=\"can_focus\">Fals"
++ "e</property><property name=\"border_width\">12</property><property name"
++ "=\"spacing\">6</property><child><object class=\"GtkFrame\" id=\"frame3\""
++ "><property name=\"visible\">True</property><property name=\"can_focus\""
++ ">False</property><property name=\"label_xalign\">0</property><property "
++ "name=\"shadow_type\">none</property><child><object class=\"GtkAlignment"
++ "\" id=\"alignment3\"><property name=\"visible\">True</property><propert"
++ "y name=\"can_focus\">False</property><property name=\"left_padding\">12"
++ "</property><child><object class=\"GtkVBox\" id=\"vbox4\"><property name"
++ "=\"visible\">True</property><property name=\"can_focus\">False</propert"
++ "y><property name=\"border_width\">6</property><property name=\"spacing\""
++ ">6</property><child><object class=\"GtkLabel\" id=\"mouse-dnd-label\"><"
++ "property name=\"visible\">True</property><property name=\"can_focus\">F"
++ "alse</property><property name=\"xalign\">0</property><property name=\"l"
++ "abel\" translatable=\"yes\">Th_reshold:</property><property name=\"use_"
++ "underline\">True</property><property name=\"mnemonic_widget\">dnd-thres"
++ "hold-scale</property></object><packing><property name=\"expand\">True</"
++ "property><property name=\"fill\">True</property><property name=\"positi"
++ "on\">0</property></packing></child><child><object class=\"GtkHScale\" i"
++ "d=\"dnd-threshold-scale\"><property name=\"visible\">True</property><pr"
++ "operty name=\"can_focus\">True</property><property name=\"tooltip_text\""
++ " translatable=\"yes\">The number of pixels the pointer must move before"
++ " a drag operation will start</property><property name=\"update_policy\""
++ ">delayed</property><property name=\"adjustment\">dnd-threshold</propert"
++ "y><property name=\"digits\">0</property><property name=\"value_pos\">ri"
++ "ght</property></object><packing><property name=\"expand\">True</propert"
++ "y><property name=\"fill\">True</property><property name=\"position\">1<"
++ "/property></packing></child></object></child></object></child><child ty"
++ "pe=\"label\"><object class=\"GtkLabel\" id=\"label6\"><property name=\""
++ "visible\">True</property><property name=\"can_focus\">False</property><"
++ "property name=\"label\" translatable=\"yes\">Drag and Drop</property><a"
++ "ttributes><attribute name=\"weight\" value=\"bold\"/></attributes></obj"
++ "ect></child></object><packing><property name=\"expand\">False</property"
++ "><property name=\"fill\">True</property><property name=\"position\">0</"
++ "property></packing></child><child><object class=\"GtkFrame\" id=\"frame"
++ "4\"><property name=\"visible\">True</property><property name=\"can_focu"
++ "s\">False</property><property name=\"label_xalign\">0</property><proper"
++ "ty name=\"shadow_type\">none</property><child><object class=\"GtkAlignm"
++ "ent\" id=\"alignment4\"><property name=\"visible\">True</property><prop"
++ "erty name=\"can_focus\">False</property><property name=\"left_padding\""
++ ">12</property><child><object class=\"GtkVBox\" id=\"vbox5\"><property n"
++ "ame=\"visible\">True</property><property name=\"can_focus\">False</prop"
++ "erty><property name=\"border_width\">6</property><property name=\"spaci"
++ "ng\">6</property><child><object class=\"GtkLabel\" id=\"dclick-time-lab"
++ "el\"><property name=\"visible\">True</property><property name=\"can_foc"
++ "us\">False</property><property name=\"xalign\">0</property><property na"
++ "me=\"label\" translatable=\"yes\">Ti_me:</property><property name=\"use"
++ "_underline\">True</property><property name=\"mnemonic_widget\">dclick-t"
++ "ime-scale</property></object><packing><property name=\"expand\">True</p"
++ "roperty><property name=\"fill\">True</property><property name=\"positio"
++ "n\">0</property></packing></child><child><object class=\"GtkHScale\" id"
++ "=\"dclick-time-scale\"><property name=\"visible\">True</property><prope"
++ "rty name=\"can_focus\">True</property><property name=\"tooltip_text\" t"
++ "ranslatable=\"yes\">Two mouse clicks in less than this length of time ("
++ "in milliseconds) will be considered a double click</property><property "
++ "name=\"update_policy\">delayed</property><property name=\"adjustment\">"
++ "dclick-time</property><property name=\"digits\">0</property><property n"
++ "ame=\"value_pos\">right</property></object><packing><property name=\"ex"
++ "pand\">True</property><property name=\"fill\">True</property><property "
++ "name=\"position\">1</property></packing></child><child><object class=\""
++ "GtkLabel\" id=\"dclick-distance-label\"><property name=\"visible\">True"
++ "</property><property name=\"can_focus\">False</property><property name="
++ "\"xalign\">0</property><property name=\"label\" translatable=\"yes\">D_"
++ "istance:</property><property name=\"use_underline\">True</property><pro"
++ "perty name=\"mnemonic_widget\">dclick-distance-scale</property></object"
++ "><packing><property name=\"expand\">True</property><property name=\"fil"
++ "l\">True</property><property name=\"position\">2</property></packing></"
++ "child><child><object class=\"GtkHScale\" id=\"dclick-distance-scale\"><"
++ "property name=\"visible\">True</property><property name=\"can_focus\">T"
++ "rue</property><property name=\"tooltip_text\" translatable=\"yes\">The "
++ "mouse pointer cannot move farther than this distance between two clicks"
++ " for them to be considered a double click</property><property name=\"up"
++ "date_policy\">delayed</property><property name=\"adjustment\">dclick-di"
++ "stance</property><property name=\"digits\">0</property><property name=\""
++ "value_pos\">right</property></object><packing><property name=\"expand\""
++ ">True</property><property name=\"fill\">True</property><property name=\""
++ "position\">3</property></packing></child></object></child></object></ch"
++ "ild><child type=\"label\"><object class=\"GtkLabel\" id=\"label8\"><pro"
++ "perty name=\"visible\">True</property><property name=\"can_focus\">Fals"
++ "e</property><property name=\"label\" translatable=\"yes\">Double Click<"
++ "/property><attributes><attribute name=\"weight\" value=\"bold\"/></attr"
++ "ibutes></object></child></object><packing><property name=\"expand\">Fal"
++ "se</property><property name=\"fill\">True</property><property name=\"po"
++ "sition\">1</property></packing></child></object><packing><property name"
++ "=\"position\">1</property></packing></child><child type=\"tab\"><object"
++ " class=\"GtkLabel\" id=\"label2\"><property name=\"visible\">True</prop"
+ "erty><property name=\"can_focus\">False</property><property name=\"labe"
+- "l\" translatable=\"yes\">Preview</property><attributes><attribute name="
+- "\"weight\" value=\"bold\"/></attributes></object></child></object><pack"
+- "ing><property name=\"expand\">False</property><property name=\"fill\">T"
+- "rue</property><property name=\"position\">1</property></packing></child"
+- "></object><packing><property name=\"expand\">False</property><property "
+- "name=\"fill\">True</property><property name=\"position\">1</property></"
+- "packing></child></object><packing><property name=\"position\">2</proper"
+- "ty></packing></child><child type=\"tab\"><object class=\"GtkLabel\" id="
+- "\"label3\"><property name=\"visible\">True</property><property name=\"c"
+- "an_focus\">False</property><property name=\"label\" translatable=\"yes\""
+- ">T_heme</property><property name=\"use_underline\">True</property></obj"
+- "ect><packing><property name=\"position\">2</property><property name=\"t"
+- "ab_fill\">False</property></packing></child></object><packing><property"
+- " name=\"expand\">True</property><property name=\"fill\">True</property>"
+- "<property name=\"position\">1</property></packing></child></object></ch"
+- "ild><action-widgets><action-widget response=\"0\">button1</action-widge"
+- "t><action-widget response=\"-11\">button2</action-widget></action-widge"
+- "ts></object><object class=\"GtkAdjustment\" id=\"theme-cursor-size\"><p"
+- "roperty name=\"lower\">16</property><property name=\"upper\">48</proper"
+- "ty><property name=\"value\">24</property><property name=\"step_incremen"
+- "t\">1</property><property name=\"page_increment\">11</property></object"
+- "><object class=\"GtkListStore\" id=\"wacom-mode-store\"><columns><colum"
+- "n type=\"gchararray\"/><column type=\"gchararray\"/></columns><data><ro"
+- "w><col id=\"0\">ABSOLUTE</col><col id=\"1\" translatable=\"yes\">Pen (a"
+- "bsolute)</col></row><row><col id=\"0\">RELATIVE</col><col id=\"1\" tran"
+- "slatable=\"yes\">Mouse (relative)</col></row></data></object><object cl"
+- "ass=\"GtkListStore\" id=\"wacom-rotation-store\"><columns><column type="
+- "\"gint\"/><column type=\"gchararray\"/></columns><data><row><col id=\"0"
+- "\">0</col><col id=\"1\" translatable=\"yes\">None (right-handed)</col><"
+- "/row><row><col id=\"0\">3</col><col id=\"1\" translatable=\"yes\">Half "
+- "(left-handed)</col></row><row><col id=\"0\">1</col><col id=\"1\" transl"
+- "atable=\"yes\">Clockwise</col></row><row><col id=\"0\">2</col><col id=\""
+- "1\" translatable=\"yes\">Counterclockwise</col></row></data></object></"
+- "interface>"
++ "l\" translatable=\"yes\">_Behavior</property><property name=\"use_under"
++ "line\">True</property></object><packing><property name=\"position\">1</"
++ "property><property name=\"tab_fill\">False</property></packing></child>"
++ "<child><object class=\"GtkHBox\" id=\"themes-hbox\"><property name=\"vi"
++ "sible\">True</property><property name=\"can_focus\">False</property><pr"
++ "operty name=\"border_width\">12</property><property name=\"spacing\">12"
++ "</property><child><object class=\"GtkScrolledWindow\" id=\"scrolledwind"
++ "ow2\"><property name=\"visible\">True</property><property name=\"can_fo"
++ "cus\">True</property><property name=\"hscrollbar_policy\">automatic</pr"
++ "operty><property name=\"vscrollbar_policy\">automatic</property><proper"
++ "ty name=\"shadow_type\">etched-in</property><child><object class=\"GtkT"
++ "reeView\" id=\"theme-treeview\"><property name=\"width_request\">200</p"
++ "roperty><property name=\"visible\">True</property><property name=\"can_"
++ "focus\">True</property><property name=\"headers_visible\">False</proper"
++ "ty></object></child></object><packing><property name=\"expand\">True</p"
++ "roperty><property name=\"fill\">True</property><property name=\"positio"
++ "n\">0</property></packing></child><child><object class=\"GtkVBox\" id=\""
++ "vbox9\"><property name=\"visible\">True</property><property name=\"can_"
++ "focus\">False</property><property name=\"spacing\">6</property><child><"
++ "object class=\"GtkFrame\" id=\"frame5\"><property name=\"visible\">True"
++ "</property><property name=\"can_focus\">False</property><property name="
++ "\"label_xalign\">0</property><property name=\"shadow_type\">none</prope"
++ "rty><child><object class=\"GtkAlignment\" id=\"alignment5\"><property n"
++ "ame=\"visible\">True</property><property name=\"can_focus\">False</prop"
++ "erty><property name=\"left_padding\">12</property><child><object class="
++ "\"GtkHBox\" id=\"hbox7\"><property name=\"visible\">True</property><pro"
++ "perty name=\"can_focus\">False</property><property name=\"border_width\""
++ ">6</property><property name=\"spacing\">12</property><child><object cla"
++ "ss=\"GtkLabel\" id=\"label21\"><property name=\"visible\">True</propert"
++ "y><property name=\"can_focus\">False</property><property name=\"label\""
++ " translatable=\"yes\">Cursor si_ze:</property><property name=\"use_unde"
++ "rline\">True</property><property name=\"mnemonic_widget\">spin1</proper"
++ "ty></object><packing><property name=\"expand\">False</property><propert"
++ "y name=\"fill\">True</property><property name=\"position\">0</property>"
++ "</packing></child><child><object class=\"GtkSpinButton\" id=\"spin1\"><"
++ "property name=\"visible\">True</property><property name=\"can_focus\">T"
++ "rue</property><property name=\"primary_icon_activatable\">False</proper"
++ "ty><property name=\"secondary_icon_activatable\">False</property><prope"
++ "rty name=\"primary_icon_sensitive\">True</property><property name=\"sec"
++ "ondary_icon_sensitive\">True</property><property name=\"adjustment\">th"
++ "eme-cursor-size</property><property name=\"snap_to_ticks\">True</proper"
++ "ty><property name=\"numeric\">True</property></object><packing><propert"
++ "y name=\"expand\">False</property><property name=\"fill\">True</propert"
++ "y><property name=\"position\">1</property></packing></child></object></"
++ "child></object></child><child type=\"label\"><object class=\"GtkLabel\""
++ " id=\"label20\"><property name=\"visible\">True</property><property nam"
++ "e=\"can_focus\">False</property><property name=\"label\" translatable=\""
++ "yes\">Size</property><attributes><attribute name=\"weight\" value=\"bol"
++ "d\"/></attributes></object></child></object><packing><property name=\"e"
++ "xpand\">False</property><property name=\"fill\">True</property><propert"
++ "y name=\"position\">0</property></packing></child><child><object class="
++ "\"GtkFrame\" id=\"frame6\"><property name=\"visible\">True</property><p"
++ "roperty name=\"can_focus\">False</property><property name=\"label_xalig"
++ "n\">0</property><property name=\"shadow_type\">none</property><child><o"
++ "bject class=\"GtkAlignment\" id=\"alignment6\"><property name=\"visible"
++ "\">True</property><property name=\"can_focus\">False</property><propert"
++ "y name=\"border_width\">6</property><property name=\"xalign\">0</proper"
++ "ty><property name=\"yalign\">0</property><property name=\"xscale\">0</p"
++ "roperty><property name=\"yscale\">0</property><property name=\"top_padd"
++ "ing\">6</property><property name=\"bottom_padding\">6</property><proper"
++ "ty name=\"left_padding\">18</property><property name=\"right_padding\">"
++ "6</property><child><object class=\"GtkImage\" id=\"theme-preview\"><pro"
++ "perty name=\"visible\">True</property><property name=\"can_focus\">Fals"
++ "e</property><property name=\"stock\">gtk-missing-image</property></obje"
++ "ct></child></object></child><child type=\"label\"><object class=\"GtkLa"
++ "bel\" id=\"label22\"><property name=\"visible\">True</property><propert"
++ "y name=\"can_focus\">False</property><property name=\"label\" translata"
++ "ble=\"yes\">Preview</property><attributes><attribute name=\"weight\" va"
++ "lue=\"bold\"/></attributes></object></child></object><packing><property"
++ " name=\"expand\">False</property><property name=\"fill\">True</property"
++ "><property name=\"position\">1</property></packing></child></object><pa"
++ "cking><property name=\"expand\">False</property><property name=\"fill\""
++ ">True</property><property name=\"position\">1</property></packing></chi"
++ "ld></object><packing><property name=\"position\">2</property></packing>"
++ "</child><child type=\"tab\"><object class=\"GtkLabel\" id=\"label3\"><p"
++ "roperty name=\"visible\">True</property><property name=\"can_focus\">Fa"
++ "lse</property><property name=\"label\" translatable=\"yes\">_Theme</pro"
++ "perty><property name=\"use_underline\">True</property></object><packing"
++ "><property name=\"position\">2</property><property name=\"tab_fill\">Fa"
++ "lse</property></packing></child></object><packing><property name=\"expa"
++ "nd\">True</property><property name=\"fill\">True</property><property na"
++ "me=\"position\">1</property></packing></child></object></child><action-"
++ "widgets><action-widget response=\"-11\">button2</action-widget><action-"
++ "widget response=\"0\">button1</action-widget></action-widgets></object>"
++ "<object class=\"GtkListStore\" id=\"wacom-mode-store\"><columns><column"
++ " type=\"gchararray\"/><column type=\"gchararray\"/></columns><data><row"
++ "><col id=\"0\">ABSOLUTE</col><col id=\"1\" translatable=\"yes\">Pen (ab"
++ "solute)</col></row><row><col id=\"0\">RELATIVE</col><col id=\"1\" trans"
++ "latable=\"yes\">Mouse (relative)</col></row></data></object><object cla"
++ "ss=\"GtkListStore\" id=\"wacom-rotation-store\"><columns><column type=\""
++ "gint\"/><column type=\"gchararray\"/></columns><data><row><col id=\"0\""
++ ">0</col><col id=\"1\" translatable=\"yes\">None (right-handed)</col></r"
++ "ow><row><col id=\"0\">3</col><col id=\"1\" translatable=\"yes\">Half (l"
++ "eft-handed)</col></row><row><col id=\"0\">1</col><col id=\"1\" translat"
++ "able=\"yes\">Clockwise</col></row><row><col id=\"0\">2</col><col id=\"1"
++ "\" translatable=\"yes\">Counterclockwise</col></row></data></object></i"
++ "nterface>"
+ };
+
+-static const unsigned mouse_dialog_ui_length = 37918u;
++static const unsigned mouse_dialog_ui_length = 38582u;
+
+--
+1.7.6.5
+
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0003-XfcePointersHelper-gets-a-pointer-to-XfceXSettingsHe.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0003-XfcePointersHelper-gets-a-pointer-to-XfceXSettingsHe.patch
new file mode 100644
index 0000000000..eff052b68f
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0003-XfcePointersHelper-gets-a-pointer-to-XfceXSettingsHe.patch
@@ -0,0 +1,137 @@
+From a3b0218137c8796fbb7bd6d852dc8ab5895a65cb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Sat, 3 Nov 2012 18:32:01 +0100
+Subject: [PATCH 3/5] XfcePointersHelper gets a pointer to XfceXSettingsHelper
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+Upstream-Status: Submitted [1]
+[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474
+---
+ xfsettingsd/main.c | 2 +-
+ xfsettingsd/pointers.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 56 insertions(+), 1 deletions(-)
+
+diff --git a/xfsettingsd/main.c b/xfsettingsd/main.c
+index 55c4183..99982f7 100644
+--- a/xfsettingsd/main.c
++++ b/xfsettingsd/main.c
+@@ -273,7 +273,7 @@ main (gint argc, gchar **argv)
+ #ifdef HAVE_XRANDR
+ displays_helper = g_object_new (XFCE_TYPE_DISPLAYS_HELPER, NULL);
+ #endif
+- pointer_helper = g_object_new (XFCE_TYPE_POINTERS_HELPER, NULL);
++ pointer_helper = g_object_new (XFCE_TYPE_POINTERS_HELPER, "xsettings-helper", xsettings_helper, NULL);
+ keyboards_helper = g_object_new (XFCE_TYPE_KEYBOARDS_HELPER, NULL);
+ accessibility_helper = g_object_new (XFCE_TYPE_ACCESSIBILITY_HELPER, NULL);
+ shortcuts_helper = g_object_new (XFCE_TYPE_KEYBOARD_SHORTCUTS_HELPER, NULL);
+diff --git a/xfsettingsd/pointers.c b/xfsettingsd/pointers.c
+index e7192e7..62ebc60 100644
+--- a/xfsettingsd/pointers.c
++++ b/xfsettingsd/pointers.c
+@@ -47,8 +47,16 @@
+
+ #define XFCONF_TYPE_G_VALUE_ARRAY (dbus_g_type_get_collection ("GPtrArray", G_TYPE_VALUE))
+
++/* Property identifiers */
++enum
++{
++ PROP_0,
++ PROP_XSETTINGS_HELPER,
++};
++
+
+
++static void xfce_pointers_helper_constructed (GObject *object);
+ static void xfce_pointers_helper_finalize (GObject *object);
+ static void xfce_pointers_helper_syndaemon_stop (XfcePointersHelper *helper);
+ static void xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper);
+@@ -63,6 +71,10 @@ static GdkFilterReturn xfce_pointers_helper_event_filter (GdkXEvent
+ GdkEvent *gdk_event,
+ gpointer user_data);
+ #endif
++static void xfce_pointers_helper_set_property (GObject *object,
++ guint prop_id,
++ const GValue *value,
++ GParamSpec *pspec);
+
+
+
+@@ -75,6 +87,8 @@ struct _XfcePointersHelper
+ {
+ GObject __parent__;
+
++ GObject *xsettings_helper;
++
+ /* xfconf channel */
+ XfconfChannel *channel;
+
+@@ -108,7 +122,18 @@ xfce_pointers_helper_class_init (XfcePointersHelperClass *klass)
+ {
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
++ gobject_class->constructed = xfce_pointers_helper_constructed;
+ gobject_class->finalize = xfce_pointers_helper_finalize;
++ gobject_class->set_property = xfce_pointers_helper_set_property;
++
++ g_object_class_install_property (gobject_class,
++ PROP_XSETTINGS_HELPER,
++ g_param_spec_object ("xsettings-helper",
++ "xsettings-helper",
++ "xsettings-helper",
++ G_TYPE_OBJECT,
++ G_PARAM_CONSTRUCT_ONLY |
++ G_PARAM_WRITABLE));
+ }
+
+
+@@ -116,6 +141,15 @@ xfce_pointers_helper_class_init (XfcePointersHelperClass *klass)
+ static void
+ xfce_pointers_helper_init (XfcePointersHelper *helper)
+ {
++ /* All initialisation is done at xfce_pointers_helper_constructed */
++}
++
++
++
++static void
++xfce_pointers_helper_constructed (GObject *object)
++{
++ XfcePointersHelper *helper = XFCE_POINTERS_HELPER (object);
+ XExtensionVersion *version = NULL;
+ Display *xdisplay;
+ #ifdef DEVICE_HOTPLUGGING
+@@ -181,6 +215,27 @@ xfce_pointers_helper_init (XfcePointersHelper *helper)
+
+
+ static void
++xfce_pointers_helper_set_property (GObject *object,
++ guint prop_id,
++ const GValue *value,
++ GParamSpec *pspec)
++{
++ XfcePointersHelper *helper = XFCE_POINTERS_HELPER (object);
++
++ switch (prop_id)
++ {
++ case PROP_XSETTINGS_HELPER:
++ helper->xsettings_helper = g_value_get_object (value);
++ break;
++ default:
++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
++ break;
++ }
++}
++
++
++
++static void
+ xfce_pointers_helper_finalize (GObject *object)
+ {
+ xfce_pointers_helper_syndaemon_stop (XFCE_POINTERS_HELPER (object));
+--
+1.7.6.5
+
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0004-XfceXSettingsHelper-gets-a-property-touchscreen-poin.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0004-XfceXSettingsHelper-gets-a-property-touchscreen-poin.patch
new file mode 100644
index 0000000000..180ccfd55f
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0004-XfceXSettingsHelper-gets-a-property-touchscreen-poin.patch
@@ -0,0 +1,251 @@
+From 878fe1287a4c73f67dd2b51d1d7c450097aeffa7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 20 Dec 2012 16:49:18 +0100
+Subject: [PATCH 4/5] XfceXSettingsHelper gets a property
+ "touchscreen-pointer"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When this property is set, it overrides overrides cursor theme to
+"xfce-invisible" and sets /Gtk/TouchscreenMode.
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+Upstream-Status: Submitted [1]
+[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474
+---
+ xfsettingsd/xsettings.c | 122 ++++++++++++++++++++++++++++++++++++++++++++-
+ xfsettingsd/xsettings.xml | 1 +
+ 2 files changed, 122 insertions(+), 1 deletions(-)
+
+diff --git a/xfsettingsd/xsettings.c b/xfsettingsd/xsettings.c
+index 7657465..76bcea1 100644
+--- a/xfsettingsd/xsettings.c
++++ b/xfsettingsd/xsettings.c
+@@ -73,6 +73,15 @@ typedef struct _XfceXSettingsNotify XfceXSettingsNotify;
+
+
+
++/* Property identifiers */
++enum
++{
++ PROP_0,
++ PROP_TOUCHSCREEN_POINTER,
++};
++
++
++
+ static void xfce_xsettings_helper_finalize (GObject *object);
+ static void xfce_xsettings_helper_fc_free (XfceXSettingsHelper *helper);
+ static gboolean xfce_xsettings_helper_fc_init (gpointer data);
+@@ -86,6 +95,10 @@ static void xfce_xsettings_helper_load (XfceXSettingsHelper *helper)
+ static void xfce_xsettings_helper_screen_free (XfceXSettingsScreen *screen);
+ static void xfce_xsettings_helper_notify_xft (XfceXSettingsHelper *helper);
+ static void xfce_xsettings_helper_notify (XfceXSettingsHelper *helper);
++static void xfce_xsettings_helper_set_property (GObject *object,
++ guint prop_id,
++ const GValue *value,
++ GParamSpec *pspec);
+
+
+
+@@ -120,6 +133,13 @@ struct _XfceXSettingsHelper
+ GPtrArray *fc_monitors;
+ guint fc_notify_timeout_id;
+ guint fc_init_id;
++
++ /* keeper for touchscreen cursor theme / last set */
++ GValue *touchscreen_cursor_value;
++ GValue *lastset_cursor_value;
++
++ /* properties */
++ gboolean touchscreen_pointer;
+ };
+
+ struct _XfceXSetting
+@@ -157,6 +177,16 @@ xfce_xsettings_helper_class_init (XfceXSettingsHelperClass *klass)
+
+ gobject_class = G_OBJECT_CLASS (klass);
+ gobject_class->finalize = xfce_xsettings_helper_finalize;
++ gobject_class->set_property = xfce_xsettings_helper_set_property;
++
++ g_object_class_install_property (gobject_class,
++ PROP_TOUCHSCREEN_POINTER,
++ g_param_spec_boolean ("touchscreen-pointer",
++ "touchscreen-pointer",
++ "touchscreen-pointer",
++ FALSE,
++ G_PARAM_WRITABLE |
++ G_PARAM_STATIC_STRINGS));
+ }
+
+
+@@ -169,6 +199,13 @@ xfce_xsettings_helper_init (XfceXSettingsHelper *helper)
+ helper->settings = g_hash_table_new_full (g_str_hash, g_str_equal,
+ g_free, xfce_xsettings_helper_setting_free);
+
++ helper->lastset_cursor_value = g_new0 (GValue, 1);
++ g_value_init(helper->lastset_cursor_value, G_TYPE_STRING);
++ g_value_set_string (helper->lastset_cursor_value, "default");
++ helper->touchscreen_cursor_value = g_new0 (GValue, 1);
++ g_value_init(helper->touchscreen_cursor_value, G_TYPE_STRING);
++ g_value_set_string (helper->touchscreen_cursor_value, "xfce-invisible");
++
+ xfce_xsettings_helper_load (helper);
+
+ g_signal_connect (G_OBJECT (helper->channel), "property-changed",
+@@ -202,6 +239,9 @@ xfce_xsettings_helper_finalize (GObject *object)
+
+ g_hash_table_destroy (helper->settings);
+
++ g_free (helper->lastset_cursor_value);
++ g_free (helper->touchscreen_cursor_value);
++
+ (*G_OBJECT_CLASS (xfce_xsettings_helper_parent_class)->finalize) (object);
+ }
+
+@@ -387,6 +427,61 @@ xfce_xsettings_helper_notify_xft_idle (gpointer data)
+
+
+
++static void
++xfce_xsettings_helper_set_property (GObject *object,
++ guint prop_id,
++ const GValue *value,
++ GParamSpec *pspec)
++{
++ gboolean touchscreen_pointer;
++ XfceXSetting *setting_theme, *setting_touchscreen;
++ XfceXSettingsHelper *helper = XFCE_XSETTINGS_HELPER (object);
++ GtkSettings *gtk_settings;
++ GValue bool_val = { 0, };
++
++ switch (prop_id)
++ {
++ case PROP_TOUCHSCREEN_POINTER:
++ touchscreen_pointer = g_value_get_boolean (value);
++ if (helper->touchscreen_pointer != touchscreen_pointer)
++ {
++ helper->touchscreen_pointer = touchscreen_pointer;
++ /* Update touchscreen-mode */
++ xfconf_channel_set_bool (helper->channel, "/Gtk/TouchscreenMode", touchscreen_pointer);
++ /* Update cursor */
++ setting_theme = g_hash_table_lookup (helper->settings, "/Gtk/CursorThemeName");
++ if (G_LIKELY (setting_theme != NULL))
++ {
++ /* update the serial */
++ setting_theme->last_change_serial = helper->serial;
++ /* update value */
++ g_value_reset (setting_theme->value);
++ g_value_copy (touchscreen_pointer ?
++ helper->touchscreen_cursor_value :
++ helper->lastset_cursor_value,
++ setting_theme->value);
++ }
++ else
++ g_critical("Setting not found for /Gtk/CursorThemeName");
++
++ if (G_LIKELY (setting_touchscreen != NULL || setting_theme != NULL))
++ {
++ /* schedule xsettings update */
++ if (helper->notify_idle_id == 0)
++ helper->notify_idle_id = g_idle_add (xfce_xsettings_helper_notify_idle, helper);
++ if (helper->notify_xft_idle_id == 0)
++ helper->notify_xft_idle_id = g_idle_add (xfce_xsettings_helper_notify_xft_idle, helper);
++ }
++ }
++ break;
++ default:
++ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
++ break;
++ }
++}
++
++
++
+ static gboolean
+ xfce_xsettings_helper_prop_valid (const gchar *prop_name,
+ const GValue *value)
+@@ -413,6 +508,28 @@ xfce_xsettings_helper_prop_valid (const gchar *prop_name,
+
+
+
++static void
++xfce_xsettings_helper_check_cursor (const gchar *prop_name,
++ GValue *value,
++ XfceXSettingsHelper *helper)
++{
++ if (g_strcmp0 (prop_name, "/Gtk/CursorThemeName") == 0)
++ {
++ /* Keep last cursor theme set */
++ g_value_reset (helper->lastset_cursor_value);
++ g_value_copy (value, helper->lastset_cursor_value);
++
++ /* invisible replacement required ? */
++ if (helper->touchscreen_pointer)
++ {
++ g_value_reset (value);
++ g_value_copy (helper->touchscreen_cursor_value, value);
++ }
++ }
++}
++
++
++
+ static gboolean
+ xfce_xsettings_helper_prop_load (gchar *prop_name,
+ GValue *value,
+@@ -426,6 +543,7 @@ xfce_xsettings_helper_prop_load (gchar *prop_name,
+
+ setting = g_slice_new0 (XfceXSetting);
+ setting->value = value;
++ xfce_xsettings_helper_check_cursor (prop_name, setting->value, helper);
+ setting->last_change_serial = helper->serial;
+
+ xfsettings_dbg_filtered (XFSD_DEBUG_XSETTINGS, "prop \"%s\" loaded (type=%s)",
+@@ -462,6 +580,7 @@ xfce_xsettings_helper_prop_changed (XfconfChannel *channel,
+ * it first */
+ g_value_reset (setting->value);
+ g_value_copy (value, setting->value);
++ xfce_xsettings_helper_check_cursor (prop_name, setting->value, helper);
+
+ /* update the serial */
+ setting->last_change_serial = helper->serial;
+@@ -475,6 +594,7 @@ xfce_xsettings_helper_prop_changed (XfconfChannel *channel,
+
+ g_value_init (setting->value, G_VALUE_TYPE (value));
+ g_value_copy (value, setting->value);
++ xfce_xsettings_helper_check_cursor (prop_name, setting->value, helper);
+
+ g_hash_table_insert (helper->settings, g_strdup (prop_name), setting);
+ }
+@@ -649,6 +769,7 @@ xfce_xsettings_helper_notify_xft (XfceXSettingsHelper *helper)
+ XfceXSetting *setting;
+ guint i;
+ GValue bool_val = { 0, };
++
+ const gchar *props[][2] =
+ {
+ /* { xfconf name}, { xft name } */
+@@ -700,7 +821,6 @@ xfce_xsettings_helper_notify_xft (XfceXSettingsHelper *helper)
+ PropModeReplace,
+ (guchar *) resource->str,
+ resource->len);
+-
+ XCloseDisplay (xdisplay);
+
+ if (gdk_error_trap_pop () != 0)
+diff --git a/xfsettingsd/xsettings.xml b/xfsettingsd/xsettings.xml
+index 0a579d6..baa413c 100644
+--- a/xfsettingsd/xsettings.xml
++++ b/xfsettingsd/xsettings.xml
+@@ -41,5 +41,6 @@
+ <property name="MenuBarAccel" type="string" value="F10"/>
+ <property name="CursorThemeName" type="string" value=""/>
+ <property name="CursorThemeSize" type="int" value="0"/>
++ <property name="TouchscreenMode" type="bool" value="false"/>
+ <property name="IMModule" type="string" value=""/>
+ </property>
+</channel>--
+1.7.6.5
+
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0005-pointers-detect-a-change-of-pointer-device-used-and-.patch b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0005-pointers-detect-a-change-of-pointer-device-used-and-.patch
new file mode 100644
index 0000000000..edcb4e1cd1
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/0005-pointers-detect-a-change-of-pointer-device-used-and-.patch
@@ -0,0 +1,582 @@
+From 37f5e33511499d320c3035c5377425004657faa5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Thu, 20 Dec 2012 16:58:19 +0100
+Subject: [PATCH 5/5] pointers: detect a change of pointer-device used and set
+ "touchscreen-pointer" as found in xfconf
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+To detect pointer device in use the DevicePresence-, DeviceMotionNotify- and
+DeviceButtonPress-events are handled. Tests showed that by repopenning and
+closing the pointer devices (e.g when another setting was modified), the events
+stopped working. Therefore all pointer devices are opened only once and managed
+in a hash table.
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+Upstream-Status: Submitted [1]
+[1] https://bugzilla.xfce.org/show_bug.cgi?id=9474
+---
+ xfsettingsd/pointers.c | 337 +++++++++++++++++++++++++++++++----------------
+ 1 files changed, 222 insertions(+), 115 deletions(-)
+
+diff --git a/xfsettingsd/pointers.c b/xfsettingsd/pointers.c
+index 62ebc60..32662cc 100644
+--- a/xfsettingsd/pointers.c
++++ b/xfsettingsd/pointers.c
+@@ -66,11 +66,9 @@ static void xfce_pointers_helper_channel_property_changed (XfconfCha
+ const gchar *property_name,
+ const GValue *value,
+ XfcePointersHelper *helper);
+-#ifdef DEVICE_HOTPLUGGING
+ static GdkFilterReturn xfce_pointers_helper_event_filter (GdkXEvent *xevent,
+ GdkEvent *gdk_event,
+ gpointer user_data);
+-#endif
+ static void xfce_pointers_helper_set_property (GObject *object,
+ guint prop_id,
+ const GValue *value,
+@@ -96,8 +94,11 @@ struct _XfcePointersHelper
+ GPid syndaemon_pid;
+ #endif
+
++ GHashTable *pointer_devices;
++ XID last_pointer_active;
++ gint device_motion_event_type;
++ gint device_button_press_event_type;
+ #ifdef DEVICE_HOTPLUGGING
+- /* device presence event type */
+ gint device_presence_event_type;
+ #endif
+ };
+@@ -117,6 +118,15 @@ G_DEFINE_TYPE (XfcePointersHelper, xfce_pointers_helper, G_TYPE_OBJECT);
+
+
+
++typedef struct
++{
++ XDevice *device;
++ gchar* name;
++}
++XfcePointerDeviceData;
++
++
++
+ static void
+ xfce_pointers_helper_class_init (XfcePointersHelperClass *klass)
+ {
+@@ -147,6 +157,18 @@ xfce_pointers_helper_init (XfcePointersHelper *helper)
+
+
+ static void
++xfce_pointers_device_close (gpointer data)
++{
++ XfcePointerDeviceData *device_data = data;
++
++ XCloseDevice (GDK_DISPLAY (), device_data->device);
++ g_free (device_data->name);
++ g_free (device_data);
++}
++
++
++
++static void
+ xfce_pointers_helper_constructed (GObject *object)
+ {
+ XfcePointersHelper *helper = XFCE_POINTERS_HELPER (object);
+@@ -185,6 +207,10 @@ xfce_pointers_helper_constructed (GObject *object)
+ helper->channel = xfconf_channel_get ("pointers");
+
+ /* restore the pointer devices */
++ helper->pointer_devices = g_hash_table_new_full (g_int_hash,
++ g_int_equal,
++ g_free,
++ xfce_pointers_device_close);
+ xfce_pointers_helper_restore_devices (helper, NULL);
+
+ /* monitor the channel */
+@@ -194,21 +220,20 @@ xfce_pointers_helper_constructed (GObject *object)
+ /* launch syndaemon if required */
+ xfce_pointers_helper_syndaemon_check (helper);
+
+-#ifdef DEVICE_HOTPLUGGING
+ if (G_LIKELY (xdisplay != NULL))
+ {
++#ifdef DEVICE_HOTPLUGGING
+ /* monitor device changes */
+ gdk_error_trap_push ();
+ DevicePresence (xdisplay, helper->device_presence_event_type, event_class);
+ XSelectExtensionEvent (xdisplay, RootWindow (xdisplay, DefaultScreen (xdisplay)), &event_class, 1);
+
+ /* add an event filter */
+- if (gdk_error_trap_pop () == 0)
+- gdk_window_add_filter (NULL, xfce_pointers_helper_event_filter, helper);
+- else
++ if (gdk_error_trap_pop () != 0)
+ g_warning ("Failed to create device filter");
+- }
+ #endif
++ gdk_window_add_filter (NULL, xfce_pointers_helper_event_filter, helper);
++ }
+ }
+ }
+
+@@ -238,7 +263,10 @@ xfce_pointers_helper_set_property (GObject *object,
+ static void
+ xfce_pointers_helper_finalize (GObject *object)
+ {
+- xfce_pointers_helper_syndaemon_stop (XFCE_POINTERS_HELPER (object));
++ XfcePointersHelper* helper = XFCE_POINTERS_HELPER (object);
++
++ xfce_pointers_helper_syndaemon_stop (helper);
++ g_hash_table_destroy (helper->pointer_devices);
+
+ (*G_OBJECT_CLASS (xfce_pointers_helper_parent_class)->finalize) (object);
+ }
+@@ -267,17 +295,17 @@ static void
+ xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper)
+ {
+ #ifdef DEVICE_PROPERTIES
+- Display *xdisplay = GDK_DISPLAY ();
+- XDeviceInfo *device_list;
+- XDevice *device;
+- gint n, ndevices;
+- Atom touchpad_type;
+- Atom touchpad_off_prop;
+- Atom *props;
+- gint i, nprops;
+- gboolean have_synaptics = FALSE;
+- gchar *args[] = { "syndaemon", "-i", "2.0", "-K", "-R", NULL };
+- GError *error = NULL;
++ Display *xdisplay = GDK_DISPLAY ();
++ XDeviceInfo *device_list;
++ XfcePointerDeviceData *device_data;
++ gint n, ndevices;
++ Atom touchpad_type;
++ Atom touchpad_off_prop;
++ Atom *props;
++ gint i, nprops;
++ gboolean have_synaptics = FALSE;
++ gchar *args[] = { "syndaemon", "-i", "2.0", "-K", "-R", NULL };
++ GError *error = NULL;
+
+ /* only stop a running daemon */
+ if (!xfconf_channel_get_bool (helper->channel, "/DisableTouchpadWhileTyping", FALSE))
+@@ -297,17 +325,16 @@ xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper)
+ if (device_list[n].type != touchpad_type)
+ continue;
+
+- gdk_error_trap_push ();
+- device = XOpenDevice (xdisplay, device_list[n].id);
+- if (gdk_error_trap_pop () != 0 || device == NULL)
++ device_data = g_hash_table_lookup (helper->pointer_devices, &device_list[n].id);
++ if (device_data == NULL)
+ {
+- g_critical ("Unable to open device %s", device_list[n].name);
++ g_critical ("xfce_pointers_helper_syndaemon_check: Unable to find device %s / ID %i in hash table", device_list[n].name, device_list[n].id);
+ break;
+ }
+
+ /* look for the Synaptics Off property */
+ gdk_error_trap_push ();
+- props = XListDeviceProperties (xdisplay, device, &nprops);
++ props = XListDeviceProperties (xdisplay, device_data->device, &nprops);
+ if (gdk_error_trap_pop () == 0
+ && props != NULL)
+ {
+@@ -317,8 +344,6 @@ xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper)
+ XFree (props);
+ }
+
+- XCloseDevice (xdisplay, device);
+-
+ if (have_synaptics)
+ break;
+ }
+@@ -844,24 +869,56 @@ xfce_pointers_helper_change_properties (gpointer key,
+
+
+ static void
++xfce_pointers_helper_change_current_device (XfcePointersHelper *helper,
++ XID *xid)
++{
++ XfcePointerDeviceData *device_data;
++ gchar* prop;
++ GValue bool_val = { 0, };
++
++ helper->last_pointer_active = *xid;
++ device_data = g_hash_table_lookup (helper->pointer_devices, xid);
++ if (device_data == NULL)
++ {
++ g_critical ("Unable to find device ID %i in hash table", *xid);
++ return;
++ }
++ if (G_LIKELY (G_IS_OBJECT (helper->xsettings_helper)))
++ {
++ prop = g_strconcat ("/", device_data->name, "/TouchscreenPointer", NULL);
++ g_value_init (&bool_val, G_TYPE_BOOLEAN);
++ g_value_set_boolean (&bool_val,
++ xfconf_channel_get_bool (helper->channel, prop, FALSE));
++ g_object_set_property (helper->xsettings_helper, "touchscreen-pointer", &bool_val);
++ g_value_unset (&bool_val);
++ g_free (prop);
++ }
++ else
++ g_critical ("xsettings_helper was not properly set");
++}
++
++
++static void
+ xfce_pointers_helper_restore_devices (XfcePointersHelper *helper,
+ XID *xid)
+ {
+- Display *xdisplay = GDK_DISPLAY ();
+- XDeviceInfo *device_list, *device_info;
+- gint n, ndevices;
+- XDevice *device;
+- gchar *device_name;
+- gchar prop[256];
+- gboolean right_handed;
+- gboolean reverse_scrolling;
+- gint threshold;
+- gdouble acceleration;
++ Display *xdisplay = GDK_DISPLAY ();
++ XDeviceInfo *device_list, *device_info;
++ gint n, ndevices;
++ XDevice *device;
++ XfcePointerDeviceData *device_data;
++ gchar *device_name;
++ gchar prop[256];
++ gboolean right_handed;
++ gboolean reverse_scrolling;
++ gint threshold;
++ gdouble acceleration;
++ XEventClass event_classes[2];
+ #ifdef DEVICE_PROPERTIES
+- GHashTable *props;
+- XfcePointerData pointer_data;
++ GHashTable *props;
++ XfcePointerData pointer_data;
+ #endif
+- const gchar *mode;
++ const gchar *mode;
+
+ gdk_error_trap_push ();
+ device_list = XListInputDevices (xdisplay, &ndevices);
+@@ -873,84 +930,107 @@ xfce_pointers_helper_restore_devices (XfcePointersHelper *helper,
+
+ for (n = 0; n < ndevices; n++)
+ {
+- /* filter the pointer devices */
++ /* filter the physical pointer devices */
+ device_info = &device_list[n];
+ if (device_info->use != IsXExtensionPointer
+- || device_info->name == NULL)
++ || device_info->name == NULL
++ || g_str_has_prefix (device_info->name, "Virtual core XTEST"))
+ continue;
+
+ /* filter out the device if one is set */
+ if (xid != NULL && device_info->id != *xid)
+ continue;
+
+- /* open the device */
+- gdk_error_trap_push ();
+- device = XOpenDevice (xdisplay, device_info->id);
+- if (gdk_error_trap_pop () != 0 || device == NULL)
++ device_data = g_hash_table_lookup (helper->pointer_devices, &device_info->id);
++ if (device_data == NULL)
+ {
+- g_critical ("Unable to open device %s", device_info->name);
+- continue;
+- }
++ /* open the device and insert to hash */
++ gdk_error_trap_push ();
++ device = XOpenDevice (xdisplay, device_info->id);
++ if (G_UNLIKELY(gdk_error_trap_pop () != 0 || device == NULL))
++ {
++ g_critical ("Unable to open device %s / ID: %i", device_info->name, device_info->id);
++ continue;
++ }
+
+- /* create a valid xfconf property name for the device */
+- device_name = xfce_pointers_helper_device_xfconf_name (device_info->name);
++ /* create a valid xfconf property name for the device */
++ device_name = xfce_pointers_helper_device_xfconf_name (device_info->name);
+
+- /* read buttonmap properties */
+- g_snprintf (prop, sizeof (prop), "/%s/RightHanded", device_name);
+- right_handed = xfconf_channel_get_bool (helper->channel, prop, -1);
++ /* add device to our list */
++ device_data = g_new (XfcePointerDeviceData, 1);
++ device_data->device = device;
++ device_data->name = device_name;
++ g_hash_table_insert (helper->pointer_devices, g_memdup (&device_info->id, sizeof(device_info->id)), device_data);
+
+- g_snprintf (prop, sizeof (prop), "/%s/ReverseScrolling", device_name);
+- reverse_scrolling = xfconf_channel_get_bool (helper->channel, prop, -1);
++ /* catch motion event / button-press for new device */
++ gdk_error_trap_push ();
++ DeviceMotionNotify (device, helper->device_motion_event_type, event_classes[0]);
++ DeviceButtonPress (device, helper->device_button_press_event_type, event_classes[1]);
++ XSelectExtensionEvent (xdisplay, RootWindow (xdisplay, DefaultScreen (xdisplay)), event_classes, 2);
++ if (G_UNLIKELY (gdk_error_trap_pop () != 0))
++ g_critical ("Unable to register DeviceButtonPress/DeviceMotionNotify for %i", device_info->id);
+
+- if (right_handed != -1 || reverse_scrolling != -1)
+- {
+- xfce_pointers_helper_change_button_mapping (device_info, device, xdisplay,
++
++ /* read buttonmap properties */
++ g_snprintf (prop, sizeof (prop), "/%s/RightHanded", device_name);
++ right_handed = xfconf_channel_get_bool (helper->channel, prop, -1);
++
++ g_snprintf (prop, sizeof (prop), "/%s/ReverseScrolling", device_name);
++ reverse_scrolling = xfconf_channel_get_bool (helper->channel, prop, -1);
++
++ if (right_handed != -1 || reverse_scrolling != -1)
++ {
++ xfce_pointers_helper_change_button_mapping (device_info, device, xdisplay,
+ right_handed, reverse_scrolling);
+- }
++ }
+
+- /* read feedback settings */
+- g_snprintf (prop, sizeof (prop), "/%s/Threshold", device_name);
+- threshold = xfconf_channel_get_int (helper->channel, prop, -1);
++ /* read feedback settings */
++ g_snprintf (prop, sizeof (prop), "/%s/Threshold", device_name);
++ threshold = xfconf_channel_get_int (helper->channel, prop, -1);
+
+- g_snprintf (prop, sizeof (prop), "/%s/Acceleration", device_name);
+- acceleration = xfconf_channel_get_double (helper->channel, prop, -1.00);
++ g_snprintf (prop, sizeof (prop), "/%s/Acceleration", device_name);
++ acceleration = xfconf_channel_get_double (helper->channel, prop, -1.00);
+
+- if (threshold != -1 || acceleration != -1.00)
+- {
+- xfce_pointers_helper_change_feedback (device_info, device, xdisplay,
+- threshold, acceleration);
+- }
++ if (threshold != -1 || acceleration != -1.00)
++ {
++ xfce_pointers_helper_change_feedback (device_info, device, xdisplay,
++ threshold, acceleration);
++ }
+
+- /* read mode settings */
+- g_snprintf (prop, sizeof (prop), "/%s/Mode", device_name);
+- mode = xfconf_channel_get_string (helper->channel, prop, NULL);
++ /* read mode settings */
++ g_snprintf (prop, sizeof (prop), "/%s/Mode", device_name);
++ mode = xfconf_channel_get_string (helper->channel, prop, NULL);
+
+- if (mode != NULL)
+- xfce_pointers_helper_change_mode (device_info, device, xdisplay, mode);
++ if (mode != NULL)
++ xfce_pointers_helper_change_mode (device_info, device, xdisplay, mode);
+
+ #ifdef DEVICE_PROPERTIES
+- /* set device properties */
+- g_snprintf (prop, sizeof (prop), "/%s/Properties", device_name);
+- props = xfconf_channel_get_properties (helper->channel, prop);
++ /* set device properties */
++ g_snprintf (prop, sizeof (prop), "/%s/Properties", device_name);
++ props = xfconf_channel_get_properties (helper->channel, prop);
+
+- if (props != NULL)
+- {
+- pointer_data.xdisplay = xdisplay;
+- pointer_data.device = device;
+- pointer_data.device_info = device_info;
+- pointer_data.prop_name_len = strlen (prop) + 1;
++ if (props != NULL)
++ {
++ pointer_data.xdisplay = xdisplay;
++ pointer_data.device = device;
++ pointer_data.device_info = device_info;
++ pointer_data.prop_name_len = strlen (prop) + 1;
+
+- g_hash_table_foreach (props, xfce_pointers_helper_change_properties, &pointer_data);
++ g_hash_table_foreach (props, xfce_pointers_helper_change_properties, &pointer_data);
+
+- g_hash_table_destroy (props);
+- }
++ g_hash_table_destroy (props);
++ }
+ #endif
+-
+- g_free (device_name);
+- XCloseDevice (xdisplay, device);
++ }
+ }
+-
+ XFreeDeviceList (device_list);
++ if (G_LIKELY (device_data != NULL))
++ {
++ if (helper->last_pointer_active != device_data->device->device_id)
++ xfce_pointers_helper_change_current_device (helper, &device_data->device->device_id);
++ }
++ else
++ g_critical("no device selected in xfce_pointers_helper_restore_devices");
+ }
+
+
+@@ -961,12 +1041,12 @@ xfce_pointers_helper_channel_property_changed (XfconfChannel *channel,
+ const GValue *value,
+ XfcePointersHelper *helper)
+ {
+- Display *xdisplay = GDK_DISPLAY ();
+- XDeviceInfo *device_list, *device_info;
+- XDevice *device;
+- gint n, ndevices;
+- gchar **names;
+- gchar *device_name;
++ Display *xdisplay = GDK_DISPLAY ();
++ XDeviceInfo *device_list, *device_info;
++ XfcePointerDeviceData *device_data;
++ gint n, ndevices;
++ gchar **names;
++ gchar *device_name;
+
+ if (G_UNLIKELY (property_name == NULL))
+ return;
+@@ -996,63 +1076,72 @@ xfce_pointers_helper_channel_property_changed (XfconfChannel *channel,
+ /* filter the pointer devices */
+ device_info = &device_list[n];
+ if (device_info->use != IsXExtensionPointer
+- || device_info->name == NULL)
++ || device_info->name == NULL
++ || g_str_has_prefix (device_info->name, "Virtual core XTEST"))
+ continue;
+
+ /* search the device name */
+ device_name = xfce_pointers_helper_device_xfconf_name (device_info->name);
+ if (strcmp (names[0], device_name) == 0)
+ {
+- /* open the device */
+- gdk_error_trap_push ();
+- device = XOpenDevice (xdisplay, device_info->id);
+- if (gdk_error_trap_pop () != 0 || device == NULL)
++ /* find the device */
++ device_data = g_hash_table_lookup (helper->pointer_devices, &device_info->id);
++ if (device_data == NULL)
+ {
+- g_critical ("Unable to open device %s", device_info->name);
++ g_critical ("xfce_pointers_helper_channel_property_changed: Unable to find device %s / ID %i in hash table", device_info->name, device_info->id);
+ continue;
+ }
+
+ /* check the property that requires updating */
+ if (strcmp (names[1], "RightHanded") == 0)
+ {
+- xfce_pointers_helper_change_button_mapping (device_info, device, xdisplay,
++ xfce_pointers_helper_change_button_mapping (device_info, device_data->device, xdisplay,
+ g_value_get_boolean (value), -1);
+ }
+ else if (strcmp (names[1], "ReverseScrolling") == 0)
+ {
+- xfce_pointers_helper_change_button_mapping (device_info, device, xdisplay,
++ xfce_pointers_helper_change_button_mapping (device_info, device_data->device, xdisplay,
+ -1, g_value_get_boolean (value));
+ }
+ else if (strcmp (names[1], "Threshold") == 0)
+ {
+- xfce_pointers_helper_change_feedback (device_info, device, xdisplay,
++ xfce_pointers_helper_change_feedback (device_info, device_data->device, xdisplay,
+ g_value_get_int (value), -2.00);
+ }
+ else if (strcmp (names[1], "Acceleration") == 0)
+ {
+- xfce_pointers_helper_change_feedback (device_info, device, xdisplay,
++ xfce_pointers_helper_change_feedback (device_info, device_data->device, xdisplay,
+ -2, g_value_get_double (value));
+ }
+ #ifdef DEVICE_PROPERTIES
+ else if (strcmp (names[1], "Properties") == 0)
+ {
+- xfce_pointers_helper_change_property (device_info, device, xdisplay,
++ xfce_pointers_helper_change_property (device_info, device_data->device, xdisplay,
+ names[2], value);
+ }
+ #endif
+ else if (strcmp (names[1], "Mode") == 0)
+ {
+- xfce_pointers_helper_change_mode (device_info, device, xdisplay,
++ xfce_pointers_helper_change_mode (device_info, device_data->device, xdisplay,
+ g_value_get_string (value));
+ }
++ else if (strcmp (names[1], "TouchscreenPointer") == 0)
++ {
++ /* only hide if the current device's property was changed */
++ if (device_info->id == helper->last_pointer_active)
++ {
++ if (G_LIKELY (G_IS_OBJECT (helper->xsettings_helper)))
++ g_object_set_property (helper->xsettings_helper, "touchscreen-pointer", value);
++ else
++ g_critical ("xsettings_helper was not properly set");
++ }
++ }
+ else
+ {
+ g_warning ("Unknown property %s set for device %s",
+ property_name, device_info->name);
+ }
+
+- XCloseDevice (xdisplay, device);
+-
+ /* stop searching */
+ n = ndevices;
+ }
+@@ -1068,26 +1157,44 @@ xfce_pointers_helper_channel_property_changed (XfconfChannel *channel,
+
+
+
+-#ifdef DEVICE_HOTPLUGGING
+ static GdkFilterReturn
+ xfce_pointers_helper_event_filter (GdkXEvent *xevent,
+ GdkEvent *gdk_event,
+ gpointer user_data)
+ {
++ XDevicePresenceNotifyEvent *dpn_event;
+ XEvent *event = xevent;
+- XDevicePresenceNotifyEvent *dpn_event = xevent;
+ XfcePointersHelper *helper = XFCE_POINTERS_HELPER (user_data);
+
+- if (event->type == helper->device_presence_event_type)
++ /* Comparison for device changed is done here redundantly to prevent call
++ * on every mouse move.
++ */
++ if (event->type == helper->device_motion_event_type
++ && helper->last_pointer_active != ((XDeviceMotionEvent*)xevent)->deviceid)
++ xfce_pointers_helper_change_current_device (helper, &((XDeviceMotionEvent*)xevent)->deviceid);
++ else if (event->type == helper->device_button_press_event_type
++ && helper->last_pointer_active != ((XDeviceButtonEvent*)xevent)->deviceid)
++ xfce_pointers_helper_change_current_device (helper, &((XDeviceButtonEvent*)xevent)->deviceid);
++
++#ifdef DEVICE_HOTPLUGGING
++ /* handle device add/remove */
++ else if (event->type == helper->device_presence_event_type)
+ {
++ dpn_event = xevent;
+ /* restore device settings */
+ if (dpn_event->devchange == DeviceAdded)
+ xfce_pointers_helper_restore_devices (helper, &dpn_event->deviceid);
++ else if(dpn_event->devchange == DeviceRemoved)
++ /* we could try to find a remaining pointer to set that as active
++ * one but that might not fit and as soon as the user works with
++ * another pointer we are changing to correct one.
++ */
++ g_hash_table_remove (helper->pointer_devices, &dpn_event->deviceid);
+
+ /* check if we need to launch syndaemon */
+ xfce_pointers_helper_syndaemon_check (helper);
+ }
++#endif
+
+ return GDK_FILTER_CONTINUE;
+ }
+-#endif
+--
+1.7.6.5
+
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/invisible b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/invisible
new file mode 100644
index 0000000000..ef4d9aadb6
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/invisible
Binary files differ
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/wait b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/wait
new file mode 100644
index 0000000000..8b9ac7e20a
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings/touchscreen/wait
Binary files differ
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb
index 7075e2a534..9b6205b2dd 100644
--- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb
+++ b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.10.0.bb
@@ -3,15 +3,29 @@ SECTION = "x11/wm"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "exo garcon gtk+ libxfce4util libxfce4ui xfconf dbus-glib libxi virtual/libx11 xrandr libnotify libxcursor libxklavier"
-PR = "r1"
+PR = "r2"
inherit xfce
SRC_URI += "file://0001-xsettings.xml-remove-trouble-causing-comment.patch \
- file://0002-xsettings.xml-Set-default-themes.patch"
+ file://0002-xsettings.xml-Set-default-themes.patch \
+ file://touchscreen/invisible \
+ file://touchscreen/wait \
+ file://touchscreen/0001-add-cursor-theme-xfce-invisible.patch \
+ file://touchscreen/0002-mouse-settings-dialog-add-touchscreen-pointer-option.patch \
+ file://touchscreen/0003-XfcePointersHelper-gets-a-pointer-to-XfceXSettingsHe.patch \
+ file://touchscreen/0004-XfceXSettingsHelper-gets-a-property-touchscreen-poin.patch \
+ file://touchscreen/0005-pointers-detect-a-change-of-pointer-device-used-and-.patch \
+"
SRC_URI[md5sum] = "cc4dd9179ead9046c056431f01a12000"
SRC_URI[sha256sum] = "0843f09ba9673f1d1b5df8dce4a17b63c183a9ba3be75fb6ef99a67fc8c1f77e"
FILES_${PN} += "${libdir}/xfce4"
+do_install_prepend() {
+ # somehow binary files are not patched correctly by oe-patch - so copy them
+ cp ${WORKDIR}/touchscreen/invisible ${S}/cursors
+ cp ${WORKDIR}/touchscreen/wait ${S}/cursors
+}
+
RRECOMMENDS_${PN} += "gnome-icon-theme"