rpms/xfwm4/F-10 xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6-language.patch, NONE, 1.1 xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6.patch, NONE, 1.1 xfwm4.spec, 1.27, 1.28 xfwm4-bluecurve-prep-4.2.2.patch, 1.1, NONE xfwm4-bluecurve-prep-4.2.3.1.patch, 1.1, NONE xfwm4-bluecurve-prep.patch, 1.1, NONE

Christoph Wickert cwickert at fedoraproject.org
Sun Mar 29 00:09:00 UTC 2009


Author: cwickert

Update of /cvs/pkgs/rpms/xfwm4/F-10
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv21074

Modified Files:
	xfwm4.spec 
Added Files:
	xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6-language.patch 
	xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6.patch 
Removed Files:
	xfwm4-bluecurve-prep-4.2.2.patch 
	xfwm4-bluecurve-prep-4.2.3.1.patch xfwm4-bluecurve-prep.patch 
Log Message:
* Sun Mar 29 2009 Christoph Wickert <cwickert at fedoraproject.org> - 4.4.3-2
- backport "terminate if not responding" patches from 4.6 (#471197)


xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6-language.patch:

--- NEW FILE xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6-language.patch ---
Backport language updates for helper dialog from XFCE 4.6 Beta 1.

diff -udrN xfwm4-4.4.3.old/po/ca.po xfwm4-4.4.3.new/po/ca.po
--- xfwm4-4.4.3.old/po/ca.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/ca.po	2008-11-12 03:38:21.000000000 -0600
@@ -840,3 +840,15 @@
 msgid "Xfce 4 Workspaces Settings"
 msgstr ""
 "Paràmetres dels espais de treball d'Xfce 4Marges dels espais de treball"
+
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Aquesta finestra pot estar ocupada i no respon.\n"
+"Voleu acabar aquesta aplicació?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Advertència"
diff -udrN xfwm4-4.4.3.old/po/cs.po xfwm4-4.4.3.new/po/cs.po
--- xfwm4-4.4.3.old/po/cs.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/cs.po	2008-11-12 03:38:54.000000000 -0600
@@ -832,3 +832,14 @@
 #~ msgid "Unknown application!"
 #~ msgstr "Neznámá aplikace!"
 
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Toto okno je zaneprázdněno a neodpovídá.\n"
+"Chcete tuto aplikaci ukončit?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Varování"
diff -udrN xfwm4-4.4.3.old/po/de.po xfwm4-4.4.3.new/po/de.po
--- xfwm4-4.4.3.old/po/de.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/de.po	2008-11-12 03:39:17.000000000 -0600
@@ -844,3 +844,15 @@
 
 #~ msgid "Unknown application!"
 #~ msgstr "Unbekannte Anwendung!"
+
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Dieses Fenster scheint beschäftigt zu sein und antwortet nicht.\n"
+"Möchten Sie die Anwendung beenden?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Warnung"
diff -udrN xfwm4-4.4.3.old/po/eu.po xfwm4-4.4.3.new/po/eu.po
--- xfwm4-4.4.3.old/po/eu.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/eu.po	2008-11-12 03:39:40.000000000 -0600
@@ -823,3 +823,15 @@
 #: ../mcs-plugin/xfce-workspaces-settings.desktop.in.h:2
 msgid "Xfce 4 Workspaces Settings"
 msgstr "Xfce 4 Idazmahai Ezarpenak"
+
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Leiho hau lanpeturik egon daiteke eta ez du erantzuten.\n"
+"Benetan aplikazioa itxi nahi duzu?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Abisua"
diff -udrN xfwm4-4.4.3.old/po/fi.po xfwm4-4.4.3.new/po/fi.po
--- xfwm4-4.4.3.old/po/fi.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/fi.po	2008-11-12 03:39:59.000000000 -0600
@@ -819,3 +819,15 @@
 
 #~ msgid "Unknown application!"
 #~ msgstr "Tuntematon sovellus!"
+
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Ikkuna voi olla varattu ja se ei vastaa.\n"
+"Haluatko lopettaa sovelluksen?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Varoitus"
diff -udrN xfwm4-4.4.3.old/po/fr.po xfwm4-4.4.3.new/po/fr.po
--- xfwm4-4.4.3.old/po/fr.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/fr.po	2008-11-12 03:40:14.000000000 -0600
@@ -835,3 +835,15 @@
 
 #~ msgid "Unknown application!"
 #~ msgstr "Application inconnue!"
+
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Cette fenêtre semble active mais ne répond plus,\n"
+"voulez-vous fermer l'application ?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Avertissement"
diff -udrN xfwm4-4.4.3.old/po/hu.po xfwm4-4.4.3.new/po/hu.po
--- xfwm4-4.4.3.old/po/hu.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/hu.po	2008-11-12 03:40:29.000000000 -0600
@@ -823,3 +823,15 @@
 
 #~ msgid "Unknown application!"
 #~ msgstr "Ismeretlen alkalmazás!"
+
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Az ablak nem válaszol.\n"
+"Bezárod az alkalmazást?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Figyelem"
diff -udrN xfwm4-4.4.3.old/po/id.po xfwm4-4.4.3.new/po/id.po
--- xfwm4-4.4.3.old/po/id.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/id.po	2008-11-12 03:40:45.000000000 -0600
@@ -812,3 +812,14 @@
 msgid "Xfce 4 Workspaces Settings"
 msgstr "Pengaturan Ruang Kerja Xfce 4"
 
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Jendela ini mungkin sibuk dan tidak merespon.\n"
+"Anda ingin menutup aplikasi?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Peringatan"
diff -udrN xfwm4-4.4.3.old/po/ja.po xfwm4-4.4.3.new/po/ja.po
--- xfwm4-4.4.3.old/po/ja.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/ja.po	2008-11-12 03:41:09.000000000 -0600
@@ -850,3 +850,15 @@
 #: ../mcs-plugin/xfce-workspaces-settings.desktop.in.h:2
 msgid "Xfce 4 Workspaces Settings"
 msgstr "Xfce 4 ワークスペースの設定"
+
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"このウィンドウはビジーのようで応答がありません。\n"
+"アプリケーションを終了させますか?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "警告"
diff -udrN xfwm4-4.4.3.old/po/pt_BR.po xfwm4-4.4.3.new/po/pt_BR.po
--- xfwm4-4.4.3.old/po/pt_BR.po	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/pt_BR.po	2008-11-12 03:41:24.000000000 -0600
@@ -831,3 +831,15 @@
 #: ../mcs-plugin/xfce-workspaces-settings.desktop.in.h:2
 msgid "Xfce 4 Workspaces Settings"
 msgstr "Configurações dos Espaços de Trabalho do Xfce 4"
+
+#: ../helper-dialog/helper-dialog.c:84
+msgid ""
+"This window might be busy and is not responding.\n"
+"Do you want to terminate the application?"
+msgstr ""
+"Esta janela pode estar ocupada e não responder.\n"
+"Você deseja terminar o aplicativo?"
+
+#: ../helper-dialog/helper-dialog.c:89
+msgid "Warning"
+msgstr "Aviso"

xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6.patch:

--- NEW FILE xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6.patch ---
Backport patches 27927 27938 27953 27954 27988 27990 27991 27992 27994 from XFCE 4.6 Beta1.
Implement "terminate if not responding" dialog.

diff -udrN xfwm4-4.4.3.old/configure xfwm4-4.4.3.new/configure
--- xfwm4-4.4.3.old/configure	2008-10-26 17:39:59.000000000 -0500
+++ xfwm4-4.4.3.new/configure	2008-11-12 03:36:09.000000000 -0600
@@ -28431,7 +28431,7 @@
 
 
 
-ac_config_files="$ac_config_files Makefile doc/Makefile doc/C/Makefile doc/C/images/Makefile doc/fr/Makefile doc/fr/images/Makefile doc/it/Makefile doc/it/images/Makefile defaults/Makefile icons/Makefile icons/48x48/Makefile icons/scalable/Makefile mcs-plugin/Makefile po/Makefile.in src/Makefile themes/Makefile themes/daloa/Makefile themes/default/Makefile themes/default.keys/Makefile themes/default-4.0/Makefile themes/default-4.2/Makefile themes/katiola/Makefile themes/kokodi/Makefile themes/moheli/Makefile themes/sassandra/Makefile themes/stoneage/Makefile themes/therapy/Makefile themes/tyrex/Makefile themes/wallis/Makefile xfwm4.spec"
+ac_config_files="$ac_config_files Makefile doc/Makefile doc/C/Makefile doc/C/images/Makefile doc/fr/Makefile doc/fr/images/Makefile doc/it/Makefile doc/it/images/Makefile defaults/Makefile helper-dialog/Makefile icons/Makefile icons/48x48/Makefile icons/scalable/Makefile mcs-plugin/Makefile po/Makefile.in src/Makefile themes/Makefile themes/daloa/Makefile themes/default/Makefile themes/default.keys/Makefile themes/default-4.0/Makefile themes/default-4.2/Makefile themes/katiola/Makefile themes/kokodi/Makefile themes/moheli/Makefile themes/sassandra/Makefile themes/stoneage/Makefile themes/therapy/Makefile themes/tyrex/Makefile themes/wallis/Makefile xfwm4.spec"
 
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
@@ -29125,6 +29125,7 @@
     "doc/it/Makefile") CONFIG_FILES="$CONFIG_FILES doc/it/Makefile" ;;
     "doc/it/images/Makefile") CONFIG_FILES="$CONFIG_FILES doc/it/images/Makefile" ;;
     "defaults/Makefile") CONFIG_FILES="$CONFIG_FILES defaults/Makefile" ;;
