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

Reply via email to