diff options
author | Matthias Clasen <mclasen@fedoraproject.org> | 2007-05-21 03:26:24 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@fedoraproject.org> | 2007-05-21 03:26:24 +0000 |
commit | 3427ff7f6d6f39ac74e7038c11b5797f429171cf (patch) | |
tree | 46bc4be0556f1802bc1730b7cf5729af49038de5 | |
parent | a6f31a7dadc855a97b47c7184dc0348010ee44ba (diff) | |
download | gnome-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.patch | 233 |
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 */ |