+    "helper-dialog/Makefile") CONFIG_FILES="$CONFIG_FILES helper-dialog/Makefile" ;;
     "icons/Makefile") CONFIG_FILES="$CONFIG_FILES icons/Makefile" ;;
     "icons/48x48/Makefile") CONFIG_FILES="$CONFIG_FILES icons/48x48/Makefile" ;;
     "icons/scalable/Makefile") CONFIG_FILES="$CONFIG_FILES icons/scalable/Makefile" ;;
diff -udrN xfwm4-4.4.3.old/configure.ac xfwm4-4.4.3.new/configure.ac
--- xfwm4-4.4.3.old/configure.ac	2008-10-26 17:39:48.000000000 -0500
+++ xfwm4-4.4.3.new/configure.ac	2008-11-12 03:36:09.000000000 -0600
@@ -37,6 +37,7 @@
 
 dnl check for basic programs
 AC_PROG_CC
+AM_PROG_CC_C_O
 AC_PROG_INSTALL
 AC_PROG_INTLTOOL([intltool_minimum_version], [no-xml])
 AC_PROG_LIBTOOL
@@ -210,6 +211,7 @@
 doc/it/Makefile
 doc/it/images/Makefile
 defaults/Makefile
+helper-dialog/Makefile
 icons/Makefile
 icons/48x48/Makefile
 icons/scalable/Makefile
