[mate-power-manager] 01/02: debian/patches: Add 0003_fix-power-statistics-when-unplugging-wireless-device-with-battery.patch. Fix crashes of mate-power-statistics when unplugging wireless devices that have a batter (e.g. wireless mouse). The crashes are due to a not fully implemented adaptation to API changes in upower 0.99 API. (Closes: #780844).
Mike Gabriel
sunweaver at debian.org
Fri Apr 3 14:15:30 UTC 2015
This is an automated email from the git hooks/post-receive script.
sunweaver pushed a commit to branch master
in repository mate-power-manager.
commit 336e1c5bfec1a9814fb036fa5637ce20e3e66443
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Fri Apr 3 16:01:32 2015 +0200
debian/patches: Add 0003_fix-power-statistics-when-unplugging-wireless-device-with-battery.patch. Fix crashes of mate-power-statistics when unplugging wireless devices that have a batter (e.g. wireless mouse). The crashes are due to a not fully implemented adaptation to API changes in upower 0.99 API. (Closes: #780844).
---
...n-unplugging-wireless-device-with-battery.patch | 193 +++++++++++++++++++++
debian/patches/series | 1 +
2 files changed, 194 insertions(+)
diff --git a/debian/patches/0003_fix-power-statistics-when-unplugging-wireless-device-with-battery.patch b/debian/patches/0003_fix-power-statistics-when-unplugging-wireless-device-with-battery.patch
new file mode 100644
index 0000000..8a6ff61
--- /dev/null
+++ b/debian/patches/0003_fix-power-statistics-when-unplugging-wireless-device-with-battery.patch
@@ -0,0 +1,193 @@
+From 125bdfed22d23f6239b266426acf8fb8508691b8 Mon Sep 17 00:00:00 2001
+From: Monsta <monsta at inbox.ru>
+Date: Tue, 10 Mar 2015 14:38:07 +0300
+Subject: [PATCH] statistics: adjustment for API breakage in upower 0.99
+
+---
+ src/gpm-statistics.c | 99 +++++++++++++++++++++++++++++++++++++---------------
+ 1 file changed, 71 insertions(+), 28 deletions(-)
+
+diff --git a/src/gpm-statistics.c b/src/gpm-statistics.c
+index 13489dc..ecb71a7 100644
+--- a/src/gpm-statistics.c
++++ b/src/gpm-statistics.c
+@@ -1183,10 +1183,33 @@ gpm_stats_window_activated_cb (EggUnique *egg_unique, gpointer data)
+ }
+
+ /**
++ * gpm_stats_device_changed_cb:
++ **/
++static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_stats_device_changed_cb (UpDevice *device, GParamSpec *pspec, gpointer user_data)
++#else
++gpm_stats_device_changed_cb (UpClient *client, UpDevice *device, gpointer user_data)
++#endif
++{
++ const gchar *object_path;
++ object_path = up_device_get_object_path (device);
++ if (object_path == NULL || current_device == NULL)
++ return;
++ egg_debug ("changed: %s", object_path);
++ if (g_strcmp0 (current_device, object_path) == 0)
++ gpm_stats_update_info_data (device);
++}
++
++/**
+ * gpm_stats_add_device:
+ **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_stats_add_device (UpDevice *device, GPtrArray *devices)
++#else
+ gpm_stats_add_device (UpDevice *device)
++#endif
+ {
+ const gchar *id;
+ GtkTreeIter iter;
+@@ -1194,6 +1217,14 @@ gpm_stats_add_device (UpDevice *device)
+ const gchar *icon;
+ UpDeviceKind kind;
+
++#if UP_CHECK_VERSION(0, 99, 0)
++ if (devices != NULL)
++ g_ptr_array_add (devices, device);
++
++ g_signal_connect (device, "notify",
++ G_CALLBACK (gpm_stats_device_changed_cb), NULL);
++#endif
++
+ /* get device properties */
+ g_object_get (device,
+ "kind", &kind,
+@@ -1224,48 +1255,51 @@ gpm_stats_data_changed_cb (UpClient *client, gpointer user_data)
+ * gpm_stats_device_added_cb:
+ **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_stats_device_added_cb (UpClient *client, UpDevice *device, GPtrArray *devices)
++#else
+ gpm_stats_device_added_cb (UpClient *client, UpDevice *device, gpointer user_data)
++#endif
+ {
+ const gchar *object_path;
+ object_path = up_device_get_object_path (device);
+ egg_debug ("added: %s", object_path);
+- gpm_stats_add_device (device);
+-}
+
+-/**
+- * gpm_stats_device_changed_cb:
+- **/
+-static void
+ #if UP_CHECK_VERSION(0, 99, 0)
+-gpm_stats_device_changed_cb (UpClient *client, GParamSpec *pspec, gpointer user_data)
+-{
+- gpm_stats_button_update_ui();
+-}
++ gpm_stats_add_device (device, devices);
+ #else
+-gpm_stats_device_changed_cb (UpClient *client, UpDevice *device, gpointer user_data)
+-{
+- const gchar *object_path;
+- object_path = up_device_get_object_path (device);
+- if (object_path == NULL || current_device == NULL)
+- return;
+- egg_debug ("changed: %s", object_path);
+- if (g_strcmp0 (current_device, object_path) == 0)
+- gpm_stats_update_info_data (device);
+-}
++ gpm_stats_add_device (device);
+ #endif
++}
+
+ /**
+ * gpm_stats_device_removed_cb:
+ **/
+ static void
++#if UP_CHECK_VERSION(0, 99, 0)
++gpm_stats_device_removed_cb (UpClient *client, const gchar *object_path, GPtrArray *devices)
++#else
+ gpm_stats_device_removed_cb (UpClient *client, UpDevice *device, gpointer user_data)
++#endif
+ {
+- const gchar *object_path;
+ GtkTreeIter iter;
+ gchar *id = NULL;
+ gboolean ret;
+
+- object_path = up_device_get_object_path (device);
++#if UP_CHECK_VERSION(0, 99, 0)
++ UpDevice *device_tmp;
++ guint i;
++
++ for (i = 0; i < devices->len; i++) {
++ device_tmp = g_ptr_array_index (devices, i);
++ if (g_strcmp0 (up_device_get_object_path (device_tmp), object_path) == 0) {
++ g_ptr_array_remove_index_fast (devices, i);
++ break;
++ }
++ }
++#else
++ const gchar *object_path = up_device_get_object_path (device);
++#endif
+ egg_debug ("removed: %s", object_path);
+ if (g_strcmp0 (current_device, object_path) == 0) {
+ gtk_list_store_clear (list_store_info);
+@@ -1545,7 +1579,7 @@ main (int argc, char *argv[])
+ EggUnique *egg_unique;
+ gboolean ret;
+ UpClient *client;
+- GPtrArray *devices;
++ GPtrArray *devices = NULL;
+ UpDevice *device;
+ UpDeviceKind kind;
+ guint i, j;
+@@ -1815,16 +1849,24 @@ main (int argc, char *argv[])
+ device = g_ptr_array_index (devices, i);
+ g_object_get (device, "kind", &kind, NULL);
+ if (kind == j)
++#if UP_CHECK_VERSION(0, 99, 0)
++ /* NULL == do not add it to ptr array */
++ gpm_stats_add_device (device, NULL);
++#else
+ gpm_stats_add_device (device);
++#endif
+ }
+ }
+
+ /* connect now the coldplug is done */
+- g_signal_connect (client, "device-added", G_CALLBACK (gpm_stats_device_added_cb), NULL);
+- g_signal_connect (client, "device-removed", G_CALLBACK (gpm_stats_device_removed_cb), NULL);
+ #if UP_CHECK_VERSION(0, 99, 0)
+- g_signal_connect (client, "notify", G_CALLBACK (gpm_stats_device_changed_cb), NULL);
++ g_signal_connect (client, "device-added", G_CALLBACK (gpm_stats_device_added_cb), devices);
++ g_signal_connect (client, "device-removed", G_CALLBACK (gpm_stats_device_removed_cb), devices);
+ #else
++ g_signal_connect (client, "device-added", G_CALLBACK (gpm_stats_device_added_cb), NULL);
++ g_signal_connect (client, "device-removed", G_CALLBACK (gpm_stats_device_removed_cb), NULL);
++#endif
++#if !UP_CHECK_VERSION(0, 99, 0)
+ g_signal_connect (client, "device-changed", G_CALLBACK (gpm_stats_device_changed_cb), NULL);
+ #endif
+
+@@ -1854,8 +1896,6 @@ main (int argc, char *argv[])
+ if (last_device != NULL)
+ gpm_stats_highlight_device (last_device);
+
+- g_ptr_array_unref (devices);
+-
+ /* set axis */
+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "combobox_history_type"));
+ gpm_stats_history_type_combo_changed_cb (widget, NULL);
+@@ -1869,6 +1909,9 @@ main (int argc, char *argv[])
+ #if !UP_CHECK_VERSION(0, 99, 0)
+ out:
+ #endif
++ if (devices != NULL)
++ g_ptr_array_unref (devices);
++
+ g_object_unref (settings);
+ g_object_unref (client);
+ g_object_unref (wakeups);
+
diff --git a/debian/patches/series b/debian/patches/series
index b0c29df..8fad707 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,5 @@
0001_fix-backlight-popup-gtkbuilder.patch
0002_handle-UP-DEVICE-STATE-UNKNOWN.patch
+0003_fix-power-statistics-when-unplugging-wireless-device-with-battery.patch
2001_omit-gfdl-licensed-help-files.patch
2002_compile-extra-man-pages.patch
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mate/mate-power-manager.git
More information about the pkg-mate-commits
mailing list