rpms/gnome-panel/devel gnome-panel-2.24.0-hide-shutdown-if-unavailable.patch, NONE, 1.1 gnome-panel.spec, 1.323, 1.324

Ray Strode rstrode at fedoraproject.org
Thu Oct 9 19:40:02 UTC 2008


Author: rstrode

Update of /cvs/pkgs/rpms/gnome-panel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25349

Modified Files:
	gnome-panel.spec 
Added Files:
	gnome-panel-2.24.0-hide-shutdown-if-unavailable.patch 
Log Message:
- Hide shutdown item if unavailable


gnome-panel-2.24.0-hide-shutdown-if-unavailable.patch:

--- NEW FILE gnome-panel-2.24.0-hide-shutdown-if-unavailable.patch ---
diff -ru gnome-panel-2.24.0/gnome-panel/libpanel-util/panel-session-manager.c new/gnome-panel/libpanel-util/panel-session-manager.c
--- gnome-panel-2.24.0/gnome-panel/libpanel-util/panel-session-manager.c	2008-09-22 17:21:03.000000000 -0400
+++ new/gnome-panel/libpanel-util/panel-session-manager.c	2008-10-09 12:56:14.000000000 -0400
@@ -141,6 +141,39 @@
 	}
 }
 
+gboolean
+panel_session_manager_is_shutdown_available (PanelSessionManager *manager)
+{
+	GError *error;
+	DBusGProxy *proxy;
+        gboolean is_shutdown_available;
+
+	g_return_if_fail (PANEL_IS_SESSION_MANAGER (manager));
+
+	error = NULL;
+
+	if (!panel_dbus_service_ensure_connection (PANEL_DBUS_SERVICE (manager),
+						   &error)) {
+		g_warning ("Could not connect to session manager: %s",
+			   error->message);
+		g_error_free (error);
+		return;
+	}
+
+	proxy = panel_dbus_service_get_proxy (PANEL_DBUS_SERVICE (manager));
+
+	if (!dbus_g_proxy_call (proxy, "CanShutdown", &error,
+				G_TYPE_INVALID, G_TYPE_BOOLEAN,
+				&is_shutdown_available, G_TYPE_INVALID) &&
+	    error != NULL) {
+		g_warning ("Could not ask session manager if shut down is available: %s",
+			   error->message);
+		g_error_free (error);
+		return FALSE;
+	}
+        return is_shutdown_available;
+}
+
 PanelSessionManager *
 panel_session_manager_get (void)
 {
diff -ru gnome-panel-2.24.0/gnome-panel/libpanel-util/panel-session-manager.h new/gnome-panel/libpanel-util/panel-session-manager.h
--- gnome-panel-2.24.0/gnome-panel/libpanel-util/panel-session-manager.h	2008-09-22 17:21:03.000000000 -0400
+++ new/gnome-panel/libpanel-util/panel-session-manager.h	2008-10-09 12:57:27.000000000 -0400
@@ -63,6 +63,7 @@
 void panel_session_manager_request_logout   (PanelSessionManager           *session,
 					     PanelSessionManagerLogoutType  mode);
 void panel_session_manager_request_shutdown (PanelSessionManager *session);
+gboolean panel_session_manager_is_shutdown_available (PanelSessionManager *session);
 
 G_END_DECLS
 
diff -ru gnome-panel-2.24.0/gnome-panel/panel-action-button.c new/gnome-panel/panel-action-button.c
--- gnome-panel-2.24.0/gnome-panel/panel-action-button.c	2008-10-09 12:59:52.000000000 -0400
+++ new/gnome-panel/panel-action-button.c	2008-10-09 13:05:28.000000000 -0400
@@ -190,15 +190,13 @@
 static gboolean
 panel_action_shutdown_reboot_is_disabled (void)
 {
-	return panel_lockdown_get_disable_log_out();
-#if 0
-	/* FIXME: waiting for a gnome-session dbus api to know if
-	 * shutdown/reboot is possible:
-	 * http://bugzilla.gnome.org/show_bug.cgi?id=536915 */
-	return (panel_lockdown_get_disable_log_out() ||
-	(!gdm_supports_logout_action (GDM_LOGOUT_ACTION_SHUTDOWN) &&
-	 !gdm_supports_logout_action (GDM_LOGOUT_ACTION_REBOOT)));
-#endif
+	PanelSessionManager *manager;
+
+	if (panel_lockdown_get_disable_log_out())
+		return TRUE;
+
+	manager = panel_session_manager_get ();
+	return !panel_session_manager_is_shutdown_available (manager);
 }
 
 /* Run Application


Index: gnome-panel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gnome-panel/devel/gnome-panel.spec,v
retrieving revision 1.323
retrieving revision 1.324
diff -u -r1.323 -r1.324
--- gnome-panel.spec	9 Oct 2008 17:56:19 -0000	1.323
+++ gnome-panel.spec	9 Oct 2008 19:39:32 -0000	1.324
@@ -23,7 +23,7 @@
 Summary: GNOME panel
 Name: gnome-panel
 Version: 2.24.0
-Release: 5%{?dist}
+Release: 6%{?dist}
 URL: http://www.gnome.org
 Source0: http://download.gnome.org/sources/gnome-panel/2.24/%{name}-%{version}.tar.bz2
 
@@ -116,6 +116,9 @@
 # http://bugzilla.gnome.org/show_bug.cgi?id=554343
 Patch25: gnome-panel-2.24.0-smoother-slide-in.patch
 
+# TODO file patch upstream
+Patch26: gnome-panel-2.24.0-hide-shutdown-if-unavailable.patch
+
 Patch35: clock-wakeups.patch
 # http://bugzilla.gnome.org/show_bug.cgi?id=555710
 Patch36: tryexec.patch
@@ -166,6 +169,7 @@
 %patch11 -p1 -b .applet-error
 %patch24 -p1 -b .allow-spurious-view-done-signals
 %patch25 -p1 -b .smoother-slide-in
+%patch26 -p1 -b .hide-shutdown-item-if-unavailable
 %patch35 -p1 -b .clock-wakeups
 %patch36 -p1 -b .tryexec
 
@@ -367,6 +371,9 @@
 %{_datadir}/gtk-doc/html/*
 
 %changelog
+* Thu Oct  9 2008 Ray Strode  <rstrode at redhat.com> - 2.24.0-6
+- Hide shutdown item if unavailable
+
 * Thu Oct  9 2008 Matthias Clasen  <mclasen at redhat.com> - 2.24.0-5
 - Don't show menuitems which fail the tryexec test
 




More information about the scm-commits mailing list