diff -udrN xfwm4-4.4.3.old/helper-dialog/helper-dialog.c xfwm4-4.4.3.new/helper-dialog/helper-dialog.c
--- xfwm4-4.4.3.old/helper-dialog/helper-dialog.c	1969-12-31 18:00:00.000000000 -0600
+++ xfwm4-4.4.3.new/helper-dialog/helper-dialog.c	2008-11-12 03:36:09.000000000 -0600
@@ -0,0 +1,104 @@
+/*      $Id$
+
+        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., Inc., 51 Franklin Street, Fifth Floor, Boston,
+        MA 02110-1301, USA.
+
+        xfwm4    - (c) 2002-2008 Olivier Fourdan
+
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <X11/X.h>
+#include <X11/Xlib.h>
+#include <glib.h>
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
+#include <gtk/gtk.h>
+#include <libxfce4util/libxfce4util.h>
+#include <stdlib.h>
+
+static void
+on_realize (GtkWidget *dialog,
+            gpointer  data)
+{
+    Window xid;
+
+    xid = (Window) GPOINTER_TO_INT (data);
+    gdk_error_trap_push ();
+    XSetTransientForHint (gdk_display, GDK_WINDOW_XID (dialog->window), xid);
+    gdk_error_trap_pop ();
+}
+
+int
+main (int argc, char **argv)
+{
+    GtkWidget *dialog;
+    gint i;
+    gulong xid;
+    gchar *title, *newstr;
+
+    xfce_textdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
+
+    gtk_init (&argc, &argv);
+
+    if (argc < 2)
+    {
+        g_print ("Wrong number of arguments\n");
+        return 1;
+    }
+
+    xid = strtoul (argv [1], NULL, 16);
+    if (!xid)
+    {
+        g_print ("Invalid XID (%s)\n", argv [1]);
+        return 1;
+    }
+
+    title = g_strdup ("");
+    for (i = 2; i < argc; i++)
+    {
+        newstr = g_strdup_printf ("%s %s", title, argv[i]);
+        g_free (title);
+        title = newstr;
+    }
+
+    dialog = gtk_message_dialog_new (NULL, 0,
+                                     GTK_MESSAGE_WARNING,
+                                     GTK_BUTTONS_YES_NO,
+                                     _("This window might be busy and is not responding.\n"
+                                       "Do you want to terminate the application?"),
+                                     NULL);
+
+    gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_NO);
+    gtk_widget_set (GTK_WIDGET (dialog), "secondary-text", title, NULL);
+    gtk_window_set_title (GTK_WINDOW (dialog), _("Warning"));
+    g_signal_connect (G_OBJECT (dialog), "realize",
+                      G_CALLBACK (on_realize), (gpointer) GINT_TO_POINTER (xid));
+    gtk_widget_realize (dialog);
+
+    if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_YES)
+    {
+        g_print ("YES=0x%lx\n", xid);
+    }
+    else
+    {
+        g_print ("NO=0x%lx\n", xid);
+    }
+    return 0;
+}
diff -udrN xfwm4-4.4.3.old/helper-dialog/Makefile.am xfwm4-4.4.3.new/helper-dialog/Makefile.am
--- xfwm4-4.4.3.old/helper-dialog/Makefile.am	1969-12-31 18:00:00.000000000 -0600
+++ xfwm4-4.4.3.new/helper-dialog/Makefile.am	2008-11-12 03:36:09.000000000 -0600
@@ -0,0 +1,27 @@
+# $Id$
+
+INCLUDES =								\
+	$(GTK_CFLAGS) 							\
+	$(LIBXFCE4UTIL_CFLAGS)						\
+	$(LIBX11_CFLAGS)						\
+	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"
+
+helper_dialogdir = $(libexecdir)/xfce4/xfwm4
+
+helper_dialog_PROGRAMS =						\
+	helper-dialog
+
+helper_dialog_SOURCES =							\
+	helper-dialog.c
+
+helper_dialog_CFLAGS =							\
+	$(LIBXFCE4UTIL_CFLAGS)						\
+	$(LIBX11_CFLAGS)						\
+	$(GTK_CFLAGS)
+
+helper_dialog_LDADD =							\
+	$(LIBXFCE4UTIL_LIBS)						\
+	$(LIBX11_LIBS)							\
+	$(LIBX11_LDFLAGS)						\
+	$(GTK_LIBS)
+
diff -udrN xfwm4-4.4.3.old/helper-dialog/Makefile.in xfwm4-4.4.3.new/helper-dialog/Makefile.in
--- xfwm4-4.4.3.old/helper-dialog/Makefile.in	1969-12-31 18:00:00.000000000 -0600
+++ xfwm4-4.4.3.new/helper-dialog/Makefile.in	2008-11-12 03:36:09.000000000 -0600
@@ -0,0 +1,593 @@
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ at SET_MAKE@
+
+# $Id$
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+helper_dialog_PROGRAMS = helper-dialog$(EXEEXT)
+subdir = helper-dialog
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+am__installdirs = "$(DESTDIR)$(helper_dialogdir)"
+helper_dialogPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+PROGRAMS = $(helper_dialog_PROGRAMS)
+am_helper_dialog_OBJECTS = helper_dialog-helper-dialog.$(OBJEXT)
+helper_dialog_OBJECTS = $(am_helper_dialog_OBJECTS)
+am__DEPENDENCIES_1 =
+helper_dialog_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+helper_dialog_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(helper_dialog_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+	$(LDFLAGS) -o $@
+SOURCES = $(helper_dialog_SOURCES)
+DIST_SOURCES = $(helper_dialog_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+COMPOSITOR_CFLAGS = @COMPOSITOR_CFLAGS@
+COMPOSITOR_LIBS = @COMPOSITOR_LIBS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ENABLE_COMPOSITOR = @ENABLE_COMPOSITOR@
+ENABLE_KDE_SYSTRAY = @ENABLE_KDE_SYSTRAY@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_REQUIRED_VERSION = @GTK_REQUIRED_VERSION@
+GTK_VERSION = @GTK_VERSION@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_CAVES_RULE = @INTLTOOL_CAVES_RULE@
+INTLTOOL_DESKTOP_RULE = @INTLTOOL_DESKTOP_RULE@
+INTLTOOL_DIRECTORY_RULE = @INTLTOOL_DIRECTORY_RULE@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_KBD_RULE = @INTLTOOL_KBD_RULE@
+INTLTOOL_KEYS_RULE = @INTLTOOL_KEYS_RULE@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_OAF_RULE = @INTLTOOL_OAF_RULE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_POLICY_RULE = @INTLTOOL_POLICY_RULE@
+INTLTOOL_PONG_RULE = @INTLTOOL_PONG_RULE@
+INTLTOOL_PROP_RULE = @INTLTOOL_PROP_RULE@
+INTLTOOL_SCHEMAS_RULE = @INTLTOOL_SCHEMAS_RULE@
+INTLTOOL_SERVER_RULE = @INTLTOOL_SERVER_RULE@
+INTLTOOL_SERVICE_RULE = @INTLTOOL_SERVICE_RULE@
+INTLTOOL_SHEET_RULE = @INTLTOOL_SHEET_RULE@
+INTLTOOL_SOUNDLIST_RULE = @INTLTOOL_SOUNDLIST_RULE@
+INTLTOOL_THEME_RULE = @INTLTOOL_THEME_RULE@
+INTLTOOL_UI_RULE = @INTLTOOL_UI_RULE@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_XAM_RULE = @INTLTOOL_XAM_RULE@
+INTLTOOL_XML_NOMERGE_RULE = @INTLTOOL_XML_NOMERGE_RULE@
+INTLTOOL_XML_RULE = @INTLTOOL_XML_RULE@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBSM_CFLAGS = @LIBSM_CFLAGS@
+LIBSM_LDFLAGS = @LIBSM_LDFLAGS@
+LIBSM_LIBS = @LIBSM_LIBS@
+LIBSTARTUP_NOTIFICATION_CFLAGS = @LIBSTARTUP_NOTIFICATION_CFLAGS@
+LIBSTARTUP_NOTIFICATION_LIBS = @LIBSTARTUP_NOTIFICATION_LIBS@
+LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION = @LIBSTARTUP_NOTIFICATION_REQUIRED_VERSION@
+LIBSTARTUP_NOTIFICATION_VERSION = @LIBSTARTUP_NOTIFICATION_VERSION@
+LIBTOOL = @LIBTOOL@
+LIBX11_CFLAGS = @LIBX11_CFLAGS@
+LIBX11_LDFLAGS = @LIBX11_LDFLAGS@
+LIBX11_LIBS = @LIBX11_LIBS@
+LIBXFCE4MCS_CLIENT_CFLAGS = @LIBXFCE4MCS_CLIENT_CFLAGS@
+LIBXFCE4MCS_CLIENT_LIBS = @LIBXFCE4MCS_CLIENT_LIBS@
+LIBXFCE4MCS_CLIENT_REQUIRED_VERSION = @LIBXFCE4MCS_CLIENT_REQUIRED_VERSION@
+LIBXFCE4MCS_CLIENT_VERSION = @LIBXFCE4MCS_CLIENT_VERSION@
+LIBXFCE4MCS_MANAGER_CFLAGS = @LIBXFCE4MCS_MANAGER_CFLAGS@
+LIBXFCE4MCS_MANAGER_LIBS = @LIBXFCE4MCS_MANAGER_LIBS@
+LIBXFCE4MCS_MANAGER_REQUIRED_VERSION = @LIBXFCE4MCS_MANAGER_REQUIRED_VERSION@
+LIBXFCE4MCS_MANAGER_VERSION = @LIBXFCE4MCS_MANAGER_VERSION@
+LIBXFCE4UTIL_CFLAGS = @LIBXFCE4UTIL_CFLAGS@
+LIBXFCE4UTIL_LIBS = @LIBXFCE4UTIL_LIBS@
+LIBXFCE4UTIL_REQUIRED_VERSION = @LIBXFCE4UTIL_REQUIRED_VERSION@
+LIBXFCE4UTIL_VERSION = @LIBXFCE4UTIL_VERSION@
+LIBXFCEGUI4_CFLAGS = @LIBXFCEGUI4_CFLAGS@
+LIBXFCEGUI4_LIBS = @LIBXFCEGUI4_LIBS@
+LIBXFCEGUI4_REQUIRED_VERSION = @LIBXFCEGUI4_REQUIRED_VERSION@
+LIBXFCEGUI4_VERSION = @LIBXFCEGUI4_VERSION@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+OBJEXT = @OBJEXT@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+RANDR_LIBS = @RANDR_LIBS@
+RANLIB = @RANLIB@
+RENDER_CFLAGS = @RENDER_CFLAGS@
+RENDER_LIBS = @RENDER_LIBS@
+REVISION = @REVISION@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XFCE_MCS_MANAGER_CFLAGS = @XFCE_MCS_MANAGER_CFLAGS@
+XFCE_MCS_MANAGER_LIBS = @XFCE_MCS_MANAGER_LIBS@
+XFCE_MCS_MANAGER_PLUGINSDIR = @XFCE_MCS_MANAGER_PLUGINSDIR@
+XFCE_MCS_MANAGER_REQUIRED_VERSION = @XFCE_MCS_MANAGER_REQUIRED_VERSION@
+XFCE_MCS_MANAGER_VERSION = @XFCE_MCS_MANAGER_VERSION@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_ARGS = @XGETTEXT_ARGS@
+XMKMF = @XMKMF@
+XSYNC_LIBS = @XSYNC_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+INCLUDES = \
+	$(GTK_CFLAGS) 							\
+	$(LIBXFCE4UTIL_CFLAGS)						\
+	$(LIBX11_CFLAGS)						\
+	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"
+
+helper_dialogdir = $(libexecdir)/xfce4/xfwm4
+helper_dialog_SOURCES = \
+	helper-dialog.c
+
+helper_dialog_CFLAGS = \
+	$(LIBXFCE4UTIL_CFLAGS)						\
+	$(LIBX11_CFLAGS)						\
+	$(GTK_CFLAGS)
+
+helper_dialog_LDADD = \
+	$(LIBXFCE4UTIL_LIBS)						\
+	$(LIBX11_LIBS)							\
+	$(LIBX11_LDFLAGS)						\
+	$(GTK_LIBS)
+
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+		&& exit 0; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  helper-dialog/Makefile'; \
+	cd $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu  helper-dialog/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-helper_dialogPROGRAMS: $(helper_dialog_PROGRAMS)
+	@$(NORMAL_INSTALL)
+	test -z "$(helper_dialogdir)" || $(MKDIR_P) "$(DESTDIR)$(helper_dialogdir)"
+	@list='$(helper_dialog_PROGRAMS)'; for p in $$list; do \
+	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  if test -f $$p \
+	     || test -f $$p1 \
+	  ; then \
+	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(helper_dialogPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(helper_dialogdir)/$$f'"; \
+	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(helper_dialogPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(helper_dialogdir)/$$f" || exit 1; \
+	  else :; fi; \
+	done
+
+uninstall-helper_dialogPROGRAMS:
+	@$(NORMAL_UNINSTALL)
+	@list='$(helper_dialog_PROGRAMS)'; for p in $$list; do \
+	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+	  echo " rm -f '$(DESTDIR)$(helper_dialogdir)/$$f'"; \
+	  rm -f "$(DESTDIR)$(helper_dialogdir)/$$f"; \
+	done
+
+clean-helper_dialogPROGRAMS:
+	@list='$(helper_dialog_PROGRAMS)'; for p in $$list; do \
+	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+	  echo " rm -f $$p $$f"; \
+	  rm -f $$p $$f ; \
+	done
+helper-dialog$(EXEEXT): $(helper_dialog_OBJECTS) $(helper_dialog_DEPENDENCIES) 
+	@rm -f helper-dialog$(EXEEXT)
+	$(helper_dialog_LINK) $(helper_dialog_OBJECTS) $(helper_dialog_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/helper_dialog-helper-dialog.Po at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
+
+helper_dialog-helper-dialog.o: helper-dialog.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helper_dialog_CFLAGS) $(CFLAGS) -MT helper_dialog-helper-dialog.o -MD -MP -MF $(DEPDIR)/helper_dialog-helper-dialog.Tpo -c -o helper_dialog-helper-dialog.o `test -f 'helper-dialog.c' || echo '$(srcdir)/'`helper-dialog.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/helper_dialog-helper-dialog.Tpo $(DEPDIR)/helper_dialog-helper-dialog.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='helper-dialog.c' object='helper_dialog-helper-dialog.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helper_dialog_CFLAGS) $(CFLAGS) -c -o helper_dialog-helper-dialog.o `test -f 'helper-dialog.c' || echo '$(srcdir)/'`helper-dialog.c
+
+helper_dialog-helper-dialog.obj: helper-dialog.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helper_dialog_CFLAGS) $(CFLAGS) -MT helper_dialog-helper-dialog.obj -MD -MP -MF $(DEPDIR)/helper_dialog-helper-dialog.Tpo -c -o helper_dialog-helper-dialog.obj `if test -f 'helper-dialog.c'; then $(CYGPATH_W) 'helper-dialog.c'; else $(CYGPATH_W) '$(srcdir)/helper-dialog.c'; fi`
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/helper_dialog-helper-dialog.Tpo $(DEPDIR)/helper_dialog-helper-dialog.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='helper-dialog.c' object='helper_dialog-helper-dialog.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(helper_dialog_CFLAGS) $(CFLAGS) -c -o helper_dialog-helper-dialog.obj `if test -f 'helper-dialog.c'; then $(CYGPATH_W) 'helper-dialog.c'; else $(CYGPATH_W) '$(srcdir)/helper-dialog.c'; fi`
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	mkid -fID $$unique
+tags: TAGS
+
+TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	here=`pwd`; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	    $$tags $$unique; \
+	fi
+ctags: CTAGS
+CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+		$(TAGS_FILES) $(LISP)
+	tags=; \
+	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+	unique=`for i in $$list; do \
+	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+	  done | \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$tags $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && cd $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) $$here
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	    fi; \
+	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	  else \
+	    test -f $(distdir)/$$file \
+	    || cp -p $$d/$$file $(distdir)/$$file \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+	for dir in "$(DESTDIR)$(helper_dialogdir)"; do \
+	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+	done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	  install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	  `test -z '$(STRIP)' || \
+	    echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-helper_dialogPROGRAMS clean-libtool \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+info: info-am
+
+info-am:
+
+install-data-am: install-helper_dialogPROGRAMS
+
+install-dvi: install-dvi-am
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-info: install-info-am
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-helper_dialogPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+	clean-helper_dialogPROGRAMS clean-libtool ctags distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am \
+	install-helper_dialogPROGRAMS install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-compile \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags uninstall uninstall-am uninstall-helper_dialogPROGRAMS
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff -udrN xfwm4-4.4.3.old/Makefile.am xfwm4-4.4.3.new/Makefile.am
--- xfwm4-4.4.3.old/Makefile.am	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/Makefile.am	2008-11-12 03:36:09.000000000 -0600
@@ -14,7 +14,7 @@
 	intltool-update							\
 	xfwm4.spec
 
-SUBDIRS = po doc icons src mcs-plugin defaults themes
+SUBDIRS = po doc icons src mcs-plugin defaults themes helper-dialog
 
 distclean-local:
 	rm -rf *.cache
diff -udrN xfwm4-4.4.3.old/Makefile.in xfwm4-4.4.3.new/Makefile.in
--- xfwm4-4.4.3.old/Makefile.in	2008-10-26 17:39:58.000000000 -0500
+++ xfwm4-4.4.3.new/Makefile.in	2008-11-12 03:36:09.000000000 -0600
@@ -288,7 +288,7 @@
 	intltool-update							\
 	xfwm4.spec
 
-SUBDIRS = po doc icons src mcs-plugin defaults themes
+SUBDIRS = po doc icons src mcs-plugin defaults themes helper-dialog
 all: config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-recursive
 
diff -udrN xfwm4-4.4.3.old/po/POTFILES.in xfwm4-4.4.3.new/po/POTFILES.in
--- xfwm4-4.4.3.old/po/POTFILES.in	2008-10-26 17:13:56.000000000 -0500
+++ xfwm4-4.4.3.new/po/POTFILES.in	2008-11-12 03:36:09.000000000 -0600
@@ -1,5 +1,6 @@
 # List of source files containing translatable strings.
 
+helper-dialog/helper-dialog.c
 mcs-plugin/margins.c
 mcs-plugin/workspaces_plugin.c
 mcs-plugin/wmtweaks_plugin.c
diff -udrN xfwm4-4.4.3.old/src/client.c xfwm4-4.4.3.new/src/client.c
--- xfwm4-4.4.3.old/src/client.c	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/client.c	2008-11-12 03:36:09.000000000 -0600
@@ -23,6 +23,11 @@
 #include <config.h>
 #endif
 
+#include <sys/types.h>
+#include <signal.h>
+#include <unistd.h>
+#include <errno.h>
+
 #include <X11/X.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
@@ -1333,6 +1338,10 @@
     FLAG_SET (c->wm_flags,
         (wm_protocols_flags & WM_PROTOCOLS_CONTEXT_HELP) ?
         WM_FLAG_CONTEXT_HELP : 0);
+    /* Ping */
+    FLAG_SET (c->wm_flags,
+        (wm_protocols_flags & WM_PROTOCOLS_PING) ?
+        WM_FLAG_PING : 0);
 }
 
 #ifdef HAVE_XSYNC
