diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /gnome-extra/gpointing-device-settings | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'gnome-extra/gpointing-device-settings')
10 files changed, 753 insertions, 0 deletions
diff --git a/gnome-extra/gpointing-device-settings/Manifest b/gnome-extra/gpointing-device-settings/Manifest new file mode 100644 index 000000000000..5c7653bfba8c --- /dev/null +++ b/gnome-extra/gpointing-device-settings/Manifest @@ -0,0 +1 @@ +DIST gpointing-device-settings-1.5.1.tar.gz 458352 SHA256 cccdbb5cd3ea18b9458ca23fd3bfbdc98410917f2037472b08ac239dbd2639b3 SHA512 37bcecdde4da1714de1c0562d0ba8c875aa197a0b2fad55a868d659ad0ed6a37156b408e9ae07f95091391d972ceaa268636ee579f4a3f176203898b227e3b76 WHIRLPOOL 195eebdacd3e02452e7ce3d30c827ba194827427b6b70cdf824ac2dc27179aeeb65710587b3d0c8757819bb95c5c5edf52cd30e318480f005fb8ace2729238f4 diff --git a/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-crash.patch b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-crash.patch new file mode 100644 index 000000000000..789925c0bc97 --- /dev/null +++ b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-crash.patch @@ -0,0 +1,30 @@ +commit 70add06dec8413965f3e98b6ba9a3c82168ea72c +Author: Hiroyuki Ikezoe <poincare@ikezoe.net> +Date: Tue Mar 16 19:56:17 2010 +0900 + + Fix crash. + + We need to get xinput property if there is no gconf value for tapping time. + + Fix for #613022. + +diff --git a/modules/gpds-touchpad-ui.c b/modules/gpds-touchpad-ui.c +index 3bbcda6..a1cd31b 100644 +--- a/modules/gpds-touchpad-ui.c ++++ b/modules/gpds-touchpad-ui.c +@@ -1067,8 +1067,14 @@ set_tapping_time_from_preference (GpdsUI *ui, GtkBuilder *builder) + } + } + +- if (!gpds_ui_get_gconf_int(ui, GPDS_TOUCHPAD_TAP_TIME_KEY, &value)) ++ if (!gpds_ui_get_gconf_int(ui, GPDS_TOUCHPAD_TAP_TIME_KEY, &value) && !values) { ++ if (!gpds_xinput_ui_get_xinput_int_property(GPDS_XINPUT_UI(ui), ++ GPDS_TOUCHPAD_TAP_TIME, ++ &values, &n_values)) { ++ return; ++ } + value = values[0]; ++ } + + double_value = value; + object = gpds_ui_get_ui_object_by_name(GPDS_UI(ui), "tapping_time_scale"); diff --git a/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-fix-build.patch b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-fix-build.patch new file mode 100644 index 000000000000..341d96fc9b50 --- /dev/null +++ b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-fix-build.patch @@ -0,0 +1,26 @@ +diff -Naur gpointing-device-settings-1.5.1.orig/configure.ac gpointing-device-settings-1.5.1/configure.ac +--- gpointing-device-settings-1.5.1.orig/configure.ac 2010-02-05 00:38:20.000000000 +0100 ++++ gpointing-device-settings-1.5.1/configure.ac 2013-12-17 15:00:08.394574115 +0100 +@@ -3,10 +3,9 @@ + + AC_INIT(gpointing-device-settings, 1.5.1, + [http://bugzilla.gnome.org/enter_bug.cgi?product=GPointingDeviceSettings]) +-AM_INIT_AUTOMAKE([1.9 tar-pax]) +-AM_INIT_AUTOMAKE([foreign]) ++AM_INIT_AUTOMAKE([1.9 tar-pax foreign]) + m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) +-AM_CONFIG_HEADER(config.h) ++AC_CONFIG_HEADERS(config.h) + AC_CONFIG_MACRO_DIR([m4]) + + AM_PROG_LIBTOOL +@@ -146,9 +145,6 @@ + + GPDS_CFLAGS="$XINPUT_CFLAGS $GTK_CFLAGS" + GPDS_CFLAGS="$GPDS_CFLAGS $GCONF2_CFLAGS" +-GPDS_CFLAGS="$GPDS_CFLAGS -DGTK_DISABLE_DEPRECATED" +-GPDS_CFLAGS="$GPDS_CFLAGS -DGDK_DISABLE_DEPRECATED" +-GPDS_CFLAGS="$GPDS_CFLAGS -DG_DISABLE_DEPRECATED" + GPDS_CFLAGS="$GPDS_CFLAGS -DGPDS_MODULEDIR=\\\"\"\$(gpds_moduledir)\"\\\"" + GPDS_CFLAGS="$GPDS_CFLAGS -DGPDS_DATADIR=\\\"\"\$(gpds_datadir)\"\\\"" + GPDS_CFLAGS="$GPDS_CFLAGS -DGPDS_UIDIR=\\\"\"\$(gpds_uidir)\"\\\"" diff --git a/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gsd-3.2-fix.patch b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gsd-3.2-fix.patch new file mode 100644 index 000000000000..c92f0bd54c95 --- /dev/null +++ b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gsd-3.2-fix.patch @@ -0,0 +1,22 @@ +Fixes build failnure on gnome-base/gnome-settings-daemon-3.2.2 + + gsd-pointing-device-plugin.c:59:1: warning: 'gsd_pointing_device_plugin_class_finalize' used but never defined [enabled by default] + CCLD libpointing-device.la + ld: .libs/libpointing_device_la-gsd-pointing-device-plugin.o: relocation R_X86_64_PC32 against undefined symbol `gsd_pointing_device_plugin_class_finalize' + +Gentoo-bug: http://bugs.gentoo.org/384001 +Patch-by: battle.jerboa@gmail.com +--- a/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c 2012-02-02 13:32:20.000000000 +0400 ++++ b/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c 2012-02-02 13:32:04.000000000 +0400 +@@ -214,6 +214,11 @@ + plugin_class->activate = activate; + plugin_class->deactivate = deactivate; + } ++ ++static void ++gsd_pointing_device_plugin_class_finalize (GsdPointingDevicePluginClass *klass) ++{ ++} + /* + vi:ts=4:nowrap:ai:expandtab:sw=4 + */ diff --git a/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gsd-crash.patch b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gsd-crash.patch new file mode 100644 index 000000000000..f694556b74ec --- /dev/null +++ b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gsd-crash.patch @@ -0,0 +1,35 @@ +diff -ru gpointing-device-settings-1.5.1-orig/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c gpointing-device-settings-1.5.1/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c +--- gpointing-device-settings-1.5.1-orig/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c 2010-12-20 01:29:09.204274003 -0500 ++++ gpointing-device-settings-1.5.1/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c 2010-12-20 02:15:21.652274002 -0500 +@@ -96,19 +96,21 @@ + XDevicePresenceNotifyEvent *notify_event = (XDevicePresenceNotifyEvent *)xev; + + device_info = gpds_xinput_utils_get_device_info_from_id(notify_event->deviceid, NULL); +- if (notify_event->devchange == DeviceEnabled) { +- GsdPointingDeviceManager *manager; ++ if (device_info) { ++ if (notify_event->devchange == DeviceEnabled) { ++ GsdPointingDeviceManager *manager; + +- if (has_manager(plugin, device_info->name)) +- return GDK_FILTER_CONTINUE; ++ if (has_manager(plugin, device_info->name)) ++ return GDK_FILTER_CONTINUE; + +- manager = gsd_pointing_device_manager_new(gdk_x11_get_xatom_name(device_info->type), +- device_info->name); +- if (manager) { +- gsd_pointing_device_manager_start(manager, NULL); +- plugin->managers = g_list_prepend(plugin->managers, manager); ++ manager = gsd_pointing_device_manager_new(gdk_x11_get_xatom_name(device_info->type), ++ device_info->name); ++ if (manager) { ++ gsd_pointing_device_manager_start(manager, NULL); ++ plugin->managers = g_list_prepend(plugin->managers, manager); ++ } ++ } else if (notify_event->devchange == DeviceRemoved) { + } +- } else if (notify_event->devchange == DeviceRemoved) { + } + } + diff --git a/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gtk22.patch b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gtk22.patch new file mode 100644 index 000000000000..154c54728540 --- /dev/null +++ b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-gtk22.patch @@ -0,0 +1,201 @@ +diff --git a/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c b/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c +index 8a2d98f..ac0bcf1 100644 +--- a/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c ++++ b/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c +@@ -124,7 +124,9 @@ add_device_presence_filter (GsdPointingDevicePlugin *plugin) + + gint op_code, event, error; + +- if (!XQueryExtension(GDK_DISPLAY(), ++ display = gdk_x11_get_default_xdisplay(); ++ ++ if (!XQueryExtension(display, + "XInputExtension", + &op_code, + &event, +@@ -132,8 +134,6 @@ add_device_presence_filter (GsdPointingDevicePlugin *plugin) + return; + } + +- display = gdk_x11_get_default_xdisplay(); +- + gdk_error_trap_push(); + DevicePresence(display, xi_presence, class_presence); + XSelectExtensionEvent(display, +diff --git a/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c b/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c +index 2038d53..f47e0a4 100644 +--- a/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c ++++ b/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c +@@ -348,7 +348,9 @@ add_device_presence_filter (GsdPointingDeviceManager *manager) + + gint op_code, event, error; + +- if (!XQueryExtension(GDK_DISPLAY(), ++ display = gdk_x11_get_default_xdisplay(); ++ ++ if (!XQueryExtension(display, + "XInputExtension", + &op_code, + &event, +@@ -356,8 +358,6 @@ add_device_presence_filter (GsdPointingDeviceManager *manager) + return; + } + +- display = gdk_x11_get_default_xdisplay(); +- + gdk_error_trap_push(); + DevicePresence(display, xi_presence, class_presence); + XSelectExtensionEvent(display, +diff --git a/src/gpds-xinput-pointer-info.c b/src/gpds-xinput-pointer-info.c +index d38afad..ce9a952 100644 +--- a/src/gpds-xinput-pointer-info.c ++++ b/src/gpds-xinput-pointer-info.c +@@ -55,7 +55,8 @@ gpds_xinput_utils_collect_pointer_infos (void) + XDeviceInfo *device_infos; + gint i, n_device_infos; + +- device_infos = XListInputDevices(GDK_DISPLAY(), &n_device_infos); ++ device_infos = XListInputDevices(gdk_x11_get_default_xdisplay(), ++ &n_device_infos); + + for (i = 0; i < n_device_infos; i++) { + GpdsXInputPointerInfo *info; +diff --git a/src/gpds-xinput-utils.c b/src/gpds-xinput-utils.c +index 0f7ceea..5a3e3a2 100644 +--- a/src/gpds-xinput-utils.c ++++ b/src/gpds-xinput-utils.c +@@ -41,7 +41,8 @@ gpds_xinput_utils_get_device_info (const gchar *device_name, GError **error) + XDeviceInfo *device_infos; + gint i, n_device_infos; + +- device_infos = XListInputDevices(GDK_DISPLAY(), &n_device_infos); ++ device_infos = XListInputDevices(gdk_x11_get_default_xdisplay(), ++ &n_device_infos); + + for (i = 0; i < n_device_infos; i++) { + if (device_infos[i].use != IsXExtensionPointer) +@@ -68,7 +69,7 @@ gpds_xinput_utils_get_device_info_from_id (XID id, GError **error) + XDeviceInfo *device_infos; + gint i, n_device_infos; + +- device_infos = XListInputDevices(GDK_DISPLAY(), &n_device_infos); ++ device_infos = XListInputDevices(gdk_x11_get_default_xdisplay(), &n_device_infos); + + for (i = 0; i < n_device_infos; i++) { + if (device_infos[i].use != IsXExtensionPointer) +@@ -125,7 +126,7 @@ gpds_xinput_utils_open_device (const gchar *device_name, GError **error) + return NULL; + + gdk_error_trap_push(); +- device = XOpenDevice(GDK_DISPLAY(), device_info->id); ++ device = XOpenDevice(gdk_x11_get_default_xdisplay(), device_info->id); + gdk_error_trap_pop(); + if (!device) { + g_set_error(error, +diff --git a/src/gpds-xinput.c b/src/gpds-xinput.c +index d8bd1a2..66634b3 100644 +--- a/src/gpds-xinput.c ++++ b/src/gpds-xinput.c +@@ -100,7 +100,7 @@ dispose (GObject *object) + g_free(priv->device_name); + + if (priv->device) { +- XCloseDevice(GDK_DISPLAY(), priv->device); ++ XCloseDevice(gdk_x11_get_default_xdisplay(), priv->device); + priv->device = NULL; + } + +@@ -199,7 +199,8 @@ get_x_error_text (int x_error_code) + { + gchar buf[64]; + +- XGetErrorText(GDK_DISPLAY(), x_error_code, buf, sizeof(buf) - 1); ++ XGetErrorText(gdk_x11_get_default_xdisplay(), x_error_code, ++ buf, sizeof(buf) - 1); + + return g_strdup(buf); + } +@@ -273,7 +274,7 @@ gpds_xinput_set_int_properties_by_name_with_format_type + } + + gdk_error_trap_push(); +- XChangeDeviceProperty(GDK_DISPLAY(), ++ XChangeDeviceProperty(gdk_x11_get_default_xdisplay(), + device, property_atom, + XA_INTEGER, format_type, PropModeReplace, + (unsigned char*)property_data, n_properties); +@@ -383,7 +384,8 @@ get_atom (GpdsXInput *xinput, const gchar *property_name, GError **error) + if (!device) + return -1; + +- properties = XListDeviceProperties(GDK_DISPLAY(), device, &n_properties); ++ properties = XListDeviceProperties(gdk_x11_get_default_xdisplay(), ++ device, &n_properties); + for (i = 0; i < n_properties; i++) { + const gchar *name; + +@@ -427,9 +429,9 @@ gpds_xinput_get_int_properties_by_name (GpdsXInput *xinput, + return FALSE; + + gdk_error_trap_push(); +- status = XGetDeviceProperty(GDK_DISPLAY(), device, atom, 0, 1000, False, +- XA_INTEGER, &actual_type, &actual_format, +- n_values, &bytes_after, &data); ++ status = XGetDeviceProperty(gdk_x11_get_default_xdisplay(), device, atom, ++ 0, 1000, False, XA_INTEGER, &actual_type, ++ &actual_format, n_values, &bytes_after, &data); + gdk_flush(); + x_error_code = gdk_error_trap_pop(); + if (status != Success || x_error_code != 0) { +@@ -523,7 +525,7 @@ gpds_xinput_set_float_properties_by_name (GpdsXInput *xinput, + *(property_data + i) = (gfloat)properties[i]; + + gdk_error_trap_push(); +- XChangeDeviceProperty(GDK_DISPLAY(), ++ XChangeDeviceProperty(gdk_x11_get_default_xdisplay(), + device, property_atom, + float_atom, 32, PropModeReplace, + (unsigned char*)property_data, n_properties); +@@ -594,7 +596,8 @@ gpds_xinput_get_float_properties_by_name (GpdsXInput *xinput, + return FALSE; + + gdk_error_trap_push(); +- status = XGetDeviceProperty(GDK_DISPLAY(), device, property_atom, 0, 1000, False, ++ status = XGetDeviceProperty(gdk_x11_get_default_xdisplay(), device, ++ property_atom, 0, 1000, False, + float_atom, &actual_type, &actual_format, + n_properties, &bytes_after, &data); + gdk_flush(); +@@ -676,7 +679,8 @@ gpds_xinput_get_button_map (GpdsXInput *xinput, + *map = g_new0(guchar, *n_buttons); + + gdk_error_trap_push(); +- status = XGetDeviceButtonMapping(GDK_DISPLAY(), device, *map, *n_buttons); ++ status = XGetDeviceButtonMapping(gdk_x11_get_default_xdisplay(), ++ device, *map, *n_buttons); + gdk_flush(); + + x_error_code = gdk_error_trap_pop(); +@@ -705,7 +709,8 @@ gpds_xinput_set_button_map (GpdsXInput *xinput, + return FALSE; + + gdk_error_trap_push(); +- status = XSetDeviceButtonMapping(GDK_DISPLAY(), device, map, n_buttons); ++ status = XSetDeviceButtonMapping(gdk_x11_get_default_xdisplay(), ++ device, map, n_buttons); + gdk_flush(); + + x_error_code = gdk_error_trap_pop(); +diff --git a/test/test-xinput-utils.c b/test/test-xinput-utils.c +index a06dcbc..f97f9d4 100644 +--- a/test/test-xinput-utils.c ++++ b/test/test-xinput-utils.c +@@ -29,7 +29,7 @@ void + teardown (void) + { + if (device) +- XCloseDevice(GDK_DISPLAY(), device); ++ XCloseDevice(gdk_x11_get_default_xdisplay(), device); + g_clear_error(&error); + g_clear_error(&expected_error); + } diff --git a/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-plugin.patch b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-plugin.patch new file mode 100644 index 000000000000..3e8612d96a53 --- /dev/null +++ b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-plugin.patch @@ -0,0 +1,107 @@ +commit 255334e6749ec4d4358e627dc6693b4159aaf912 +Author: Hiroyuki Ikezoe <poincare@ikezoe.net> +Date: Fri Mar 12 19:13:54 2010 +0900 + + mouse extension -> pointing device. + + Why did I use this weird name? + +diff --git a/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c b/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c +index db4dd8e..31dd336 100644 +--- a/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c ++++ b/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c +@@ -29,34 +29,34 @@ + #include "gpds-gconf.h" + #include "gpds-xinput-pointer-info.h" + +-#define GSD_TYPE_MOUSE_EXTENSION_PLUGIN (gsd_mouse_extension_plugin_get_type ()) +-#define GSD_MOUSE_EXTENSION_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSD_TYPE_MOUSE_EXTENSION_PLUGIN, GsdMouseExtensionPlugin)) +-#define GSD_MOUSE_EXTENSION_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSD_TYPE_MOUSE_EXTENSION_PLUGIN, GsdTracklassPointPluginClass)) +-#define GSD_IS_MOUSE_EXTENSION_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSD_TYPE_MOUSE_EXTENSION_PLUGIN)) +-#define GSD_IS_MOUSE_EXTENSION_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSD_TYPE_MOUSE_EXTENSION_PLUGIN)) +-#define GSD_MOUSE_EXTENSION_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSD_TYPE_MOUSE_EXTENSION_PLUGIN, GsdTracklassPointPluginClass)) ++#define GSD_TYPE_POINTING_DEVICE_PLUGIN (gsd_pointing_device_plugin_get_type ()) ++#define GSD_POINTING_DEVICE_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSD_TYPE_POINTING_DEVICE_PLUGIN, GsdPointingDevicePlugin)) ++#define GSD_POINTING_DEVICE_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSD_TYPE_POINTING_DEVICE_PLUGIN, GsdTracklassPointPluginClass)) ++#define GSD_IS_POINTING_DEVICE_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSD_TYPE_POINTING_DEVICE_PLUGIN)) ++#define GSD_IS_POINTING_DEVICE_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSD_TYPE_POINTING_DEVICE_PLUGIN)) ++#define GSD_POINTING_DEVICE_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSD_TYPE_POINTING_DEVICE_PLUGIN, GsdTracklassPointPluginClass)) + +-typedef struct _GsdMouseExtensionPlugin GsdMouseExtensionPlugin; +-typedef struct _GsdMouseExtensionPluginClass GsdMouseExtensionPluginClass; ++typedef struct _GsdPointingDevicePlugin GsdPointingDevicePlugin; ++typedef struct _GsdPointingDevicePluginClass GsdPointingDevicePluginClass; + +-struct _GsdMouseExtensionPlugin ++struct _GsdPointingDevicePlugin + { + GnomeSettingsPlugin parent; + GList *managers; + }; + +-struct _GsdMouseExtensionPluginClass ++struct _GsdPointingDevicePluginClass + { + GnomeSettingsPluginClass parent_class; + }; + +-GType gsd_mouse_extension_plugin_get_type (void) G_GNUC_CONST; ++GType gsd_pointing_device_plugin_get_type (void) G_GNUC_CONST; + G_MODULE_EXPORT GType register_gnome_settings_plugin (GTypeModule *module); + +-GNOME_SETTINGS_PLUGIN_REGISTER(GsdMouseExtensionPlugin, gsd_mouse_extension_plugin) ++GNOME_SETTINGS_PLUGIN_REGISTER(GsdPointingDevicePlugin, gsd_pointing_device_plugin) + + static void +-gsd_mouse_extension_plugin_init (GsdMouseExtensionPlugin *plugin) ++gsd_pointing_device_plugin_init (GsdPointingDevicePlugin *plugin) + { + plugin->managers = NULL; + } +@@ -104,10 +104,10 @@ collect_pointer_device_infos_from_gconf (void) + static void + activate (GnomeSettingsPlugin *plugin) + { +- GsdMouseExtensionPlugin *mouse_extension_plugin; ++ GsdPointingDevicePlugin *pointing_device_plugin; + GList *pointer_device_infos, *node; + +- mouse_extension_plugin = GSD_MOUSE_EXTENSION_PLUGIN(plugin); ++ pointing_device_plugin = GSD_POINTING_DEVICE_PLUGIN(plugin); + + pointer_device_infos = collect_pointer_device_infos_from_gconf(); + for (node = pointer_device_infos; node; node = g_list_next(node)) { +@@ -120,8 +120,8 @@ activate (GnomeSettingsPlugin *plugin) + continue; + + gsd_pointing_device_manager_start(manager, NULL); +- mouse_extension_plugin->managers = +- g_list_prepend(mouse_extension_plugin->managers, manager); ++ pointing_device_plugin->managers = ++ g_list_prepend(pointing_device_plugin->managers, manager); + } + g_list_foreach(pointer_device_infos, + (GFunc)gpds_xinput_pointer_info_free, NULL); +@@ -129,7 +129,7 @@ activate (GnomeSettingsPlugin *plugin) + } + + static void +-stop_all_managers (GsdMouseExtensionPlugin *plugin) ++stop_all_managers (GsdPointingDevicePlugin *plugin) + { + GList *node; + +@@ -147,11 +147,11 @@ stop_all_managers (GsdMouseExtensionPlugin *plugin) + static void + deactivate (GnomeSettingsPlugin *plugin) + { +- stop_all_managers(GSD_MOUSE_EXTENSION_PLUGIN(plugin)); ++ stop_all_managers(GSD_POINTING_DEVICE_PLUGIN(plugin)); + } + + static void +-gsd_mouse_extension_plugin_class_init (GsdMouseExtensionPluginClass *klass) ++gsd_pointing_device_plugin_class_init (GsdPointingDevicePluginClass *klass) + { + GnomeSettingsPluginClass *plugin_class = GNOME_SETTINGS_PLUGIN_CLASS(klass); + diff --git a/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-reboot.patch b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-reboot.patch new file mode 100644 index 000000000000..1793bdfaa0a0 --- /dev/null +++ b/gnome-extra/gpointing-device-settings/files/gpointing-device-settings-1.5.1-reboot.patch @@ -0,0 +1,266 @@ +commit ff25a24d387887bc3bbacfb5bcaf2756695df096 +Author: Hiroyuki Ikezoe <hiikezoe@gnome.org> +Date: Sat Jun 26 19:55:40 2010 +0900 + + Watch DevicePresenceNotify event. + + Some devices are not reported by xserver at the time of startiung up + of gnome-settings-daemon, so we need to watch DevicePresenceNotify + event at that time. + + Fix for bug #609050. + +diff --git a/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c b/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c +index 31dd336..8a2d98f 100644 +--- a/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c ++++ b/modules/gnome-settings-daemon-plugins/gsd-pointing-device-plugin.c +@@ -24,10 +24,13 @@ + #include <gnome-settings-daemon/gnome-settings-plugin.h> + #include <glib/gi18n.h> + #include <gconf/gconf-client.h> ++#include <gdk/gdkx.h> ++#include <X11/extensions/XInput.h> + + #include "gsd-pointing-device-manager.h" + #include "gpds-gconf.h" + #include "gpds-xinput-pointer-info.h" ++#include "gpds-xinput-utils.h" + + #define GSD_TYPE_POINTING_DEVICE_PLUGIN (gsd_pointing_device_plugin_get_type ()) + #define GSD_POINTING_DEVICE_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSD_TYPE_POINTING_DEVICE_PLUGIN, GsdPointingDevicePlugin)) +@@ -61,44 +64,90 @@ gsd_pointing_device_plugin_init (GsdPointingDevicePlugin *plugin) + plugin->managers = NULL; + } + +-static GList * +-collect_pointer_device_infos_from_gconf (void) ++static gboolean ++has_manager (GsdPointingDevicePlugin *plugin, const gchar *device_name) + { +- GConfClient *gconf; +- GSList *dirs, *node; +- GList *infos = NULL; +- +- gconf = gconf_client_get_default(); +- dirs = gconf_client_all_dirs(gconf, GPDS_GCONF_DIR, NULL); +- +- for (node = dirs; node; node = g_slist_next(node)) { +- const gchar *dir = node->data; +- gchar *device_type; +- gchar *device_type_key; +- +- device_type_key = gconf_concat_dir_and_key(dir, GPDS_GCONF_DEVICE_TYPE_KEY); +- device_type = gconf_client_get_string(gconf, device_type_key, NULL); +- if (device_type) { +- GpdsXInputPointerInfo *info; +- gchar *device_name, *unescaped_device_name; +- +- device_name = g_path_get_basename(dir); +- unescaped_device_name = gconf_unescape_key(device_name, -1); +- info = gpds_xinput_pointer_info_new(unescaped_device_name, device_type); +- infos = g_list_prepend(infos, info); +- g_free(unescaped_device_name); +- g_free(device_name); ++ GList *node; ++ ++ for (node = plugin->managers; node; node = g_list_next(node)) { ++ GsdPointingDeviceManager *manager = node->data; ++ ++ if (g_str_equal(gsd_pointing_device_manager_get_device_name(manager), device_name)) ++ return TRUE; ++ } ++ ++ return FALSE; ++} ++ ++static GdkFilterReturn ++device_presence_filter (GdkXEvent *xevent, ++ GdkEvent *event, ++ gpointer data) ++{ ++ XEvent *xev = (XEvent *)xevent; ++ XEventClass class_presence; ++ int xi_presence; ++ GsdPointingDevicePlugin *plugin = GSD_POINTING_DEVICE_PLUGIN(data); ++ ++ DevicePresence(gdk_x11_get_default_xdisplay(), xi_presence, class_presence); ++ ++ if (xev->type == xi_presence) { ++ XDeviceInfo *device_info = NULL; ++ XDevicePresenceNotifyEvent *notify_event = (XDevicePresenceNotifyEvent *)xev; ++ ++ device_info = gpds_xinput_utils_get_device_info_from_id(notify_event->deviceid, NULL); ++ if (notify_event->devchange == DeviceEnabled) { ++ GsdPointingDeviceManager *manager; ++ ++ if (has_manager(plugin, device_info->name)) ++ return GDK_FILTER_CONTINUE; ++ ++ manager = gsd_pointing_device_manager_new(gdk_x11_get_xatom_name(device_info->type), ++ device_info->name); ++ if (manager) { ++ gsd_pointing_device_manager_start(manager, NULL); ++ plugin->managers = g_list_prepend(plugin->managers, manager); ++ } ++ } else if (notify_event->devchange == DeviceRemoved) { + } ++ } + +- g_free(device_type_key); +- g_free(device_type); ++ return GDK_FILTER_CONTINUE; ++} ++ ++static void ++add_device_presence_filter (GsdPointingDevicePlugin *plugin) ++{ ++ Display *display; ++ XEventClass class_presence; ++ gint xi_presence; ++ ++ gint op_code, event, error; ++ ++ if (!XQueryExtension(GDK_DISPLAY(), ++ "XInputExtension", ++ &op_code, ++ &event, ++ &error)) { ++ return; + } + +- g_slist_foreach(dirs, (GFunc)g_free, NULL); +- g_slist_free(dirs); +- g_object_unref(gconf); ++ display = gdk_x11_get_default_xdisplay(); + +- return infos; ++ gdk_error_trap_push(); ++ DevicePresence(display, xi_presence, class_presence); ++ XSelectExtensionEvent(display, ++ RootWindow(display, DefaultScreen(display)), ++ &class_presence, 1); ++ gdk_flush(); ++ if (!gdk_error_trap_pop()) ++ gdk_window_add_filter(NULL, device_presence_filter, plugin); ++} ++ ++static void ++remove_device_presence_filter (GsdPointingDevicePlugin *plugin) ++{ ++ gdk_window_remove_filter(NULL, device_presence_filter, plugin); + } + + static void +@@ -109,7 +158,10 @@ activate (GnomeSettingsPlugin *plugin) + + pointing_device_plugin = GSD_POINTING_DEVICE_PLUGIN(plugin); + +- pointer_device_infos = collect_pointer_device_infos_from_gconf(); ++ add_device_presence_filter(pointing_device_plugin); ++ ++ pointer_device_infos = gpds_xinput_utils_collect_pointer_infos(); ++ + for (node = pointer_device_infos; node; node = g_list_next(node)) { + GsdPointingDeviceManager *manager; + GpdsXInputPointerInfo *info = node->data; +@@ -133,6 +185,8 @@ stop_all_managers (GsdPointingDevicePlugin *plugin) + { + GList *node; + ++ remove_device_presence_filter(plugin); ++ + for (node = plugin->managers; node; node = g_list_next(node)) { + GsdPointingDeviceManager *manager = node->data; + +diff --git a/src/gpds-xinput-utils.c b/src/gpds-xinput-utils.c +index 48dc2a5..0f7ceea 100644 +--- a/src/gpds-xinput-utils.c ++++ b/src/gpds-xinput-utils.c +@@ -62,6 +62,33 @@ gpds_xinput_utils_get_device_info (const gchar *device_name, GError **error) + return NULL; + } + ++XDeviceInfo * ++gpds_xinput_utils_get_device_info_from_id (XID id, GError **error) ++{ ++ XDeviceInfo *device_infos; ++ gint i, n_device_infos; ++ ++ device_infos = XListInputDevices(GDK_DISPLAY(), &n_device_infos); ++ ++ for (i = 0; i < n_device_infos; i++) { ++ if (device_infos[i].use != IsXExtensionPointer) ++ continue; ++ if (device_infos[i].id == id) { ++ XFreeDeviceList(device_infos); ++ return &device_infos[i]; ++ } ++ } ++ ++ XFreeDeviceList(device_infos); ++ ++ g_set_error(error, ++ GPDS_XINPUT_UTILS_ERROR, ++ GPDS_XINPUT_UTILS_ERROR_NO_DEVICE, ++ _("No device found for %d."), (int)id); ++ ++ return NULL; ++} ++ + gshort + gpds_xinput_utils_get_device_num_buttons (const gchar *device_name, GError **error) + { +diff --git a/src/gpds-xinput-utils.h b/src/gpds-xinput-utils.h +index 9cc4564..74e491a 100644 +--- a/src/gpds-xinput-utils.h ++++ b/src/gpds-xinput-utils.h +@@ -38,6 +38,8 @@ typedef enum + GQuark gpds_xinput_utils_error_quark (void); + XDeviceInfo *gpds_xinput_utils_get_device_info (const gchar *device_name, + GError **error); ++XDeviceInfo *gpds_xinput_utils_get_device_info_from_id (XID id, ++ GError **error); + XDevice *gpds_xinput_utils_open_device (const gchar *device_name, GError **error); + Atom gpds_xinput_utils_get_float_atom (GError **error); + gshort gpds_xinput_utils_get_device_num_buttons (const gchar *device_name, GError **error); +diff --git a/test/test-xinput-utils.c b/test/test-xinput-utils.c +index 29b3f4e..a06dcbc 100644 +--- a/test/test-xinput-utils.c ++++ b/test/test-xinput-utils.c +@@ -6,6 +6,7 @@ + void test_exist_device (void); + void test_get_float_atom (void); + void test_get_device_info (void); ++void test_get_device_info_from_id (void); + void test_open_device (void); + void test_open_no_device (void); + void test_get_device_num_buttons (void); +@@ -49,7 +50,7 @@ test_get_float_atom (void) + void + test_get_device_info (void) + { +- XDeviceInfo *device_info = NULL; ++ XDeviceInfo *device_info = NULL; + device_info = gpds_xinput_utils_get_device_info(DEVICE_NAME, &error); + cut_assert(device_info); + +@@ -57,6 +58,19 @@ test_get_device_info (void) + } + + void ++test_get_device_info_from_id (void) ++{ ++ XDeviceInfo *device_info = NULL; ++ device_info = gpds_xinput_utils_get_device_info(DEVICE_NAME, &error); ++ cut_assert(device_info); ++ ++ gcut_assert_error(error); ++ ++ device_info = gpds_xinput_utils_get_device_info_from_id(device_info->id, &error); ++ cut_assert_equal_string(DEVICE_NAME, device_info->name); ++} ++ ++void + test_open_device (void) + { + device = gpds_xinput_utils_open_device(DEVICE_NAME, &error); diff --git a/gnome-extra/gpointing-device-settings/gpointing-device-settings-1.5.1-r3.ebuild b/gnome-extra/gpointing-device-settings/gpointing-device-settings-1.5.1-r3.ebuild new file mode 100644 index 000000000000..55f3772e87d5 --- /dev/null +++ b/gnome-extra/gpointing-device-settings/gpointing-device-settings-1.5.1-r3.ebuild @@ -0,0 +1,55 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" +GCONF_DEBUG="no" +GNOME2_LA_PUNT="yes" + +inherit autotools eutils gnome2 + +DESCRIPTION="A GTK+ based configuration utility for the synaptics driver" +HOMEPAGE="https://wiki.gnome.org/Attic/GPointingDeviceSettings" +SRC_URI="mirror://sourceforge.jp/gsynaptics/45812/${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="amd64 x86" +IUSE="" + +# recent enough x11-base/xorg-server required +RDEPEND=" + >=dev-libs/glib-2.10:2 + >=x11-libs/gtk+-2.14.0:2 + >=gnome-base/gconf-2.24:2 + >=gnome-base/gnome-settings-daemon-2.28 + >=x11-libs/libXi-1.2 + >=x11-libs/libX11-1.2.0 + !<=x11-base/xorg-server-1.6.0 + !gnome-extra/gsynaptics +" +DEPEND="${RDEPEND} + virtual/pkgconfig + >=dev-util/intltool-0.35.5 +" + +src_prepare() { + epatch \ + "${FILESDIR}/${P}-crash.patch" \ + "${FILESDIR}/${P}-plugin.patch" \ + "${FILESDIR}/${P}-reboot.patch" \ + "${FILESDIR}/${P}-gtk22.patch" \ + "${FILESDIR}/${P}-gsd-crash.patch" \ + "${FILESDIR}/${P}-gsd-3.2-fix.patch" \ + "${FILESDIR}/${P}-fix-build.patch" + + # Disable gsd plugin as it's incompatible since 3.8, bug #514672 + sed -i -e 's/ gnome-settings-daemon-plugins//' modules/Makefile.am || die + + eautoreconf + gnome2_src_prepare +} + +src_configure() { + gnome2_src_configure --disable-static +} diff --git a/gnome-extra/gpointing-device-settings/metadata.xml b/gnome-extra/gpointing-device-settings/metadata.xml new file mode 100644 index 000000000000..25e94b2c98bc --- /dev/null +++ b/gnome-extra/gpointing-device-settings/metadata.xml @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer> + <email>maintainer-needed@gentoo.org</email> + </maintainer> + <upstream> + <remote-id type="sourceforge-jp">gsynaptics</remote-id> + </upstream> +</pkgmetadata> |