diff --git a/src/core/display.c b/src/core/display.c index 4ee61a8a1..b18f5a558 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -156,6 +156,7 @@ enum SHOWING_DESKTOP_CHANGED, RESTACKED, WORKAREAS_CHANGED, + CLOSING, LAST_SIGNAL }; @@ -493,6 +494,12 @@ meta_display_class_init (MetaDisplayClass *klass) G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_NONE, 0); + display_signals[CLOSING] = + g_signal_new ("closing", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + 0, NULL, NULL, NULL, + G_TYPE_NONE, 0); g_object_class_install_property (object_class, PROP_FOCUS_WINDOW, @@ -971,6 +978,8 @@ meta_display_close (MetaDisplay *display, display->closing += 1; + g_signal_emit (display, display_signals[CLOSING], 0); + meta_compositor_unmanage (display->compositor); meta_display_unmanage_windows (display, timestamp);