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)

[svn-inject] Applying Debian modifications to trunk

  • 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  
    214214        return can_suspend; 
    215215} 
    216216 
     217/** Finds out if HAL indicates it can monitor lid status 
     218 * 
     219 *  @return            TRUE if hal has state information for the lid 
     220 */ 
     221gboolean 
     222gpm_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 */ 
     236gboolean 
     237gpm_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 
    217251/** 
    218252 * gpm_hal_can_hibernate: 
    219253 * 
  • 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  
    3333#define HAL_DBUS_INTERFACE_LAPTOP_PANEL "org.freedesktop.Hal.Device.LaptopPanel" 
    3434#define HAL_DBUS_INTERFACE_POWER        "org.freedesktop.Hal.Device.SystemPowerManagement" 
    3535#define HAL_ROOT_COMPUTER               "/org/freedesktop/Hal/devices/computer" 
     36#define HAL_ACPI_LID_SWITCH             "/org/freedesktop/Hal/devices/acpi_LID" 
    3637 
    3738#define GPM_TYPE_HAL            (gpm_hal_get_type ()) 
    3839#define GPM_HAL(o)              (G_TYPE_CHECK_INSTANCE_CAST ((o), GPM_TYPE_HAL, GpmHal)) 
     
    9697gboolean         gpm_hal_is_running                     (GpmHal         *hal); 
    9798gboolean         gpm_hal_is_laptop                      (GpmHal         *hal); 
    9899gboolean         gpm_hal_is_on_ac                       (GpmHal         *hal); 
     100gboolean         gpm_hal_lid_is_closed                  (GpmHal *hal); 
     101gboolean         gpm_hal_lid_is_closed_capable          (GpmHal *hal); 
    99102gboolean         gpm_hal_can_suspend                    (GpmHal         *hal); 
    100103gboolean         gpm_hal_suspend                        (GpmHal         *hal, 
    101104                                                         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  
    126126 
    127127        gboolean         use_time_to_notify; 
    128128        gboolean         lid_is_closed; 
     129        gboolean         lid_can_use_hal; 
    129130        gboolean         done_notify_fully_charged; 
    130131        gboolean         enable_beeping; 
    131132        gboolean         ignore_inhibits; 
     
    359360        return TRUE; 
    360361} 
    361362 
     363static gboolean 
     364gpm_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 
    362372/** 
    363373 * get_stock_id: 
    364374 * @manager: This manager class instance 
     
    13511361           the screen when the user moves the mouse on systems that do not 
    13521362           support hardware blanking. 
    13531363           Details are here: https://launchpad.net/malone/bugs/22522 */ 
    1354         if (manager->priv->lid_is_closed) { 
     1364        if (gpm_manager_lid_is_closed(manager)) { 
    13551365                gpm_debug ("lid is closed, so we are ignoring idle state changes"); 
    13561366                return; 
    13571367        } 
     
    17151725        gboolean event_when_closed; 
    17161726        event_when_closed = gconf_client_get_bool (manager->priv->gconf_client, 
    17171727                                                   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)) { 
    17191729                manager_policy_do (manager, 
    17201730                                   GPM_PREF_BATTERY_BUTTON_LID, 
    17211731                                   _("the lid has been closed, and the ac adapter " 
     
    25752585 
    25762586        /* FIXME: We shouldn't assume the lid is open at startup */ 
    25772587        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); 
    25782592 
    25792593        /* we need these to refresh the tooltip and icon */ 
    25802594        g_signal_connect (manager->priv->power, "battery-removed", 
Note: See TracBrowser for help on using the repository browser.