@@ -1532,6 +1541,10 @@
     {
         g_source_remove (c->frame_timeout_id);
     }
+    if (c->ping_timeout_id)
+    {
+        clientRemoveNetWMPing (c);
+    }
     if (c->name)
     {
         g_free (c->name);
@@ -1572,6 +1585,14 @@
     {
         XFree (c->class.res_class);
     }
+    if (c->dialog_pid)
+    {
+        kill (c->dialog_pid, SIGKILL);
+    }
+    if (c->dialog_fd >= 0)
+    {
+        close (c->dialog_fd);
+    }
 
     g_free (c);
 }
@@ -1943,6 +1964,10 @@
     c->screen_info = screen_info;
     c->serial = screen_info->client_serial++;
 
+    /* Termination dialog */
+    c->dialog_pid = 0;
+    c->dialog_fd = -1;
+
     getWindowName (display_info, c->window, &c->name);
     TRACE ("name \"%s\"", c->name);
     getTransientFor (display_info, screen_info->xroot, c->window, &c->transient_for);
@@ -2029,6 +2054,10 @@
     c->frame_timeout_id = 0;
     /* Timeout for blinking on urgency */
     c->blink_timeout_id = 0;
+    /* Ping timeout  */
+    c->ping_timeout_id = 0;
+    /* Ping timeout  */
+    c->ping_time = 0;
 
     c->class.res_name = NULL;
     c->class.res_class = NULL;
