diff --git a/po/POTFILES.in b/po/POTFILES.in
index f51e98dd0..2df2675d8 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -17,7 +17,6 @@ src/compositor/meta-background.c
src/core/bell.c
src/core/display.c
src/core/keybindings.c
-src/core/meta-close-dialog-default.c
src/core/meta-context-main.c
src/core/meta-pad-action-mapper.c
src/core/mutter.c
diff --git a/src/compositor/meta-plugin-manager.c b/src/compositor/meta-plugin-manager.c
index 94d62c212..bec5cd455 100644
--- a/src/compositor/meta-plugin-manager.c
+++ b/src/compositor/meta-plugin-manager.c
@@ -29,7 +29,6 @@
#include "backends/x11/meta-clutter-backend-x11.h"
#include "compositor/compositor-private.h"
#include "compositor/meta-module.h"
-#include "core/meta-close-dialog-default-private.h"
#include "core/meta-inhibit-shortcuts-dialog-default-private.h"
#include "core/window-private.h"
#include "meta/meta-x11-errors.h"
@@ -396,7 +395,7 @@ meta_plugin_manager_create_close_dialog (MetaPluginManager *plugin_mgr,
if (klass->create_close_dialog)
return klass->create_close_dialog (plugin, window);
- return meta_close_dialog_default_new (window);
+ return NULL;
}
MetaInhibitShortcutsDialog *
diff --git a/src/core/delete.c b/src/core/delete.c
index 81537dfe5..ceaa8d6ee 100644
--- a/src/core/delete.c
+++ b/src/core/delete.c
@@ -56,6 +56,8 @@ meta_window_ensure_close_dialog (MetaWindow *window)
display = window->display;
window->close_dialog = meta_compositor_create_close_dialog (display->compositor,
window);
+ if (!window->close_dialog)
+ return;
g_signal_connect (window->close_dialog, "response",
G_CALLBACK (close_dialog_response_cb), window);
}
diff --git a/src/core/meta-close-dialog-default-private.h b/src/core/meta-close-dialog-default-private.h
deleted file mode 100644
index f149d3686..000000000
--- a/src/core/meta-close-dialog-default-private.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
-
-/*
- * Copyright (C) 2016 Red Hat
- *
- * 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 of the
- * License, 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, see .
- *
- * Author: Carlos Garnacho
- */
-
-#ifndef META_CLOSE_DIALOG_DEFAULT_H
-#define META_CLOSE_DIALOG_DEFAULT_H
-
-#include
-
-#include "meta/meta-plugin.h"
-
-#define META_TYPE_CLOSE_DIALOG_DEFAULT (meta_close_dialog_default_get_type ())
-G_DECLARE_FINAL_TYPE (MetaCloseDialogDefault,
- meta_close_dialog_default,
- META, CLOSE_DIALOG_DEFAULT,
- GObject)
-
-MetaCloseDialog * meta_close_dialog_default_new (MetaWindow *window);
-
-#endif /* META_CLOSE_DIALOG_DEFAULT_H */
diff --git a/src/core/meta-close-dialog-default.c b/src/core/meta-close-dialog-default.c
deleted file mode 100644
index fb48e859b..000000000
--- a/src/core/meta-close-dialog-default.c
+++ /dev/null
@@ -1,280 +0,0 @@
-/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
-
-/*
- * Copyright (C) 2001, 2002 Havoc Pennington
- * Copyright (C) 2004 Elijah Newren
- * Copyright (C) 2016 Red Hat
- *
- * 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 of the
- * License, 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, see .
- *
- * Author: Carlos Garnacho
- */
-
-#define _XOPEN_SOURCE /* for kill() */
-
-#include "config.h"
-
-#include "core/meta-close-dialog-default-private.h"
-#include "meta/meta-close-dialog.h"
-
-#include
-#include
-#include
-
-#include "core/util-private.h"
-#include "core/window-private.h"
-#include "x11/meta-x11-display-private.h"
-
-typedef struct _MetaCloseDialogDefaultPrivate MetaCloseDialogDefaultPrivate;
-
-struct _MetaCloseDialogDefault
-{
- GObject parent_instance;
- MetaWindow *window;
- int dialog_pid;
- guint child_watch_id;
-};
-
-enum
-{
- PROP_0,
- PROP_WINDOW,
- N_PROPS
-};
-
-GParamSpec *pspecs[N_PROPS] = { NULL };
-
-static void meta_close_dialog_iface_init (MetaCloseDialogInterface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (MetaCloseDialogDefault, meta_close_dialog_default,
- G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (META_TYPE_CLOSE_DIALOG,
- meta_close_dialog_iface_init))
-
-static void
-dialog_exited (GPid pid,
- int status,
- gpointer user_data)
-{
- MetaCloseDialogDefault *dialog = user_data;
-
- dialog->dialog_pid = -1;
-
- /* exit status of 0 means the user pressed "Force Quit" */
- if (WIFEXITED (status) && WEXITSTATUS (status) == 0)
- g_signal_emit_by_name (dialog, "response", META_CLOSE_DIALOG_RESPONSE_FORCE_CLOSE);
-}
-
-static void
-present_existing_delete_dialog (MetaCloseDialogDefault *dialog)
-{
- MetaWindow *window;
- GSList *windows;
- GSList *tmp;
-
- window = dialog->window;
-
- if (dialog->dialog_pid < 0)
- return;
-
- meta_topic (META_DEBUG_PING,
- "Presenting existing ping dialog for %s",
- window->desc);
-
- /* Activate transient for window that belongs to
- * mutter-dialog
- */
- windows = meta_display_list_windows (window->display, META_LIST_DEFAULT);
- tmp = windows;
-
- while (tmp != NULL)
- {
- MetaWindow *w = tmp->data;
-
- if (w->transient_for == window && w->res_class &&
- g_ascii_strcasecmp (w->res_class, "mutter-dialog") == 0)
- {
- meta_window_activate (w, CLUTTER_CURRENT_TIME);
- break;
- }
-
- tmp = tmp->next;
- }
-
- g_slist_free (windows);
-}
-
-static void
-meta_close_dialog_default_show (MetaCloseDialog *dialog)
-{
- MetaCloseDialogDefault *dialog_default = META_CLOSE_DIALOG_DEFAULT (dialog);
- MetaWindow *window = dialog_default->window;
- gchar *window_title, *window_content, *tmp;
- GPid dialog_pid;
-
- if (dialog_default->dialog_pid >= 0)
- {
- present_existing_delete_dialog (dialog_default);
- return;
- }
-
- /* This is to get a better string if the title isn't representable
- * in the locale encoding; actual conversion to UTF-8 is done inside
- * meta_show_dialog */
- if (window->title && window->title[0])
- {
- tmp = g_locale_from_utf8 (window->title, -1, NULL, NULL, NULL);
- if (tmp == NULL)
- window_title = NULL;
- else
- window_title = window->title;
- g_free (tmp);
- }
- else
- {
- window_title = NULL;
- }
-
- if (window_title)
- /* Translators: %s is a window title */
- tmp = g_strdup_printf (_("ā%sā is not responding."), window_title);
- else
- tmp = g_strdup (_("Application is not responding."));
-
- window_content = g_strdup_printf (
- "%s\n\n%s",
- tmp,
- _("You may choose to wait a short while for it to "
- "continue or force the application to quit entirely."));
-
- dialog_pid =
- meta_show_dialog ("--question",
- window_content, NULL, NULL,
- _("_Force Quit"), _("_Wait"),
- "face-sad-symbolic", window->xwindow,
- NULL, NULL);
-
- g_free (window_content);
- g_free (tmp);
-
- dialog_default->dialog_pid = dialog_pid;
- g_child_watch_add (dialog_pid, dialog_exited, dialog);
-}
-
-static void
-meta_close_dialog_default_hide (MetaCloseDialog *dialog)
-{
- MetaCloseDialogDefault *dialog_default;
-
- dialog_default = META_CLOSE_DIALOG_DEFAULT (dialog);
-
- g_clear_handle_id (&dialog_default->child_watch_id, g_source_remove);
-
- if (dialog_default->dialog_pid > -1)
- {
- kill (dialog_default->dialog_pid, SIGTERM);
- dialog_default->dialog_pid = -1;
- }
-}
-
-static void
-meta_close_dialog_iface_init (MetaCloseDialogInterface *iface)
-{
- iface->show = meta_close_dialog_default_show;
- iface->hide = meta_close_dialog_default_hide;
-}
-
-static void
-meta_close_dialog_default_finalize (GObject *object)
-{
- MetaCloseDialogDefault *dialog;
-
- dialog = META_CLOSE_DIALOG_DEFAULT (object);
-
- g_clear_handle_id (&dialog->child_watch_id, g_source_remove);
-
- if (dialog->dialog_pid > -1)
- {
- kill (dialog->dialog_pid, SIGKILL);
- dialog->dialog_pid = -1;
- }
-
- G_OBJECT_CLASS (meta_close_dialog_default_parent_class)->finalize (object);
-}
-
-static void
-meta_close_dialog_default_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- MetaCloseDialogDefault *dialog;
-
- dialog = META_CLOSE_DIALOG_DEFAULT (object);
-
- switch (prop_id)
- {
- case PROP_WINDOW:
- dialog->window = g_value_get_object (value);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
-}
-
-static void
-meta_close_dialog_default_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- MetaCloseDialogDefault *dialog;
-
- dialog = META_CLOSE_DIALOG_DEFAULT (object);
-
- switch (prop_id)
- {
- case PROP_WINDOW:
- g_value_set_object (value, dialog->window);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- }
-}
-
-static void
-meta_close_dialog_default_class_init (MetaCloseDialogDefaultClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
-
- object_class->finalize = meta_close_dialog_default_finalize;
- object_class->set_property = meta_close_dialog_default_set_property;
- object_class->get_property = meta_close_dialog_default_get_property;
-
- g_object_class_override_property (object_class, PROP_WINDOW, "window");
-}
-
-static void
-meta_close_dialog_default_init (MetaCloseDialogDefault *dialog)
-{
- dialog->dialog_pid = -1;
-}
-
-MetaCloseDialog *
-meta_close_dialog_default_new (MetaWindow *window)
-{
- return g_object_new (META_TYPE_CLOSE_DIALOG_DEFAULT,
- "window", window,
- NULL);
-}
diff --git a/src/meson.build b/src/meson.build
index 13a69c1a6..767b298c2 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -381,8 +381,6 @@ mutter_sources = [
'core/meta-clipboard-manager.c',
'core/meta-clipboard-manager.h',
'core/meta-close-dialog.c',
- 'core/meta-close-dialog-default.c',
- 'core/meta-close-dialog-default-private.h',
'core/meta-context-main.c',
'core/meta-context-main.h',
'core/meta-context-private.h',