summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@fedoraproject.org>2007-05-21 03:26:24 +0000
committerMatthias Clasen <mclasen@fedoraproject.org>2007-05-21 03:26:24 +0000
commit3427ff7f6d6f39ac74e7038c11b5797f429171cf (patch)
tree46bc4be0556f1802bc1730b7cf5729af49038de5
parenta6f31a7dadc855a97b47c7184dc0348010ee44ba (diff)
downloadgnome-panel-3427ff7f6d6f39ac74e7038c11b5797f429171cf.tar.gz
gnome-panel-3427ff7f6d6f39ac74e7038c11b5797f429171cf.tar.xz
gnome-panel-3427ff7f6d6f39ac74e7038c11b5797f429171cf.zip
add patch
-rw-r--r--gnome-panel-2.19.2-move-suspend-to-menu.patch233
1 files changed, 233 insertions, 0 deletions
diff --git a/gnome-panel-2.19.2-move-suspend-to-menu.patch b/gnome-panel-2.19.2-move-suspend-to-menu.patch
new file mode 100644
index 0000000..8fc26b2
--- /dev/null
+++ b/gnome-panel-2.19.2-move-suspend-to-menu.patch
@@ -0,0 +1,233 @@
+--- gnome-panel-2.19.2/gnome-panel/panel-enums.h.move-suspend-to-menu 2007-05-14 15:53:01.000000000 -0400
++++ gnome-panel-2.19.2/gnome-panel/panel-enums.h 2007-05-20 23:05:00.000000000 -0400
+@@ -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.19.2/gnome-panel/panel-logout.c.move-suspend-to-menu 2007-05-20 23:05:00.000000000 -0400
++++ gnome-panel-2.19.2/gnome-panel/panel-logout.c 2007-05-20 23:05:00.000000000 -0400
+@@ -336,10 +336,6 @@ panel_logout_new (PanelLogoutDialogType
+ primary_text = _("Shut down this system now?");
+
+ logout_dialog->priv->default_response = PANEL_LOGOUT_RESPONSE_SHUTDOWN;
+- if (panel_power_manager_can_suspend (logout_dialog->priv->power_manager))
+- gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+- _("S_uspend"),
+- PANEL_LOGOUT_RESPONSE_STR);
+
+ if (panel_power_manager_can_hibernate (logout_dialog->priv->power_manager))
+ gtk_dialog_add_button (GTK_DIALOG (logout_dialog),
+--- gnome-panel-2.19.2/gnome-panel/panel-action-button.c.move-suspend-to-menu 2007-05-20 23:05:00.000000000 -0400
++++ gnome-panel-2.19.2/gnome-panel/panel-action-button.c 2007-05-20 23:09:39.000000000 -0400
+@@ -46,6 +46,7 @@
+ #include "panel-lockdown.h"
+ #include "panel-logout.h"
+ #include "panel-compatibility.h"
++#include "panel-power-manager.h"
+ #include "panel-gdm.h"
+ #include "panel-icon-names.h"
+
+@@ -79,6 +80,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 },
+@@ -180,6 +182,39 @@ 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_suspend (manager);
++
++ g_object_unref (manager);
++
++ return can_suspend;
++}
++
++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_attempt_suspend (manager);
++
++ g_object_unref (manager);
++}
++
++static gboolean
+ panel_action_shutdown_reboot_is_disabled (void)
+ {
+ return (panel_lockdown_get_disable_log_out() ||
+@@ -365,6 +400,16 @@ static PanelAction actions [] = {
+ panel_action_shutdown, NULL, NULL,
+ panel_action_shutdown_reboot_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,
+--- gnome-panel-2.19.2/gnome-panel/panel-menu-items.c.move-suspend-to-menu 2007-05-20 23:05:00.000000000 -0400
++++ gnome-panel-2.19.2/gnome-panel/panel-menu-items.c 2007-05-20 23:05:00.000000000 -0400
+@@ -50,6 +50,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"
+@@ -955,10 +956,22 @@ panel_desktop_menu_item_new (gboolean us
+ menuitem->priv->use_image = use_image;
+
+ menuitem->priv->append_lock_logout = append_lock_logout;
+- if (append_lock_logout)
++ if (append_lock_logout) {
++ 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),
+ menuitem->priv->menu);
+@@ -1063,6 +1076,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)
+--- gnome-panel-2.19.2/gnome-panel/panel-power-manager.h.move-suspend-to-menu 2007-05-14 15:53:01.000000000 -0400
++++ gnome-panel-2.19.2/gnome-panel/panel-power-manager.h 2007-05-20 23:05:00.000000000 -0400
+@@ -78,3 +78,83 @@ PanelPowerManager *panel_get_power_manag
+ G_END_DECLS
+
+ #endif /* PANEL_POWER_MANAGER_H */
++/* panel-power-manager.h - functions for powering down, restarting, and
++ * suspending the computer
++ *
++ * Copyright (C) 2006 Ray Strode <rstrode@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 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_SUSPENDING = 0,
++ PANEL_POWER_MANAGER_ERROR_HIBERNATING
++};
++
++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_suspend (PanelPowerManager *manager);
++gboolean panel_power_manager_can_hibernate (PanelPowerManager *manager);
++gboolean panel_power_manager_can_power_down (PanelPowerManager *manager);
++gboolean panel_power_manager_can_restart (PanelPowerManager *manager);
++
++void panel_power_manager_attempt_suspend (PanelPowerManager *manager);
++void panel_power_manager_attempt_hibernate (PanelPowerManager *manager);
++
++PanelPowerManager *panel_get_power_manager (void);
++
++G_END_DECLS
++
++#endif /* PANEL_POWER_MANAGER_H */