@@ -2079,6 +2108,10 @@
     c->user_time = 0;
     clientGetUserTime (c);
 
+    /* Client PID */
+    getHint (display_info, c->window, NET_WM_PID, (long *) &c->pid);
+    TRACE ("Client \"%s\" (0x%lx) PID = %i", c->name, c->window, c->pid);
+
     /* Apply startup notification properties if available */
     sn_client_startup_properties (c);
 
@@ -2850,6 +2883,7 @@
 {
     ScreenInfo *screen_info;
     DisplayInfo *display_info;
+    Time timestamp;
 
     g_return_if_fail (c != NULL);
 
@@ -2858,16 +2892,20 @@
 
     screen_info = c->screen_info;
     display_info = screen_info->display_info;
+    timestamp = myDisplayGetCurrentTime (display_info);
 
     if (FLAG_TEST (c->wm_flags, WM_FLAG_DELETE))
     {
-        sendClientMessage (screen_info, c->window, WM_DELETE_WINDOW,
-                           myDisplayGetCurrentTime (display_info));
+        sendClientMessage (screen_info, c->window, WM_DELETE_WINDOW, timestamp);
     }
     else
     {
         clientKill (c);
     }
+    if (FLAG_TEST (c->wm_flags, WM_FLAG_PING))
+    {
+        clientSendNetWMPing (c, timestamp);
+    }
 }
 
 void
@@ -2881,6 +2919,38 @@
 }
 
 void
+clientTerminate (Client * c)
+{
+    ScreenInfo *screen_info;
+    DisplayInfo *display_info;
+    gchar *name;
+    gchar *hostname;
+
+    g_return_if_fail (c != NULL);
+    TRACE ("entering clientTerminate");
+
+    screen_info = c->screen_info;
+    display_info = screen_info->display_info;
+    getWindowName(display_info, c->window, &name);
+    getClientMachine(display_info, c->window, &hostname);
+
+    if ((hostname) && (c->pid > 0))
+    {
+        if (!strcmp (display_info->hostname, hostname))
+        {
+            TRACE ("Sending client %s (pid %i) signal SIGKILL\n", c->name);
+
+            if (kill (c->pid, SIGKILL) < 0)
+            {
+                g_warning ("Failed to kill client id %d: %s", c->pid, strerror (errno));
+            }
+        }
+    }
+  
+    clientKill (c);
+}
+
+void
 clientEnterContextMenuState (Client * c)
 {
     ScreenInfo *screen_info;
diff -udrN xfwm4-4.4.3.old/src/client.h xfwm4-4.4.3.new/src/client.h
--- xfwm4-4.4.3.old/src/client.h	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/client.h	2008-11-12 03:36:09.000000000 -0600
@@ -97,6 +97,10 @@
 #define CLIENT_BLINK_TIMEOUT            500 /* ms */
 #endif
 
+#ifndef CLIENT_PING_TIMEOUT
+#define CLIENT_PING_TIMEOUT             3000 /* ms */
+#endif
+
 #define XFWM_FLAG_HAS_BORDER            (1L<<0)
 #define XFWM_FLAG_HAS_MENU              (1L<<1)
 #define XFWM_FLAG_HAS_MAXIMIZE          (1L<<2)
@@ -145,6 +149,7 @@
 #define WM_FLAG_TAKEFOCUS               (1L<<2)
 #define WM_FLAG_CONTEXT_HELP            (1L<<3)
 #define WM_FLAG_URGENT                  (1L<<4)
+#define WM_FLAG_PING                    (1L<<5)
 
 #define CLIENT_FLAG_INITIAL_VALUES      XFWM_FLAG_HAS_BORDER | \
                                         XFWM_FLAG_HAS_MENU | \
@@ -268,15 +273,23 @@
     int struts[STRUTS_SIZE];
     gchar *name;
     guint32 user_time;
+    GPid pid;
+    Time ping_time;
     unsigned long flags;
     unsigned long wm_flags;
     unsigned long xfwm_flags;
+
+    /* Termination dialog */
+    int dialog_pid;
+    int dialog_fd;
     /* Timout for asynchronous icon update */
     guint icon_timeout_id;
     /* Timout for asynchronous frame update */
     guint frame_timeout_id;
     /* Timout to manage blinking decorations for urgent windows */
     guint blink_timeout_id;
+    /* Timout for asynchronous icon update */
+    guint ping_timeout_id;
     /* Opacity for the compositor */
     guint opacity;
     guint opacity_applied;
@@ -360,6 +373,7 @@
                                                                  guint32);
 void                     clientClose                            (Client *);
 void                     clientKill                             (Client *);
+void                     clientTerminate                        (Client *);
 void                     clientEnterContextMenuState            (Client *);
 void                     clientSetLayer                         (Client *,
                                                                  int);
diff -udrN xfwm4-4.4.3.old/src/display.c xfwm4-4.4.3.new/src/display.c
--- xfwm4-4.4.3.old/src/display.c	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/display.c	2008-11-12 03:36:09.000000000 -0600
@@ -112,6 +112,8 @@
         "_NET_WM_ICON_NAME",
         "_NET_WM_MOVERESIZE",
         "_NET_WM_NAME",
+        "_NET_WM_PID",
+        "_NET_WM_PING",
         "_NET_WM_WINDOW_OPACITY",
         "_NET_WM_WINDOW_OPACITY_LOCKED",
         "_NET_WM_STATE",
