compositor: Remove pending_input_region

Ever since the change to create the output window synchronously at startup,
there hasn't been any time where somebody could set a stage region the
output window was ready, so this was effectively dead code.

https://bugzilla.gnome.org/show_bug.cgi?id=720631
This commit is contained in:
Jasper St. Pierre 2014-01-16 15:27:58 -05:00
parent 254afc5022
commit 757674a9d6
2 changed files with 20 additions and 54 deletions

View File

@ -49,9 +49,6 @@ struct _MetaCompScreen
guint disable_unredirect_count; guint disable_unredirect_count;
MetaWindow *unredirected_window; MetaWindow *unredirected_window;
/* Before we create the output window */
XserverRegion pending_input_region;
gint switch_workspace_in_progress; gint switch_workspace_in_progress;
MetaPluginManager *plugin_mgr; MetaPluginManager *plugin_mgr;

View File

@ -279,8 +279,8 @@ meta_get_window_actors (MetaScreen *screen)
return info->windows; return info->windows;
} }
static void void
do_set_stage_input_region (MetaScreen *screen, meta_set_stage_input_region (MetaScreen *screen,
XserverRegion region) XserverRegion region)
{ {
MetaCompScreen *info = meta_screen_get_compositor_data (screen); MetaCompScreen *info = meta_screen_get_compositor_data (screen);
@ -298,35 +298,6 @@ do_set_stage_input_region (MetaScreen *screen,
XFixesSetWindowShapeRegion (xdpy, info->output, ShapeInput, 0, 0, region); XFixesSetWindowShapeRegion (xdpy, info->output, ShapeInput, 0, 0, region);
} }
void
meta_set_stage_input_region (MetaScreen *screen,
XserverRegion region)
{
MetaCompScreen *info = meta_screen_get_compositor_data (screen);
MetaDisplay *display = meta_screen_get_display (screen);
Display *xdpy = meta_display_get_xdisplay (display);
if (info->stage && info->output)
{
do_set_stage_input_region (screen, region);
}
else
{
/* Reset info->pending_input_region if one existed before and set the new
* one to use it later. */
if (info->pending_input_region)
{
XFixesDestroyRegion (xdpy, info->pending_input_region);
info->pending_input_region = None;
}
if (region != None)
{
info->pending_input_region = XFixesCreateRegion (xdpy, NULL, 0);
XFixesCopyRegion (xdpy, info->pending_input_region, region);
}
}
}
void void
meta_empty_stage_input_region (MetaScreen *screen) meta_empty_stage_input_region (MetaScreen *screen)
{ {
@ -592,14 +563,6 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
return; return;
info = g_new0 (MetaCompScreen, 1); info = g_new0 (MetaCompScreen, 1);
/*
* We use an empty input region for Clutter as a default because that allows
* the user to interact with all the windows displayed on the screen.
* We have to initialize info->pending_input_region to an empty region explicitly,
* because None value is used to mean that the whole screen is an input region.
*/
info->pending_input_region = XFixesCreateRegion (xdisplay, NULL, 0);
info->screen = screen; info->screen = screen;
meta_screen_set_compositor_data (screen, info); meta_screen_set_compositor_data (screen, info);
@ -673,14 +636,20 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
*/ */
XFixesSetWindowShapeRegion (xdisplay, info->output, ShapeBounding, 0, 0, None); XFixesSetWindowShapeRegion (xdisplay, info->output, ShapeBounding, 0, 0, None);
do_set_stage_input_region (screen, info->pending_input_region); info->output = get_output_window (screen);
if (info->pending_input_region != None) XReparentWindow (xdisplay, xwin, info->output, 0, 0);
{
XFixesDestroyRegion (xdisplay, info->pending_input_region);
info->pending_input_region = None;
}
info->plugin_mgr = meta_plugin_manager_new (screen); meta_empty_stage_input_region (screen);
/* Make sure there isn't any left-over output shape on the
* overlay window by setting the whole screen to be an
* output region.
*
* Note: there doesn't seem to be any real chance of that
* because the X server will destroy the overlay window
* when the last client using it exits.
*/
XFixesSetWindowShapeRegion (xdisplay, info->output, ShapeBounding, 0, 0, None);
/* Map overlay window before redirecting windows offscreen so we catch their /* Map overlay window before redirecting windows offscreen so we catch their
* contents until we show the stage. * contents until we show the stage.