diff --git a/xfce4-session-autostart-editor-crash.patch b/xfce4-session-autostart-editor-crash.patch new file mode 100644 index 0000000..ae84816 --- /dev/null +++ b/xfce4-session-autostart-editor-crash.patch @@ -0,0 +1,11 @@ +--- xfce4-autostart-editor/xfae-model.c ++++ xfce4-autostart-editor/xfae-model.c +@@ -490,7 +490,7 @@ + xfce_rc_close (rc); + + /* check if we should skip the item */ +- if (G_UNLIKELY (skip)) ++ if (G_UNLIKELY (skip) && item) + { + xfae_item_free (item); + item = NULL; diff --git a/xfce4-session-configure.patch b/xfce4-session-configure.patch new file mode 100644 index 0000000..d6bd7b8 --- /dev/null +++ b/xfce4-session-configure.patch @@ -0,0 +1,90 @@ +--- configure ++++ configure +@@ -26560,7 +26560,7 @@ + + + if test x"$xdt_cv_DBUS_check" = x"yes"; then +- if $PKG_CONFIG --exists "dbus-1 >= 0.34" >/dev/null 2>&1; then ++ if $PKG_CONFIG --exists "dbus-glib-1 >= 0.34" >/dev/null 2>&1; then + + + # minimum supported version of pkg-config +@@ -26644,22 +26644,22 @@ + fi + + +- { $as_echo "$as_me:$LINENO: checking for dbus-1 >= 0.34" >&5 +-$as_echo_n "checking for dbus-1 >= 0.34... " >&6; } +- if $PKG_CONFIG "--atleast-version=0.34" "dbus-1" >/dev/null 2>&1; then +- DBUS_VERSION=`$PKG_CONFIG --modversion "dbus-1"` ++ { $as_echo "$as_me:$LINENO: checking for dbus-glib-1 >= 0.34" >&5 ++$as_echo_n "checking for dbus-glib-1 >= 0.34... " >&6; } ++ if $PKG_CONFIG "--atleast-version=0.34" "dbus-glib-1" >/dev/null 2>&1; then ++ DBUS_VERSION=`$PKG_CONFIG --modversion "dbus-glib-1"` + { $as_echo "$as_me:$LINENO: result: $DBUS_VERSION" >&5 + $as_echo "$DBUS_VERSION" >&6; } + + { $as_echo "$as_me:$LINENO: checking DBUS_CFLAGS" >&5 + $as_echo_n "checking DBUS_CFLAGS... " >&6; } +- DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1"` ++ DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-glib-1"` + { $as_echo "$as_me:$LINENO: result: $DBUS_CFLAGS" >&5 + $as_echo "$DBUS_CFLAGS" >&6; } + + { $as_echo "$as_me:$LINENO: checking DBUS_LIBS" >&5 + $as_echo_n "checking DBUS_LIBS... " >&6; } +- DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1"` ++ DBUS_LIBS=`$PKG_CONFIG --libs "dbus-glib-1"` + { $as_echo "$as_me:$LINENO: result: $DBUS_LIBS" >&5 + $as_echo "$DBUS_LIBS" >&6; } + +@@ -26678,15 +26678,15 @@ + + DBUS_FOUND="yes" + +- elif $PKG_CONFIG --exists "dbus-1" >/dev/null 2>&1; then +- xdt_cv_version=`$PKG_CONFIG --modversion "dbus-1"` ++ elif $PKG_CONFIG --exists "dbus-glib-1" >/dev/null 2>&1; then ++ xdt_cv_version=`$PKG_CONFIG --modversion "dbus-glib-1"` + { $as_echo "$as_me:$LINENO: result: found, but $xdt_cv_version" >&5 + $as_echo "found, but $xdt_cv_version" >&6; } + + +- echo "*** The required package dbus-1 was found on your system," ++ echo "*** The required package dbus-glib-1 was found on your system," + echo "*** but the installed version ($xdt_cv_version) is too old." +- echo "*** Please upgrade dbus-1 to atleast version 0.34, or adjust" ++ echo "*** Please upgrade dbus-glib-1 to atleast version 0.34, or adjust" + echo "*** the PKG_CONFIG_PATH environment variable if you installed" + echo "*** the new version of the package in a nonstandard prefix so" + echo "*** pkg-config is able to find it." +@@ -26697,8 +26697,8 @@ + $as_echo "not found" >&6; } + + +- echo "*** The required package dbus-1 was not found on your system." +- echo "*** Please install dbus-1 (atleast version 0.34) or adjust" ++ echo "*** The required package dbus-glib-1 was not found on your system." ++ echo "*** Please install dbus-glib-1 (atleast version 0.34) or adjust" + echo "*** the PKG_CONFIG_PATH environment variable if you" + echo "*** installed the package in a nonstandard prefix so that" + echo "*** pkg-config is able to find it." +@@ -26707,14 +26707,14 @@ + fi + + else +- { $as_echo "$as_me:$LINENO: checking for optional package dbus-1 >= 0.34" >&5 +-$as_echo_n "checking for optional package dbus-1 >= 0.34... " >&6; } ++ { $as_echo "$as_me:$LINENO: checking for optional package dbus-glib-1 >= 0.34" >&5 ++$as_echo_n "checking for optional package dbus-glib-1 >= 0.34... " >&6; } + { $as_echo "$as_me:$LINENO: result: not found" >&5 + $as_echo "not found" >&6; } + fi + else +- { $as_echo "$as_me:$LINENO: checking for optional package dbus-1" >&5 +-$as_echo_n "checking for optional package dbus-1... " >&6; } ++ { $as_echo "$as_me:$LINENO: checking for optional package dbus-glib-1" >&5 ++$as_echo_n "checking for optional package dbus-glib-1... " >&6; } + { $as_echo "$as_me:$LINENO: result: disabled" >&5 + $as_echo "disabled" >&6; } + fi diff --git a/xfce4-session-suspend_hibernate.patch b/xfce4-session-logout-dialog.patch similarity index 69% rename from xfce4-session-suspend_hibernate.patch rename to xfce4-session-logout-dialog.patch index 8bffd14..9ee3945 100644 --- a/xfce4-session-suspend_hibernate.patch +++ b/xfce4-session-logout-dialog.patch @@ -1,7 +1,5 @@ -Index: xfce4-session-4.3.99.2/settings/session/session.c -=================================================================== ---- xfce4-session-4.3.99.2.orig/settings/session/session.c -+++ xfce4-session-4.3.99.2/settings/session/session.c +--- settings/session/session.c ++++ settings/session/session.c @@ -51,6 +51,8 @@ static GtkWidget *dialog = NULL; static GtkWidget *general_chooser; static GtkWidget *general_autosave; @@ -20,7 +18,7 @@ Index: xfce4-session-4.3.99.2/settings/session/session.c } if (G_LIKELY (kiosk_can_security)) { -@@ -124,10 +128,15 @@ general_create (XfceRc *rc) +@@ -124,10 +128,14 @@ general_create (XfceRc *rc) gboolean autosave; gboolean prompt; gboolean chooser; @@ -32,14 +30,14 @@ Index: xfce4-session-4.3.99.2/settings/session/session.c 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); -@@ -182,6 +191,29 @@ general_create (XfceRc *rc) +@@ -181,6 +189,29 @@ general_create (XfceRc *rc) + "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", @@ -62,14 +60,11 @@ Index: xfce4-session-4.3.99.2/settings/session/session.c + "RAM and resumes correctly."), + NULL); + -+ + return page; } - -Index: xfce4-session-4.3.99.2/xfce4-session/main.c -=================================================================== ---- xfce4-session-4.3.99.2.orig/xfce4-session/main.c -+++ xfce4-session-4.3.99.2/xfce4-session/main.c +--- xfce4-session/main.c ++++ xfce4-session/main.c @@ -61,6 +61,11 @@ #include #include @@ -98,10 +93,8 @@ Index: xfce4-session-4.3.99.2/xfce4-session/main.c - return xfsm_shutdown (shutdown_type); + return xfsm_shutdown (); } -Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c -=================================================================== ---- xfce4-session-4.3.99.2.orig/xfce4-session/shutdown.c -+++ xfce4-session-4.3.99.2/xfce4-session/shutdown.c +--- xfce4-session/shutdown.c ++++ xfce4-session/shutdown.c @@ -110,34 +110,36 @@ entry_activate_cb (GtkWidget *entry, Gtk gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); } @@ -130,6 +123,9 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c +struct LogoutButton { - *shutdownType = SHUTDOWN_HALT; +- +- gtk_dialog_response (GTK_DIALOG (shutdown_dialog), GTK_RESPONSE_OK); +-} + gchar * label; + gchar * icon; + gint cmd; @@ -138,6 +134,7 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c +}; + +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 }, @@ -145,9 +142,6 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c + { N_("Hibernate"), "xfsm-hibernate", XFSM_HIBERNATE, FALSE}, +}; -- gtk_dialog_response (GTK_DIALOG (shutdown_dialog), GTK_RESPONSE_OK); --} - -/* - */ gboolean @@ -156,7 +150,17 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c { gboolean accessibility; XfsmFadeout *fadeout = NULL; -@@ -154,8 +156,6 @@ shutdownDialog(gint *shutdownType, gbool +@@ -145,7 +147,9 @@ shutdownDialog(gint *shutdownType, gbool + GtkWidget *dialog; + GtkWidget *label; + GtkWidget *dbox; ++ GtkWidget *rbox; + GtkWidget *hbox; ++ GtkWidget *hbox2; + GtkWidget *vbox; + GtkWidget *vbox2; + GtkWidget *image; +@@ -154,14 +158,14 @@ shutdownDialog(gint *shutdownType, gbool GtkWidget *entry; GtkWidget *hidden; GtkWidget *logout_button; @@ -164,8 +168,7 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c - GtkWidget *halt_button; GtkWidget *cancel_button; GtkWidget *ok_button; - GtkWidget *header; -@@ -163,6 +163,8 @@ shutdownDialog(gint *shutdownType, gbool + GdkPixbuf *icon; gboolean saveonexit; gboolean autosave; gboolean prompt; @@ -174,18 +177,18 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c gint monitor; gint result; XfceKiosk *kiosk; -@@ -174,9 +176,9 @@ shutdownDialog(gint *shutdownType, gbool +@@ -173,9 +177,8 @@ shutdownDialog(gint *shutdownType, gbool 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) -@@ -196,13 +198,15 @@ shutdownDialog(gint *shutdownType, gbool +@@ -195,13 +198,15 @@ shutdownDialog(gint *shutdownType, gbool 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); @@ -202,12 +205,15 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c *saveSession = autosave; return TRUE; -@@ -318,76 +322,39 @@ shutdownDialog(gint *shutdownType, gbool +@@ -311,76 +316,43 @@ shutdownDialog(gint *shutdownType, gbool hbox = gtk_hbox_new (TRUE, BORDER); gtk_widget_show (hbox); gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); -+ logout_buttons[3].present = have_suspend; -+ logout_buttons[4].present = have_hibernate; ++ 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 (); @@ -278,16 +284,17 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c - 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++) { -+ ++ for (i = 0; i < G_N_ELEMENTS (logout_buttons); i++) { ++ + if (logout_buttons[i].present == FALSE) -+ continue; -+ ++ continue; ++ + logout_button = gtk_button_new (); + gtk_widget_show (logout_button); -+ gtk_box_pack_start (GTK_BOX (hbox), logout_button, TRUE, TRUE, 0); ++ 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_signal_connect (logout_button, "clicked", + G_CALLBACK (logout_dialog_button_clicked), &logout_buttons[i].cmd); + + vbox2 = gtk_vbox_new (FALSE, BORDER); @@ -301,38 +308,40 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c + gtk_box_pack_start (GTK_BOX (vbox2), image, FALSE, FALSE, 0); + g_object_unref (icon); + -+ label = gtk_label_new (logout_buttons[i].label); ++ 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) { -@@ -413,8 +380,9 @@ shutdownDialog(gint *shutdownType, gbool +@@ -406,8 +378,9 @@ shutdownDialog(gint *shutdownType, gbool 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 = 1; i < G_N_ELEMENTS (logout_buttons); i++) { ++ 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 */ -@@ -444,7 +412,7 @@ shutdownDialog(gint *shutdownType, gbool +@@ -437,7 +410,9 @@ shutdownDialog(gint *shutdownType, gbool gtk_widget_hide (dialog); /* ask password */ - if (result == GTK_RESPONSE_OK && *shutdownType != SHUTDOWN_LOGOUT -+ if (result == GTK_RESPONSE_OK && shutdownType != XFSM_LOGOUT ++ if (result == GTK_RESPONSE_OK ++ && shutdownType != XFSM_LOGOUT ++ && shutdownType != XFSM_SWITCH && xfsm_shutdown_helper_need_password (shutdown_helper)) { gtk_widget_show (ok_button); -@@ -540,6 +508,16 @@ shutdownDialog(gint *shutdownType, gbool +@@ -533,6 +508,21 @@ shutdownDialog(gint *shutdownType, gbool gdk_flush (); } @@ -345,11 +354,16 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c + 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); -@@ -578,7 +556,7 @@ shutdownDialog(gint *shutdownType, gbool +@@ -571,7 +561,7 @@ shutdownDialog(gint *shutdownType, gbool /* */ gint @@ -358,7 +372,7 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c { gboolean result; -@@ -596,7 +574,7 @@ xfsm_shutdown(gint type) +@@ -589,7 +579,7 @@ xfsm_shutdown(gint type) sync (); #endif @@ -367,7 +381,7 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c return EXIT_SUCCESS; if (shutdown_helper == NULL) -@@ -605,16 +583,7 @@ xfsm_shutdown(gint type) +@@ -598,16 +588,7 @@ xfsm_shutdown(gint type) return EXIT_FAILURE; } @@ -385,10 +399,8 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.c xfsm_shutdown_helper_destroy (shutdown_helper); shutdown_helper = NULL; -Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.h -=================================================================== ---- xfce4-session-4.3.99.2.orig/xfce4-session/shutdown.h -+++ xfce4-session-4.3.99.2/xfce4-session/shutdown.h +--- xfce4-session/shutdown.h ++++ xfce4-session/shutdown.h @@ -24,13 +24,8 @@ #include @@ -405,10 +417,8 @@ Index: xfce4-session-4.3.99.2/xfce4-session/shutdown.h +extern gint xfsm_shutdown(void); #endif /* !__XFSM_SHUTDOWN_H__ */ -Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-global.c -=================================================================== ---- xfce4-session-4.3.99.2.orig/xfce4-session/xfsm-global.c -+++ xfce4-session-4.3.99.2/xfce4-session/xfsm-global.c +--- xfce4-session/xfsm-global.c ++++ xfce4-session/xfsm-global.c @@ -46,7 +46,6 @@ gchar *session_name = NULL; gchar *session_file = NULL; GList *failsafe_clients = NULL; @@ -417,10 +427,8 @@ Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-global.c XfsmSplashScreen *splash_screen = NULL; void -Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-global.h -=================================================================== ---- xfce4-session-4.3.99.2.orig/xfce4-session/xfsm-global.h -+++ xfce4-session-4.3.99.2/xfce4-session/xfsm-global.h +--- xfce4-session/xfsm-global.h ++++ xfce4-session/xfsm-global.h @@ -47,7 +47,6 @@ extern gchar *session_name; extern gchar *session_file; extern GList *failsafe_clients; @@ -429,11 +437,9 @@ Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-global.h extern XfsmSplashScreen *splash_screen; -Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-manager.c -=================================================================== ---- xfce4-session-4.3.99.2.orig/xfce4-session/xfsm-manager.c -+++ xfce4-session-4.3.99.2/xfce4-session/xfsm-manager.c -@@ -799,7 +799,7 @@ xfsm_manager_save_yourself (XfsmClient * +--- xfce4-session/xfsm-manager.c ++++ xfce4-session/xfsm-manager.c +@@ -801,7 +801,7 @@ xfsm_manager_save_yourself (XfsmClient * } else { @@ -442,17 +448,27 @@ Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-manager.c return; if (!shutdown || shutdown_save) -Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-shutdown-helper.c -=================================================================== ---- xfce4-session-4.3.99.2.orig/xfce4-session/xfsm-shutdown-helper.c -+++ xfce4-session-4.3.99.2/xfce4-session/xfsm-shutdown-helper.c -@@ -138,7 +138,17 @@ xfsm_shutdown_helper_hal_check (XfsmShut - return FALSE; - } +--- xfce4-session/xfsm-shutdown-helper.c ++++ xfce4-session/xfsm-shutdown-helper.c +@@ -55,6 +55,12 @@ + + #ifdef HAVE_DBUS + #include ++#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 +@@ -74,6 +80,17 @@ struct _XfsmShutdownHelper + }; + -- +static struct -+{ ++{ + XfsmShutdownCommand command; + gchar * name; +} xfsm2hal[] = @@ -464,72 +480,111 @@ Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-shutdown-helper.c +}; static gboolean - xfsm_shutdown_helper_hal_send (XfsmShutdownHelper *helper, -@@ -149,6 +159,8 @@ xfsm_shutdown_helper_hal_send (XfsmShutd - DBusMessage *message; - DBusMessage *result; - DBusError error; -+ gchar *methodname; -+ int i; - - /* initialize the error */ - dbus_error_init (&error); -@@ -163,10 +175,41 @@ xfsm_shutdown_helper_hal_send (XfsmShutd - } - - /* send the appropriate message to HAL, telling it to shutdown or reboot the system */ + xfsm_shutdown_helper_hal_check (XfsmShutdownHelper *helper) +@@ -100,9 +117,9 @@ xfsm_shutdown_helper_hal_check (XfsmShut + * 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 @@ xfsm_shutdown_helper_hal_send (XfsmShutd + 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"); -+ switch (command) -+ { -+ case XFSM_REBOOT: -+ message = dbus_message_new_method_call ("org.freedesktop.Hal", -+ "/org/freedesktop/Hal/devices/computer", -+ "org.freedesktop.Hal.Device.SystemPowerManagement", -+ "Reboot"); -+ break; +- 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); + -+ case XFSM_SHUTDOWN: -+ message = dbus_message_new_method_call ("org.freedesktop.Hal", -+ "/org/freedesktop/Hal/devices/computer", -+ "org.freedesktop.Hal.Device.SystemPowerManagement", -+ "Shutdown"); -+ break; ++ if (connection == NULL) ++ return FALSE; ++ ++ method = dbus_message_new_method_call(HAL_DBUS_SERVICE, ++ HAL_ROOT_COMPUTER, ++ HAL_DBUS_INTERFACE_POWER, ++ methodname); + -+ case XFSM_SUSPEND: -+ { -+ dbus_int32_t wakeup = 0; -+ message = dbus_message_new_method_call ("org.freedesktop.Hal", -+ "/org/freedesktop/Hal/devices/computer", -+ "org.freedesktop.Hal.Device.SystemPowerManagement", -+ "Suspend"); -+ dbus_message_append_args (message, DBUS_TYPE_INT32, &wakeup, DBUS_TYPE_INVALID); -+ break; -+ } -+ -+ case XFSM_HIBERNATE: -+ message = dbus_message_new_method_call ("org.freedesktop.Hal", -+ "/org/freedesktop/Hal/devices/computer", -+ "org.freedesktop.Hal.Device.SystemPowerManagement", -+ "Hibernate"); -+ break; -+ } -+ - result = dbus_connection_send_with_reply_and_block (connection, message, 2000, &error); - dbus_message_unref (message); - -Index: xfce4-session-4.3.99.2/xfce4-session/xfsm-shutdown-helper.h -=================================================================== ---- xfce4-session-4.3.99.2.orig/xfce4-session/xfsm-shutdown-helper.h -+++ xfce4-session-4.3.99.2/xfce4-session/xfsm-shutdown-helper.h -@@ -27,8 +27,11 @@ ++ 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 +--- xfce4-session/xfsm-shutdown-helper.h ++++ xfce4-session/xfsm-shutdown-helper.h +@@ -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, diff --git a/xfce4-session-ubuntu-icons.tar.bz2 b/xfce4-session-ubuntu-icons.tar.bz2 index 05ade8a..fc3dd9c 100644 --- a/xfce4-session-ubuntu-icons.tar.bz2 +++ b/xfce4-session-ubuntu-icons.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:30abc35ce2ffdb6b4b8f14ac36ab73ac3f374e3970788396b29bf7ea018c29bf -size 18914 +oid sha256:44a4512636c18d672332ed9e1b70df5b16d3da15cfb0e9420c3fd84626cc0e61 +size 27931 diff --git a/xfce4-session.changes b/xfce4-session.changes index 702f74f..9897b88 100644 --- a/xfce4-session.changes +++ b/xfce4-session.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Nov 18 14:10:07 CET 2008 - pnemec@suse.cz + +- call update_desktop_file macro on desktop files [bnc#445722] + +------------------------------------------------------------------- +Fri Nov 14 15:40:11 CET 2008 - prusnak@suse.cz + +- updated suspend_hibernate.patch and renamed to logout-dialog + * adds switch user button, only works with gdm +- fixed crash in autostart-editor (autostart-editor-crash.patch) + ------------------------------------------------------------------- Wed Oct 29 22:05:46 CET 2008 - bwalle@suse.de diff --git a/xfce4-session.spec b/xfce4-session.spec index da9deda..53c2953 100644 --- a/xfce4-session.spec +++ b/xfce4-session.spec @@ -20,20 +20,22 @@ Name: xfce4-session BuildRequires: dbus-1-devel gtk2-devel libxml2-devel perl-XML-Parser startup-notification update-desktop-files xorg-x11 -%if %suse_version > 1010 +%if 0%{?suse_version} > 1010 BuildRequires: dbus-1-glib-devel %endif BuildRequires: intltool xfce-mcs-manager-devel >= 4.3 Requires: fortune Summary: Xfce Session manager Version: 4.4.3 -Release: 1 +Release: 2 License: GPL v2 or later Url: http://www.xfce.org/ Source0: %{name}-%{version}.tar.bz2 -Source1: xfce4-session-ubuntu-icons.tar.bz2 -Patch0: xfce4-session-suspend_hibernate.patch -Patch1: xfce4-session-faster-start.patch +Source1: %{name}-ubuntu-icons.tar.bz2 +Patch0: %{name}-logout-dialog.patch +Patch1: %{name}-faster-start.patch +Patch2: %{name}-autostart-editor-crash.patch +Patch3: %{name}-configure.patch Group: System/GUI/XFCE BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -56,7 +58,7 @@ Summary: Xfce Session manager Group: System/GUI/XFCE Requires: %{name} = %{version} Requires: libxfcegui4-devel >= 4.3 -Requires: libxml2-devel +Requires: libxml2-devel %description devel xfce4-session is the session manager for the Xfce desktop environment. @@ -73,13 +75,18 @@ Authors: %prep %setup -q -%patch0 -p1 +%patch0 %patch1 +%patch2 %build %configure \ --enable-session-screenshots make %{?jobs:-j%jobs} +%suse_update_desktop_file -i xfce-splash-settings X-XFCE Settings DesktopSettings +%suse_update_desktop_file -i xfce-session-settings X-XFCE Settings DesktopSettings +%suse_update_desktop_file -i xfce4-autostart-editor X-XFCE Settings DesktopSettings +%suse_update_desktop_file -i xfce4-tips-autostart X-XFCE Settings DesktopSettings %install make DESTDIR=$RPM_BUILD_ROOT install @@ -109,7 +116,7 @@ rm -rf $RPM_BUILD_ROOT %{_libexecdir}/balou-export-theme %{_libexecdir}/balou-install-theme %{_libexecdir}/xfsm-shutdown-helper -%if %suse_version < 1030 +%if 0%{?suse_version} && 0%{?suse_version} < 1030 %dir %{_sysconfdir}/xdg/autostart %endif %{_sysconfdir}/xdg/autostart/xfce4-tips-autostart.desktop @@ -124,6 +131,12 @@ rm -rf $RPM_BUILD_ROOT %{_includedir}/xfce4/*/* %changelog +* Tue Nov 18 2008 pnemec@suse.cz +- call update_desktop_file macro on desktop files [bnc#445722] +* Fri Nov 14 2008 prusnak@suse.cz +- updated suspend_hibernate.patch and renamed to logout-dialog + * adds switch user button, only works with gdm +- fixed crash in autostart-editor (autostart-editor-crash.patch) * Wed Oct 29 2008 bwalle@suse.de - update to 4.4.3 * translation polish