I think that bug comes from the fact that it is GDM that manages halt and reboot (because only root can do that). To do that, it uses a socket file which is /tmp/.gdm_socket. On the other side, gnome-panels sends request through that socket using (I think) gdmflexiserver, as stated in the other bug (44585). Here, under Xgl, here is what I have:
$ gdmflexiserver -a -c QUERY_LOGOUT_ACTION
(process:10648): GLib-GObject-CRITICAL **: gtype.c:2215: initialization assertion failed, use IA__g_type_init() prior to this function
But if I tell him to use the display 0 then...
$ DISPLAY=:0 gdmflexiserver -a -c QUERY_LOGOUT_ACTION
(process:10653): GLib-GObject-CRITICAL **: gtype.c:2215: initialization assertion failed, use IA__g_type_init() prior to this function
(process:10653): Gdk-CRITICAL **: gdk_display_get_name: assertion `GDK_IS_DISPLAY (display)' failed
OK HALT;REBOOT;SUSPEND;HIBERNATE
So I suppose that gnome-panel, which is launched by gnome-session itself having DISPLAY=:1 receives the same answer and so, does not show those options.
I just wonder why hibernate and suspend appear, and even work (I only tried suspend) as it should also be gdm (or at least a program launched as root) which manages that...
I think that bug comes from the fact that it is GDM that manages halt and reboot (because only root can do that). To do that, it uses a socket file which is /tmp/.gdm_socket. On the other side, gnome-panels sends request through that socket using (I think) gdmflexiserver, as stated in the other bug (44585). Here, under Xgl, here is what I have:
$ gdmflexiserver -a -c QUERY_LOGOUT_ACTION
(process:10648): GLib-GObject- CRITICAL **: gtype.c:2215: initialization assertion failed, use IA__g_type_init() prior to this function
(process:10648): Gdk-CRITICAL **: gdk_display_ get_name: assertion `GDK_IS_DISPLAY (display)' failed
ERROR 100 Not authenticated
But if I tell him to use the display 0 then...
$ DISPLAY=:0 gdmflexiserver -a -c QUERY_LOGOUT_ACTION
(process:10653): GLib-GObject- CRITICAL **: gtype.c:2215: initialization assertion failed, use IA__g_type_init() prior to this function
(process:10653): Gdk-CRITICAL **: gdk_display_ get_name: assertion `GDK_IS_DISPLAY (display)' failed SUSPEND; HIBERNATE
OK HALT;REBOOT;
So I suppose that gnome-panel, which is launched by gnome-session itself having DISPLAY=:1 receives the same answer and so, does not show those options.
I just wonder why hibernate and suspend appear, and even work (I only tried suspend) as it should also be gdm (or at least a program launched as root) which manages that...