diff -udrN xfwm4-4.4.3.old/src/display.h xfwm4-4.4.3.new/src/display.h
--- xfwm4-4.4.3.old/src/display.h	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/display.h	2008-11-12 03:36:09.000000000 -0600
@@ -154,6 +154,8 @@
     NET_WM_ICON_NAME,
     NET_WM_MOVERESIZE,
     NET_WM_NAME,
+    NET_WM_PID,
+    NET_WM_PING,
     NET_WM_WINDOW_OPACITY,
     NET_WM_WINDOW_OPACITY_LOCKED,
     NET_WM_STATE,
diff -udrN xfwm4-4.4.3.old/src/events.c xfwm4-4.4.3.new/src/events.c
--- xfwm4-4.4.3.old/src/events.c	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/events.c	2008-11-12 03:36:09.000000000 -0600
@@ -1840,6 +1840,12 @@
                 FLAG_SET (c->flags, CLIENT_FLAG_HAS_USER_TIME);
             }
         }
+        else if (ev->atom == display_info->atoms[NET_WM_PID])
+        {
+            TRACE ("client \"%s\" (0x%lx) has received a NET_WM_PID notify", c->name, c->window);
+            getHint (display_info, c->window, NET_WM_PID, (long *) &c->pid);
+            TRACE ("Client \"%s\" (0x%lx) updated PID = %i", c->name, c->window, c->pid);
+        }
         else if (ev->atom == display_info->atoms[NET_WM_WINDOW_OPACITY])
         {
             TRACE ("client \"%s\" (0x%lx) has received a NET_WM_OPACITY notify", c->name, c->window);
@@ -2109,6 +2115,14 @@
                 display_info->quit = TRUE;
             }
         }
+        else if (ev->message_type == display_info->atoms[WM_PROTOCOLS])
+        {
+            if (ev->data.l[0] == display_info->atoms[NET_WM_PING])
+            {
+                TRACE ("root has received a NET_WM_PING (pong) event\n");
+                clientReceiveNetWMPong (screen_info, (Time) ev->data.l[1]);
+            }
+        }
         else
         {
             TRACE ("unidentified client message for window 0x%lx", ev->window);
diff -udrN xfwm4-4.4.3.old/src/hints.c xfwm4-4.4.3.new/src/hints.c
--- xfwm4-4.4.3.old/src/hints.c	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/hints.c	2008-11-12 03:36:09.000000000 -0600
@@ -194,6 +194,11 @@
             {
                 result |= WM_PROTOCOLS_CONTEXT_HELP;
             }
+            /* Ping */
+            if (*ap == display_info->atoms[NET_WM_PING])
+            {
+                result |= WM_PROTOCOLS_PING;
+            }
         }
         if (protocols)
         {
@@ -433,6 +438,8 @@
     atoms[i++] = display_info->atoms[NET_WM_ICON_NAME];
     atoms[i++] = display_info->atoms[NET_WM_MOVERESIZE];
     atoms[i++] = display_info->atoms[NET_WM_NAME];
+    atoms[i++] = display_info->atoms[NET_WM_PID];
+    atoms[i++] = display_info->atoms[NET_WM_PING];
     atoms[i++] = display_info->atoms[NET_WM_STATE];
     atoms[i++] = display_info->atoms[NET_WM_STATE_ABOVE];
     atoms[i++] = display_info->atoms[NET_WM_STATE_BELOW];
diff -udrN xfwm4-4.4.3.old/src/hints.h xfwm4-4.4.3.new/src/hints.h
--- xfwm4-4.4.3.old/src/hints.h	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/hints.h	2008-11-12 03:36:09.000000000 -0600
@@ -81,6 +81,7 @@
 #define WM_PROTOCOLS_TAKE_FOCUS                 (1L<<0)
 #define WM_PROTOCOLS_DELETE_WINDOW              (1L<<1)
 #define WM_PROTOCOLS_CONTEXT_HELP               (1L<<2)
+#define WM_PROTOCOLS_PING                       (1L<<3)
 
 #define WIN_LAYER_DESKTOP                       0
 #define WIN_LAYER_BELOW                         2
diff -udrN xfwm4-4.4.3.old/src/Makefile.am xfwm4-4.4.3.new/src/Makefile.am
--- xfwm4-4.4.3.old/src/Makefile.am	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/Makefile.am	2008-11-12 03:36:09.000000000 -0600
@@ -56,6 +56,8 @@
 	tabwin.h							\
 	ui_style.c							\
 	ui_style.h							\
+	terminate.c							\
+	terminate.h							\
 	transients.c							\
 	transients.h							\
 	workspaces.c							\
@@ -65,8 +67,11 @@
 	xpm-color-table.h
 
 xfwm4_CFLAGS =								\
+	$(GTK_CFLAGS)							\
+	$(GLIB_CFLAGS)							\
 	$(LIBX11_CFLAGS)						\
 	$(LIBXFCE4MCS_CLIENT_CFLAGS)					\
+	$(LIBXFCE4UTIL_CFLAGS)						\
 	$(LIBXFCEGUI4_CFLAGS)						\
 	$(RENDER_CFLAGS)						\
 	$(LIBSTARTUP_NOTIFICATION_CFLAGS)				\
@@ -74,12 +79,16 @@
 	-I$(top_builddir)/common					\
 	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"				\
 	-DDATADIR=\"$(datadir)\"					\
+	-DLIBEXECDIR=\"$(libexecdir)\"					\
 	-DPACKAGE_DATADIR=\"$(pkgdatadir)\"
 
 xfwm4_LDADD =								\
+	$(GTK_LIBS)							\
+	$(GLIB_LIBS)							\
 	$(LIBX11_LIBS)							\
 	$(LIBX11_LDFLAGS)						\
 	$(LIBXFCE4MCS_CLIENT_LIBS)					\
+	$(LIBXFCE4UTIL_LIBS)						\
 	$(LIBXFCEGUI4_LIBS)						\
 	$(LIBSTARTUP_NOTIFICATION_LIBS)					\
 	$(RENDER_LIBS)							\
diff -udrN xfwm4-4.4.3.old/src/Makefile.in xfwm4-4.4.3.new/src/Makefile.in
--- xfwm4-4.4.3.old/src/Makefile.in	2008-10-26 17:39:56.000000000 -0500
+++ xfwm4-4.4.3.new/src/Makefile.in	2008-11-12 03:36:09.000000000 -0600
@@ -59,13 +59,14 @@
 	xfwm4-settings.$(OBJEXT) xfwm4-spinning_cursor.$(OBJEXT) \
 	xfwm4-stacking.$(OBJEXT) xfwm4-startup_notification.$(OBJEXT) \
 	xfwm4-tabwin.$(OBJEXT) xfwm4-ui_style.$(OBJEXT) \
-	xfwm4-transients.$(OBJEXT) xfwm4-workspaces.$(OBJEXT) \
-	xfwm4-wireframe.$(OBJEXT)
+	xfwm4-terminate.$(OBJEXT) xfwm4-transients.$(OBJEXT) \
+	xfwm4-workspaces.$(OBJEXT) xfwm4-wireframe.$(OBJEXT)
 xfwm4_OBJECTS = $(am_xfwm4_OBJECTS)
 am__DEPENDENCIES_1 =
 xfwm4_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 xfwm4_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(xfwm4_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
@@ -347,6 +348,8 @@
 	tabwin.h							\
 	ui_style.c							\
 	ui_style.h							\
+	terminate.c							\
+	terminate.h							\
 	transients.c							\
 	transients.h							\
 	workspaces.c							\
@@ -356,8 +359,11 @@
 	xpm-color-table.h
 
 xfwm4_CFLAGS = \
+	$(GTK_CFLAGS)							\
+	$(GLIB_CFLAGS)							\
 	$(LIBX11_CFLAGS)						\
 	$(LIBXFCE4MCS_CLIENT_CFLAGS)					\
+	$(LIBXFCE4UTIL_CFLAGS)						\
 	$(LIBXFCEGUI4_CFLAGS)						\
 	$(RENDER_CFLAGS)						\
 	$(LIBSTARTUP_NOTIFICATION_CFLAGS)				\
@@ -365,12 +371,16 @@
 	-I$(top_builddir)/common					\
 	-DPACKAGE_LOCALE_DIR=\"$(localedir)\"				\
 	-DDATADIR=\"$(datadir)\"					\
+	-DLIBEXECDIR=\"$(libexecdir)\"					\
 	-DPACKAGE_DATADIR=\"$(pkgdatadir)\"
 
 xfwm4_LDADD = \
+	$(GTK_LIBS)							\
+	$(GLIB_LIBS)							\
 	$(LIBX11_LIBS)							\
 	$(LIBX11_LDFLAGS)						\
 	$(LIBXFCE4MCS_CLIENT_LIBS)					\
+	$(LIBXFCE4UTIL_LIBS)						\
 	$(LIBXFCEGUI4_LIBS)						\
 	$(LIBSTARTUP_NOTIFICATION_LIBS)					\
 	$(RENDER_LIBS)							\
@@ -479,6 +489,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfwm4-stacking.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfwm4-startup_notification.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfwm4-tabwin.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfwm4-terminate.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfwm4-transients.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfwm4-ui_style.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/xfwm4-wireframe.Po at am__quote@
@@ -883,6 +894,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfwm4_CFLAGS) $(CFLAGS) -c -o xfwm4-ui_style.obj `if test -f 'ui_style.c'; then $(CYGPATH_W) 'ui_style.c'; else $(CYGPATH_W) '$(srcdir)/ui_style.c'; fi`
 
+xfwm4-terminate.o: terminate.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfwm4_CFLAGS) $(CFLAGS) -MT xfwm4-terminate.o -MD -MP -MF $(DEPDIR)/xfwm4-terminate.Tpo -c -o xfwm4-terminate.o `test -f 'terminate.c' || echo '$(srcdir)/'`terminate.c
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfwm4-terminate.Tpo $(DEPDIR)/xfwm4-terminate.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terminate.c' object='xfwm4-terminate.o' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfwm4_CFLAGS) $(CFLAGS) -c -o xfwm4-terminate.o `test -f 'terminate.c' || echo '$(srcdir)/'`terminate.c
+
+xfwm4-terminate.obj: terminate.c
+ at am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfwm4_CFLAGS) $(CFLAGS) -MT xfwm4-terminate.obj -MD -MP -MF $(DEPDIR)/xfwm4-terminate.Tpo -c -o xfwm4-terminate.obj `if test -f 'terminate.c'; then $(CYGPATH_W) 'terminate.c'; else $(CYGPATH_W) '$(srcdir)/terminate.c'; fi`
+ at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfwm4-terminate.Tpo $(DEPDIR)/xfwm4-terminate.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	source='terminate.c' object='xfwm4-terminate.obj' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfwm4_CFLAGS) $(CFLAGS) -c -o xfwm4-terminate.obj `if test -f 'terminate.c'; then $(CYGPATH_W) 'terminate.c'; else $(CYGPATH_W) '$(srcdir)/terminate.c'; fi`
+
 xfwm4-transients.o: transients.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfwm4_CFLAGS) $(CFLAGS) -MT xfwm4-transients.o -MD -MP -MF $(DEPDIR)/xfwm4-transients.Tpo -c -o xfwm4-transients.o `test -f 'transients.c' || echo '$(srcdir)/'`transients.c
 @am__fastdepCC_TRUE@	mv -f $(DEPDIR)/xfwm4-transients.Tpo $(DEPDIR)/xfwm4-transients.Po
