summaryrefslogtreecommitdiff
path: root/libwnck/screen.c
diff options
context:
space:
mode:
Diffstat (limited to 'libwnck/screen.c')
-rw-r--r--libwnck/screen.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/libwnck/screen.c b/libwnck/screen.c
index 11f4e30..c47640c 100644
--- a/libwnck/screen.c
+++ b/libwnck/screen.c
@@ -513,6 +513,11 @@ wnck_screen_finalize (GObject *object)
screen = WNCK_SCREEN (object);
+ _wnck_select_input (screen->priv->xscreen,
+ screen->priv->xroot,
+ 0,
+ FALSE);
+
unqueue_update (screen);
for (tmp = screen->priv->stacked_windows; tmp; tmp = tmp->next)
@@ -2758,21 +2763,6 @@ _wnck_screen_change_workspace_name (WnckScreen *screen,
}
void
-_wnck_screen_shutdown (WnckScreen *screen)
-{
- GList *item;
- g_return_if_fail (WNCK_IS_SCREEN (screen));
-
- _wnck_select_input (screen->priv->xscreen,
- screen->priv->xroot,
- 0,
- FALSE);
- for (item = screen->priv->mapped_windows; item != NULL; item = g_list_next (item))
- _wnck_window_shutdown (WNCK_WINDOW (item->data));
- wnck_screen_finalize (G_OBJECT (screen));
-}
-
-void
_wnck_screen_shutdown_all (void)
{
int i;
@@ -2785,8 +2775,10 @@ _wnck_screen_shutdown_all (void)
for (i = 0; i < ScreenCount (display); ++i)
{
- if (screens[i] != NULL)
- _wnck_screen_shutdown (screens[i]);
+ if (screens[i] != NULL) {
+ g_object_unref (screens[i]);
+ screens[i] = NULL;
+ }
}
g_free (screens);