]> git.pld-linux.org Git - packages/xfce4-session.git/commitdiff
- rel.2 - session-logout_dialog patch with additional logout options and auto/th/xfce4-session-4_4_3-2
authorPaweł Gołaszewski <blues@pld-linux.org>
Wed, 29 Oct 2008 22:02:59 +0000 (22:02 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
  fresh icons. Helper session-ubuntu_icons patch added

Changed files:
    xfce4-session-logout_dialog.patch -> 1.1
    xfce4-session-ubuntu_icons.patch -> 1.1
    xfce4-session.spec -> 1.39

xfce4-session-logout_dialog.patch [new file with mode: 0644]
xfce4-session-ubuntu_icons.patch [new file with mode: 0644]
xfce4-session.spec

diff --git a/xfce4-session-logout_dialog.patch b/xfce4-session-logout_dialog.patch
new file mode 100644 (file)
index 0000000..58cc178
--- /dev/null
@@ -0,0 +1,604 @@
+diff -Nur xfce4-session-4.4.1/settings/session/session.c xfce4-session-4.4.1.new/settings/session/session.c
+--- xfce4-session-4.4.1/settings/session/session.c     2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/settings/session/session.c 2007-09-10 15:00:27.000000000 +0200
+@@ -51,6 +51,8 @@
+ static GtkWidget    *general_chooser;
+ static GtkWidget    *general_autosave;
+ static GtkWidget    *general_prompt;
++static GtkWidget    *general_hibernate_button;
++static GtkWidget    *general_suspend_button;
+ static GtkWidget    *advanced_kde;
+ static GtkWidget    *advanced_gnome;
+ static GtkWidget    *advanced_remote;
+@@ -88,6 +90,8 @@
+     {
+       xfce_rc_write_bool_entry (rc, "AutoSave", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (general_autosave)));
+       xfce_rc_write_bool_entry (rc, "PromptOnLogout", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (general_prompt)));
++      xfce_rc_write_bool_entry (rc, "HibernateButton", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (general_hibernate_button)));
++      xfce_rc_write_bool_entry (rc, "SuspendButton", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (general_suspend_button)));
+     }
+   if (G_LIKELY (kiosk_can_security))
+     {
+@@ -124,10 +128,14 @@
+   gboolean   autosave;
+   gboolean   prompt;
+   gboolean   chooser;
++  gboolean   hibernate;
++  gboolean   suspend;
+   xfce_rc_set_group (rc, "General");
+   autosave = xfce_rc_read_bool_entry (rc, "AutoSave", FALSE);
+   prompt = xfce_rc_read_bool_entry (rc, "PromptOnLogout", TRUE);
++  hibernate = xfce_rc_read_bool_entry (rc, "HibernateButton", TRUE);
++  suspend = xfce_rc_read_bool_entry (rc, "SuspendButton", TRUE);
+   xfce_rc_set_group (rc, "Chooser");
+   chooser = xfce_rc_read_bool_entry (rc, "AlwaysDisplay", FALSE);
+@@ -181,6 +189,29 @@
+                           "depends on whether you enabled the automatic "
+                           "saving of sessions on logout or not."),
+                         NULL);
++  
++  general_hibernate_button = gtk_check_button_new_with_label (_("Show hibernate button"));
++  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (general_hibernate_button), hibernate);
++  g_signal_connect (G_OBJECT (general_hibernate_button), "toggled",
++                    G_CALLBACK (config_store), NULL);
++  gtk_box_pack_start (GTK_BOX (vbox), general_hibernate_button, FALSE, TRUE, 0);
++  gtk_tooltips_set_tip (tooltips, general_hibernate_button,
++                        _("This option adds a hibernate button to the logout dialog. "
++                          "Only enable if you known your system suspends to"
++                        "disk and resumes correctly."),
++                        NULL);
++
++  general_suspend_button = gtk_check_button_new_with_label (_("Show suspend button"));
++  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (general_suspend_button), suspend);
++  g_signal_connect (G_OBJECT (general_suspend_button), "toggled",
++                    G_CALLBACK (config_store), NULL);
++  gtk_box_pack_start (GTK_BOX (vbox), general_suspend_button, FALSE, TRUE, 0);
++  gtk_tooltips_set_tip (tooltips, general_suspend_button,
++                        _("This option adds a suspend button to the logout dialog. "
++                          "Only enable if you known your system suspends to"
++                        "RAM and resumes correctly."),
++                        NULL);
++
+   return page;
+ }
+diff -Nur xfce4-session-4.4.1/xfce4-session/main.c xfce4-session-4.4.1.new/xfce4-session/main.c
+--- xfce4-session-4.4.1/xfce4-session/main.c   2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/xfce4-session/main.c       2007-09-10 15:00:27.000000000 +0200
+@@ -61,6 +61,11 @@
+ #include <xfce4-session/xfsm-manager.h>
+ #include <xfce4-session/xfsm-startup.h>
++#include <xfce4-session/xfsm-shutdown-helper.h>
++
++
++#include <dbus/dbus.h>
++#include <dbus/dbus-glib.h>
+ void
+ setup_environment (void)
+@@ -225,8 +230,6 @@
+ int
+ main (int argc, char **argv)
+ {
+-  /* imported from xfsm-manager.c */
+-  extern gint shutdown_type;
+   xfce_textdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
+   
+@@ -248,5 +251,5 @@
+   
+   ice_cleanup ();
+-  return xfsm_shutdown (shutdown_type);
++  return xfsm_shutdown ();
+ }
+diff -Nur xfce4-session-4.4.1/xfce4-session/shutdown.c xfce4-session-4.4.1.new/xfce4-session/shutdown.c
+--- xfce4-session-4.4.1/xfce4-session/shutdown.c       2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/xfce4-session/shutdown.c   2007-09-10 15:01:21.000000000 +0200
+@@ -110,34 +110,36 @@
+   gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
+ }
+-static void
+-logout_button_clicked (GtkWidget *b, gint *shutdownType)
+-{
+-    *shutdownType = SHUTDOWN_LOGOUT;
+-
+-    gtk_dialog_response (GTK_DIALOG (shutdown_dialog), GTK_RESPONSE_OK);
+-}
++static gint shutdownType = XFSM_LOGOUT;
+ static void
+-reboot_button_clicked (GtkWidget *b, gint *shutdownType)
++logout_dialog_button_clicked (GtkWidget *b, gint *cmd)
+ {
+-    *shutdownType = SHUTDOWN_REBOOT;
++    shutdownType = *cmd;
+     gtk_dialog_response (GTK_DIALOG (shutdown_dialog), GTK_RESPONSE_OK);
+ }
+-static void
+-halt_button_clicked (GtkWidget *b, gint *shutdownType)
++struct LogoutButton
+ {
+-    *shutdownType = SHUTDOWN_HALT;
+-
+-    gtk_dialog_response (GTK_DIALOG (shutdown_dialog), GTK_RESPONSE_OK);
+-}
++    gchar * label;
++    gchar * icon;
++    gint    cmd;
++    gboolean present;
++    GtkWidget * button;
++};
++
++struct LogoutButton logout_buttons [] = {
++ { N_("Switch user"), "xfsm-switch", XFSM_SWITCH, TRUE },
++ { N_("Log out"), "xfsm-logout", XFSM_LOGOUT, TRUE },
++ { N_("Restart"), "xfsm-reboot", XFSM_REBOOT, TRUE },
++ { N_("Shut down"), "xfsm-shutdown", XFSM_SHUTDOWN, TRUE },
++ { N_("Suspend"), "xfsm-suspend", XFSM_SUSPEND, FALSE},
++ { N_("Hibernate"), "xfsm-hibernate", XFSM_HIBERNATE, FALSE},
++};
+-/*
+- */
+ gboolean
+-shutdownDialog(gint *shutdownType, gboolean *saveSession)
++shutdownDialog(gboolean *saveSession)
+ {
+   gboolean accessibility;
+   XfsmFadeout *fadeout = NULL;
+@@ -145,7 +147,9 @@
+   GtkWidget *dialog;
+   GtkWidget *label;
+   GtkWidget *dbox;
++  GtkWidget *rbox;
+   GtkWidget *hbox;
++  GtkWidget *hbox2;
+   GtkWidget *vbox;
+   GtkWidget *vbox2;
+   GtkWidget *image;
+@@ -154,14 +158,14 @@
+   GtkWidget *entry;
+   GtkWidget *hidden;
+   GtkWidget *logout_button;
+-  GtkWidget *reboot_button;
+-  GtkWidget *halt_button;
+   GtkWidget *cancel_button;
+   GtkWidget *ok_button;
+   GdkPixbuf *icon;
+   gboolean saveonexit;
+   gboolean autosave;
+   gboolean prompt;
++  gboolean have_suspend;
++  gboolean have_hibernate;
+   gint monitor;
+   gint result;
+   XfceKiosk *kiosk;
+@@ -173,9 +177,8 @@
+   GdkPixmap *screenshot_pm = NULL;
+   GdkGC *screenshot_gc;
+ #endif
+-
++  gint i;
+   g_return_val_if_fail(saveSession != NULL, FALSE);
+-  g_return_val_if_fail(shutdownType != NULL, FALSE);
+   /* destroy any previously running shutdown helper first */
+   if (shutdown_helper != NULL)
+@@ -195,13 +198,15 @@
+   saveonexit = xfce_rc_read_bool_entry (rc, "SaveOnExit", TRUE);
+   autosave = xfce_rc_read_bool_entry (rc, "AutoSave", FALSE);
+   prompt = xfce_rc_read_bool_entry (rc, "PromptOnLogout", TRUE);
++  have_suspend = xfce_rc_read_bool_entry (rc, "SuspendButton", TRUE);
++  have_hibernate = xfce_rc_read_bool_entry (rc, "HibernateButton", TRUE);
+   /* if PromptOnLogout is off, saving depends on AutoSave */
+   if (!prompt)
+     {
+       xfce_rc_close (rc);
+-      *shutdownType = SHUTDOWN_LOGOUT;
++      shutdownType = XFSM_LOGOUT;
+       *saveSession = autosave;
+       return TRUE;
+@@ -311,76 +316,43 @@
+   hbox = gtk_hbox_new (TRUE, BORDER);
+   gtk_widget_show (hbox);
+   gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
++  hbox2 = gtk_hbox_new (TRUE, BORDER);
++  gtk_widget_show (hbox2);
++  gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
++  logout_buttons[4].present = have_suspend;
++  logout_buttons[5].present = have_hibernate;
+   
+-  /* logout */
+-  logout_button = gtk_button_new ();
+-  gtk_widget_show (logout_button);
+-  gtk_box_pack_start (GTK_BOX (hbox), logout_button, TRUE, TRUE, 0);
+-
+-  g_signal_connect (logout_button, "clicked", 
+-                    G_CALLBACK (logout_button_clicked), shutdownType);
+-
+-  vbox2 = gtk_vbox_new (FALSE, BORDER);
+-  gtk_container_set_border_width (GTK_CONTAINER (vbox2), BORDER);
+-  gtk_widget_show (vbox2);
+-  gtk_container_add (GTK_CONTAINER (logout_button), vbox2);
+-
+-  icon = xfce_themed_icon_load ("xfsm-logout", 32);
+-  image = gtk_image_new_from_pixbuf (icon);
+-  gtk_widget_show (image);
+-  gtk_box_pack_start (GTK_BOX (vbox2), image, FALSE, FALSE, 0);
+-  g_object_unref (icon);
+-
+-  label = gtk_label_new (_("Log Out"));
+-  gtk_widget_show (label);
+-  gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
+-  
+-  /* reboot */
+-  reboot_button = gtk_button_new ();
+-  gtk_widget_show (reboot_button);
+-  gtk_box_pack_start (GTK_BOX (hbox), reboot_button, TRUE, TRUE, 0);
+-
+-  g_signal_connect (reboot_button, "clicked", 
+-                    G_CALLBACK (reboot_button_clicked), shutdownType);
+-
+-  vbox2 = gtk_vbox_new (FALSE, BORDER);
+-  gtk_container_set_border_width (GTK_CONTAINER (vbox2), BORDER);
+-  gtk_widget_show (vbox2);
+-  gtk_container_add (GTK_CONTAINER (reboot_button), vbox2);
+-
+-  icon = xfce_themed_icon_load ("xfsm-reboot", 32);
+-  image = gtk_image_new_from_pixbuf (icon);
+-  gtk_widget_show (image);
+-  gtk_box_pack_start (GTK_BOX (vbox2), image, FALSE, FALSE, 0);
+-  g_object_unref (icon);
+-
+-  label = gtk_label_new (_("Restart"));
+-  gtk_widget_show (label);
+-  gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
+-  
+-  /* halt */
+-  halt_button = gtk_button_new ();
+-  gtk_widget_show (halt_button);
+-  gtk_box_pack_start (GTK_BOX (hbox), halt_button, TRUE, TRUE, 0);
+-
+-  g_signal_connect (halt_button, "clicked", 
+-                    G_CALLBACK (halt_button_clicked), shutdownType);
+-
+-  vbox2 = gtk_vbox_new (FALSE, BORDER);
+-  gtk_container_set_border_width (GTK_CONTAINER (vbox2), BORDER);
+-  gtk_widget_show (vbox2);
+-  gtk_container_add (GTK_CONTAINER (halt_button), vbox2);
+-
+-  icon = xfce_themed_icon_load ("xfsm-shutdown", 32);
+-  image = gtk_image_new_from_pixbuf (icon);
+-  gtk_widget_show (image);
+-  gtk_box_pack_start (GTK_BOX (vbox2), image, FALSE, FALSE, 0);
+-  g_object_unref (icon);
+-  
+-  label = gtk_label_new (_("Shut Down"));
+-  gtk_widget_show (label);
+-  gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
+-  
++  for (i = 0; i < G_N_ELEMENTS (logout_buttons); i++) { 
++        
++    if (logout_buttons[i].present == FALSE)
++       continue;          
++    
++    logout_button = gtk_button_new ();
++    gtk_widget_show (logout_button);
++    rbox = i > G_N_ELEMENTS (logout_buttons)/2 - 1 ? hbox2 : hbox;
++    gtk_box_pack_start (GTK_BOX (rbox), logout_button, TRUE, TRUE, 0);
++
++    g_signal_connect (logout_button, "clicked", 
++                  G_CALLBACK (logout_dialog_button_clicked), &logout_buttons[i].cmd);
++
++    vbox2 = gtk_vbox_new (FALSE, BORDER);
++    gtk_container_set_border_width (GTK_CONTAINER (vbox2), BORDER);
++    gtk_widget_show (vbox2);
++    gtk_container_add (GTK_CONTAINER (logout_button), vbox2);
++
++    icon = xfce_themed_icon_load (logout_buttons[i].icon, 32);
++    image = gtk_image_new_from_pixbuf (icon);
++    gtk_widget_show (image);
++    gtk_box_pack_start (GTK_BOX (vbox2), image, FALSE, FALSE, 0);
++    g_object_unref (icon);
++
++    label = gtk_label_new (_(logout_buttons[i].label));
++    gtk_widget_show (label);
++    gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
++
++    logout_buttons[i].button = logout_button;
++  }
++ 
+   /* save session */
+   if (!autosave)
+     {
+@@ -406,8 +378,9 @@
+   if (!kiosk_can_shutdown || 
+       (shutdown_helper = xfsm_shutdown_helper_spawn ()) == NULL)
+     {
+-      gtk_widget_set_sensitive (reboot_button, FALSE);
+-      gtk_widget_set_sensitive (halt_button, FALSE);
++      for (i = 2; i < G_N_ELEMENTS (logout_buttons); i++) { 
++          gtk_widget_set_sensitive (logout_buttons[i].button, FALSE);
++      }
+     }
+   /* save portion of the root window covered by the dialog */
+@@ -437,7 +410,9 @@
+   gtk_widget_hide (dialog);
+   /* ask password */
+-  if (result == GTK_RESPONSE_OK && *shutdownType != SHUTDOWN_LOGOUT
++  if (result == GTK_RESPONSE_OK
++      && shutdownType != XFSM_LOGOUT
++      && shutdownType != XFSM_SWITCH
+       && xfsm_shutdown_helper_need_password (shutdown_helper))
+     {
+       gtk_widget_show (ok_button);
+@@ -533,6 +508,21 @@
+       gdk_flush ();
+     }
++  /*
++   * For suspend/hibernate perform the action but do not
++   * close the session so it is still there on resume
++   */
++  if (result == GTK_RESPONSE_OK
++                && (shutdownType == XFSM_SUSPEND || shutdownType == XFSM_HIBERNATE)) {
++        xfsm_shutdown_helper_send_command (shutdown_helper, shutdownType);
++        return FALSE;
++  }
++ 
++  if (result == GTK_RESPONSE_OK && shutdownType == XFSM_SWITCH) {
++              g_spawn_command_line_sync ("gdmflexiserver --startnew", NULL, NULL, NULL, NULL);
++              return FALSE;
++  }
++
+   /* process all pending events first */
+   while (gtk_events_pending ())
+     g_main_context_iteration (NULL, FALSE);
+@@ -571,7 +561,7 @@
+ /*
+  */
+ gint
+-xfsm_shutdown(gint type)
++xfsm_shutdown(void)
+ {
+   gboolean result;
+@@ -589,7 +579,7 @@
+   sync ();
+ #endif
+-  if (type == SHUTDOWN_LOGOUT)
++  if (shutdownType == XFSM_LOGOUT)
+     return EXIT_SUCCESS;
+   if (shutdown_helper == NULL)
+@@ -598,16 +588,7 @@
+       return EXIT_FAILURE;
+     }
+-  if (type == SHUTDOWN_HALT)
+-    {
+-      result = xfsm_shutdown_helper_send_command (shutdown_helper,
+-                                                  XFSM_SHUTDOWN_POWEROFF);
+-    }
+-  else
+-    {
+-      result = xfsm_shutdown_helper_send_command (shutdown_helper,
+-                                                  XFSM_SHUTDOWN_REBOOT);
+-    }
++  result = xfsm_shutdown_helper_send_command (shutdown_helper, shutdownType);
+   xfsm_shutdown_helper_destroy (shutdown_helper);
+   shutdown_helper = NULL;
+diff -Nur xfce4-session-4.4.1/xfce4-session/shutdown.h xfce4-session-4.4.1.new/xfce4-session/shutdown.h
+--- xfce4-session-4.4.1/xfce4-session/shutdown.h       2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/xfce4-session/shutdown.h   2007-09-10 15:00:27.000000000 +0200
+@@ -24,13 +24,8 @@
+ #include <glib.h>
+-/* */
+-#define       SHUTDOWN_LOGOUT 0
+-#define SHUTDOWN_REBOOT       1
+-#define SHUTDOWN_HALT 2
+-
+ /* prototypes */
+-extern gboolean       shutdownDialog(gint *, gboolean *);
+-extern gint   xfsm_shutdown(gint);
++extern gboolean       shutdownDialog(gboolean *);
++extern gint   xfsm_shutdown(void);
+ #endif        /* !__XFSM_SHUTDOWN_H__ */
+diff -Nur xfce4-session-4.4.1/xfce4-session/xfsm-global.c xfce4-session-4.4.1.new/xfce4-session/xfsm-global.c
+--- xfce4-session-4.4.1/xfce4-session/xfsm-global.c    2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/xfce4-session/xfsm-global.c        2007-09-10 15:00:27.000000000 +0200
+@@ -46,7 +46,6 @@
+ gchar            *session_file = NULL;
+ GList            *failsafe_clients = NULL;
+ gboolean          failsafe_mode = TRUE;
+-gint              shutdown_type = SHUTDOWN_LOGOUT;
+ XfsmSplashScreen *splash_screen = NULL;
+ void
+diff -Nur xfce4-session-4.4.1/xfce4-session/xfsm-global.h xfce4-session-4.4.1.new/xfce4-session/xfsm-global.h
+--- xfce4-session-4.4.1/xfce4-session/xfsm-global.h    2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/xfce4-session/xfsm-global.h        2007-09-10 15:00:27.000000000 +0200
+@@ -47,7 +47,6 @@
+ extern gchar            *session_file;
+ extern GList            *failsafe_clients;
+ extern gboolean          failsafe_mode;
+-extern gint              shutdown_type;
+ extern XfsmSplashScreen *splash_screen;
+diff -Nur xfce4-session-4.4.1/xfce4-session/xfsm-manager.c xfce4-session-4.4.1.new/xfce4-session/xfsm-manager.c
+--- xfce4-session-4.4.1/xfce4-session/xfsm-manager.c   2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/xfce4-session/xfsm-manager.c       2007-09-10 15:00:27.000000000 +0200
+@@ -799,7 +799,7 @@
+     }
+   else
+     {
+-      if (!fast && shutdown && !shutdownDialog (&shutdown_type, &shutdown_save))
++      if (!fast && shutdown && !shutdownDialog (&shutdown_save))
+         return;
+   
+       if (!shutdown || shutdown_save)
+diff -Nur xfce4-session-4.4.1/xfce4-session/xfsm-shutdown-helper.c xfce4-session-4.4.1.new/xfce4-session/xfsm-shutdown-helper.c
+--- xfce4-session-4.4.1/xfce4-session/xfsm-shutdown-helper.c   2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/xfce4-session/xfsm-shutdown-helper.c       2007-09-10 15:00:27.000000000 +0200
+@@ -55,6 +55,12 @@
+ #ifdef HAVE_DBUS
+ #include <dbus/dbus.h>
++#define       HAL_DBUS_SERVICE                "org.freedesktop.Hal"
++#define HAL_ROOT_COMPUTER             "/org/freedesktop/Hal/devices/computer"
++#define       HAL_DBUS_INTERFACE_DEVICE       "org.freedesktop.Hal.Device"
++#define       HAL_DBUS_INTERFACE_POWER        "org.freedesktop.Hal.Device.SystemPowerManagement"
++#define       HAL_PM_CAN_SUSPEND              "power_management.can_suspend_to_ram"
++#define       HAL_PM_CAN_HIBERNATE            "power_management.can_suspend_to_disk"
+ #endif
+ #include <libxfce4util/libxfce4util.h>
+@@ -74,6 +80,17 @@
+ };
++static struct
++{ 
++  XfsmShutdownCommand command;
++  gchar * name;
++} xfsm2hal[] =
++{
++             { XFSM_REBOOT,    "Reboot"},
++             { XFSM_SHUTDOWN,  "Shutdown"},
++             { XFSM_SUSPEND,   "Suspend"},
++             { XFSM_HIBERNATE, "Hibernate"}
++};
+ static gboolean
+ xfsm_shutdown_helper_hal_check (XfsmShutdownHelper *helper)
+@@ -100,9 +117,9 @@
+    * use the org.freedesktop.Hal.Device.SystemPowerManagement
+    * interface without shutting down/rebooting now.
+    */
+-  message = dbus_message_new_method_call ("org.freedesktop.Hal",
+-                                          "/org/freedesktop/Hal/devices/computer",
+-                                          "org.freedesktop.Hal.Device.SystemPowerManagement",
++  message = dbus_message_new_method_call (HAL_DBUS_SERVICE,
++                                          HAL_ROOT_COMPUTER,
++                                          HAL_DBUS_INTERFACE_POWER,
+                                           "ThisMethodMustNotExistInHal");
+   result = dbus_connection_send_with_reply_and_block (connection, message, 2000, &error);
+   dbus_message_unref (message);
+@@ -145,42 +162,45 @@
+                                XfsmShutdownCommand command)
+ {
+ #ifdef HAVE_DBUS
+-  DBusConnection *connection;
+-  DBusMessage    *message;
+-  DBusMessage    *result;
+-  DBusError       error;
+-
+-  /* initialize the error */
+-  dbus_error_init (&error);
+-
+-  /* connect to the system message bus */
+-  connection = dbus_bus_get (DBUS_BUS_SYSTEM, &error);
+-  if (G_UNLIKELY (connection == NULL))
+-    {
+-      g_warning (G_STRLOC ": Failed to connect to the system message bus: %s", error.message);
+-      dbus_error_free (&error);
+-      return FALSE;
+-    }
+-
+-  /* send the appropriate message to HAL, telling it to shutdown or reboot the system */
+-  message = dbus_message_new_method_call ("org.freedesktop.Hal",
+-                                          "/org/freedesktop/Hal/devices/computer",
+-                                          "org.freedesktop.Hal.Device.SystemPowerManagement",
+-                                          (command == XFSM_SHUTDOWN_REBOOT) ? "Reboot" : "Shutdown");
+-  result = dbus_connection_send_with_reply_and_block (connection, message, 2000, &error);
+-  dbus_message_unref (message);
+-
+-  /* check if we received a result */
+-  if (G_UNLIKELY (result == NULL))
+-    {
+-      g_warning (G_STRLOC ": Failed to contact HAL: %s", error.message);
+-      dbus_error_free (&error);
+-      return FALSE;
+-    }
+-
+-  /* pretend that we succeed */
+-  dbus_message_unref (result);
+-  return TRUE;
++    DBusConnection *connection;
++    DBusMessage *method;
++    DBusMessage *result;
++    DBusError derror;
++    gint i;
++    gchar *methodname;
++    dbus_int32_t wakeup = 0;
++    
++    for (i = 0; i < G_N_ELEMENTS (xfsm2hal); i++) {
++      if ( xfsm2hal[i].command == command ) {
++        methodname = xfsm2hal[i].name;
++      }
++     }
++   
++    dbus_error_init(&derror);
++    
++    connection = dbus_bus_get(DBUS_BUS_SYSTEM, &derror);
++
++    if (connection == NULL)
++        return FALSE;
++    
++    method = dbus_message_new_method_call(HAL_DBUS_SERVICE,
++                                        HAL_ROOT_COMPUTER,
++                                        HAL_DBUS_INTERFACE_POWER,
++                                        methodname);
++
++    if (command == XFSM_SUSPEND) {
++      dbus_message_append_args (method, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID);
++     }
++    
++    result = dbus_connection_send_with_reply_and_block(connection, method, 2000, &derror);
++    
++    dbus_message_unref(method);
++    
++    if (result == NULL)
++      return FALSE;
++    
++    dbus_message_unref(result);
++    return TRUE;
+ #else
+   return FALSE;
+ #endif
+diff -Nur xfce4-session-4.4.1/xfce4-session/xfsm-shutdown-helper.h xfce4-session-4.4.1.new/xfce4-session/xfsm-shutdown-helper.h
+--- xfce4-session-4.4.1/xfce4-session/xfsm-shutdown-helper.h   2007-04-09 19:06:35.000000000 +0200
++++ xfce4-session-4.4.1.new/xfce4-session/xfsm-shutdown-helper.h       2007-09-10 15:00:27.000000000 +0200
+@@ -27,8 +27,12 @@
+ typedef enum
+ {
+-  XFSM_SHUTDOWN_POWEROFF   = 0,
+-  XFSM_SHUTDOWN_REBOOT     = 1,
++  XFSM_SWITCH     =-2,
++  XFSM_LOGOUT     =-1,
++  XFSM_SHUTDOWN   = 0,
++  XFSM_REBOOT     = 1,
++  XFSM_SUSPEND    = 2,
++  XFSM_HIBERNATE  = 3,
+ } XfsmShutdownCommand;
diff --git a/xfce4-session-ubuntu_icons.patch b/xfce4-session-ubuntu_icons.patch
new file mode 100644 (file)
index 0000000..a31f617
--- /dev/null
@@ -0,0 +1,23 @@
+--- ./icons/48x48/Makefile.am.org      2008-10-26 23:08:07.000000000 +0100
++++ ./icons/48x48/Makefile.am  2008-10-29 22:56:05.929007644 +0100
+@@ -1,10 +1,14 @@
+ iconsdir = $(datadir)/icons/hicolor/48x48/apps
+ icons_DATA =                                                          \
+-      xfce4-autostart-editor.png                                      \
+-      xfce4-session.png                                               \
+-      xfce4-splash.png                                                \
+-      xfsm-logout.png                                         \
+-      xfsm-reboot.png                                         \
+-      xfsm-shutdown.png
++      xfce4-autostart-editor.png      \
++      xfce4-session.png               \
++      xfce4-splash.png                \
++      xfsm-hibernate.png              \
++      xfsm-lockscreen.png             \
++      xfsm-logout.png                 \
++      xfsm-reboot.png                 \
++      xfsm-shutdown.png               \
++      xfsm-suspend.png                \
++      xfsm-switch.png
+ EXTRA_DIST = $(icons_DATA)
index e23b6ab05302d23d57af3596a613d76e6021d75f..658a9ca115379b548d8dedae546787419b7b85c1 100644 (file)
@@ -6,12 +6,16 @@ Summary:      Xfce session manager
 Summary(pl.UTF-8):     Zarządca sesji Xfce
 Name:          xfce4-session
 Version:       4.4.3
-Release:       1
+Release:       2
 License:       GPL v2
 Group:         X11/Applications
 Source0:       http://www.xfce.org/archive/xfce-%{version}/src/%{name}-%{version}.tar.bz2
 # Source0-md5: 5c522e0d28c952af413cf0c43257b907
+Source1:       http://www.blues.gda.pl/SOURCES/%{name}-ubuntu_icons.tar.bz2
+# Source1-md5: bf19add3364c0b0d804a7490c1a1fcbe
 Patch0:                %{name}-locale-names.patch
+Patch1:                %{name}-logout_dialog.patch
+Patch2:                %{name}-ubuntu_icons.patch
 URL:           http://www.xfce.org/
 BuildRequires: autoconf >= 2.50
 BuildRequires: automake
@@ -75,8 +79,10 @@ Static Xfce Session Manager library.
 Statyczna biblioteka zarządcy sesji dla środowiska Xfce.
 
 %prep
-%setup -q
+%setup -q -a1
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
 
 mv -f po/{nb_NO,nb}.po
 mv -f po/{pt_PT,pt}.po
This page took 0.053757 seconds and 4 git commands to generate.