summaryrefslogtreecommitdiff
path: root/beryl-plugins/src/rotate.c
diff options
context:
space:
mode:
authorixce <ixce@d7aaf104-2d23-0410-ae22-9d23157bf5a3>2006-11-17 00:36:25 +0000
committerixce <ixce@d7aaf104-2d23-0410-ae22-9d23157bf5a3>2006-11-17 00:36:25 +0000
commit742b84efc50e1f21c916193feaa7c1daaeb02d52 (patch)
tree2c5f0a1dba25367bbb21ffff4fafd64b1bd67e94 /beryl-plugins/src/rotate.c
parent8cecec47ac63cf3002990bb0a0d3181ed948055f (diff)
downloadmarex-dev-742b84efc50e1f21c916193feaa7c1daaeb02d52.tar.gz
marex-dev-742b84efc50e1f21c916193feaa7c1daaeb02d52.tar.bz2
beryl-plugins, beryl-vidcap: correctly unhandle actions when plugin get unloaded
git-svn-id: file:///beryl/trunk@1251 d7aaf104-2d23-0410-ae22-9d23157bf5a3
Diffstat (limited to 'beryl-plugins/src/rotate.c')
-rw-r--r--beryl-plugins/src/rotate.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/beryl-plugins/src/rotate.c b/beryl-plugins/src/rotate.c
index f216baf..237f621 100644
--- a/beryl-plugins/src/rotate.c
+++ b/beryl-plugins/src/rotate.c
@@ -2870,6 +2870,7 @@ static void
rotateFiniScreen (CompPlugin * p, CompScreen * s)
{
ROTATE_SCREEN (s);
+ ROTATE_DISPLAY (s->display);
UNWRAP (rs, s, preparePaintScreen);
UNWRAP (rs, s, donePaintScreen);
@@ -2878,6 +2879,28 @@ rotateFiniScreen (CompPlugin * p, CompScreen * s)
UNWRAP (rs, s, windowGrabNotify);
UNWRAP (rs, s, windowUngrabNotify);
+ removeScreenAction (s,
+ &rd->opt[ROTATE_DISPLAY_OPTION_INITIATE].value.action);
+ removeScreenAction (s, &rd->opt[ROTATE_DISPLAY_OPTION_LEFT].value.action);
+ removeScreenAction (s, &rd->opt[ROTATE_DISPLAY_OPTION_RIGHT].value.action);
+ removeScreenAction (s, &rd->opt[ROTATE_DISPLAY_OPTION_UP].value.action);
+ removeScreenAction (s, &rd->opt[ROTATE_DISPLAY_OPTION_DOWN].value.action);
+ removeScreenAction (s,
+ &rd->opt[ROTATE_DISPLAY_OPTION_LEFT_WINDOW].value.
+ action);
+ removeScreenAction (s,
+ &rd->opt[ROTATE_DISPLAY_OPTION_RIGHT_WINDOW].value.
+ action);
+ removeScreenAction (s,
+ &rd->opt[ROTATE_DISPLAY_OPTION_FLIP_LEFT].value.action);
+ removeScreenAction (s,
+ &rd->opt[ROTATE_DISPLAY_OPTION_FLIP_RIGHT].value.action);
+ removeScreenAction (s,
+ &rd->opt[ROTATE_DISPLAY_OPTION_LEFT_WHEEL].value.action);
+ removeScreenAction (s,
+ &rd->opt[ROTATE_DISPLAY_OPTION_RIGHT_WHEEL].value.
+ action);
+
free (rs);
}