summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libwnck/private.h2
-rw-r--r--libwnck/screen.c12
2 files changed, 14 insertions, 0 deletions
diff --git a/libwnck/private.h b/libwnck/private.h
index f1a4af2..d37c328 100644
--- a/libwnck/private.h
+++ b/libwnck/private.h
@@ -133,6 +133,8 @@ SnDisplay* _wnck_screen_get_sn_display (WnckScreen *screen);
WnckScreen* _wnck_screen_get_existing (int number);
+WnckHandle *_wnck_screen_get_handle (WnckScreen *screen);
+
void _wnck_pager_activate_workspace (WnckWorkspace *wspace,
guint32 timestamp);
int _wnck_pager_get_n_workspaces (WnckPager *pager);
diff --git a/libwnck/screen.c b/libwnck/screen.c
index d6db387..473c3fc 100644
--- a/libwnck/screen.c
+++ b/libwnck/screen.c
@@ -69,6 +69,8 @@ static WnckScreen** screens = NULL;
struct _WnckScreenPrivate
{
+ WnckHandle *handle;
+
int number;
Window xroot;
Screen *xscreen;
@@ -529,6 +531,8 @@ wnck_screen_construct (Display *display,
WnckScreen *screen,
int number)
{
+ screen->priv->handle = _wnck_get_handle ();
+
/* Create the initial state of the screen. */
screen->priv->xroot = RootWindow (display, number);
screen->priv->xscreen = ScreenOfDisplay (display, number);
@@ -674,6 +678,14 @@ wnck_screen_get_for_root (gulong root_window_id)
return NULL;
}
+WnckHandle *
+_wnck_screen_get_handle (WnckScreen *screen)
+{
+ g_return_val_if_fail (WNCK_IS_SCREEN (screen), NULL);
+
+ return screen->priv->handle;
+}
+
/**
* wnck_screen_get_number:
* @screen: a #WnckScreen.