From e4501f801ed7bafc5b0aad8a221686bd781a8a3d Mon Sep 17 00:00:00 2001 From: Tomas Frydrych Date: Wed, 29 Oct 2008 13:03:03 +0000 Subject: [PATCH] mutter_plugin_set_stage_input_region() --- src/compositor/mutter/mutter-plugin-manager.c | 21 +++++++++++++++++++ src/include/mutter-plugin.h | 5 +++++ 2 files changed, 26 insertions(+) diff --git a/src/compositor/mutter/mutter-plugin-manager.c b/src/compositor/mutter/mutter-plugin-manager.c index cdb7c1359..c48baea6e 100644 --- a/src/compositor/mutter/mutter-plugin-manager.c +++ b/src/compositor/mutter/mutter-plugin-manager.c @@ -895,6 +895,27 @@ mutter_plugin_set_stage_input_area (MutterPlugin *plugin, XFixesSetWindowShapeRegion (xdpy, xstage, ShapeInput, 0, 0, region); XFixesSetWindowShapeRegion (xdpy, xoverlay, ShapeInput, 0, 0, region); + + XFixesDestroyRegion (xdpy, region); +} + +void +mutter_plugin_set_stage_input_region (MutterPlugin *plugin, + XserverRegion region) +{ + MutterPluginPrivate *priv = plugin->manager_private; + MutterPluginManager *mgr = priv->self; + MetaDisplay *display = meta_screen_get_display (mgr->screen); + Display *xdpy = meta_display_get_xdisplay (display); + Window xstage, xoverlay; + ClutterActor *stage; + + stage = mutter_get_stage_for_screen (mgr->screen); + xstage = clutter_x11_get_stage_window (CLUTTER_STAGE (stage)); + xoverlay = mutter_get_overlay_window (mgr->screen); + + XFixesSetWindowShapeRegion (xdpy, xstage, ShapeInput, 0, 0, region); + XFixesSetWindowShapeRegion (xdpy, xoverlay, ShapeInput, 0, 0, region); } GList * diff --git a/src/include/mutter-plugin.h b/src/include/mutter-plugin.h index 83f22f7bd..e8a733bee 100644 --- a/src/include/mutter-plugin.h +++ b/src/include/mutter-plugin.h @@ -29,6 +29,7 @@ #include "compositor-mutter.h" #include +#include /* * This file defines the plugin API. @@ -243,6 +244,10 @@ void mutter_plugin_set_stage_input_area (MutterPlugin *plugin, gint x, gint y, gint width, gint height); +void +mutter_plugin_set_stage_input_region (MutterPlugin *plugin, + XserverRegion region); + GList * mutter_plugin_get_windows (MutterPlugin *plugin);