mirror of
https://github.com/brl/mutter.git
synced 2024-11-23 08:30:42 -05:00
backend-native: Reset idle time on lid open events
This makes gnome-settings-daemon turn on the backlight and gnome-shell's screen shield animate. Note that on X sessions, gnome-settings-daemon uses the same upower property to force an innocuous key event into the X server so that the idle time gets reset since Xorg doesn't do this itself on lid events. https://bugzilla.gnome.org/show_bug.cgi?id=749076
This commit is contained in:
parent
676a87eac6
commit
b507461c0f
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
#include <meta/main.h>
|
#include <meta/main.h>
|
||||||
#include <clutter/evdev/clutter-evdev.h>
|
#include <clutter/evdev/clutter-evdev.h>
|
||||||
|
#include <libupower-glib/upower.h>
|
||||||
|
|
||||||
#include "meta-barrier-native.h"
|
#include "meta-barrier-native.h"
|
||||||
#include "meta-idle-monitor-native.h"
|
#include "meta-idle-monitor-native.h"
|
||||||
@ -40,6 +41,7 @@ struct _MetaBackendNativePrivate
|
|||||||
{
|
{
|
||||||
MetaLauncher *launcher;
|
MetaLauncher *launcher;
|
||||||
MetaBarrierManagerNative *barrier_manager;
|
MetaBarrierManagerNative *barrier_manager;
|
||||||
|
UpClient *up_client;
|
||||||
};
|
};
|
||||||
typedef struct _MetaBackendNativePrivate MetaBackendNativePrivate;
|
typedef struct _MetaBackendNativePrivate MetaBackendNativePrivate;
|
||||||
|
|
||||||
@ -53,9 +55,22 @@ meta_backend_native_finalize (GObject *object)
|
|||||||
|
|
||||||
meta_launcher_free (priv->launcher);
|
meta_launcher_free (priv->launcher);
|
||||||
|
|
||||||
|
g_object_unref (priv->up_client);
|
||||||
|
|
||||||
G_OBJECT_CLASS (meta_backend_native_parent_class)->finalize (object);
|
G_OBJECT_CLASS (meta_backend_native_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
lid_is_closed_changed_cb (UpClient *client,
|
||||||
|
GParamSpec *pspec,
|
||||||
|
gpointer user_data)
|
||||||
|
{
|
||||||
|
if (up_client_get_lid_is_closed (client))
|
||||||
|
return;
|
||||||
|
|
||||||
|
meta_idle_monitor_native_reset_idletime (meta_idle_monitor_get_core ());
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
constrain_to_barriers (ClutterInputDevice *device,
|
constrain_to_barriers (ClutterInputDevice *device,
|
||||||
guint32 time,
|
guint32 time,
|
||||||
@ -267,6 +282,10 @@ meta_backend_native_init (MetaBackendNative *native)
|
|||||||
priv->launcher = meta_launcher_new ();
|
priv->launcher = meta_launcher_new ();
|
||||||
|
|
||||||
priv->barrier_manager = meta_barrier_manager_native_new ();
|
priv->barrier_manager = meta_barrier_manager_native_new ();
|
||||||
|
|
||||||
|
priv->up_client = up_client_new ();
|
||||||
|
g_signal_connect (priv->up_client, "notify::lid-is-closed",
|
||||||
|
G_CALLBACK (lid_is_closed_changed_cb), NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
Loading…
Reference in New Issue
Block a user