source:
pkg/main/gnome-power-manager/trunk/debian/patches/55-lid-state-tracking.patch
@
196
| Revision 196, 4.7 KB checked in by alanbach-guest, 6 years ago (diff) |
|---|
-
gnome-power-manager-2.15.90
diff -Nur gnome-power-manager-2.15.90/src/gpm-hal.c gnome-power-manager-2.15.90.new/src/gpm-hal.c
old new 214 214 return can_suspend; 215 215 } 216 216 217 /** Finds out if HAL indicates it can monitor lid status 218 * 219 * @return TRUE if hal has state information for the lid 220 */ 221 gboolean 222 gpm_hal_lid_is_closed_capable (GpmHal *hal) 223 { 224 gboolean exists; 225 gboolean can_monitor; 226 exists = gpm_hal_device_get_bool (hal, HAL_ACPI_LID_SWITCH, 227 "button.has_state", 228 &can_monitor); 229 return exists && can_monitor; 230 } 231 232 /** Assuming we can monitor, returns the status of the lid switch 233 * 234 * @return TRUE if lid is closed 235 */ 236 gboolean 237 gpm_hal_lid_is_closed (GpmHal *hal) 238 { 239 gboolean exists; 240 gboolean lid_state; 241 exists = gpm_hal_device_get_bool (hal, HAL_ACPI_LID_SWITCH, 242 "button.state.value", 243 &lid_state); 244 if (!exists) 245 gpm_warning ("gpm_hal_lid_is_closed: button.state.value does not exist in acpi_LID object"); 246 gpm_debug ("Lid status: %s", (exists && lid_state)?"closed":"open"); 247 return exists && lid_state; 248 } 249 250 217 251 /** 218 252 * gpm_hal_can_hibernate: 219 253 * -
gnome-power-manager-2.15.90
diff -Nur gnome-power-manager-2.15.90/src/gpm-hal.h gnome-power-manager-2.15.90.new/src/gpm-hal.h
old new 33 33 #define HAL_DBUS_INTERFACE_LAPTOP_PANEL "org.freedesktop.Hal.Device.LaptopPanel" 34 34 #define HAL_DBUS_INTERFACE_POWER "org.freedesktop.Hal.Device.SystemPowerManagement" 35 35 #define HAL_ROOT_COMPUTER "/org/freedesktop/Hal/devices/computer" 36 #define HAL_ACPI_LID_SWITCH "/org/freedesktop/Hal/devices/acpi_LID" 36 37 37 38 #define GPM_TYPE_HAL (gpm_hal_get_type ()) 38 39 #define GPM_HAL(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GPM_TYPE_HAL, GpmHal)) … … 96 97 gboolean gpm_hal_is_running (GpmHal *hal); 97 98 gboolean gpm_hal_is_laptop (GpmHal *hal); 98 99 gboolean gpm_hal_is_on_ac (GpmHal *hal); 100 gboolean gpm_hal_lid_is_closed (GpmHal *hal); 101 gboolean gpm_hal_lid_is_closed_capable (GpmHal *hal); 99 102 gboolean gpm_hal_can_suspend (GpmHal *hal); 100 103 gboolean gpm_hal_suspend (GpmHal *hal, 101 104 gint wakeup); -
gnome-power-manager-2.15.90
diff -Nur gnome-power-manager-2.15.90/src/gpm-manager.c gnome-power-manager-2.15.90.new/src/gpm-manager.c
old new 126 126 127 127 gboolean use_time_to_notify; 128 128 gboolean lid_is_closed; 129 gboolean lid_can_use_hal; 129 130 gboolean done_notify_fully_charged; 130 131 gboolean enable_beeping; 131 132 gboolean ignore_inhibits; … … 359 360 return TRUE; 360 361 } 361 362 363 static gboolean 364 gpm_manager_lid_is_closed(GpmManager *manager) 365 { 366 /* Can we use hal? */ 367 if (manager->priv->lid_can_use_hal) 368 return gpm_hal_lid_is_closed (manager->priv->hal); 369 return manager->priv->lid_is_closed; 370 } 371 362 372 /** 363 373 * get_stock_id: 364 374 * @manager: This manager class instance … … 1351 1361 the screen when the user moves the mouse on systems that do not 1352 1362 support hardware blanking. 1353 1363 Details are here: https://launchpad.net/malone/bugs/22522 */ 1354 if ( manager->priv->lid_is_closed) {1364 if (gpm_manager_lid_is_closed(manager)) { 1355 1365 gpm_debug ("lid is closed, so we are ignoring idle state changes"); 1356 1366 return; 1357 1367 } … … 1715 1725 gboolean event_when_closed; 1716 1726 event_when_closed = gconf_client_get_bool (manager->priv->gconf_client, 1717 1727 GPM_PREF_BATT_EVENT_WHEN_CLOSED, NULL); 1718 if (event_when_closed && (!on_ac) && manager->priv->lid_is_closed) {1728 if (event_when_closed && (!on_ac) && gpm_manager_lid_is_closed (manager)) { 1719 1729 manager_policy_do (manager, 1720 1730 GPM_PREF_BATTERY_BUTTON_LID, 1721 1731 _("the lid has been closed, and the ac adapter " … … 2575 2585 2576 2586 /* FIXME: We shouldn't assume the lid is open at startup */ 2577 2587 manager->priv->lid_is_closed = FALSE; 2588 manager->priv->lid_can_use_hal = gpm_hal_lid_is_closed_capable (manager->priv->hal); 2589 if (manager->priv->lid_can_use_hal) 2590 gpm_debug("Using hal to monitor lid status"); 2591 manager->priv->lid_is_closed = gpm_manager_lid_is_closed (manager); 2578 2592 2579 2593 /* we need these to refresh the tooltip and icon */ 2580 2594 g_signal_connect (manager->priv->power, "battery-removed",
Note: See TracBrowser
for help on using the repository browser.