diff -udrN xfwm4-4.4.3.old/src/netwm.c xfwm4-4.4.3.new/src/netwm.c
--- xfwm4-4.4.3.old/src/netwm.c	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/netwm.c	2008-11-12 03:36:09.000000000 -0600
@@ -41,6 +41,7 @@
 #include "netwm.h"
 #include "screen.h"
 #include "stacking.h"
+#include "terminate.h"
 #include "transients.h"
 #include "workspaces.h"
 
@@ -1348,3 +1349,87 @@
     clientSetLayer (c, layer);
 }
 
+static gboolean
+ping_timeout_cb (gpointer data)
+{
+    Client *c;
+
+    TRACE ("entering ping_timeout_cb");
+
+    c = (Client *) data;
+    if (c)
+    {
+        c->ping_timeout_id = 0;
+        TRACE ("Ping timeout on client \"%s\"", c->name);
+        terminateShowDialog (c);
+    }
+    return (FALSE);
+}
+
+void
+clientRemoveNetWMPing (Client *c)
+{
+    g_return_if_fail (c != NULL);
+
+    TRACE ("entering clientSendNetWMPing");
+
+    if (c->ping_timeout_id)
+    {
+        g_source_remove (c->ping_timeout_id);
+    }
+    c->ping_timeout_id = 0;
+    c->ping_time = 0;
+}
+
+void
+clientReceiveNetWMPong (ScreenInfo *screen_info, Time timestamp)
+{
+    Client *c;
+    int i;
+
+    g_return_if_fail (screen_info != NULL);
+    g_return_if_fail (timestamp != CurrentTime);
+
+    TRACE ("entering clientReceiveNetWMPong, timestamp %u", (unsigned int) timestamp);
+
+    for (c = screen_info->clients, i = 0; i < screen_info->client_count; c = c->next, i++)
+    {
+        if (c->ping_time == timestamp)
+        {
+            clientRemoveNetWMPing (c);
+        }
+    }
+}
+
+gboolean
+clientSendNetWMPing (Client *c, Time timestamp)
+{
+    ScreenInfo *screen_info;
+    DisplayInfo *display_info;
+
+    g_return_val_if_fail (c != NULL, FALSE);
+
+    TRACE ("entering clientSendNetWMPing");
+
+    if (!FLAG_TEST (c->wm_flags, WM_FLAG_PING))
+    {
+        return (FALSE);
+    }
+
+    clientRemoveNetWMPing (c);
+
+    screen_info = c->screen_info;
+    display_info = screen_info->display_info;
+
+    /* Makes sure the tiemstamp is meaningfull */
+    c->ping_time = myDisplayGetTime (display_info, timestamp);
+    g_return_val_if_fail (timestamp != CurrentTime, FALSE);
+
+    sendClientMessage (screen_info, c->window, NET_WM_PING, timestamp);
+    c->ping_timeout_id =
+        g_timeout_add_full (G_PRIORITY_DEFAULT,
+                            CLIENT_PING_TIMEOUT,
+                            (GtkFunction) ping_timeout_cb,
+                            (gpointer) c, NULL);
+    return (TRUE);
+}
diff -udrN xfwm4-4.4.3.old/src/netwm.h xfwm4-4.4.3.new/src/netwm.h
--- xfwm4-4.4.3.old/src/netwm.h	2008-10-26 17:13:45.000000000 -0500
+++ xfwm4-4.4.3.new/src/netwm.h	2008-11-12 03:36:09.000000000 -0600
@@ -51,5 +51,10 @@
 void                     clientWindowType                       (Client *);
 void                     clientUpdateAboveState                 (Client *);
 void                     clientUpdateBelowState                 (Client *);
