Add dedicated destructor requests to blur and contrast interface

Better resource management.

REVIEW: 125114
This commit is contained in:
Martin Gräßlin 2015-09-09 09:41:25 +02:00
parent dd5c39d2a6
commit a074f84cf1
2 changed files with 22 additions and 2 deletions

View file

@ -150,13 +150,15 @@ private:
static void commitCallback(wl_client *client, wl_resource *resource);
static void setRegionCallback(wl_client *client, wl_resource *resource, wl_resource *region);
static void releaseCallback(wl_client *client, wl_resource *resource);
static const struct org_kde_kwin_blur_interface s_interface;
};
const struct org_kde_kwin_blur_interface BlurInterface::Private::s_interface = {
commitCallback,
setRegionCallback
setRegionCallback,
releaseCallback
};
void BlurInterface::Private::commitCallback(wl_client *client, wl_resource *resource)
@ -182,6 +184,14 @@ void BlurInterface::Private::setRegionCallback(wl_client *client, wl_resource *r
}
}
void BlurInterface::Private::releaseCallback(wl_client *client, wl_resource *resource)
{
Q_UNUSED(client);
Private *p = reinterpret_cast<Private*>(wl_resource_get_user_data(resource));
wl_resource_destroy(resource);
p->q->deleteLater();
}
BlurInterface::Private::Private(BlurInterface *q, BlurManagerInterface *c, wl_resource *parentResource)
: Resource::Private(q, c, parentResource, &org_kde_kwin_blur_interface, &s_interface)
{

View file

@ -159,6 +159,7 @@ private:
static void setContrastCallback(wl_client *client, wl_resource *resource, wl_fixed_t contrast);
static void setIntensityCallback(wl_client *client, wl_resource *resource, wl_fixed_t intensity);
static void setSaturationCallback(wl_client *client, wl_resource *resource, wl_fixed_t saturation);
static void releaseCallback(wl_client *client, wl_resource *resource);
static const struct org_kde_kwin_contrast_interface s_interface;
};
@ -168,7 +169,8 @@ const struct org_kde_kwin_contrast_interface ContrastInterface::Private::s_inter
setRegionCallback,
setContrastCallback,
setIntensityCallback,
setSaturationCallback
setSaturationCallback,
releaseCallback
};
void ContrastInterface::Private::commitCallback(wl_client *client, wl_resource *resource)
@ -218,6 +220,14 @@ void ContrastInterface::Private::setSaturationCallback(wl_client *client, wl_res
p->pendingSaturation = wl_fixed_to_double(saturation);
}
void ContrastInterface::Private::releaseCallback(wl_client *client, wl_resource *resource)
{
Q_UNUSED(client);
Private *p = reinterpret_cast<Private*>(wl_resource_get_user_data(resource));
wl_resource_destroy(resource);
p->q->deleteLater();
}
ContrastInterface::Private::Private(ContrastInterface *q, ContrastManagerInterface *c, wl_resource *parentResource)
: Resource::Private(q, c, parentResource, &org_kde_kwin_contrast_interface, &s_interface)
{