diff options
author | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2021-12-26 15:32:44 +0200 |
---|---|---|
committer | Marco Trevisan <mail@3v1n0.net> | 2022-02-17 13:35:41 +0000 |
commit | f7d054df3f5b0c4f1a9cd6b300d303bd71f455ab (patch) | |
tree | f495e0de7d01d296a88defbe57e8db988f9d89ed /libwnck/screen.c | |
parent | 674a1594c5d4d78c98b0a270fc81543d64f0a034 (diff) | |
download | libwnck-f7d054df3f5b0c4f1a9cd6b300d303bd71f455ab.tar.gz |
screen: store WnckHandle in struct
Before 5ab809143a7d commit event filter was added in wnck_screen_get
when constructing first screen. Store WnckHandle in WnckScreen struct
to ensure that event filter is always added otherwise we might end up
without event filter if on startup nothing calls _wnck_get_handle.
This change introduces new requirement - wnck_set_client_type must be
used before using WnckScreen APIs.
Diffstat (limited to 'libwnck/screen.c')
-rw-r--r-- | libwnck/screen.c | 12 |
1 files changed, 12 insertions, 0 deletions
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. |