+void                     clientRemoveNetWMPing                  (Client *);
+gboolean                 clientSendNetWMPing                    (Client *,
+                                                                 Time);
+void                    clientReceiveNetWMPong                  (ScreenInfo *,
+                                                                 Time);
 
 #endif /* INC_NETWM_H */
diff -udrN xfwm4-4.4.3.old/src/terminate.c xfwm4-4.4.3.new/src/terminate.c
--- xfwm4-4.4.3.old/src/terminate.c	1969-12-31 18:00:00.000000000 -0600
+++ xfwm4-4.4.3.new/src/terminate.c	2008-11-12 03:36:09.000000000 -0600
@@ -0,0 +1,143 @@
+/*      $Id$
+
+        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., Inc., 51 Franklin Street, Fifth Floor, Boston,
+        MA 02110-1301, USA.
+
+        metacity - (c) 2001, 2002 Havoc Pennington
+        xfwm4    - (c) 2002-2008 Olivier Fourdan
+
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <sys/types.h>
+#include <signal.h>
+#include <unistd.h>
+#include <errno.h>
+
+#include "client.h"
+
+void
+terminateCloseDialog (Client *c)
+{
+    g_return_if_fail (c != NULL);
+
+    if (c->dialog_pid)
+    {
+        kill (c->dialog_pid, SIGKILL);
+        c->dialog_pid = 0;
+    }
+    if (c->dialog_fd >= 0)
+    {
+        close (c->dialog_fd);
+        c->dialog_fd = -1;
+    }
+}
+
+static gboolean
+terminateProcessIO (GIOChannel   *channel,
+                    GIOCondition  condition,
+                    gpointer      data)
+{
+    Client *c;
+    int pid;
+    Window xwindow;
+    char *str;
+    gsize len;
+    GError *err;
+
+    c = (Client *) data;
+    g_return_val_if_fail (c != NULL, FALSE);
+
+    str = NULL;
+    len = 0;
+    err = NULL;
+
+    if (condition & G_IO_IN)
+    {
+        g_io_channel_read_to_end (channel, &str, &len, &err);
+
+        if (err)
+        {
+            g_warning (_("Error reading data from child process: %s\n"), err->message);
+            g_error_free (err);
+        }
+        if (len > 0)
+        {
+            if (!g_strncasecmp(str, "yes", 3))
+            {
+                clientTerminate (c);
+            }
+        }
+
+        g_free (str);
+    }
+
+    terminateCloseDialog (c);
+
+    return FALSE;
+}
+
+gboolean
+terminateShowDialog (Client *c)
+{
+    ScreenInfo *screen_info;
+    char *argv[4];
+    GError *err;
+    int child_pid;
+    int outpipe;
+    GIOChannel *channel;
+    gchar *xid;
+
+    if (c->dialog_pid > 0)
+    {
+        return;
+    }
+
+    screen_info = c->screen_info;
+    xid = g_strdup_printf ("0x%lx", c->window);
+
+    argv[0] = LIBEXECDIR"/xfce4/xfwm4/helper-dialog";
+    argv[1] = xid;
+    argv[2] = c->name;
+    argv[3] = NULL;
+
+    err = NULL;
+    if (!gdk_spawn_on_screen_with_pipes (screen_info->gscr, NULL, argv, NULL,
+                                 0, NULL, NULL, &child_pid, NULL, &outpipe,
+                                 NULL, &err))
+    {
+        g_warning (_("Cannot spawn helper-dialog: %s\n"), err->message);
+        g_error_free (err);
+        g_free (xid);
+        return FALSE;
+    }
+    g_free (xid);
+
+    c->dialog_pid = child_pid;
+    c->dialog_fd = outpipe;
+
+    channel = g_io_channel_unix_new (c->dialog_fd);
+    g_io_add_watch_full (channel, G_PRIORITY_DEFAULT,
+                         G_IO_IN | G_IO_HUP | G_IO_ERR | G_IO_NVAL,
+                         terminateProcessIO,
+                         (gpointer) c, NULL);
+    g_io_channel_unref (channel);
+
+    return TRUE;
+}
+
diff -udrN xfwm4-4.4.3.old/src/terminate.h xfwm4-4.4.3.new/src/terminate.h
--- xfwm4-4.4.3.old/src/terminate.h	1969-12-31 18:00:00.000000000 -0600
+++ xfwm4-4.4.3.new/src/terminate.h	2008-11-12 03:36:09.000000000 -0600
@@ -0,0 +1,35 @@
+/*      $Id$
+
+        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., Inc., 51 Franklin Street, Fifth Floor, Boston,
+        MA 02110-1301, USA.
+
+        metacity - (c) 2001, 2002 Havoc Pennington
+        xfwm4    - (c) 2002-2008 Olivier Fourdan
+
+ */
+
+#ifndef INC_TERMINATE_H
+#define INC_TERMINATE_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "client.h"
+
+void                     terminateCloseDialog                   (Client *);
+gboolean                 terminateShowDialog                    (Client *);
+
+#endif /* INC_TERMINATE_H */


Index: xfwm4.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xfwm4/F-10/xfwm4.spec,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- xfwm4.spec	27 Oct 2008 21:09:01 -0000	1.27
+++ xfwm4.spec	29 Mar 2009 00:08:27 -0000	1.28
@@ -1,12 +1,15 @@
 Summary: Next generation window manager for Xfce
 Name: xfwm4
 Version: 4.4.3
-Release: 1%{?dist}
+Release: 2%{?dist}
 License: GPLv2+
 URL: http://www.xfce.org/
 Source0: http://www.xfce.org/archive/xfce-%{version}/src/xfwm4-%{version}.tar.bz2
 Patch0: xfwm4-4.4.2-nodoka.patch
 
+Patch101: xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6.patch
+Patch102: xfwm4-4.4.3-terminate-if-not-responding-backport-from-4.6-language.patch
+
 Group: User Interface/Desktops
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
@@ -33,6 +36,10 @@
 # use Nodoka Theme
 %patch0 -p1 -b .nodoka
 
+# backport "terminate if not responding" patches from 4.6
+%patch101 -p1 -b .terminate
+%patch102 -p1 -b .terminate-language
+
 %build
 %configure  --disable-static
 
@@ -66,6 +73,7 @@
 %doc example.gtkrc-2.0 README TODO COPYING AUTHORS COMPOSITOR
 %{_bindir}/xfwm4
 %{_libdir}/xfce4/mcs-plugins/*.so
+%{_libexecdir}/xfce4/xfwm4/
 %{_datadir}/applications/*
 %{_datadir}/icons/hicolor/*/*/*
 %dir %{_datadir}/xfce4
@@ -75,6 +83,9 @@
 %{_datadir}/themes
 
 %changelog
+* Sun Mar 29 2009 Christoph Wickert <cwickert at fedoraproject.org> - 4.4.3-2
+- backport "terminate if not responding" patches from 4.6 (#471197)
+
 * Mon Oct 27 2008 Christoph Wickert <cwickert at fedoraproject.org> - 4.4.3-1
 - Update to 4.4.3
 - Update gtk-update-icon-cache scriptlets


--- xfwm4-bluecurve-prep-4.2.2.patch DELETED ---


--- xfwm4-bluecurve-prep-4.2.3.1.patch DELETED ---


--- xfwm4-bluecurve-prep.patch DELETED ---




More information about the fedora-extras-commits mailing list