rpms/gnome-panel/devel gnome-panel-2.14.0-gpm-integration.patch, NONE, 1.1 gnome-panel-2.14.0-remove-duplicate-entry.patch, NONE, 1.1 .cvsignore, 1.39, 1.40 gnome-panel.spec, 1.117, 1.118 sources, 1.39, 1.40 gnome-panel-2.13.91-gpm-integration.patch, 1.5, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Mon Mar 13 20:49:13 UTC 2006
Author: rstrode
Update of /cvs/dist/rpms/gnome-panel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv25704
Modified Files:
.cvsignore gnome-panel.spec sources
Added Files:
gnome-panel-2.14.0-gpm-integration.patch
gnome-panel-2.14.0-remove-duplicate-entry.patch
Removed Files:
gnome-panel-2.13.91-gpm-integration.patch
Log Message:
- patch frobbing
- po file fixing
gnome-panel-2.14.0-gpm-integration.patch:
configure.in | 4
gnome-panel/Makefile.am | 2
gnome-panel/panel-action-button.c | 57 +++-
gnome-panel/panel-enums.h | 1
gnome-panel/panel-logout.c | 31 +-
gnome-panel/panel-menu-items.c | 26 +
gnome-panel/panel-power-manager.c | 533 ++++++++++++++++++++++++++++++++++++++
gnome-panel/panel-power-manager.h | 83 +++++
8 files changed, 724 insertions(+), 13 deletions(-)
--- NEW FILE gnome-panel-2.14.0-gpm-integration.patch ---
--- gnome-panel-2.14.0/gnome-panel/Makefile.am.gpm-integration 2006-02-12 14:07:03.000000000 -0500
+++ gnome-panel-2.14.0/gnome-panel/Makefile.am 2006-03-13 15:30:00.000000000 -0500
@@ -116,6 +116,7 @@ panel_sources = \
panel-addto.c \
panel-logout.c \
panel-gdm.c \
+ panel-power-manager.c \
$(EGG_RECENT_FILES_C) \
$(NULL)
@@ -164,6 +165,7 @@ panel_headers = \
panel-addto.h \
panel-logout.h \
panel-gdm.h \
+ panel-power-manager.h \
$(EGG_RECENT_FILES_H) \
$(NULL)
--- gnome-panel-2.14.0/gnome-panel/panel-logout.c.gpm-integration 2006-03-13 15:30:00.000000000 -0500
+++ gnome-panel-2.14.0/gnome-panel/panel-logout.c 2006-03-13 15:33:06.000000000 -0500
@@ -32,6 +32,7 @@
#include "panel-logout.h"
#include "panel-gdm.h"
+#include "panel-power-manager.h"
#include "panel-session.h"
#define PANEL_LOGOUT_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PANEL_TYPE_LOGOUT_DIALOG, PanelLogoutDialogPrivate))
@@ -49,6 +50,7 @@ enum {
struct _PanelLogoutDialogPrivate {
PanelLogoutDialogType type;
+ PanelPowerManager *power_manager;
int timeout;
unsigned int timeout_id;
@@ -60,7 +62,7 @@ static PanelLogoutDialog *current_dialog
static void panel_logout_destroy (PanelLogoutDialog *logout_dialog,
gpointer data);
-static void panel_logout_response (GtkWidget *logout_dialog,
+static void panel_logout_response (PanelLogoutDialog *logout_dialog,
guint response_id,
gpointer data);
@@ -137,6 +139,8 @@ panel_logout_init (PanelLogoutDialog *lo
gtk_window_set_keep_above (GTK_WINDOW (logout_dialog), TRUE);
gtk_window_stick (GTK_WINDOW (logout_dialog));
+ logout_dialog->priv->power_manager = panel_get_power_manager ();
+
g_signal_connect (logout_dialog, "destroy",
G_CALLBACK (panel_logout_destroy), NULL);
g_signal_connect (logout_dialog, "response",
@@ -151,15 +155,21 @@ panel_logout_destroy (PanelLogoutDialog
g_source_remove (logout_dialog->priv->timeout_id);
logout_dialog->priv->timeout_id = 0;
+ g_object_unref (logout_dialog->priv->power_manager);
+ logout_dialog->priv->power_manager = NULL;
+
current_dialog = NULL;
}
static void
-panel_logout_response (GtkWidget *logout_dialog,
+panel_logout_response (PanelLogoutDialog *logout_dialog,
guint response_id,
gpointer data)
{
- gtk_widget_destroy (logout_dialog);
+ PanelPowerManager *power_manager;
+
+ power_manager = g_object_ref (logout_dialog->priv->power_manager);
+ gtk_widget_destroy (GTK_WIDGET (logout_dialog));
switch (response_id) {
case GTK_RESPONSE_CANCEL:
@@ -180,11 +190,15 @@ panel_logout_response (GtkWidget *logout
panel_session_request_logout ();
break;
case PANEL_LOGOUT_RESPONSE_STD:
- gdm_set_logout_action (GDM_LOGOUT_ACTION_SUSPEND);
- panel_session_request_logout ();
+ if (gdm_supports_logout_action (GDM_LOGOUT_ACTION_SUSPEND))
+ gdm_set_logout_action (GDM_LOGOUT_ACTION_SUSPEND);
+ else if (panel_power_manager_can_sleep_and_power_down (power_manager))
+ panel_power_manager_request_sleep_and_power_down (power_manager);
+
break;
case PANEL_LOGOUT_RESPONSE_STR:
- //FIXME
+ if (panel_power_manager_can_sleep (power_manager))
+ panel_power_manager_request_sleep (power_manager);
break;
case GTK_RESPONSE_NONE:
case GTK_RESPONSE_DELETE_EVENT:
@@ -192,6 +206,7 @@ panel_logout_response (GtkWidget *logout
default:
g_assert_not_reached ();
}
+ g_object_unref (power_manager);
}
static gboolean
@@ -323,10 +338,10 @@ panel_logout_new (PanelLogoutDialogType
logout_dialog->priv->default_response = PANEL_LOGOUT_RESPONSE_SHUTDOWN;
//FIXME see previous FIXME
-#if 0
+#if 1
/* TODO: disable this for 2.14 since this is stupid (the user
* don't want to log out of his session when suspending) */
- if (gdm_supports_logout_action (GDM_LOGOUT_ACTION_SUSPEND))
+ if (panel_power_manager_can_sleep_and_power_down (logout_dialog->priv->power_manager))
gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
_("_Suspend"),
PANEL_LOGOUT_RESPONSE_STD);
--- gnome-panel-2.14.0/gnome-panel/panel-action-button.c.gpm-integration 2006-02-12 07:36:56.000000000 -0500
+++ gnome-panel-2.14.0/gnome-panel/panel-action-button.c 2006-03-13 15:30:00.000000000 -0500
@@ -47,10 +47,16 @@
#include "panel-lockdown.h"
#include "panel-logout.h"
#include "panel-compatibility.h"
+#include "panel-power-manager.h"
#include "panel-gdm.h"
#define PANEL_ACTION_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PANEL_TYPE_ACTION_BUTTON, PanelActionButtonPrivate))
+static gboolean panel_action_can_suspend (void);
+static gboolean panel_action_logout_is_disabled (void);
+static gboolean panel_action_suspend_is_disabled (void);
+static void panel_action_suspend (GtkWidget *widget);
+
enum {
PROP_0,
PROP_ACTION_TYPE,
@@ -77,6 +83,7 @@ static GConfEnumStringPair panel_action_
{ PANEL_ACTION_FORCE_QUIT, "force-quit" },
{ PANEL_ACTION_CONNECT_SERVER, "connect-server" },
{ PANEL_ACTION_SHUTDOWN, "shutdown" },
+ { PANEL_ACTION_SUSPEND, "suspend" },
/* compatibility with GNOME < 2.13.90 */
{ PANEL_ACTION_SCREENSHOT, "screenshot" },
{ 0, NULL },
@@ -167,12 +174,47 @@ panel_action_shutdown (GtkWidget *widget
}
static gboolean
+panel_action_can_suspend (void)
+{
+ PanelPowerManager *manager;
+ gboolean can_suspend;
+
+ manager = panel_get_power_manager ();
+
+ can_suspend = panel_power_manager_can_sleep (manager);
+
+ g_object_unref (manager);
+
+ return can_suspend;
+}
+
+static gboolean
panel_action_shutdown_is_disabled (void)
{
return (panel_lockdown_get_disable_log_out() ||
+ /* panel_action_can_suspend() || */
!gdm_supports_logout_action (GDM_LOGOUT_ACTION_SHUTDOWN));
}
+
+static gboolean
+panel_action_suspend_is_disabled (void)
+{
+ return !panel_action_can_suspend ();
+}
+
+static void
+panel_action_suspend (GtkWidget *widget)
+{
+ PanelPowerManager *manager;
+
+ manager = panel_get_power_manager ();
+
+ panel_power_manager_request_sleep (manager);
+
+ g_object_unref (manager);
+}
+
/* Run Application
*/
static void
@@ -308,8 +350,8 @@ static PanelAction actions [] = {
"gospanel-20",
"ACTION:logout:NEW",
panel_action_logout, NULL, NULL,
- panel_lockdown_get_disable_log_out
- },
+ panel_lockdown_get_disable_log_out
+ },
{
PANEL_ACTION_RUN,
PANEL_RUN_ICON,
@@ -358,6 +400,16 @@ static PanelAction actions [] = {
panel_action_shutdown, NULL, NULL,
panel_action_shutdown_is_disabled
},
+ {
+ PANEL_ACTION_SUSPEND,
+ "screensaver",
+ N_("Suspend"),
+ N_("Suspend the computer"),
+ "gospanel-20",
+ "ACTION:suspend:NEW",
+ panel_action_suspend, NULL, NULL,
+ panel_action_suspend_is_disabled
+ },
/* deprecated actions */
{
PANEL_ACTION_SCREENSHOT,
@@ -861,6 +913,7 @@ panel_action_button_invoke_menu (PanelAc
actions [button->priv->type].invoke_menu (button, callback_name);
}
+
gboolean
panel_action_button_load_from_drag (PanelToplevel *toplevel,
int position,
--- /dev/null 2006-03-13 10:25:56.453532000 -0500
+++ gnome-panel-2.14.0/gnome-panel/panel-power-manager.h 2006-03-13 15:30:00.000000000 -0500
@@ -0,0 +1,83 @@
+/* panel-power-manager.h - functions for powering down, restarting, and
+ * suspending the computer
+ *
+ * Copyright (C) 2006 Ray Strode <rstrode at redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+#ifndef PANEL_POWER_MANAGER_H
+#define PANEL_POWER_MANAGER_H
+
+#include <glib.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+#define PANEL_TYPE_POWER_MANAGER (panel_power_manager_get_type ())
+#define PANEL_POWER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PANEL_TYPE_POWER_MANAGER, PanelPowerManager))
+#define PANEL_POWER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANEL_TYPE_POWER_MANAGER, PanelPowerManagerClass))
+#define PANEL_IS_POWER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PANEL_TYPE_POWER_MANAGER))
+#define PANEL_IS_POWER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANEL_TYPE_POWER_MANAGER))
+#define PANEL_POWER_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PANEL_TYPE_POWER_MANAGER, PanelPowerManagerClass))
+#define PANEL_POWER_MANAGER_ERROR (panel_power_manager_error_quark ())
+typedef struct _PanelPowerManager PanelPowerManager;
+typedef struct _PanelPowerManagerClass PanelPowerManagerClass;
+typedef struct _PanelPowerManagerPrivate PanelPowerManagerPrivate;
+typedef struct _PanelPowerManagerRequest PanelPowerManagerRequest;
+typedef enum _PanelPowerManagerError PanelPowerManagerError;
+
+struct _PanelPowerManager
+{
+ GObject parent;
+
+ /*< private > */
+ PanelPowerManagerPrivate *priv;
+};
+
+struct _PanelPowerManagerClass
+{
+ GObjectClass parent_class;
+
+ /* signals */
+ void (* request_failed) (PanelPowerManager *manager,
+ GError *error);
+};
+
+enum _PanelPowerManagerError
+{
+ PANEL_POWER_MANAGER_ERROR_SLEEPING = 0,
+ PANEL_POWER_MANAGER_ERROR_SLEEPING_AND_POWERING_DOWN
+};
+
+GType panel_power_manager_get_type (void);
+GQuark panel_power_manager_error_quark (void);
+
+PanelPowerManager *panel_power_manager_new (void) G_GNUC_MALLOC;
+
+gboolean panel_power_manager_can_sleep (PanelPowerManager *manager);
+gboolean panel_power_manager_can_sleep_and_power_down (PanelPowerManager *manager);
+gboolean panel_power_manager_can_power_down (PanelPowerManager *manager);
+gboolean panel_power_manager_can_restart (PanelPowerManager *manager);
+
+PanelPowerManagerRequest *panel_power_manager_request_sleep (PanelPowerManager *manager);
+PanelPowerManagerRequest *panel_power_manager_request_sleep_and_power_down (PanelPowerManager *manager);
+
+void panel_power_manager_cancel_request (PanelPowerManager *manager,
+ PanelPowerManagerRequest *request);
+
+
+PanelPowerManager *panel_get_power_manager (void);
+G_END_DECLS
+#endif /* PANEL_POWER_MANAGER_H */
--- gnome-panel-2.14.0/gnome-panel/panel-enums.h.gpm-integration 2006-01-22 07:08:24.000000000 -0500
+++ gnome-panel-2.14.0/gnome-panel/panel-enums.h 2006-03-13 15:30:00.000000000 -0500
@@ -96,6 +96,7 @@ typedef enum {
PANEL_ACTION_FORCE_QUIT,
PANEL_ACTION_CONNECT_SERVER,
PANEL_ACTION_SHUTDOWN,
+ PANEL_ACTION_SUSPEND,
/* compatibility with GNOME < 2.13.90 */
PANEL_ACTION_SCREENSHOT,
PANEL_ACTION_LAST
--- gnome-panel-2.14.0/gnome-panel/panel-menu-items.c.gpm-integration 2006-03-13 15:30:00.000000000 -0500
+++ gnome-panel-2.14.0/gnome-panel/panel-menu-items.c 2006-03-13 15:30:00.000000000 -0500
@@ -49,6 +49,7 @@
#include "panel-recent.h"
#include "panel-stock-icons.h"
#include "panel-util.h"
+#include "panel-power-manager.h"
#define BOOKMARKS_FILENAME ".gtk-bookmarks"
#define DESKTOP_IS_HOME_DIR_DIR "/apps/nautilus/preferences"
@@ -1011,8 +1012,21 @@ panel_desktop_menu_item_new (gboolean us
menuitem->priv->append_lock_logout = append_lock_logout;
if (append_lock_logout)
- panel_lockdown_notify_add (G_CALLBACK (panel_desktop_menu_item_recreate_menu),
- menuitem);
+ {
+ PanelPowerManager *manager;
+
+ panel_lockdown_notify_add (G_CALLBACK (panel_desktop_menu_item_recreate_menu),
+ menuitem);
+
+ manager = panel_get_power_manager ();
+
+ g_signal_connect_swapped (manager, "notify::is-connected",
+ G_CALLBACK
+ (panel_desktop_menu_item_recreate_menu),
+ menuitem);
+
+ g_object_unref (manager);
+ }
menuitem->priv->menu = panel_desktop_menu_item_create_menu (menuitem);
gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem),
@@ -1118,6 +1132,14 @@ panel_menu_items_append_lock_logout (Gtk
gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
}
+ item = panel_menu_items_create_action_item (PANEL_ACTION_SUSPEND);
+ if (item != NULL) {
+ if (!separator_inserted)
+ add_menu_separator (menu);
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
+ }
+
item = panel_menu_items_create_action_item (PANEL_ACTION_SHUTDOWN);
if (item != NULL) {
if (!separator_inserted)
--- /dev/null 2006-03-13 10:25:56.453532000 -0500
+++ gnome-panel-2.14.0/gnome-panel/panel-power-manager.c 2006-03-13 15:30:00.000000000 -0500
@@ -0,0 +1,533 @@
+/* panel-power-manager.c - functions for powering down, restarting, and
+ * suspending the computer
+ *
+ * Copyright (C) 2006 Ray Strode <rstrode at redhat.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+ * 02111-1307, USA.
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "panel-power-manager.h"
+
+#include <errno.h>
+#include <string.h>
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gi18n.h>
+
+#include <dbus/dbus-glib.h>
+
+struct _PanelPowerManagerPrivate
+{
+ DBusGConnection *dbus_connection;
+ DBusGProxy *bus_proxy;
+ DBusGProxy *gpm_proxy;
+ guint32 is_connected : 1;
+};
+
+
+static void panel_power_manager_finalize (GObject *object);
+static void panel_power_manager_class_install_signals (PanelPowerManagerClass * manager_class);
+static void
+panel_power_manager_class_install_properties (PanelPowerManagerClass *
+ manager_class);
+
+static void panel_power_manager_get_property (GObject * object,
+ guint prop_id,
+ GValue * value,
+ GParamSpec * pspec);
+
+static gboolean panel_power_manager_ensure_gpm_connection (PanelPowerManager *manager,
+ GError **error);
+enum
+{
+ PROP_0 = 0,
+ PROP_IS_CONNECTED
+};
+
+enum
+{
+ REQUEST_FAILED = 0,
+ NUMBER_OF_SIGNALS
+};
+
+static guint panel_power_manager_signals[NUMBER_OF_SIGNALS];
+
+G_DEFINE_TYPE (PanelPowerManager, panel_power_manager, G_TYPE_OBJECT);
+
+static void
+panel_power_manager_class_init (PanelPowerManagerClass * manager_class)
+{
+ GObjectClass *object_class;
+
+ object_class = G_OBJECT_CLASS (manager_class);
+
+ object_class->finalize = panel_power_manager_finalize;
+
+ panel_power_manager_class_install_properties (manager_class);
+ panel_power_manager_class_install_signals (manager_class);
+
+ g_type_class_add_private (manager_class, sizeof (PanelPowerManagerPrivate));
+}
+
+static void
+panel_power_manager_class_install_signals (PanelPowerManagerClass *
+ manager_class)
+{
+ GObjectClass *object_class;
+
+ object_class = G_OBJECT_CLASS (manager_class);
+
+ panel_power_manager_signals[REQUEST_FAILED] =
+ g_signal_new ("request-failed", G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (PanelPowerManagerClass, request_failed),
+ NULL, NULL, g_cclosure_marshal_VOID__POINTER,
+ G_TYPE_NONE, 1, G_TYPE_POINTER);
+ manager_class->request_failed = NULL;
+}
+
+static void
+panel_power_manager_class_install_properties (PanelPowerManagerClass *
+ manager_class)
+{
+ GObjectClass *object_class;
+ GParamSpec *param_spec;
+
+ object_class = G_OBJECT_CLASS (manager_class);
+ object_class->get_property = panel_power_manager_get_property;
+
+ param_spec = g_param_spec_boolean ("is-connected", _("Is connected"),
+ _("whether the the panel is connected "
+ "to the power manager"),
+ FALSE,
+ G_PARAM_READABLE);
+ g_object_class_install_property (object_class, PROP_IS_CONNECTED, param_spec);
+}
+
+static void
+panel_power_manager_on_name_owner_changed (DBusGProxy *bus_proxy,
+ const char *name,
+ const char *prev_owner,
+ const char *new_owner,
+ PanelPowerManager *manager)
+{
+ gboolean is_online;
+
+ is_online = strcmp (new_owner, "") != 0;
+
+ if (strcmp (name, "org.gnome.PowerManager") != 0)
+ return;
+
+ if (manager->priv->gpm_proxy != NULL)
+ {
+ g_object_unref (manager->priv->gpm_proxy);
+ manager->priv->gpm_proxy = NULL;
+ }
+
+ panel_power_manager_ensure_gpm_connection (manager, NULL);
+}
+
+static gboolean
+panel_power_manager_ensure_gpm_connection (PanelPowerManager *manager,
+ GError **error)
+{
+ GError *connection_error;
+ gboolean is_connected;
+
+ connection_error = NULL;
+ if (manager->priv->dbus_connection == NULL)
+ {
+ manager->priv->dbus_connection = dbus_g_bus_get (DBUS_BUS_SESSION,
+ &connection_error);
+
+ if (manager->priv->dbus_connection == NULL)
+ {
+ g_propagate_error (error, connection_error);
+ is_connected = FALSE;
+ goto out;
+ }
+ }
+
+ g_assert (connection_error == NULL);
+
+ if (manager->priv->bus_proxy == NULL)
+ {
+ manager->priv->bus_proxy =
+ dbus_g_proxy_new_for_name_owner (manager->priv->dbus_connection,
+ DBUS_SERVICE_DBUS,
+ DBUS_PATH_DBUS,
+ DBUS_INTERFACE_DBUS,
+ &connection_error);
+
+ if (manager->priv->bus_proxy == NULL)
+ {
+ g_propagate_error (error, connection_error);
+ is_connected = FALSE;
+ goto out;
+ }
+
+ dbus_g_proxy_add_signal (manager->priv->bus_proxy,
+ "NameOwnerChanged",
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_STRING,
+ G_TYPE_INVALID);
+ dbus_g_proxy_connect_signal (manager->priv->bus_proxy,
+ "NameOwnerChanged",
+ G_CALLBACK (panel_power_manager_on_name_owner_changed),
+ manager, NULL);
+ }
+
+ g_assert (connection_error == NULL);
+
+ if (manager->priv->gpm_proxy == NULL)
+ {
+ manager->priv->gpm_proxy =
+ dbus_g_proxy_new_for_name_owner (manager->priv->dbus_connection,
+ "org.gnome.PowerManager",
+ "/org/gnome/PowerManager",
+ "org.gnome.PowerManager",
+ &connection_error);
+
+ if (manager->priv->gpm_proxy == NULL)
+ {
+ g_propagate_error (error, connection_error);
+ is_connected = FALSE;
+ goto out;
+ }
+ }
+ is_connected = TRUE;
+
+out:
+ if (manager->priv->is_connected != is_connected)
+ {
+ manager->priv->is_connected = is_connected;
+ g_object_notify (G_OBJECT (manager), "is-connected");
+ }
+
+ if (!is_connected)
+ {
+ if (manager->priv->dbus_connection == NULL)
+ {
+ if (manager->priv->bus_proxy != NULL)
+ {
+ g_object_unref (manager->priv->bus_proxy);
+ manager->priv->bus_proxy = NULL;
+ }
+
+ if (manager->priv->gpm_proxy != NULL)
+ {
+ g_object_unref (manager->priv->gpm_proxy);
+ manager->priv->gpm_proxy = NULL;
+ }
+ }
+ else if (manager->priv->bus_proxy == NULL)
+ {
+ if (manager->priv->gpm_proxy != NULL)
+ {
+ g_object_unref (manager->priv->gpm_proxy);
+ manager->priv->gpm_proxy = NULL;
+ }
+ }
+ }
+
+ return is_connected;
+}
+
+static void
+panel_power_manager_init (PanelPowerManager *manager)
+{
+ GError *error;
+
+ manager->priv = G_TYPE_INSTANCE_GET_PRIVATE (manager,
+ PANEL_TYPE_POWER_MANAGER,
+ PanelPowerManagerPrivate);
+
+ manager->priv->dbus_connection = NULL;
+ manager->priv->bus_proxy = NULL;
+ manager->priv->gpm_proxy = NULL;
+ manager->priv->is_connected = FALSE;
+
+ error = NULL;
+ if (!panel_power_manager_ensure_gpm_connection (manager, &error))
+ {
+ g_message ("could not connect to power manager - %s", error->message);
+ g_error_free (error);
+ }
+}
+
+static void
+panel_power_manager_finalize (GObject * object)
+{
+ PanelPowerManager *manager;
+ GObjectClass *parent_class;
+
+ manager = PANEL_POWER_MANAGER (object);
+
+ parent_class = G_OBJECT_CLASS (panel_power_manager_parent_class);
+
+ if (parent_class->finalize != NULL)
+ parent_class->finalize (object);
+}
+
+static void
+panel_power_manager_get_property (GObject * object,
+ guint prop_id,
+ GValue * value, GParamSpec * pspec)
+{
+ PanelPowerManager *manager = PANEL_POWER_MANAGER (object);
+
+ switch (prop_id)
+ {
+ case PROP_IS_CONNECTED:
+ g_value_set_boolean (value, manager->priv->is_connected);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ }
+}
+
+GQuark
+panel_power_manager_error_quark (void)
+{
+ static GQuark error_quark = 0;
+
+ if (error_quark == 0)
+ error_quark = g_quark_from_static_string ("panel-power-manager-error");
+
+ return error_quark;
+}
+
+PanelPowerManager *
+panel_power_manager_new (void)
+{
+ PanelPowerManager *manager;
+
+ manager = g_object_new (PANEL_TYPE_POWER_MANAGER, NULL);
+
+ return manager;
+}
+
+gboolean
+panel_power_manager_can_sleep (PanelPowerManager *manager)
+{
+ GError *error;
+ gboolean can_sleep;
+
+ error = NULL;
+
+ if (!panel_power_manager_ensure_gpm_connection (manager, &error))
+ {
+ g_message ("could not connect to power manager - %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ can_sleep = FALSE;
+ if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "CanSuspend", &error,
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &can_sleep, G_TYPE_INVALID))
+ {
+ if (error != NULL)
+ {
+ g_message ("could not ask power manager if user can suspend - %s",
+ error->message);
+ g_error_free (error);
+ }
+ can_sleep = FALSE;
+ }
+
+ return can_sleep;
+}
+
+gboolean
+panel_power_manager_can_sleep_and_power_down (PanelPowerManager *manager)
+{
+ GError *error;
+ gboolean can_sleep_and_power_down;
+
+ error = NULL;
+
+ if (!panel_power_manager_ensure_gpm_connection (manager, &error))
+ {
+ g_message ("could not connect to power manager - %s", error->message);
+ g_error_free (error);
+ return FALSE;
+ }
+
+ can_sleep_and_power_down = FALSE;
+ if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "CanHibernate", &error,
+ G_TYPE_INVALID,
+ G_TYPE_BOOLEAN, &can_sleep_and_power_down,
+ G_TYPE_INVALID))
+ {
+ if (error != NULL)
+ {
+ g_message ("could not ask power manager if user can suspend - %s",
+ error->message);
+ g_error_free (error);
+ }
+ can_sleep_and_power_down = FALSE;
+ }
+
+ return can_sleep_and_power_down;
+}
+
+PanelPowerManagerRequest *
+panel_power_manager_request_sleep (PanelPowerManager *manager)
+{
+ GError *error;
+
+ error = NULL;
+
+ if (!panel_power_manager_ensure_gpm_connection (manager, &error))
+ {
+ g_warning ("could not connect to power manager - %s", error->message);
+ g_error_free (error);
+ return NULL;
+ }
+
+ if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "Suspend", &error,
+ G_TYPE_INVALID, G_TYPE_INVALID) && (error != NULL))
+ {
+
+ GError *call_error;
+ g_warning ("could not ask power manager to suspend - %s",
+ error->message);
+ call_error = g_error_new_literal (PANEL_POWER_MANAGER_ERROR,
+ PANEL_POWER_MANAGER_ERROR_SLEEPING,
+ error->message);
+ g_error_free (error);
+ g_signal_emit (G_OBJECT (manager),
+ panel_power_manager_signals[REQUEST_FAILED],
+ 0, call_error);
+ g_error_free (call_error);
+ }
+
+ return (PanelPowerManagerRequest *) !NULL;
+}
+
+PanelPowerManagerRequest *
+panel_power_manager_request_sleep_and_power_down (PanelPowerManager *manager)
+{
+ GError *error;
+
+ error = NULL;
+
+ if (!panel_power_manager_ensure_gpm_connection (manager, &error))
+ {
+ g_warning ("could not connect to power manager - %s", error->message);
+ g_error_free (error);
+ return NULL;
+ }
+
+ if (!dbus_g_proxy_call (manager->priv->gpm_proxy, "Hibernate", &error,
+ G_TYPE_INVALID, G_TYPE_INVALID) && (error != NULL))
+ {
+ GError *call_error;
+
+ g_warning ("could not ask power manager to hibernate - %s",
+ error->message);
+ call_error = g_error_new_literal (PANEL_POWER_MANAGER_ERROR,
+ PANEL_POWER_MANAGER_ERROR_SLEEPING_AND_POWERING_DOWN,
+ error->message);
+ g_error_free (error);
+ g_signal_emit (G_OBJECT (manager),
+ panel_power_manager_signals[REQUEST_FAILED],
+ 0, call_error);
+ g_error_free (call_error);
+ return NULL;
+ }
+
+ return (PanelPowerManagerRequest *) !NULL;
+}
+
+void
+panel_power_manager_cancel_request (PanelPowerManager *manager,
+ PanelPowerManagerRequest *request)
+{
+}
+
+PanelPowerManager *
+panel_get_power_manager (void)
+{
+ static PanelPowerManager *manager = NULL;
+
+ if (manager == NULL)
+ manager = panel_power_manager_new ();
+
+ return g_object_ref (manager);
+}
+
+
+#ifdef PANEL_POWER_MANAGER_ENABLE_TEST
+
+#include <stdio.h>
+#include <glib.h>
+
+int
+main (int argc, char **argv)
+{
+ PanelPowerManager *manager;
+ int exit_code;
+
+ g_log_set_always_fatal (G_LOG_LEVEL_ERROR
+ | G_LOG_LEVEL_CRITICAL | G_LOG_LEVEL_WARNING);
+
+ g_type_init ();
+
+ g_print ("creating instance of 'power manager' object... ");
+ manager = panel_power_manager_new ();
+ g_print ("done\n");
+
+ g_print ("checking if user can put machine to sleep... ");
+ if (panel_power_manager_can_sleep (manager))
+ g_print ("yes\n");
+ else
+ g_print ("no\n");
+
+ g_print ("checking if user can hibernate machine... ");
+ if (panel_power_manager_can_sleep_and_power_down (manager))
+ g_print ("yes\n");
+ else
+ g_print ("no\n");
+
+ g_print ("attempting to suspend machine... ");
+ if (panel_power_manager_request_sleep (manager) != NULL)
+ g_print ("yes\n");
+ else
+ g_print ("no\n");
+
+ g_print ("attempting to hibernate machine... ");
+ if (panel_power_manager_request_sleep_and_power_down (manager) != NULL)
+ g_print ("yes\n");
+ else
+ g_print ("no\n");
+
+ g_print ("destroying previously created 'power manager' object... ");
+ g_object_unref (manager);
+ g_print ("done\n");
+
+ exit_code = 0;
+
+ return exit_code;
+}
+#endif /* PANEL_POWER_MANAGER_ENABLE_TEST */
--- gnome-panel-2.14.0/configure.in.gpm-integration 2006-03-13 14:47:14.000000000 -0500
+++ gnome-panel-2.14.0/configure.in 2006-03-13 15:30:00.000000000 -0500
@@ -58,10 +58,12 @@ LIBGNOME_MENU_REQUIRED=2.11.1
LIBECAL_REQUIRED=0.0.97
LIBEDATASERVERUI_REQUIRED=1.2.0
CAIRO_REQUIRED=1.0.0
+DBUS_REQUIRED=0.60
+DBUS_GLIB_REQUIRED=0.60
dnl pkg-config dependency checks
-PKG_CHECK_MODULES(PANEL, ORBit-2.0 >= $ORBIT_REQUIRED gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED gtk+-2.0 >= $GTK_REQUIRED libgnome-2.0 >= $LIBGNOME_REQUIRED libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED gnome-desktop-2.0 >= $LIBGNOME_DESKTOP_REQUIRED gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED libglade-2.0 >= $LIBGLADE_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libgnome-menu >= $LIBGNOME_MENU_REQUIRED)
+PKG_CHECK_MODULES(PANEL, ORBit-2.0 >= $ORBIT_REQUIRED gdk-pixbuf-2.0 >= $GDK_PIXBUF_REQUIRED gtk+-2.0 >= $GTK_REQUIRED libgnome-2.0 >= $LIBGNOME_REQUIRED libgnomeui-2.0 >= $LIBGNOMEUI_REQUIRED gnome-desktop-2.0 >= $LIBGNOME_DESKTOP_REQUIRED gnome-vfs-2.0 >= $GNOME_VFS_REQUIRED libglade-2.0 >= $LIBGLADE_REQUIRED gconf-2.0 >= $GCONF_REQUIRED libgnome-menu >= $LIBGNOME_MENU_REQUIRED dbus-1 >= $DBUS_REQUIRED dbus-glib-1 >= $DBUS_GLIB_REQUIRED)
AC_SUBST(PANEL_CFLAGS)
AC_SUBST(PANEL_LIBS)
gnome-panel-2.14.0-remove-duplicate-entry.patch:
lt.po | 3 ---
1 files changed, 3 deletions(-)
--- NEW FILE gnome-panel-2.14.0-remove-duplicate-entry.patch ---
--- gnome-panel-2.14.0/po/lt.po.remove-duplicate-entry 2006-03-13 15:43:09.000000000 -0500
+++ gnome-panel-2.14.0/po/lt.po 2006-03-13 15:43:12.000000000 -0500
@@ -2848,6 +2848,3 @@ msgstr "Įt_aisas:"
#: ../libpanel-applet/panel-test-applets.glade.h:5
msgid "_Prefs Dir:"
msgstr "_Nustatymų aplankas:"
-
-msgid "System"
-msgstr "Sistema"
Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/gnome-panel/devel/.cvsignore,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- .cvsignore 15 Feb 2006 05:26:02 -0000 1.39
+++ .cvsignore 13 Mar 2006 20:49:10 -0000 1.40
@@ -1,11 +1 @@
-gnome-panel-2.10.1.tar.bz2
-gnome-panel-2.11.4.tar.bz2
-gnome-panel-2.11.90.tar.bz2
-gnome-panel-2.12.1.tar.bz2
-gnome-panel-2.12.0.tar.bz2
-gnome-panel-2.13.2.tar.bz2
-gnome-panel-2.13.3.tar.bz2
-gnome-panel-2.13.4.tar.bz2
-gnome-panel-2.13.5.tar.bz2
-gnome-panel-2.13.90.tar.bz2
-gnome-panel-2.13.91.tar.bz2
+gnome-panel-2.14.0.tar.bz2
Index: gnome-panel.spec
===================================================================
RCS file: /cvs/dist/rpms/gnome-panel/devel/gnome-panel.spec,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -r1.117 -r1.118
--- gnome-panel.spec 28 Feb 2006 16:10:17 -0000 1.117
+++ gnome-panel.spec 13 Mar 2006 20:49:10 -0000 1.118
@@ -19,8 +19,8 @@
Summary: GNOME panel
Name: gnome-panel
-Version: 2.13.91
-Release: 5
+Version: 2.14.0
+Release: 1
URL: http://www.gnome.org
Source0: ftp://ftp.gnome.org/pub/GNOME/pre-gnome2/sources/gnome-panel/%{name}-%{version}.tar.bz2
Source1: redhat-panel-default-setup.entries
@@ -70,9 +70,10 @@
Patch4: gnome-panel-2.13.2-rename-system-menu.patch
Patch5: gnome-panel-2.12.1-about-fedora.patch
Patch6: gnome-panel-2.13.5-switch-user.patch
-Patch7: gnome-panel-2.13.91-gpm-integration.patch
+Patch7: gnome-panel-2.14.0-gpm-integration.patch
Patch8: gnome-panel-2.13.90-use-beagle.patch
Patch9: gnome-panel-2.13.91-ignore-unknown-options.patch
+Patch10: gnome-panel-2.14.0-remove-duplicate-entry.patch
Conflicts: gnome-power-manager < 2.13.5.0.20060207-1
@@ -103,6 +104,7 @@
%patch7 -p1 -b .gpm-integration
%patch8 -p1 -b .use-beagle
%patch9 -p1 -b .ignore-unknown-options
+%patch10 -p1 -b .remove-duplicate-entry
cp -f %{SOURCE1} gnome-panel/panel-default-setup.entries
cp -f %{SOURCE2} m4
@@ -219,6 +221,9 @@
%{_datadir}/gtk-doc
%changelog
+* Mon Mar 13 2006 Ray Strode <rstrode at redhat.com> - 2.14.0-1
+- update to 2.14.0
+
* Tue Feb 28 2006 Karsten Hopp <karsten at redhat.de> 2.13.91-5
- Buildrequires: ORBit2-devel, which, libxml2-python, libX11-devel,
libXt-devel, gnome-doc-utils, dbus-devel
Index: sources
===================================================================
RCS file: /cvs/dist/rpms/gnome-panel/devel/sources,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- sources 15 Feb 2006 05:26:02 -0000 1.39
+++ sources 13 Mar 2006 20:49:10 -0000 1.40
@@ -1 +1 @@
-6a23bffd45e29b21c727c01677798675 gnome-panel-2.13.91.tar.bz2
+85a2815aefd7d3c3acf93c588149b75b gnome-panel-2.14.0.tar.bz2
--- gnome-panel-2.13.91-gpm-integration.patch DELETED ---
More information about the fedora-cvs-commits
mailing list