diff --git a/src/core/workspace.c b/src/core/workspace.c index be70ba5a1..d1ba132ca 100644 --- a/src/core/workspace.c +++ b/src/core/workspace.c @@ -372,7 +372,12 @@ meta_workspace_add_window (MetaWorkspace *workspace, meta_workspace_invalidate_work_area (workspace); } - g_signal_emit (workspace, signals[WINDOW_ADDED], 0, window); + if (window->type == META_WINDOW_NORMAL || + window->type == META_WINDOW_DIALOG || + window->type == META_WINDOW_MODAL_DIALOG || + window->type == META_WINDOW_UTILITY) + g_signal_emit (workspace, signals[WINDOW_ADDED], 0, window); + g_object_notify_by_pspec (G_OBJECT (workspace), obj_props[PROP_N_WINDOWS]); } @@ -393,7 +398,12 @@ meta_workspace_remove_window (MetaWorkspace *workspace, meta_workspace_invalidate_work_area (workspace); } - g_signal_emit (workspace, signals[WINDOW_REMOVED], 0, window); + if (window->type == META_WINDOW_NORMAL || + window->type == META_WINDOW_DIALOG || + window->type == META_WINDOW_MODAL_DIALOG || + window->type == META_WINDOW_UTILITY) + g_signal_emit (workspace, signals[WINDOW_REMOVED], 0, window); + g_object_notify (G_OBJECT (workspace), "n-windows"); }