Package: mate-power-manager Version: 1.8.1+dfsg1-5 Severity: normal Dear MATE Maintainer,
Currently the mate-power-manager could not save the brightness settings after changes. A workaround would be using the 'dconf-editor' or 'gsettings' tools to change the value of the key 'brightness-ac' of schema org.mate.power-manager. I modify the gpm-backlight.c a little so that we can save the brightness settings after every brightness adjustment when ac power supply is used. It seems to me that call back function 'brightness_changed_cb' was attached to 'backlight->priv->brightness' mistakenly. I think we should distinguish the backlight object from the brightness object. Please correct me and please review the patch in the attachment. Thank you very much! Best Regards, Flos -- System Information: Debian Release: 8.0 APT prefers stable APT policy: (500, 'stable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores) Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages mate-power-manager depends on: ii dbus-x11 1.8.16-1 ii libatk1.0-0 2.14.0-1 ii libc6 2.19-18 ii libcairo2 1.14.0-2.1 ii libcanberra-gtk0 0.30-2.1 ii libcanberra0 0.30-2.1 ii libdbus-1-3 1.8.16-1 ii libdbus-glib-1-2 0.102-1 ii libfontconfig1 2.11.0-6.3 ii libfreetype6 2.5.2-3 ii libgdk-pixbuf2.0-0 2.31.1-2+b1 ii libglib2.0-0 2.42.1-1 ii libgnome-keyring0 3.12.0-1+b1 ii libgtk2.0-0 2.24.25-3 ii libmate-panel-applet-4-1 1.8.1+dfsg1-3 ii libnotify4 0.7.6-2 ii libpango-1.0-0 1.36.8-3 ii libpangocairo-1.0-0 1.36.8-3 ii libpangoft2-1.0-0 1.36.8-3 ii libunique-1.0-0 1.1.6-5 ii libupower-glib3 0.99.1-3.2 ii libx11-6 2:1.6.2-3 ii libxext6 2:1.3.3-1 ii libxrandr2 2:1.4.2-1+b1 ii libxrender1 1:0.9.8-1+b1 ii mate-notification-daemon [notification-daemon] 1.8.1-3 ii mate-power-manager-common 1.8.1+dfsg1-5 ii notification-daemon 0.7.6-2 ii policykit-1 0.105-8 ii systemd 215-17 ii upower 0.99.1-3.2 Versions of packages mate-power-manager recommends: ii udisks 1.0.5-1+b1 Versions of packages mate-power-manager suggests: ii mate-polkit 1.8.0+dfsg1-4 -- no debconf information
diff -uNr mate-power-manager-1.8.1+dfsg1.orig/src/gpm-backlight.c mate-power-manager-1.8.1+dfsg1/src/gpm-backlight.c --- mate-power-manager-1.8.1+dfsg1.orig/src/gpm-backlight.c 2014-09-29 03:33:32.000000000 +0800 +++ mate-power-manager-1.8.1+dfsg1/src/gpm-backlight.c 2015-05-11 23:09:25.079317055 +0800 @@ -631,12 +631,28 @@ static void brightness_changed_cb (GpmBrightness *brightness, guint percentage, GpmBacklight *backlight) { + gboolean on_battery; + /* save the new percentage */ backlight->priv->master_percentage = percentage; + /* if using ac power supply, save the brightness settings */ + g_object_get (backlight->priv->client, + "on-battery", &on_battery, + NULL); + + egg_debug ("on_battery: %i", on_battery); + if (!on_battery) { + g_settings_set_double(backlight->priv->settings, GPM_SETTINGS_BRIGHTNESS_AC, percentage*1.0f); + egg_debug ("saving brightness for ac supply: %i", percentage); + } + /* we emit a signal for the brightness applet */ + /* XXX + * don't emit the signal to the same object again egg_debug ("emitting brightness-changed : %i", percentage); g_signal_emit (backlight, signals [BRIGHTNESS_CHANGED], 0, percentage); + */ } /** @@ -726,7 +742,7 @@ /* watch for manual brightness changes (for the popup widget) */ backlight->priv->brightness = gpm_brightness_new (); - g_signal_connect (backlight->priv->brightness, "brightness-changed", + g_signal_connect (backlight, "brightness-changed", G_CALLBACK (brightness_changed_cb), backlight); /* we use up_client for the ac-adapter-changed signal */
Output of 'mate-power-manager --verbose' when adjusting the brightness of the screen with self-built packages: TI:23:00:05 TH:0x1c64a70 FI:gpm-button.c FN:gpm_button_filter_x_events,121 - Key 232 mapped to key brightness-down TI:23:00:05 TH:0x1c64a70 FI:gpm-button.c FN:gpm_button_emit_type,81 - emitting button-pressed : brightness-down TI:23:00:05 TH:0x1c64a70 FI:gpm-manager.c FN:gpm_manager_button_pressed_cb,904 - Button press event type=brightness-down TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_button_pressed_cb,436 - Button press event type=brightness-down TI:23:00:05 TH:0x1c64a70 FI:gpm-brightness.c FN:gpm_brightness_helper_get_value,113 - executing /usr/sbin/mate-power-backlight-helper --get-brightness retval: 0 TI:23:00:05 TH:0x1c64a70 FI:gpm-brightness.c FN:gpm_brightness_helper_set_value,144 - executing pkexec /usr/sbin/mate-power-backlight-helper --set-brightness 6 retval: 0 TI:23:00:05 TH:0x1c64a70 FI:gpm-brightness.c FN:gpm_brightness_helper_get_value,113 - executing /usr/sbin/mate-power-backlight-helper --get-brightness retval: 0 (mate-power-manager:24552): GLib-CRITICAL **: Source ID 18 was not found when attempting to remove it TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_button_pressed_cb,473 - emitting brightness-changed : 60 <------------------------------------------------------------------ P1 TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:brightness_changed_cb,644 - on_battery: 0 TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,298 - 1. main brightness 0.600000 TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,307 - Setting initial brightness level TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,320 - 2. battery scale 1.000000, brightness 0.600000 TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,339 - 3. idle scale 1.000000, brightness 0.600000 TI:23:00:05 TH:0x1c64a70 FI:gpm-brightness.c FN:gpm_brightness_trust_cache,561 - using cache for value 60 (probably okay) TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,347 - values are the same, no action TI:23:00:05 TH:0x1c64a70 FI:gpm-backlight.c FN:brightness_changed_cb,647 - saving brightness for ac supply: 60 <---------------------------------------------------------------- P2 TI:23:00:08 TH:0x1c64a70 FI:gpm-button.c FN:gpm_button_filter_x_events,121 - Key 233 mapped to key brightness-up TI:23:00:08 TH:0x1c64a70 FI:gpm-button.c FN:gpm_button_emit_type,81 - emitting button-pressed : brightness-up TI:23:00:08 TH:0x1c64a70 FI:gpm-manager.c FN:gpm_manager_button_pressed_cb,904 - Button press event type=brightness-up TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_button_pressed_cb,436 - Button press event type=brightness-up TI:23:00:08 TH:0x1c64a70 FI:gpm-brightness.c FN:gpm_brightness_helper_get_value,113 - executing /usr/sbin/mate-power-backlight-helper --get-brightness retval: 0 TI:23:00:08 TH:0x1c64a70 FI:gpm-brightness.c FN:gpm_brightness_helper_set_value,144 - executing pkexec /usr/sbin/mate-power-backlight-helper --set-brightness 8 retval: 0 TI:23:00:08 TH:0x1c64a70 FI:gpm-brightness.c FN:gpm_brightness_helper_get_value,113 - executing /usr/sbin/mate-power-backlight-helper --get-brightness retval: 0 TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_button_pressed_cb,454 - emitting brightness-changed : 80 <------------------------------------------------------------------- P3 TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:brightness_changed_cb,644 - on_battery: 0 TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,298 - 1. main brightness 0.800000 TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,307 - Setting initial brightness level TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,320 - 2. battery scale 1.000000, brightness 0.800000 TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,339 - 3. idle scale 1.000000, brightness 0.800000 TI:23:00:08 TH:0x1c64a70 FI:gpm-brightness.c FN:gpm_brightness_trust_cache,561 - using cache for value 80 (probably okay) TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:gpm_backlight_brightness_evaluate_and_set,347 - values are the same, no action TI:23:00:08 TH:0x1c64a70 FI:gpm-backlight.c FN:brightness_changed_cb,647 - saving brightness for ac supply: 80 <---------------------------------------------------------------- P4 ^C