/* WindowManager.c generated by valac 0.56.18-dirty, the Vala compiler
 * generated from WindowManager.vala, do not modify */

/**/
/*  Copyright (C) 2012-2014 Tom Beckmann, Rico Tzschichholz*/
/*                2025 elementary, Inc.*/
/**/
/*  This program is free software: you can redistribute it and/or modify*/
/*  it under the terms of the GNU General Public License as published by*/
/*  the Free Software Foundation, either version 3 of the License, or*/
/*  (at your option) any later version.*/
/**/
/*  This program is distributed in the hope that it will be useful,*/
/*  but WITHOUT ANY WARRANTY; without even the implied warranty of*/
/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*/
/*  GNU General Public License for more details.*/
/**/
/*  You should have received a copy of the GNU General Public License*/
/*  along with this program.  If not, see <http://www.gnu.org/licenses/>.*/
/**/

#include <meta/meta-plugin.h>
#include "gala.h"
#include <glib-object.h>
#include <clutter/clutter.h>
#include <meta/meta-background-group.h>
#include <gio/gio.h>
#include <gee.h>
#include <meta/meta-window-actor.h>
#include <meta/compositor.h>
#include <mtk/mtk.h>
#include <meta/window.h>
#include <glib.h>
#include <meta/common.h>
#include <meta/keybindings.h>
#include <meta/meta-close-dialog.h>
#include <meta/meta-inhibit-shortcuts-dialog.h>
#include <stdlib.h>
#include <string.h>
#include <meta/display.h>
#include <meta/meta-background.h>
#include <meta/util.h>
#include <meta/compositor-mutter.h>
#include <meta/types.h>
#include <meta/meta-background-actor.h>
#include <float.h>
#include <math.h>
#include <meta/prefs.h>
#include <meta/meta-monitor-manager.h>
#include <meta/meta-context.h>
#include <meta/meta-backend.h>
#include <systemd/sd-daemon.h>
#include <atk-bridge.h>
#include <meta/meta-workspace-manager.h>
#include <meta/workspace.h>
#include <glib/gi18n-lib.h>

#define GALA_WINDOW_MANAGER_GALA_OPEN_MULTITASKING_VIEW "dbus-send --session --dest=org.pantheon.gala --print-reply /org/panthe" \
"on/gala org.pantheon.gala.PerformAction int32:1"
#define GALA_WINDOW_MANAGER_GALA_OPEN_APPLICATIONS_MENU "io.elementary.wingpanel --toggle-indicator=app-launcher"
#define CONFIG_VERSION "8.4.1"
#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define GALA_TYPE_WINDOW_MANAGER_GALA (gala_window_manager_gala_get_type ())
#define GALA_WINDOW_MANAGER_GALA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_MANAGER_GALA, GalaWindowManagerGala))
#define GALA_WINDOW_MANAGER_GALA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_WINDOW_MANAGER_GALA, GalaWindowManagerGalaClass))
#define GALA_IS_WINDOW_MANAGER_GALA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_MANAGER_GALA))
#define GALA_IS_WINDOW_MANAGER_GALA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_WINDOW_MANAGER_GALA))
#define GALA_WINDOW_MANAGER_GALA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_WINDOW_MANAGER_GALA, GalaWindowManagerGalaClass))

typedef struct _GalaWindowManagerGala GalaWindowManagerGala;
typedef struct _GalaWindowManagerGalaClass GalaWindowManagerGalaClass;
typedef struct _GalaWindowManagerGalaPrivate GalaWindowManagerGalaPrivate;

#define GALA_TYPE_MODAL_GROUP (gala_modal_group_get_type ())
#define GALA_MODAL_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_MODAL_GROUP, GalaModalGroup))
#define GALA_MODAL_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_MODAL_GROUP, GalaModalGroupClass))
#define GALA_IS_MODAL_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_MODAL_GROUP))
#define GALA_IS_MODAL_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_MODAL_GROUP))
#define GALA_MODAL_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_MODAL_GROUP, GalaModalGroupClass))

typedef struct _GalaModalGroup GalaModalGroup;
typedef struct _GalaModalGroupClass GalaModalGroupClass;

#define GALA_TYPE_MULTITASKING_VIEW (gala_multitasking_view_get_type ())
#define GALA_MULTITASKING_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_MULTITASKING_VIEW, GalaMultitaskingView))
#define GALA_MULTITASKING_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_MULTITASKING_VIEW, GalaMultitaskingViewClass))
#define GALA_IS_MULTITASKING_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_MULTITASKING_VIEW))
#define GALA_IS_MULTITASKING_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_MULTITASKING_VIEW))
#define GALA_MULTITASKING_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_MULTITASKING_VIEW, GalaMultitaskingViewClass))

typedef struct _GalaMultitaskingView GalaMultitaskingView;
typedef struct _GalaMultitaskingViewClass GalaMultitaskingViewClass;

#define GALA_TYPE_POINTER_LOCATOR (gala_pointer_locator_get_type ())
#define GALA_POINTER_LOCATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_POINTER_LOCATOR, GalaPointerLocator))
#define GALA_POINTER_LOCATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_POINTER_LOCATOR, GalaPointerLocatorClass))
#define GALA_IS_POINTER_LOCATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_POINTER_LOCATOR))
#define GALA_IS_POINTER_LOCATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_POINTER_LOCATOR))
#define GALA_POINTER_LOCATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_POINTER_LOCATOR, GalaPointerLocatorClass))

typedef struct _GalaPointerLocator GalaPointerLocator;
typedef struct _GalaPointerLocatorClass GalaPointerLocatorClass;

#define GALA_TYPE_SYSTEM_BACKGROUND (gala_system_background_get_type ())
#define GALA_SYSTEM_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SYSTEM_BACKGROUND, GalaSystemBackground))
#define GALA_SYSTEM_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SYSTEM_BACKGROUND, GalaSystemBackgroundClass))
#define GALA_IS_SYSTEM_BACKGROUND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SYSTEM_BACKGROUND))
#define GALA_IS_SYSTEM_BACKGROUND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SYSTEM_BACKGROUND))
#define GALA_SYSTEM_BACKGROUND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SYSTEM_BACKGROUND, GalaSystemBackgroundClass))

typedef struct _GalaSystemBackground GalaSystemBackground;
typedef struct _GalaSystemBackgroundClass GalaSystemBackgroundClass;

#define GALA_TYPE_WINDOW_SWITCHER (gala_window_switcher_get_type ())
#define GALA_WINDOW_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_SWITCHER, GalaWindowSwitcher))
#define GALA_WINDOW_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_WINDOW_SWITCHER, GalaWindowSwitcherClass))
#define GALA_IS_WINDOW_SWITCHER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_SWITCHER))
#define GALA_IS_WINDOW_SWITCHER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_WINDOW_SWITCHER))
#define GALA_WINDOW_SWITCHER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_WINDOW_SWITCHER, GalaWindowSwitcherClass))

typedef struct _GalaWindowSwitcher GalaWindowSwitcher;
typedef struct _GalaWindowSwitcherClass GalaWindowSwitcherClass;

#define GALA_TYPE_WINDOW_OVERVIEW (gala_window_overview_get_type ())
#define GALA_WINDOW_OVERVIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_OVERVIEW, GalaWindowOverview))
#define GALA_WINDOW_OVERVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_WINDOW_OVERVIEW, GalaWindowOverviewClass))
#define GALA_IS_WINDOW_OVERVIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_OVERVIEW))
#define GALA_IS_WINDOW_OVERVIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_WINDOW_OVERVIEW))
#define GALA_WINDOW_OVERVIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_WINDOW_OVERVIEW, GalaWindowOverviewClass))

typedef struct _GalaWindowOverview GalaWindowOverview;
typedef struct _GalaWindowOverviewClass GalaWindowOverviewClass;

#define GALA_TYPE_SCREEN_SAVER_MANAGER (gala_screen_saver_manager_get_type ())
#define GALA_SCREEN_SAVER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SCREEN_SAVER_MANAGER, GalaScreenSaverManager))
#define GALA_SCREEN_SAVER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SCREEN_SAVER_MANAGER, GalaScreenSaverManagerClass))
#define GALA_IS_SCREEN_SAVER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SCREEN_SAVER_MANAGER))
#define GALA_IS_SCREEN_SAVER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SCREEN_SAVER_MANAGER))
#define GALA_SCREEN_SAVER_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SCREEN_SAVER_MANAGER, GalaScreenSaverManagerClass))

typedef struct _GalaScreenSaverManager GalaScreenSaverManager;
typedef struct _GalaScreenSaverManagerClass GalaScreenSaverManagerClass;

#define GALA_TYPE_HOT_CORNER_MANAGER (gala_hot_corner_manager_get_type ())
#define GALA_HOT_CORNER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_HOT_CORNER_MANAGER, GalaHotCornerManager))
#define GALA_HOT_CORNER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_HOT_CORNER_MANAGER, GalaHotCornerManagerClass))
#define GALA_IS_HOT_CORNER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_HOT_CORNER_MANAGER))
#define GALA_IS_HOT_CORNER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_HOT_CORNER_MANAGER))
#define GALA_HOT_CORNER_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_HOT_CORNER_MANAGER, GalaHotCornerManagerClass))

typedef struct _GalaHotCornerManager GalaHotCornerManager;
typedef struct _GalaHotCornerManagerClass GalaHotCornerManagerClass;

#define GALA_TYPE_KEYBOARD_MANAGER (gala_keyboard_manager_get_type ())
#define GALA_KEYBOARD_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_KEYBOARD_MANAGER, GalaKeyboardManager))
#define GALA_KEYBOARD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_KEYBOARD_MANAGER, GalaKeyboardManagerClass))
#define GALA_IS_KEYBOARD_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_KEYBOARD_MANAGER))
#define GALA_IS_KEYBOARD_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_KEYBOARD_MANAGER))
#define GALA_KEYBOARD_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_KEYBOARD_MANAGER, GalaKeyboardManagerClass))

typedef struct _GalaKeyboardManager GalaKeyboardManager;
typedef struct _GalaKeyboardManagerClass GalaKeyboardManagerClass;

#define GALA_TYPE_WINDOW_TRACKER (gala_window_tracker_get_type ())
#define GALA_WINDOW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_TRACKER, GalaWindowTracker))
#define GALA_WINDOW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_WINDOW_TRACKER, GalaWindowTrackerClass))
#define GALA_IS_WINDOW_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_TRACKER))
#define GALA_IS_WINDOW_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_WINDOW_TRACKER))
#define GALA_WINDOW_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_WINDOW_TRACKER, GalaWindowTrackerClass))

typedef struct _GalaWindowTracker GalaWindowTracker;
typedef struct _GalaWindowTrackerClass GalaWindowTrackerClass;

#define GALA_TYPE_WINDOW_MOVER (gala_window_mover_get_type ())
#define GALA_WINDOW_MOVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_MOVER, GalaWindowMover))
#define GALA_WINDOW_MOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_WINDOW_MOVER, GalaWindowMoverClass))
#define GALA_IS_WINDOW_MOVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_MOVER))
#define GALA_IS_WINDOW_MOVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_WINDOW_MOVER))
#define GALA_WINDOW_MOVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_WINDOW_MOVER, GalaWindowMoverClass))

typedef struct _GalaWindowMover GalaWindowMover;
typedef struct _GalaWindowMoverClass GalaWindowMoverClass;

#define GALA_TYPE_FILTER_MANAGER (gala_filter_manager_get_type ())
#define GALA_FILTER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_FILTER_MANAGER, GalaFilterManager))
#define GALA_FILTER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_FILTER_MANAGER, GalaFilterManagerClass))
#define GALA_IS_FILTER_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_FILTER_MANAGER))
#define GALA_IS_FILTER_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_FILTER_MANAGER))
#define GALA_FILTER_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_FILTER_MANAGER, GalaFilterManagerClass))

typedef struct _GalaFilterManager GalaFilterManager;
typedef struct _GalaFilterManagerClass GalaFilterManagerClass;

#define GALA_TYPE_NOTIFICATIONS_MANAGER (gala_notifications_manager_get_type ())
#define GALA_NOTIFICATIONS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_NOTIFICATIONS_MANAGER, GalaNotificationsManager))
#define GALA_NOTIFICATIONS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_NOTIFICATIONS_MANAGER, GalaNotificationsManagerClass))
#define GALA_IS_NOTIFICATIONS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_NOTIFICATIONS_MANAGER))
#define GALA_IS_NOTIFICATIONS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_NOTIFICATIONS_MANAGER))
#define GALA_NOTIFICATIONS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_NOTIFICATIONS_MANAGER, GalaNotificationsManagerClass))

typedef struct _GalaNotificationsManager GalaNotificationsManager;
typedef struct _GalaNotificationsManagerClass GalaNotificationsManagerClass;

#define GALA_TYPE_SCREENSHOT_MANAGER (gala_screenshot_manager_get_type ())
#define GALA_SCREENSHOT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SCREENSHOT_MANAGER, GalaScreenshotManager))
#define GALA_SCREENSHOT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SCREENSHOT_MANAGER, GalaScreenshotManagerClass))
#define GALA_IS_SCREENSHOT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SCREENSHOT_MANAGER))
#define GALA_IS_SCREENSHOT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SCREENSHOT_MANAGER))
#define GALA_SCREENSHOT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SCREENSHOT_MANAGER, GalaScreenshotManagerClass))

typedef struct _GalaScreenshotManager GalaScreenshotManager;
typedef struct _GalaScreenshotManagerClass GalaScreenshotManagerClass;

#define GALA_TYPE_ZOOM (gala_zoom_get_type ())
#define GALA_ZOOM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_ZOOM, GalaZoom))
#define GALA_ZOOM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_ZOOM, GalaZoomClass))
#define GALA_IS_ZOOM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_ZOOM))
#define GALA_IS_ZOOM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_ZOOM))
#define GALA_ZOOM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_ZOOM, GalaZoomClass))

typedef struct _GalaZoom GalaZoom;
typedef struct _GalaZoomClass GalaZoomClass;

#define GALA_TYPE_DAEMON_MANAGER (gala_daemon_manager_get_type ())
#define GALA_DAEMON_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_DAEMON_MANAGER, GalaDaemonManager))
#define GALA_DAEMON_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_DAEMON_MANAGER, GalaDaemonManagerClass))
#define GALA_IS_DAEMON_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_DAEMON_MANAGER))
#define GALA_IS_DAEMON_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_DAEMON_MANAGER))
#define GALA_DAEMON_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_DAEMON_MANAGER, GalaDaemonManagerClass))

typedef struct _GalaDaemonManager GalaDaemonManager;
typedef struct _GalaDaemonManagerClass GalaDaemonManagerClass;

#define GALA_TYPE_NOTIFICATION_STACK (gala_notification_stack_get_type ())
#define GALA_NOTIFICATION_STACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_NOTIFICATION_STACK, GalaNotificationStack))
#define GALA_NOTIFICATION_STACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_NOTIFICATION_STACK, GalaNotificationStackClass))
#define GALA_IS_NOTIFICATION_STACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_NOTIFICATION_STACK))
#define GALA_IS_NOTIFICATION_STACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_NOTIFICATION_STACK))
#define GALA_NOTIFICATION_STACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_NOTIFICATION_STACK, GalaNotificationStackClass))

typedef struct _GalaNotificationStack GalaNotificationStack;
typedef struct _GalaNotificationStackClass GalaNotificationStackClass;
enum  {
	GALA_WINDOW_MANAGER_GALA_0_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_UI_GROUP_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_STAGE_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_WINDOW_GROUP_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_TOP_WINDOW_GROUP_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_MODAL_GROUP_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_BACKGROUND_GROUP_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_MULTITASKING_VIEW_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_WINDOW_OVERVIEW_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_SCREENSAVER_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_WINDOW_TRACKER_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_NUM_PROPERTIES
};
static GParamSpec* gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL)))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
#define _g_variant_type_free0(var) ((var == NULL) ? NULL : (var = (g_variant_type_free (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
typedef struct _GalaWindowManagerGalaStartX11ServicesData GalaWindowManagerGalaStartX11ServicesData;
typedef struct _Block12Data Block12Data;

#define GALA_TYPE_WINDOW_LISTENER (gala_window_listener_get_type ())
#define GALA_WINDOW_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_LISTENER, GalaWindowListener))
#define GALA_WINDOW_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_WINDOW_LISTENER, GalaWindowListenerClass))
#define GALA_IS_WINDOW_LISTENER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_LISTENER))
#define GALA_IS_WINDOW_LISTENER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_WINDOW_LISTENER))
#define GALA_WINDOW_LISTENER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_WINDOW_LISTENER, GalaWindowListenerClass))

typedef struct _GalaWindowListener GalaWindowListener;
typedef struct _GalaWindowListenerClass GalaWindowListenerClass;
#define __vala_ClutterColor_free0(var) ((var == NULL) ? NULL : (var = (_vala_ClutterColor_free (var), NULL)))

#define GALA_TYPE_BACKGROUND_CONTAINER (gala_background_container_get_type ())
#define GALA_BACKGROUND_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_BACKGROUND_CONTAINER, GalaBackgroundContainer))
#define GALA_BACKGROUND_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_BACKGROUND_CONTAINER, GalaBackgroundContainerClass))
#define GALA_IS_BACKGROUND_CONTAINER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_BACKGROUND_CONTAINER))
#define GALA_IS_BACKGROUND_CONTAINER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_BACKGROUND_CONTAINER))
#define GALA_BACKGROUND_CONTAINER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_BACKGROUND_CONTAINER, GalaBackgroundContainerClass))

typedef struct _GalaBackgroundContainer GalaBackgroundContainer;
typedef struct _GalaBackgroundContainerClass GalaBackgroundContainerClass;

#define GALA_TYPE_PLUGIN_MANAGER (gala_plugin_manager_get_type ())
#define GALA_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_PLUGIN_MANAGER, GalaPluginManager))
#define GALA_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_PLUGIN_MANAGER, GalaPluginManagerClass))
#define GALA_IS_PLUGIN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_PLUGIN_MANAGER))
#define GALA_IS_PLUGIN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_PLUGIN_MANAGER))
#define GALA_PLUGIN_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_PLUGIN_MANAGER, GalaPluginManagerClass))

typedef struct _GalaPluginManager GalaPluginManager;
typedef struct _GalaPluginManagerClass GalaPluginManagerClass;

#define GALA_TYPE_SHELL_CLIENTS_MANAGER (gala_shell_clients_manager_get_type ())
#define GALA_SHELL_CLIENTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SHELL_CLIENTS_MANAGER, GalaShellClientsManager))
#define GALA_SHELL_CLIENTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SHELL_CLIENTS_MANAGER, GalaShellClientsManagerClass))
#define GALA_IS_SHELL_CLIENTS_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SHELL_CLIENTS_MANAGER))
#define GALA_IS_SHELL_CLIENTS_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SHELL_CLIENTS_MANAGER))
#define GALA_SHELL_CLIENTS_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SHELL_CLIENTS_MANAGER, GalaShellClientsManagerClass))

typedef struct _GalaShellClientsManager GalaShellClientsManager;
typedef struct _GalaShellClientsManagerClass GalaShellClientsManagerClass;

#define GALA_TYPE_DWELL_CLICK_TIMER (gala_dwell_click_timer_get_type ())
#define GALA_DWELL_CLICK_TIMER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_DWELL_CLICK_TIMER, GalaDwellClickTimer))
#define GALA_DWELL_CLICK_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_DWELL_CLICK_TIMER, GalaDwellClickTimerClass))
#define GALA_IS_DWELL_CLICK_TIMER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_DWELL_CLICK_TIMER))
#define GALA_IS_DWELL_CLICK_TIMER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_DWELL_CLICK_TIMER))
#define GALA_DWELL_CLICK_TIMER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_DWELL_CLICK_TIMER, GalaDwellClickTimerClass))

typedef struct _GalaDwellClickTimer GalaDwellClickTimer;
typedef struct _GalaDwellClickTimerClass GalaDwellClickTimerClass;

#define GALA_TYPE_SESSION_LOCKER (gala_session_locker_get_type ())
#define GALA_SESSION_LOCKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SESSION_LOCKER, GalaSessionLocker))
#define GALA_SESSION_LOCKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SESSION_LOCKER, GalaSessionLockerClass))
#define GALA_IS_SESSION_LOCKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SESSION_LOCKER))
#define GALA_IS_SESSION_LOCKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SESSION_LOCKER))
#define GALA_SESSION_LOCKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SESSION_LOCKER, GalaSessionLockerClass))

typedef struct _GalaSessionLocker GalaSessionLocker;
typedef struct _GalaSessionLockerClass GalaSessionLockerClass;

#define GALA_TYPE_SUPER_SCROLL_ACTION (gala_super_scroll_action_get_type ())
#define GALA_SUPER_SCROLL_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SUPER_SCROLL_ACTION, GalaSuperScrollAction))
#define GALA_SUPER_SCROLL_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SUPER_SCROLL_ACTION, GalaSuperScrollActionClass))
#define GALA_IS_SUPER_SCROLL_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SUPER_SCROLL_ACTION))
#define GALA_IS_SUPER_SCROLL_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SUPER_SCROLL_ACTION))
#define GALA_SUPER_SCROLL_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SUPER_SCROLL_ACTION, GalaSuperScrollActionClass))

typedef struct _GalaSuperScrollAction GalaSuperScrollAction;
typedef struct _GalaSuperScrollActionClass GalaSuperScrollActionClass;
typedef void (*GalaInternalUtilsWindowActorReadyCallback) (MetaWindowActor* window_actor, gpointer user_data);
typedef enum  {
	GALA_INPUT_AREA_NONE,
	GALA_INPUT_AREA_FULLSCREEN,
	GALA_INPUT_AREA_MULTITASKING_VIEW,
	GALA_INPUT_AREA_DEFAULT
} GalaInputArea;

#define GALA_TYPE_INPUT_AREA (gala_input_area_get_type ())
typedef struct _Block13Data Block13Data;
typedef struct _Block14Data Block14Data;
typedef struct _Block15Data Block15Data;
typedef struct _Block16Data Block16Data;
typedef struct _Block17Data Block17Data;
typedef struct _Block18Data Block18Data;
typedef struct _Block19Data Block19Data;
typedef struct _Block20Data Block20Data;
typedef struct _Block21Data Block21Data;
typedef struct _Block22Data Block22Data;
typedef struct _Block23Data Block23Data;
typedef struct _Block24Data Block24Data;
typedef struct _Block25Data Block25Data;
typedef struct _Block26Data Block26Data;
typedef struct _Block27Data Block27Data;
typedef struct _Block28Data Block28Data;
typedef struct _Block29Data Block29Data;

#define GALA_WINDOW_LISTENER_TYPE_WINDOW_GEOMETRY (gala_window_listener_window_geometry_get_type ())
typedef struct _GalaWindowListenerWindowGeometry GalaWindowListenerWindowGeometry;
#define _gala_window_listener_window_geometry_free0(var) ((var == NULL) ? NULL : (var = (gala_window_listener_window_geometry_free (var), NULL)))

#define GALA_TYPE_ACCESS_DIALOG (gala_access_dialog_get_type ())
#define GALA_ACCESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_ACCESS_DIALOG, GalaAccessDialog))
#define GALA_ACCESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_ACCESS_DIALOG, GalaAccessDialogClass))
#define GALA_IS_ACCESS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_ACCESS_DIALOG))
#define GALA_IS_ACCESS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_ACCESS_DIALOG))
#define GALA_ACCESS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_ACCESS_DIALOG, GalaAccessDialogClass))

typedef struct _GalaAccessDialog GalaAccessDialog;
typedef struct _GalaAccessDialogClass GalaAccessDialogClass;
typedef struct _Block30Data Block30Data;

#define GALA_TYPE_CLOSE_DIALOG (gala_close_dialog_get_type ())
#define GALA_CLOSE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_CLOSE_DIALOG, GalaCloseDialog))
#define GALA_CLOSE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_CLOSE_DIALOG, GalaCloseDialogClass))
#define GALA_IS_CLOSE_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_CLOSE_DIALOG))
#define GALA_IS_CLOSE_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_CLOSE_DIALOG))
#define GALA_CLOSE_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_CLOSE_DIALOG, GalaCloseDialogClass))

typedef struct _GalaCloseDialog GalaCloseDialog;
typedef struct _GalaCloseDialogClass GalaCloseDialogClass;

#define GALA_TYPE_INHIBIT_SHORTCUTS_DIALOG (gala_inhibit_shortcuts_dialog_get_type ())
#define GALA_INHIBIT_SHORTCUTS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_INHIBIT_SHORTCUTS_DIALOG, GalaInhibitShortcutsDialog))
#define GALA_INHIBIT_SHORTCUTS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_INHIBIT_SHORTCUTS_DIALOG, GalaInhibitShortcutsDialogClass))
#define GALA_IS_INHIBIT_SHORTCUTS_DIALOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_INHIBIT_SHORTCUTS_DIALOG))
#define GALA_IS_INHIBIT_SHORTCUTS_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_INHIBIT_SHORTCUTS_DIALOG))
#define GALA_INHIBIT_SHORTCUTS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_INHIBIT_SHORTCUTS_DIALOG, GalaInhibitShortcutsDialogClass))

typedef struct _GalaInhibitShortcutsDialog GalaInhibitShortcutsDialog;
typedef struct _GalaInhibitShortcutsDialogClass GalaInhibitShortcutsDialogClass;

struct _GalaWindowManagerGala {
	MetaPlugin parent_instance;
	GalaWindowManagerGalaPrivate * priv;
};

struct _GalaWindowManagerGalaClass {
	MetaPluginClass parent_class;
};

struct _GalaWindowManagerGalaPrivate {
	ClutterActor* _ui_group;
	ClutterStage* _stage;
	ClutterActor* _window_group;
	ClutterActor* _top_window_group;
	ClutterActor* _shell_group;
	ClutterActor* _menu_group;
	GalaModalGroup* _modal_group;
	MetaBackgroundGroup* _background_group;
	GalaMultitaskingView* _multitasking_view;
	GalaPointerLocator* _pointer_locator;
	GalaSystemBackground* system_background;
	MetaPluginInfo info;
	GalaWindowSwitcher* window_switcher;
	GalaWindowOverview* _window_overview;
	GalaScreenSaverManager* _screensaver;
	GalaHotCornerManager* hot_corner_manager;
	GalaKeyboardManager* keyboard_manager;
	GalaWindowTracker* _window_tracker;
	GalaWindowMover* window_mover;
	GalaFilterManager* filter_manager;
	GalaNotificationsManager* notifications_manager;
	GalaScreenshotManager* screenshot_manager;
	GalaZoom* zoom;
	ClutterActor* tile_preview;
	GalaDaemonManager* daemon_manager;
	GalaNotificationStack* notification_stack;
	GeeLinkedList* modal_stack;
	GeeHashSet* minimizing;
	GeeHashSet* maximizing;
	GeeHashSet* unmaximizing;
	GeeHashSet* mapping;
	GeeHashSet* destroying;
	GeeHashSet* unminimizing;
	MetaSizeChange* which_change;
	MtkRectangle old_rect_size_change;
	ClutterActor* latest_window_snapshot;
	GSettings* behavior_settings;
};

struct _GalaWindowManagerGalaStartX11ServicesData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	GTask* task;
	GDBusConnection* session_bus;
	GDBusConnection* _tmp0_;
	GDBusConnection* _tmp1_;
	GVariant* _tmp2_;
	GVariant* _tmp3_;
	GVariantType* _tmp4_;
	GVariantType* _tmp5_;
	GVariant* _tmp6_;
	GVariant* _tmp7_;
	GError* e;
	GError* _tmp8_;
	const gchar* _tmp9_;
	GError* _inner_error1_;
	GError* _inner_error0_;
};

struct _Block12Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaDisplay* display;
};

struct _Block13Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaWindowActor* transient_actor;
};

struct _Block14Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	GalaModalProxy* proxy;
	gulong handler;
	MetaWindow* window;
	MetaGrabOp op;
};

struct _Block15Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaWindowActor* actor;
};

struct _Block16Data {
	int _ref_count_;
	Block15Data * _data15_;
	gulong minimize_handler_id;
};

struct _Block17Data {
	int _ref_count_;
	Block15Data * _data15_;
	gulong minimize_handler_id;
};

struct _Block18Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	gulong maximize_old_handler_id;
	gulong handler_id;
	MetaWindowActor* actor;
};

struct _Block19Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaWindowActor* actor;
};

struct _Block20Data {
	int _ref_count_;
	Block19Data * _data19_;
	gulong unminimize_handler_id;
};

struct _Block21Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaWindowActor* actor;
};

struct _Block22Data {
	int _ref_count_;
	Block21Data * _data21_;
	gulong map_handler_id;
};

struct _Block23Data {
	int _ref_count_;
	Block21Data * _data21_;
	gulong map_handler_id;
};

struct _Block24Data {
	int _ref_count_;
	Block21Data * _data21_;
	gulong map_handler_id;
};

struct _Block25Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaWindow* window;
	MetaWindowActor* actor;
};

struct _Block26Data {
	int _ref_count_;
	Block25Data * _data25_;
	gulong destroy_handler_id;
};

struct _Block27Data {
	int _ref_count_;
	Block25Data * _data25_;
	gulong destroy_handler_id;
};

struct _Block28Data {
	int _ref_count_;
	Block25Data * _data25_;
	gulong destroy_handler_id;
};

struct _Block29Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	gulong unmaximize_old_handler_id;
	gulong handler_id;
	MetaWindowActor* actor;
};

struct _GalaWindowListenerWindowGeometry {
	MtkRectangle inner;
	MtkRectangle outer;
};

struct _Block30Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	gint timeout;
	guint dialog_timeout_id;
	GalaAccessDialog* dialog;
};

static gint GalaWindowManagerGala_private_offset;
static gpointer gala_window_manager_gala_parent_class = NULL;
static GalaWindowManagerIface * gala_window_manager_gala_gala_window_manager_parent_iface = NULL;

VALA_EXTERN GType gala_window_manager_gala_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowManagerGala, g_object_unref)
VALA_EXTERN GType gala_modal_group_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaModalGroup, g_object_unref)
VALA_EXTERN GType gala_multitasking_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaMultitaskingView, g_object_unref)
VALA_EXTERN GType gala_pointer_locator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaPointerLocator, g_object_unref)
VALA_EXTERN GType gala_system_background_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaSystemBackground, g_object_unref)
VALA_EXTERN GType gala_window_switcher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowSwitcher, g_object_unref)
VALA_EXTERN GType gala_window_overview_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowOverview, g_object_unref)
VALA_EXTERN GType gala_screen_saver_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaScreenSaverManager, g_object_unref)
VALA_EXTERN guint gala_screen_saver_manager_register_object (void* object,
                                                 GDBusConnection* connection,
                                                 const gchar* path,
                                                 GError** error);
VALA_EXTERN GType gala_hot_corner_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaHotCornerManager, g_object_unref)
VALA_EXTERN GType gala_keyboard_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaKeyboardManager, g_object_unref)
VALA_EXTERN GType gala_window_tracker_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowTracker, g_object_unref)
VALA_EXTERN GType gala_window_mover_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowMover, g_object_unref)
VALA_EXTERN GType gala_filter_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaFilterManager, g_object_unref)
VALA_EXTERN GType gala_notifications_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaNotificationsManager, g_object_unref)
VALA_EXTERN GType gala_screenshot_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaScreenshotManager, g_object_unref)
VALA_EXTERN guint gala_screenshot_manager_register_object (void* object,
                                               GDBusConnection* connection,
                                               const gchar* path,
                                               GError** error);
VALA_EXTERN GType gala_zoom_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaZoom, g_object_unref)
VALA_EXTERN GType gala_daemon_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDaemonManager, g_object_unref)
VALA_EXTERN GType gala_notification_stack_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaNotificationStack, g_object_unref)
static void gala_window_manager_gala_real_start (MetaPlugin* base);
VALA_EXTERN void gala_shell_clients_manager_init (GalaWindowManager* wm);
VALA_EXTERN void gala_blur_manager_init (GalaWindowManagerGala* wm);
VALA_EXTERN GalaDaemonManager* gala_daemon_manager_new (MetaDisplay* display);
VALA_EXTERN GalaDaemonManager* gala_daemon_manager_construct (GType object_type,
                                                  MetaDisplay* display);
static void gala_window_manager_gala_show_stage (GalaWindowManagerGala* self);
static void gala_window_manager_gala_init_a11y (GalaWindowManagerGala* self);
VALA_EXTERN void gala_access_dialog_watch_portal (void);
VALA_EXTERN GalaFilterManager* gala_filter_manager_new (GalaWindowManager* wm);
VALA_EXTERN GalaFilterManager* gala_filter_manager_construct (GType object_type,
                                                  GalaWindowManager* wm);
VALA_EXTERN GalaNotificationsManager* gala_notifications_manager_new (void);
VALA_EXTERN GalaNotificationsManager* gala_notifications_manager_construct (GType object_type);
VALA_EXTERN GalaScreenshotManager* gala_screenshot_manager_new (GalaWindowManager* wm,
                                                    GalaNotificationsManager* notifications_manager,
                                                    GalaFilterManager* filter_manager);
VALA_EXTERN GalaScreenshotManager* gala_screenshot_manager_construct (GType object_type,
                                                          GalaWindowManager* wm,
                                                          GalaNotificationsManager* notifications_manager,
                                                          GalaFilterManager* filter_manager);
VALA_EXTERN void gala_dbus_init (GalaWindowManagerGala* _wm,
                     GalaNotificationsManager* notifications_manager,
                     GalaScreenshotManager* screenshot_manager);
static void __lambda153_ (GalaWindowManagerGala* self);
static void ___lambda153__meta_display_gl_video_memory_purged (MetaDisplay* _sender,
                                                        gpointer self);
static void gala_window_manager_gala_on_focus_window_changed (GalaWindowManagerGala* self);
static void _gala_window_manager_gala_on_focus_window_changed_g_object_notify (GObject* _sender,
                                                                        GParamSpec* pspec,
                                                                        gpointer self);
static gboolean ___lambda154_ (GalaWindowManagerGala* self,
                        GTask* task);
static void gala_window_manager_gala_start_x11_services (GalaWindowManagerGala* self,
                                                  GTask* task,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_);
static void gala_window_manager_gala_start_x11_services_finish (GalaWindowManagerGala* self,
                                                         GAsyncResult* _res_);
static gboolean ____lambda154__meta_display_init_xserver (MetaDisplay* _sender,
                                                   GTask* object,
                                                   gpointer self);
static void gala_window_manager_gala_start_x11_services_data_free (gpointer _data);
static gboolean gala_window_manager_gala_start_x11_services_co (GalaWindowManagerGalaStartX11ServicesData* _data_);
static void gala_window_manager_gala_start_x11_services_ready (GObject* source_object,
                                                        GAsyncResult* _res_,
                                                        gpointer _user_data_);
static Block12Data* block12_data_ref (Block12Data* _data12_);
static void block12_data_unref (void * _userdata_);
VALA_EXTERN void gala_window_listener_init (MetaDisplay* display);
VALA_EXTERN GalaKeyboardManager* gala_keyboard_manager_new (MetaDisplay* display);
VALA_EXTERN GalaKeyboardManager* gala_keyboard_manager_construct (GType object_type,
                                                      MetaDisplay* display);
VALA_EXTERN GalaWindowTracker* gala_window_tracker_new (void);
VALA_EXTERN GalaWindowTracker* gala_window_tracker_construct (GType object_type);
static void gala_window_manager_gala_set_window_tracker (GalaWindowManagerGala* self,
                                                  GalaWindowTracker* value);
VALA_EXTERN void gala_window_state_saver_init (GalaWindowTracker* window_tracker);
VALA_EXTERN GalaWindowTracker* gala_window_manager_gala_get_window_tracker (GalaWindowManagerGala* self);
VALA_EXTERN void gala_window_tracker_init (GalaWindowTracker* self,
                               MetaDisplay* display);
VALA_EXTERN void gala_window_attention_tracker_init (MetaDisplay* display);
VALA_EXTERN GType gala_window_listener_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowListener, g_object_unref)
VALA_EXTERN GalaWindowListener* gala_window_listener_get_default (void);
VALA_EXTERN GalaWindowMover* gala_window_mover_new (MetaDisplay* display,
                                        GalaWindowListener* window_listener);
VALA_EXTERN GalaWindowMover* gala_window_mover_construct (GType object_type,
                                              MetaDisplay* display,
                                              GalaWindowListener* window_listener);
VALA_EXTERN GalaNotificationStack* gala_notification_stack_new (MetaDisplay* display);
VALA_EXTERN GalaNotificationStack* gala_notification_stack_construct (GType object_type,
                                                          MetaDisplay* display);
static void _vala_ClutterColor_free (ClutterColor* self);
static gboolean __lambda113_ (GalaWindowManagerGala* self);
VALA_EXTERN void gala_workspace_manager_init (GalaWindowManager* wm);
static gboolean ___lambda113__gsource_func (gpointer self);
VALA_EXTERN GalaSystemBackground* gala_system_background_new (MetaDisplay* display);
VALA_EXTERN GalaSystemBackground* gala_system_background_construct (GType object_type,
                                                        MetaDisplay* display);
VALA_EXTERN MetaBackgroundActor* gala_system_background_get_background_actor (GalaSystemBackground* self);
static void gala_window_manager_gala_update_ui_group_size (GalaWindowManagerGala* self);
VALA_EXTERN GalaBackgroundContainer* gala_background_container_new (MetaDisplay* display);
VALA_EXTERN GalaBackgroundContainer* gala_background_container_construct (GType object_type,
                                                              MetaDisplay* display);
VALA_EXTERN GType gala_background_container_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaBackgroundContainer, g_object_unref)
VALA_EXTERN void gala_daemon_manager_show_background_menu (GalaDaemonManager* self,
                                               gint x,
                                               gint y,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_);
VALA_EXTERN void gala_daemon_manager_show_background_menu_finish (GalaDaemonManager* self,
                                                      GAsyncResult* _res_);
static void _gala_daemon_manager_show_background_menu_gala_background_container_show_background_menu (GalaBackgroundContainer* _sender,
                                                                                               gint x,
                                                                                               gint y,
                                                                                               gpointer self);
VALA_EXTERN GType gala_plugin_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaPluginManager, g_object_unref)
VALA_EXTERN GalaPluginManager* gala_plugin_manager_get_default (void);
VALA_EXTERN void gala_plugin_manager_initialize (GalaPluginManager* self,
                                     GalaWindowManager* _wm);
static void gala_window_manager_gala_update_input_area (GalaWindowManagerGala* self);
static void _gala_window_manager_gala_update_input_area_gala_plugin_manager_regions_changed (GalaPluginManager* _sender,
                                                                                      gpointer self);
VALA_EXTERN GalaMultitaskingView* gala_multitasking_view_new (GalaWindowManagerGala* wm);
VALA_EXTERN GalaMultitaskingView* gala_multitasking_view_construct (GType object_type,
                                                        GalaWindowManagerGala* wm);
VALA_EXTERN void gala_window_manager_gala_set_multitasking_view (GalaWindowManagerGala* self,
                                                     GalaMultitaskingView* value);
VALA_EXTERN GalaMultitaskingView* gala_window_manager_gala_get_multitasking_view (GalaWindowManagerGala* self);
VALA_EXTERN const gchar* gala_plugin_manager_get_window_switcher_provider (GalaPluginManager* self);
VALA_EXTERN GalaWindowSwitcher* gala_window_switcher_new (GalaWindowManager* wm);
VALA_EXTERN GalaWindowSwitcher* gala_window_switcher_construct (GType object_type,
                                                    GalaWindowManager* wm);
VALA_EXTERN void gala_window_switcher_handle_switch_windows (GalaWindowSwitcher* self,
                                                 MetaDisplay* display,
                                                 MetaWindow* window,
                                                 ClutterKeyEvent* event,
                                                 MetaKeyBinding* binding);
static void _gala_window_switcher_handle_switch_windows_meta_key_handler_func (MetaDisplay* display,
                                                                        MetaWindow* window,
                                                                        const ClutterKeyEvent* event,
                                                                        MetaKeyBinding* binding,
                                                                        gpointer self);
VALA_EXTERN GalaWindowOverview* gala_window_overview_new (GalaWindowManager* wm);
VALA_EXTERN GalaWindowOverview* gala_window_overview_construct (GType object_type,
                                                    GalaWindowManager* wm);
static void gala_window_manager_gala_set_window_overview (GalaWindowManagerGala* self,
                                                   GalaWindowOverview* value);
VALA_EXTERN GalaWindowOverview* gala_window_manager_gala_get_window_overview (GalaWindowManagerGala* self);
static void gala_window_manager_gala_set_shell_group (GalaWindowManagerGala* self,
                                               ClutterActor* value);
static ClutterActor* gala_window_manager_gala_get_shell_group (GalaWindowManagerGala* self);
static void gala_window_manager_gala_set_menu_group (GalaWindowManagerGala* self,
                                              ClutterActor* value);
static ClutterActor* gala_window_manager_gala_get_menu_group (GalaWindowManagerGala* self);
VALA_EXTERN GType gala_shell_clients_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaShellClientsManager, g_object_unref)
VALA_EXTERN GalaShellClientsManager* gala_shell_clients_manager_get_instance (void);
VALA_EXTERN GalaModalGroup* gala_modal_group_new (GalaWindowManager* wm,
                                      GalaShellClientsManager* shell_clients);
VALA_EXTERN GalaModalGroup* gala_modal_group_construct (GType object_type,
                                            GalaWindowManager* wm,
                                            GalaShellClientsManager* shell_clients);
static void gala_window_manager_gala_set_modal_group (GalaWindowManagerGala* self,
                                               GalaModalGroup* value);
VALA_EXTERN GalaModalGroup* gala_window_manager_gala_get_modal_group (GalaWindowManagerGala* self);
VALA_EXTERN GalaPointerLocator* gala_pointer_locator_new (MetaDisplay* display);
VALA_EXTERN GalaPointerLocator* gala_pointer_locator_construct (GType object_type,
                                                    MetaDisplay* display);
static void gala_window_manager_gala_set_pointer_locator (GalaWindowManagerGala* self,
                                                   GalaPointerLocator* value);
VALA_EXTERN GalaPointerLocator* gala_window_manager_gala_get_pointer_locator (GalaWindowManagerGala* self);
VALA_EXTERN GalaDwellClickTimer* gala_dwell_click_timer_new (MetaDisplay* display);
VALA_EXTERN GalaDwellClickTimer* gala_dwell_click_timer_construct (GType object_type,
                                                       MetaDisplay* display);
VALA_EXTERN GType gala_dwell_click_timer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDwellClickTimer, g_object_unref)
VALA_EXTERN GType gala_session_locker_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaSessionLocker, g_object_unref)
VALA_EXTERN GalaSessionLocker* gala_session_locker_new (GalaWindowManager* wm);
VALA_EXTERN GalaSessionLocker* gala_session_locker_construct (GType object_type,
                                                  GalaWindowManager* wm);
VALA_EXTERN GalaScreenSaverManager* gala_screen_saver_manager_new (GalaSessionLocker* session_locker);
VALA_EXTERN GalaScreenSaverManager* gala_screen_saver_manager_construct (GType object_type,
                                                             GalaSessionLocker* session_locker);
static void gala_window_manager_gala_set_screensaver (GalaWindowManagerGala* self,
                                               GalaScreenSaverManager* value);
VALA_EXTERN GalaScreenSaverManager* gala_window_manager_gala_get_screensaver (GalaWindowManagerGala* self);
static void _gala_window_manager_gala_update_input_area_gala_screen_saver_manager_active_changed (GalaScreenSaverManager* _sender,
                                                                                           gboolean new_value,
                                                                                           gpointer self);
static void gala_window_manager_gala_handle_switch_to_workspace_end (GalaWindowManagerGala* self,
                                                              MetaDisplay* display,
                                                              MetaWindow* window,
                                                              ClutterKeyEvent* event,
                                                              MetaKeyBinding* binding);
static void _gala_window_manager_gala_handle_switch_to_workspace_end_meta_key_handler_func (MetaDisplay* display,
                                                                                     MetaWindow* window,
                                                                                     const ClutterKeyEvent* event,
                                                                                     MetaKeyBinding* binding,
                                                                                     gpointer self);
static void gala_window_manager_gala_handle_move_to_workspace_end (GalaWindowManagerGala* self,
                                                            MetaDisplay* display,
                                                            MetaWindow* window,
                                                            ClutterKeyEvent* event,
                                                            MetaKeyBinding* binding);
static void _gala_window_manager_gala_handle_move_to_workspace_end_meta_key_handler_func (MetaDisplay* display,
                                                                                   MetaWindow* window,
                                                                                   const ClutterKeyEvent* event,
                                                                                   MetaKeyBinding* binding,
                                                                                   gpointer self);
static void gala_window_manager_gala_handle_cycle_workspaces (GalaWindowManagerGala* self,
                                                       MetaDisplay* display,
                                                       MetaWindow* window,
                                                       ClutterKeyEvent* event,
                                                       MetaKeyBinding* binding);
static void _gala_window_manager_gala_handle_cycle_workspaces_meta_key_handler_func (MetaDisplay* display,
                                                                              MetaWindow* window,
                                                                              const ClutterKeyEvent* event,
                                                                              MetaKeyBinding* binding,
                                                                              gpointer self);
static void gala_window_manager_gala_handle_applications_menu (GalaWindowManagerGala* self,
                                                        MetaDisplay* display,
                                                        MetaWindow* window,
                                                        ClutterKeyEvent* event,
                                                        MetaKeyBinding* binding);
static void _gala_window_manager_gala_handle_applications_menu_meta_key_handler_func (MetaDisplay* display,
                                                                               MetaWindow* window,
                                                                               const ClutterKeyEvent* event,
                                                                               MetaKeyBinding* binding,
                                                                               gpointer self);
static void __lambda118_ (GalaWindowManagerGala* self);
static void ___lambda118__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda119_ (GalaWindowManagerGala* self);
static void ___lambda119__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda120_ (Block12Data* _data12_);
VALA_EXTERN gboolean gala_internal_utils_get_x11_in_fullscreen (MetaDisplay* display);
static void ___lambda120__meta_display_overlay_key (MetaDisplay* _sender,
                                             gpointer self);
static void __lambda121_ (GalaWindowManagerGala* self);
static void ___lambda121__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda122_ (GalaWindowManagerGala* self);
static void ___lambda122__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda123_ (GalaWindowManagerGala* self);
static void ___lambda123__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void gala_window_manager_gala_handle_switch_to_workspace (GalaWindowManagerGala* self,
                                                          MetaDisplay* display,
                                                          MetaWindow* window,
                                                          ClutterKeyEvent* event,
                                                          MetaKeyBinding* binding);
static void _gala_window_manager_gala_handle_switch_to_workspace_meta_key_handler_func (MetaDisplay* display,
                                                                                 MetaWindow* window,
                                                                                 const ClutterKeyEvent* event,
                                                                                 MetaKeyBinding* binding,
                                                                                 gpointer self);
static void __lambda124_ (GalaWindowManagerGala* self);
static void ___lambda124__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda125_ (GalaWindowManagerGala* self);
static void ___lambda125__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void gala_window_manager_gala_handle_move_to_workspace (GalaWindowManagerGala* self,
                                                        MetaDisplay* display,
                                                        MetaWindow* window,
                                                        ClutterKeyEvent* event,
                                                        MetaKeyBinding* binding);
static void _gala_window_manager_gala_handle_move_to_workspace_meta_key_handler_func (MetaDisplay* display,
                                                                               MetaWindow* window,
                                                                               const ClutterKeyEvent* event,
                                                                               MetaKeyBinding* binding,
                                                                               gpointer self);
static void _gala_window_manager_gala_update_ui_group_size_meta_monitor_manager_monitors_changed (MetaMonitorManager* _sender,
                                                                                           gpointer self);
VALA_EXTERN GalaHotCornerManager* gala_hot_corner_manager_new (GalaWindowManager* wm,
                                                   GSettings* behavior_settings);
VALA_EXTERN GalaHotCornerManager* gala_hot_corner_manager_construct (GType object_type,
                                                         GalaWindowManager* wm,
                                                         GSettings* behavior_settings);
static void _gala_window_manager_gala_update_input_area_gala_hot_corner_manager_on_configured (GalaHotCornerManager* _sender,
                                                                                        gpointer self);
VALA_EXTERN void gala_hot_corner_manager_configure (GalaHotCornerManager* self);
VALA_EXTERN GalaZoom* gala_zoom_new (GalaWindowManager* wm);
VALA_EXTERN GalaZoom* gala_zoom_construct (GType object_type,
                               GalaWindowManager* wm);
VALA_EXTERN GType gala_super_scroll_action_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaSuperScrollAction, g_object_unref)
VALA_EXTERN GalaSuperScrollAction* gala_super_scroll_action_new (MetaDisplay* display);
VALA_EXTERN GalaSuperScrollAction* gala_super_scroll_action_construct (GType object_type,
                                                           MetaDisplay* display);
static gboolean gala_window_manager_gala_handle_super_scroll (GalaWindowManagerGala* self,
                                                       guint32 timestamp,
                                                       gdouble dx,
                                                       gdouble dy);
static gboolean _gala_window_manager_gala_handle_super_scroll_gala_super_scroll_action_triggered (GalaSuperScrollAction* _sender,
                                                                                           guint32 timestamp,
                                                                                           gdouble dx,
                                                                                           gdouble dy,
                                                                                           gpointer self);
static void __lambda126_ (GalaWindowManagerGala* self,
                   MetaWindow* window);
VALA_EXTERN void gala_internal_utils_wait_for_window_actor_visible (MetaWindow* window,
                                                        GalaInternalUtilsWindowActorReadyCallback callback,
                                                        gpointer callback_target,
                                                        GDestroyNotify callback_target_destroy_notify);
static void gala_window_manager_gala_check_shell_window (GalaWindowManagerGala* self,
                                                  MetaWindowActor* actor);
static void _gala_window_manager_gala_check_shell_window_gala_internal_utils_window_actor_ready_callback (MetaWindowActor* window_actor,
                                                                                                   gpointer self);
static void ___lambda126__meta_display_window_created (MetaDisplay* _sender,
                                                MetaWindow* object,
                                                gpointer self);
static void __lambda127_ (GalaWindowManagerGala* self,
                   MetaWindow* window);
static void ___lambda127__gala_window_listener_window_type_changed (GalaWindowListener* _sender,
                                                             MetaWindow* window,
                                                             gpointer self);
VALA_EXTERN void gala_plugin_manager_load_waiting_plugins (GalaPluginManager* self);
static gboolean __lambda128_ (Block12Data* _data12_);
static gboolean ___lambda128__gsource_func (gpointer self);
static void gala_window_manager_gala_real_launch_action (GalaWindowManager* base,
                                                  const gchar* action_key);
VALA_EXTERN void gala_internal_utils_bell_notify (MetaDisplay* display);
static void gala_window_manager_gala_real_switch_to_next_workspace (GalaWindowManager* base,
                                                             MetaMotionDirection direction,
                                                             guint32 timestamp);
VALA_EXTERN void gala_multitasking_view_switch_to_next_workspace (GalaMultitaskingView* self,
                                                      MetaMotionDirection direction);
VALA_EXTERN gboolean gala_screen_saver_manager_get_active (GalaScreenSaverManager* self,
                                               GError** error);
VALA_EXTERN GType gala_input_area_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void gala_internal_utils_set_input_area (MetaDisplay* display,
                                         GalaInputArea area);
static void gala_window_manager_gala_real_move_window (GalaWindowManager* base,
                                                MetaWindow* window,
                                                MetaWorkspace* workspace,
                                                guint32 timestamp);
VALA_EXTERN void gala_multitasking_view_move_window (GalaMultitaskingView* self,
                                         MetaWindow* window,
                                         MetaWorkspace* workspace);
static GalaModalProxy* gala_window_manager_gala_real_push_modal (GalaWindowManager* base,
                                                          ClutterActor* actor,
                                                          gboolean grab);
static void gala_window_manager_gala_real_pop_modal (GalaWindowManager* base,
                                              GalaModalProxy* proxy);
static gboolean gala_window_manager_gala_real_is_modal (GalaWindowManager* base);
static gboolean gala_window_manager_gala_real_modal_proxy_valid (GalaWindowManager* base,
                                                          GalaModalProxy* proxy);
VALA_EXTERN gboolean gala_shell_clients_manager_is_shell_window (GalaShellClientsManager* self,
                                                     MetaWindow* window);
static void gala_window_manager_gala_dim_parent_window (GalaWindowManagerGala* self,
                                                 MetaWindow* window);
static Block13Data* block13_data_ref (Block13Data* _data13_);
static void block13_data_unref (void * _userdata_);
static void __lambda155_ (Block13Data* _data13_);
static void ___lambda155__meta_window_unmanaged (MetaWindow* _sender,
                                          gpointer self);
static void gala_window_manager_gala_set_grab_trigger (GalaWindowManagerGala* self,
                                                MetaWindow* window,
                                                MetaGrabOp op);
static Block14Data* block14_data_ref (Block14Data* _data14_);
static void block14_data_unref (void * _userdata_);
static gboolean __lambda152_ (Block14Data* _data14_,
                       ClutterEvent* event);
static gboolean ___lambda152__clutter_actor_captured_event (ClutterActor* _sender,
                                                     ClutterEvent* event,
                                                     gpointer self);
static void gala_window_manager_gala_real_perform_action (GalaWindowManager* base,
                                                   GalaActionType type);
VALA_EXTERN void gala_screenshot_manager_handle_screenshot_current_window_shortcut (GalaScreenshotManager* self,
                                                                        gboolean clipboard,
                                                                        GAsyncReadyCallback _callback_,
                                                                        gpointer _user_data_);
VALA_EXTERN void gala_screenshot_manager_handle_screenshot_current_window_shortcut_finish (GalaScreenshotManager* self,
                                                                               GAsyncResult* _res_);
static void gala_window_manager_gala_real_show_window_menu (MetaPlugin* base,
                                                     MetaWindow* window,
                                                     MetaWindowMenuType menu,
                                                     gint x,
                                                     gint y);
VALA_EXTERN gboolean gala_notification_stack_is_notification (MetaWindow* window);
VALA_EXTERN void gala_daemon_manager_show_window_menu (GalaDaemonManager* self,
                                           GalaWindowFlags flags,
                                           gint x,
                                           gint y,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_);
VALA_EXTERN void gala_daemon_manager_show_window_menu_finish (GalaDaemonManager* self,
                                                  GAsyncResult* _res_);
static void gala_window_manager_gala_real_show_tile_preview (MetaPlugin* base,
                                                      MetaWindow* window,
                                                      MtkRectangle* tile_rect,
                                                      gint tile_monitor_number);
static void gala_window_manager_gala_real_hide_tile_preview (MetaPlugin* base);
static void gala_window_manager_gala_real_show_window_menu_for_rect (MetaPlugin* base,
                                                              MetaWindow* window,
                                                              MetaWindowMenuType menu,
                                                              MtkRectangle* rect);
VALA_EXTERN gboolean gala_shell_clients_manager_is_system_modal_window (GalaShellClientsManager* self,
                                                            MetaWindow* window);
VALA_EXTERN void gala_internal_utils_clutter_actor_reparent (ClutterActor* actor,
                                                 ClutterActor* new_parent);
VALA_EXTERN ClutterActor* gala_modal_group_get_window_group (GalaModalGroup* self);
VALA_EXTERN void gala_notification_stack_show_notification (GalaNotificationStack* self,
                                                MetaWindowActor* notification);
static void gala_window_manager_gala_real_size_change (MetaPlugin* base,
                                                MetaWindowActor* actor,
                                                MetaSizeChange which_change_local,
                                                MtkRectangle* old_frame_rect,
                                                MtkRectangle* old_buffer_rect);
static MetaSizeChange* _meta_size_change_dup (MetaSizeChange* self);
static void gala_window_manager_gala_real_size_changed (MetaPlugin* base,
                                                 MetaWindowActor* actor);
static void gala_window_manager_gala_maximize (GalaWindowManagerGala* self,
                                        MetaWindowActor* actor,
                                        gint ex,
                                        gint ey,
                                        gint ew,
                                        gint eh);
static void gala_window_manager_gala_unmaximize (GalaWindowManagerGala* self,
                                          MetaWindowActor* actor,
                                          gint ex,
                                          gint ey,
                                          gint ew,
                                          gint eh);
static void gala_window_manager_gala_real_minimize (MetaPlugin* base,
                                             MetaWindowActor* actor);
static Block15Data* block15_data_ref (Block15Data* _data15_);
static void block15_data_unref (void * _userdata_);
static Block16Data* block16_data_ref (Block16Data* _data16_);
static void block16_data_unref (void * _userdata_);
static void ___lambda161_ (Block16Data* _data16_);
static void ____lambda161__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block17Data* block17_data_ref (Block17Data* _data17_);
static void block17_data_unref (void * _userdata_);
static void ___lambda162_ (Block17Data* _data17_);
static void ____lambda162__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block18Data* block18_data_ref (Block18Data* _data18_);
static void block18_data_unref (void * _userdata_);
static gboolean ___lambda156_ (Block18Data* _data18_);
static gboolean ____lambda156__gsource_func (gpointer self);
static void __lambda157_ (Block18Data* _data18_,
                   ClutterActor* snapshot,
                   const gchar* name,
                   gboolean is_finished);
static void ___lambda157__clutter_actor_transition_stopped (ClutterActor* _sender,
                                                     const gchar* name,
                                                     gboolean is_finished,
                                                     gpointer self);
static void __lambda158_ (Block18Data* _data18_);
static void ___lambda158__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                        gpointer self);
static void gala_window_manager_gala_real_unminimize (MetaPlugin* base,
                                               MetaWindowActor* actor);
static Block19Data* block19_data_ref (Block19Data* _data19_);
static void block19_data_unref (void * _userdata_);
static Block20Data* block20_data_ref (Block20Data* _data20_);
static void block20_data_unref (void * _userdata_);
static void ___lambda163_ (Block20Data* _data20_);
static void ____lambda163__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static void gala_window_manager_gala_real_map (MetaPlugin* base,
                                        MetaWindowActor* actor);
static Block21Data* block21_data_ref (Block21Data* _data21_);
static void block21_data_unref (void * _userdata_);
VALA_EXTERN void gala_window_state_saver_on_map (MetaWindow* window);
static Block22Data* block22_data_ref (Block22Data* _data22_);
static void block22_data_unref (void * _userdata_);
static void ___lambda164_ (Block22Data* _data22_);
static void ____lambda164__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block23Data* block23_data_ref (Block23Data* _data23_);
static void block23_data_unref (void * _userdata_);
static void ___lambda165_ (Block23Data* _data23_);
static void ____lambda165__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block24Data* block24_data_ref (Block24Data* _data24_);
static void block24_data_unref (void * _userdata_);
static void ___lambda166_ (Block24Data* _data24_);
static void ____lambda166__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static void gala_window_manager_gala_real_destroy (MetaPlugin* base,
                                            MetaWindowActor* actor);
static Block25Data* block25_data_ref (Block25Data* _data25_);
static void block25_data_unref (void * _userdata_);
VALA_EXTERN void gala_notification_stack_destroy_notification (GalaNotificationStack* self,
                                                   MetaWindowActor* notification);
static Block26Data* block26_data_ref (Block26Data* _data26_);
static void block26_data_unref (void * _userdata_);
static void ____lambda167_ (Block26Data* _data26_);
static void _____lambda167__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                          gpointer self);
static Block27Data* block27_data_ref (Block27Data* _data27_);
static void block27_data_unref (void * _userdata_);
static void ___lambda168_ (Block27Data* _data27_);
static void ____lambda168__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block28Data* block28_data_ref (Block28Data* _data28_);
static void block28_data_unref (void * _userdata_);
static void ___lambda169_ (Block28Data* _data28_);
static void ____lambda169__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block29Data* block29_data_ref (Block29Data* _data29_);
static void block29_data_unref (void * _userdata_);
VALA_EXTERN GType gala_window_listener_window_geometry_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GalaWindowListenerWindowGeometry* gala_window_listener_window_geometry_dup (const GalaWindowListenerWindowGeometry* self);
VALA_EXTERN void gala_window_listener_window_geometry_free (GalaWindowListenerWindowGeometry* self);
VALA_EXTERN GalaWindowListenerWindowGeometry* gala_window_listener_get_unmaximized_state_geometry (GalaWindowListener* self,
                                                                                       MetaWindow* window);
static void __lambda159_ (Block29Data* _data29_,
                   ClutterActor* snapshot,
                   const gchar* name,
                   gboolean is_finished);
static void ___lambda159__clutter_actor_transition_stopped (ClutterActor* _sender,
                                                     const gchar* name,
                                                     gboolean is_finished,
                                                     gpointer self);
static void __lambda160_ (Block29Data* _data29_);
static void ___lambda160__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                        gpointer self);
static gboolean gala_window_manager_gala_end_animation (GalaWindowManagerGala* self,
                                                 GeeHashSet** list,
                                                 MetaWindowActor* actor);
static void gala_window_manager_gala_real_kill_window_effects (MetaPlugin* base,
                                                        MetaWindowActor* actor);
static void gala_window_manager_gala_real_switch_workspace (MetaPlugin* base,
                                                     gint from,
                                                     gint to,
                                                     MetaMotionDirection direction);
static void gala_window_manager_gala_real_kill_switch_workspace (MetaPlugin* base);
VALA_EXTERN void gala_multitasking_view_kill_switch_workspace (GalaMultitaskingView* self);
static void gala_window_manager_gala_real_locate_pointer (MetaPlugin* base);
VALA_EXTERN void gala_pointer_locator_show_ripple (GalaPointerLocator* self);
static gboolean gala_window_manager_gala_real_keybinding_filter (MetaPlugin* base,
                                                          MetaKeyBinding* binding);
static gboolean gala_window_manager_gala_real_filter_action (GalaWindowManager* base,
                                                      GalaModalActions action);
static void gala_window_manager_gala_real_confirm_display_change (MetaPlugin* base);
VALA_EXTERN GType gala_access_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaAccessDialog, g_object_unref)
static Block30Data* block30_data_ref (Block30Data* _data30_);
static void block30_data_unref (void * _userdata_);
VALA_EXTERN GalaAccessDialog* gala_access_dialog_new (const gchar* title,
                                          const gchar* body,
                                          const gchar* icon);
VALA_EXTERN GalaAccessDialog* gala_access_dialog_construct (GType object_type,
                                                const gchar* title,
                                                const gchar* body,
                                                const gchar* icon);
VALA_EXTERN void gala_access_dialog_set_accept_label (GalaAccessDialog* self,
                                          const gchar* value);
VALA_EXTERN void gala_access_dialog_set_deny_label (GalaAccessDialog* self,
                                        const gchar* value);
static void __lambda170_ (Block30Data* _data30_);
static gboolean __lambda171_ (Block30Data* _data30_);
VALA_EXTERN void gala_access_dialog_close (GalaAccessDialog* self);
static gboolean ___lambda171__gsource_func (gpointer self);
static void ___lambda170__gala_access_dialog_show (GalaAccessDialog* _sender,
                                            gpointer self);
static void __lambda172_ (Block30Data* _data30_,
                   guint res);
static void ___lambda172__gala_access_dialog_response (GalaAccessDialog* _sender,
                                                guint response,
                                                gpointer self);
static MetaCloseDialog* gala_window_manager_gala_real_create_close_dialog (MetaPlugin* base,
                                                                    MetaWindow* window);
VALA_EXTERN GalaApp* gala_window_tracker_get_app_for_window (GalaWindowTracker* self,
                                                 MetaWindow* window);
VALA_EXTERN GalaCloseDialog* gala_close_dialog_new (GalaApp* app,
                                        MetaWindow* window);
VALA_EXTERN GalaCloseDialog* gala_close_dialog_construct (GType object_type,
                                              GalaApp* app,
                                              MetaWindow* window);
VALA_EXTERN GType gala_close_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaCloseDialog, g_object_unref)
static MetaInhibitShortcutsDialog* gala_window_manager_gala_real_create_inhibit_shortcuts_dialog (MetaPlugin* base,
                                                                                           MetaWindow* window);
VALA_EXTERN GalaInhibitShortcutsDialog* gala_inhibit_shortcuts_dialog_new (GalaApp* app,
                                                               MetaWindow* window);
VALA_EXTERN GalaInhibitShortcutsDialog* gala_inhibit_shortcuts_dialog_construct (GType object_type,
                                                                     GalaApp* app,
                                                                     MetaWindow* window);
VALA_EXTERN GType gala_inhibit_shortcuts_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaInhibitShortcutsDialog, g_object_unref)
static MetaPluginInfo* gala_window_manager_gala_real_plugin_info (MetaPlugin* base);
VALA_EXTERN GalaWindowManagerGala* gala_window_manager_gala_new (void);
VALA_EXTERN GalaWindowManagerGala* gala_window_manager_gala_construct (GType object_type);
static GObject * gala_window_manager_gala_constructor (GType type,
                                                guint n_construct_properties,
                                                GObjectConstructParam * construct_properties);
static void gala_window_manager_gala_finalize (GObject * obj);
static GType gala_window_manager_gala_get_type_once (void);
static void _vala_gala_window_manager_gala_get_property (GObject * object,
                                                  guint property_id,
                                                  GValue * value,
                                                  GParamSpec * pspec);
static void _vala_gala_window_manager_gala_set_property (GObject * object,
                                                  guint property_id,
                                                  const GValue * value,
                                                  GParamSpec * pspec);
static void _vala_array_destroy (gpointer array,
                          gssize array_length,
                          GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array,
                       gssize array_length,
                       GDestroyNotify destroy_func);

static inline gpointer
gala_window_manager_gala_get_instance_private (GalaWindowManagerGala* self)
{
	return G_STRUCT_MEMBER_P (self, GalaWindowManagerGala_private_offset);
}

static void
__lambda153_ (GalaWindowManagerGala* self)
{
	meta_background_refresh_all ();
}

static void
___lambda153__meta_display_gl_video_memory_purged (MetaDisplay* _sender,
                                                   gpointer self)
{
	__lambda153_ ((GalaWindowManagerGala*) self);
}

static void
_gala_window_manager_gala_on_focus_window_changed_g_object_notify (GObject* _sender,
                                                                   GParamSpec* pspec,
                                                                   gpointer self)
{
	gala_window_manager_gala_on_focus_window_changed ((GalaWindowManagerGala*) self);
}

static gboolean
___lambda154_ (GalaWindowManagerGala* self,
               GTask* task)
{
	gboolean result;
	g_return_val_if_fail (task != NULL, FALSE);
	gala_window_manager_gala_start_x11_services (self, task, NULL, NULL);
	result = TRUE;
	return result;
}

static gboolean
____lambda154__meta_display_init_xserver (MetaDisplay* _sender,
                                          GTask* object,
                                          gpointer self)
{
	gboolean result;
	result = ___lambda154_ ((GalaWindowManagerGala*) self, object);
	return result;
}

static void
gala_window_manager_gala_real_start (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	MetaDisplay* _tmp0_;
	GalaDaemonManager* _tmp1_;
	GalaFilterManager* _tmp2_;
	GalaNotificationsManager* _tmp3_;
	GalaNotificationsManager* _tmp4_;
	GalaFilterManager* _tmp5_;
	GalaScreenshotManager* _tmp6_;
	GalaNotificationsManager* _tmp7_;
	GalaScreenshotManager* _tmp8_;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp9_;
	MetaDisplay* _tmp10_;
	MetaDisplay* _tmp11_;
	self = (GalaWindowManagerGala*) base;
	gala_shell_clients_manager_init ((GalaWindowManager*) self);
	gala_blur_manager_init (self);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	_tmp1_ = gala_daemon_manager_new (_tmp0_);
	_g_object_unref0 (self->priv->daemon_manager);
	self->priv->daemon_manager = _tmp1_;
	gala_window_manager_gala_show_stage (self);
	gala_window_manager_gala_init_a11y (self);
	gala_access_dialog_watch_portal ();
	_tmp2_ = gala_filter_manager_new ((GalaWindowManager*) self);
	_g_object_unref0 (self->priv->filter_manager);
	self->priv->filter_manager = _tmp2_;
	_tmp3_ = gala_notifications_manager_new ();
	_g_object_unref0 (self->priv->notifications_manager);
	self->priv->notifications_manager = _tmp3_;
	_tmp4_ = self->priv->notifications_manager;
	_tmp5_ = self->priv->filter_manager;
	_tmp6_ = gala_screenshot_manager_new ((GalaWindowManager*) self, _tmp4_, _tmp5_);
	_g_object_unref0 (self->priv->screenshot_manager);
	self->priv->screenshot_manager = _tmp6_;
	_tmp7_ = self->priv->notifications_manager;
	_tmp8_ = self->priv->screenshot_manager;
	gala_dbus_init (self, _tmp7_, _tmp8_);
	_tmp9_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp9_;
	_tmp10_ = display;
	g_signal_connect_object (_tmp10_, "gl-video-memory-purged", (GCallback) ___lambda153__meta_display_gl_video_memory_purged, self, 0);
	_tmp11_ = display;
	g_signal_connect_object ((GObject*) _tmp11_, "notify::focus-window", (GCallback) _gala_window_manager_gala_on_focus_window_changed_g_object_notify, self, 0);
	if (meta_is_wayland_compositor ()) {
		MetaDisplay* _tmp12_;
		_tmp12_ = display;
		g_signal_connect_object (_tmp12_, "init-xserver", (GCallback) ____lambda154__meta_display_init_xserver, self, 0);
	}
}

static void
gala_window_manager_gala_start_x11_services_data_free (gpointer _data)
{
	GalaWindowManagerGalaStartX11ServicesData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->task);
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaStartX11ServicesData, _data_);
}

static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

static void
gala_window_manager_gala_start_x11_services (GalaWindowManagerGala* self,
                                             GTask* task,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_)
{
	GalaWindowManagerGalaStartX11ServicesData* _data_;
	GalaWindowManagerGala* _tmp0_;
	GTask* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (task != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaStartX11ServicesData);
	_data_->_async_result = g_task_new (G_OBJECT (self), NULL, _callback_, _user_data_);
	g_task_set_task_data (_data_->_async_result, _data_, gala_window_manager_gala_start_x11_services_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (task);
	_g_object_unref0 (_data_->task);
	_data_->task = _tmp1_;
	gala_window_manager_gala_start_x11_services_co (_data_);
}

static void
gala_window_manager_gala_start_x11_services_finish (GalaWindowManagerGala* self,
                                                    GAsyncResult* _res_)
{
	GalaWindowManagerGalaStartX11ServicesData* _data_;
	_data_ = g_task_propagate_pointer (G_TASK (_res_), NULL);
}

static void
gala_window_manager_gala_start_x11_services_ready (GObject* source_object,
                                                   GAsyncResult* _res_,
                                                   gpointer _user_data_)
{
	GalaWindowManagerGalaStartX11ServicesData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_start_x11_services_co (_data_);
}

static gboolean
gala_window_manager_gala_start_x11_services_co (GalaWindowManagerGalaStartX11ServicesData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	{
		_data_->_state_ = 1;
		g_bus_get (G_BUS_TYPE_SESSION, NULL, gala_window_manager_gala_start_x11_services_ready, _data_);
		return FALSE;
		_state_1:
		_data_->_tmp0_ = g_bus_get_finish (_data_->_res_, &_data_->_inner_error0_);
		_data_->session_bus = _data_->_tmp0_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_data_->_tmp1_ = _data_->session_bus;
		_data_->_tmp2_ = g_variant_new ("(ss)", "gnome-session-x11-services-ready.target", "fail", NULL);
		g_variant_ref_sink (_data_->_tmp2_);
		_data_->_tmp3_ = _data_->_tmp2_;
		_data_->_tmp4_ = g_variant_type_new ("(o)");
		_data_->_tmp5_ = _data_->_tmp4_;
		_data_->_state_ = 2;
		g_dbus_connection_call (_data_->_tmp1_, "org.freedesktop.systemd1", "/org/freedesktop/systemd1", "org.freedesktop.systemd1.Manager", "StartUnit", _data_->_tmp3_, _data_->_tmp5_, G_DBUS_CALL_FLAGS_NONE, -1, NULL, gala_window_manager_gala_start_x11_services_ready, _data_);
		return FALSE;
		_state_2:
		_data_->_tmp6_ = g_dbus_connection_call_finish (_data_->_tmp1_, _data_->_res_, &_data_->_inner_error0_);
		_data_->_tmp7_ = _data_->_tmp6_;
		_g_variant_unref0 (_data_->_tmp7_);
		_g_variant_type_free0 (_data_->_tmp5_);
		_g_variant_unref0 (_data_->_tmp3_);
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_object_unref0 (_data_->session_bus);
			goto __catch0_g_error;
		}
		_g_object_unref0 (_data_->session_bus);
	}
	goto __finally0;
	__catch0_g_error:
	{
		_data_->e = _data_->_inner_error0_;
		_data_->_inner_error0_ = NULL;
		_data_->_tmp8_ = _data_->e;
		_data_->_tmp9_ = _data_->_tmp8_->message;
		g_critical ("WindowManager.vala:184: %s", _data_->_tmp9_);
		_g_error_free0 (_data_->e);
	}
	__finally0:
	{
		g_task_return_boolean (_data_->task, TRUE);
	}
	if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error0_->message, g_quark_to_string (_data_->_inner_error0_->domain), _data_->_inner_error0_->code);
		g_clear_error (&_data_->_inner_error0_);
		g_object_unref (_data_->_async_result);
		return FALSE;
	}
	g_task_return_pointer (_data_->_async_result, _data_, NULL);
	if (_data_->_state_ != 0) {
		while (!g_task_get_completed (_data_->_async_result)) {
			g_main_context_iteration (g_task_get_context (_data_->_async_result), TRUE);
		}
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}

static Block12Data*
block12_data_ref (Block12Data* _data12_)
{
	g_atomic_int_inc (&_data12_->_ref_count_);
	return _data12_;
}

static void
block12_data_unref (void * _userdata_)
{
	Block12Data* _data12_;
	_data12_ = (Block12Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data12_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data12_->self;
		_g_object_unref0 (self);
		g_slice_free (Block12Data, _data12_);
	}
}

static ClutterColor*
_vala_clutter_color_from_string (const gchar* str)
{
	ClutterColor* color = NULL;
	ClutterColor* _tmp0_;
	ClutterColor* result;
	g_return_val_if_fail (str != NULL, NULL);
	_tmp0_ = clutter_color_alloc ();
	color = _tmp0_;
	clutter_color_from_string (color, str);
	result = color;
	return result;
}

static void
_vala_ClutterColor_free (ClutterColor* self)
{
	g_boxed_free (clutter_color_get_type (), self);
}

static gboolean
__lambda113_ (GalaWindowManagerGala* self)
{
	gboolean result;
	gala_workspace_manager_init ((GalaWindowManager*) self);
	result = FALSE;
	return result;
}

static gboolean
___lambda113__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda113_ ((GalaWindowManagerGala*) self);
	return result;
}

static void
_gala_daemon_manager_show_background_menu_gala_background_container_show_background_menu (GalaBackgroundContainer* _sender,
                                                                                          gint x,
                                                                                          gint y,
                                                                                          gpointer self)
{
	gala_daemon_manager_show_background_menu ((GalaDaemonManager*) self, x, y, NULL, NULL);
}

static void
_gala_window_manager_gala_update_input_area_gala_plugin_manager_regions_changed (GalaPluginManager* _sender,
                                                                                 gpointer self)
{
	gala_window_manager_gala_update_input_area ((GalaWindowManagerGala*) self);
}

static void
_gala_window_switcher_handle_switch_windows_meta_key_handler_func (MetaDisplay* display,
                                                                   MetaWindow* window,
                                                                   const ClutterKeyEvent* event,
                                                                   MetaKeyBinding* binding,
                                                                   gpointer self)
{
	gala_window_switcher_handle_switch_windows ((GalaWindowSwitcher*) self, display, window, event, binding);
}

static void
_gala_window_manager_gala_update_input_area_gala_screen_saver_manager_active_changed (GalaScreenSaverManager* _sender,
                                                                                      gboolean new_value,
                                                                                      gpointer self)
{
	gala_window_manager_gala_update_input_area ((GalaWindowManagerGala*) self);
}

static void
_gala_window_manager_gala_handle_switch_to_workspace_end_meta_key_handler_func (MetaDisplay* display,
                                                                                MetaWindow* window,
                                                                                const ClutterKeyEvent* event,
                                                                                MetaKeyBinding* binding,
                                                                                gpointer self)
{
	gala_window_manager_gala_handle_switch_to_workspace_end ((GalaWindowManagerGala*) self, display, window, event, binding);
}

static void
_gala_window_manager_gala_handle_move_to_workspace_end_meta_key_handler_func (MetaDisplay* display,
                                                                              MetaWindow* window,
                                                                              const ClutterKeyEvent* event,
                                                                              MetaKeyBinding* binding,
                                                                              gpointer self)
{
	gala_window_manager_gala_handle_move_to_workspace_end ((GalaWindowManagerGala*) self, display, window, event, binding);
}

static void
_gala_window_manager_gala_handle_cycle_workspaces_meta_key_handler_func (MetaDisplay* display,
                                                                         MetaWindow* window,
                                                                         const ClutterKeyEvent* event,
                                                                         MetaKeyBinding* binding,
                                                                         gpointer self)
{
	gala_window_manager_gala_handle_cycle_workspaces ((GalaWindowManagerGala*) self, display, window, event, binding);
}

static void
_gala_window_manager_gala_handle_applications_menu_meta_key_handler_func (MetaDisplay* display,
                                                                          MetaWindow* window,
                                                                          const ClutterKeyEvent* event,
                                                                          MetaKeyBinding* binding,
                                                                          gpointer self)
{
	gala_window_manager_gala_handle_applications_menu ((GalaWindowManagerGala*) self, display, window, event, binding);
}

static void
__lambda118_ (GalaWindowManagerGala* self)
{
	GalaMultitaskingView* _tmp0_;
	_tmp0_ = self->priv->_multitasking_view;
	if (gala_activatable_component_is_opened ((GalaActivatableComponent*) _tmp0_)) {
		GalaMultitaskingView* _tmp1_;
		_tmp1_ = self->priv->_multitasking_view;
		gala_activatable_component_close ((GalaActivatableComponent*) _tmp1_, NULL);
	} else {
		GalaMultitaskingView* _tmp2_;
		_tmp2_ = self->priv->_multitasking_view;
		gala_activatable_component_open ((GalaActivatableComponent*) _tmp2_, NULL);
	}
}

static void
___lambda118__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterKeyEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda118_ ((GalaWindowManagerGala*) self);
}

static void
__lambda119_ (GalaWindowManagerGala* self)
{
	GalaWindowOverview* _tmp0_;
	_tmp0_ = self->priv->_window_overview;
	if (gala_activatable_component_is_opened ((GalaActivatableComponent*) _tmp0_)) {
		GalaWindowOverview* _tmp1_;
		_tmp1_ = self->priv->_window_overview;
		gala_activatable_component_close ((GalaActivatableComponent*) _tmp1_, NULL);
	} else {
		GalaWindowOverview* _tmp2_;
		_tmp2_ = self->priv->_window_overview;
		gala_activatable_component_open ((GalaActivatableComponent*) _tmp2_, NULL);
	}
}

static void
___lambda119__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterKeyEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda119_ ((GalaWindowManagerGala*) self);
}

static void
__lambda120_ (Block12Data* _data12_)
{
	GalaWindowManagerGala* self;
	gboolean _tmp0_ = FALSE;
	MetaDisplay* _tmp1_;
	self = _data12_->self;
	_tmp1_ = _data12_->display;
	if (gala_internal_utils_get_x11_in_fullscreen (_tmp1_)) {
		GSettings* _tmp2_;
		gchar* _tmp3_;
		gchar* _tmp4_;
		_tmp2_ = self->priv->behavior_settings;
		_tmp3_ = g_settings_get_string (_tmp2_, "overlay-action");
		_tmp4_ = _tmp3_;
		_tmp0_ = g_strcmp0 (_tmp4_, GALA_WINDOW_MANAGER_GALA_OPEN_APPLICATIONS_MENU) == 0;
		_g_free0 (_tmp4_);
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		return;
	}
	gala_window_manager_launch_action ((GalaWindowManager*) self, GALA_ACTION_KEYS_OVERLAY_ACTION);
}

static void
___lambda120__meta_display_overlay_key (MetaDisplay* _sender,
                                        gpointer self)
{
	__lambda120_ (self);
}

static void
__lambda121_ (GalaWindowManagerGala* self)
{
	gala_window_manager_launch_action ((GalaWindowManager*) self, GALA_ACTION_KEYS_TOGGLE_RECORDING_ACTION);
}

static void
___lambda121__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterKeyEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda121_ ((GalaWindowManagerGala*) self);
}

static void
__lambda122_ (GalaWindowManagerGala* self)
{
}

static void
___lambda122__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterKeyEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda122_ ((GalaWindowManagerGala*) self);
}

static void
__lambda123_ (GalaWindowManagerGala* self)
{
}

static void
___lambda123__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterKeyEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda123_ ((GalaWindowManagerGala*) self);
}

static void
_gala_window_manager_gala_handle_switch_to_workspace_meta_key_handler_func (MetaDisplay* display,
                                                                            MetaWindow* window,
                                                                            const ClutterKeyEvent* event,
                                                                            MetaKeyBinding* binding,
                                                                            gpointer self)
{
	gala_window_manager_gala_handle_switch_to_workspace ((GalaWindowManagerGala*) self, display, window, event, binding);
}

static void
__lambda124_ (GalaWindowManagerGala* self)
{
}

static void
___lambda124__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterKeyEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda124_ ((GalaWindowManagerGala*) self);
}

static void
__lambda125_ (GalaWindowManagerGala* self)
{
}

static void
___lambda125__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterKeyEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda125_ ((GalaWindowManagerGala*) self);
}

static void
_gala_window_manager_gala_handle_move_to_workspace_meta_key_handler_func (MetaDisplay* display,
                                                                          MetaWindow* window,
                                                                          const ClutterKeyEvent* event,
                                                                          MetaKeyBinding* binding,
                                                                          gpointer self)
{
	gala_window_manager_gala_handle_move_to_workspace ((GalaWindowManagerGala*) self, display, window, event, binding);
}

static void
_gala_window_manager_gala_update_ui_group_size_meta_monitor_manager_monitors_changed (MetaMonitorManager* _sender,
                                                                                      gpointer self)
{
	gala_window_manager_gala_update_ui_group_size ((GalaWindowManagerGala*) self);
}

static void
_gala_window_manager_gala_update_input_area_gala_hot_corner_manager_on_configured (GalaHotCornerManager* _sender,
                                                                                   gpointer self)
{
	gala_window_manager_gala_update_input_area ((GalaWindowManagerGala*) self);
}

static gboolean
_gala_window_manager_gala_handle_super_scroll_gala_super_scroll_action_triggered (GalaSuperScrollAction* _sender,
                                                                                  guint32 timestamp,
                                                                                  gdouble dx,
                                                                                  gdouble dy,
                                                                                  gpointer self)
{
	gboolean result;
	result = gala_window_manager_gala_handle_super_scroll ((GalaWindowManagerGala*) self, timestamp, dx, dy);
	return result;
}

static void
_gala_window_manager_gala_check_shell_window_gala_internal_utils_window_actor_ready_callback (MetaWindowActor* window_actor,
                                                                                              gpointer self)
{
	gala_window_manager_gala_check_shell_window ((GalaWindowManagerGala*) self, window_actor);
}

static void
__lambda126_ (GalaWindowManagerGala* self,
              MetaWindow* window)
{
	g_return_if_fail (window != NULL);
	gala_internal_utils_wait_for_window_actor_visible (window, _gala_window_manager_gala_check_shell_window_gala_internal_utils_window_actor_ready_callback, g_object_ref (self), g_object_unref);
}

static void
___lambda126__meta_display_window_created (MetaDisplay* _sender,
                                           MetaWindow* object,
                                           gpointer self)
{
	__lambda126_ ((GalaWindowManagerGala*) self, object);
}

static void
__lambda127_ (GalaWindowManagerGala* self,
              MetaWindow* window)
{
	MetaWindowActor* window_actor = NULL;
	GObject* _tmp0_;
	MetaWindowActor* _tmp1_;
	g_return_if_fail (window != NULL);
	_tmp0_ = meta_window_get_compositor_private (window);
	window_actor = G_TYPE_CHECK_INSTANCE_CAST (_tmp0_, meta_window_actor_get_type (), MetaWindowActor);
	_tmp1_ = window_actor;
	if (_tmp1_ != NULL) {
		MetaWindowActor* _tmp2_;
		_tmp2_ = window_actor;
		gala_window_manager_gala_check_shell_window (self, _tmp2_);
	}
}

static void
___lambda127__gala_window_listener_window_type_changed (GalaWindowListener* _sender,
                                                        MetaWindow* window,
                                                        gpointer self)
{
	__lambda127_ ((GalaWindowManagerGala*) self, window);
}

static gboolean
__lambda128_ (Block12Data* _data12_)
{
	GalaWindowManagerGala* self;
	MetaDisplay* _tmp0_;
	MetaContext* _tmp1_;
	gboolean result;
	self = _data12_->self;
	sd_notify ((int) TRUE, "READY=1");
	_tmp0_ = _data12_->display;
	_tmp1_ = meta_display_get_context (_tmp0_);
	meta_context_notify_ready (_tmp1_);
	result = G_SOURCE_REMOVE;
	return result;
}

static gboolean
___lambda128__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda128_ (self);
	return result;
}

static void
gala_window_manager_gala_show_stage (GalaWindowManagerGala* self)
{
	Block12Data* _data12_;
	MetaDisplay* _tmp0_;
	MetaDisplay* _tmp1_;
	MetaDisplay* _tmp2_;
	GalaKeyboardManager* _tmp3_;
	GalaWindowTracker* _tmp4_;
	GalaWindowTracker* _tmp5_;
	GalaWindowTracker* _tmp6_;
	GalaWindowTracker* _tmp7_;
	MetaDisplay* _tmp8_;
	MetaDisplay* _tmp9_;
	MetaDisplay* _tmp10_;
	GalaWindowListener* _tmp11_;
	GalaWindowMover* _tmp12_;
	MetaDisplay* _tmp13_;
	GalaNotificationStack* _tmp14_;
	MetaDisplay* _tmp15_;
	ClutterActor* _tmp16_;
	GSettings* background_settings = NULL;
	GSettings* _tmp17_;
	gchar* color = NULL;
	GSettings* _tmp18_;
	gchar* _tmp19_;
	ClutterStage* _tmp20_;
	ClutterStage* _tmp21_;
	const gchar* _tmp22_;
	ClutterColor* _tmp23_;
	ClutterColor* _tmp24_;
	ClutterColor _tmp25_;
	MetaLaters* laters = NULL;
	MetaDisplay* _tmp26_;
	MetaCompositor* _tmp27_;
	MetaLaters* _tmp28_;
	MetaLaters* _tmp29_;
	MetaDisplay* _tmp30_;
	GalaSystemBackground* _tmp31_;
	GalaSystemBackground* _tmp32_;
	MetaBackgroundActor* _tmp33_;
	MetaBackgroundActor* _tmp34_;
	ClutterStage* _tmp35_;
	ClutterStage* _tmp36_;
	ClutterBindConstraint* _tmp37_;
	ClutterBindConstraint* _tmp38_;
	ClutterStage* _tmp39_;
	ClutterStage* _tmp40_;
	GalaSystemBackground* _tmp41_;
	MetaBackgroundActor* _tmp42_;
	MetaBackgroundActor* _tmp43_;
	ClutterActor* _tmp44_;
	ClutterActor* _tmp45_;
	ClutterStage* _tmp46_;
	ClutterStage* _tmp47_;
	ClutterActor* _tmp48_;
	ClutterActor* _tmp49_;
	MetaDisplay* _tmp50_;
	ClutterActor* _tmp51_;
	ClutterStage* _tmp52_;
	ClutterStage* _tmp53_;
	ClutterActor* _tmp54_;
	ClutterActor* _tmp55_;
	ClutterActor* _tmp56_;
	ClutterActor* _tmp57_;
	ClutterActor* _tmp58_;
	ClutterActor* _tmp59_;
	MetaDisplay* _tmp60_;
	GalaBackgroundContainer* _tmp61_;
	GalaBackgroundContainer* _tmp62_;
	MetaBackgroundGroup* _tmp63_;
	MetaBackgroundGroup* _tmp64_;
	GalaDaemonManager* _tmp65_;
	ClutterActor* _tmp66_;
	ClutterActor* _tmp67_;
	MetaBackgroundGroup* _tmp68_;
	MetaBackgroundGroup* _tmp69_;
	ClutterActor* _tmp70_;
	ClutterActor* _tmp71_;
	MetaBackgroundGroup* _tmp72_;
	MetaBackgroundGroup* _tmp73_;
	MetaDisplay* _tmp74_;
	ClutterActor* _tmp75_;
	ClutterStage* _tmp76_;
	ClutterStage* _tmp77_;
	ClutterActor* _tmp78_;
	ClutterActor* _tmp79_;
	ClutterActor* _tmp80_;
	ClutterActor* _tmp81_;
	ClutterActor* _tmp82_;
	ClutterActor* _tmp83_;
	GalaPluginManager* plugin_manager = NULL;
	GalaPluginManager* _tmp84_;
	GalaPluginManager* _tmp85_;
	GalaPluginManager* _tmp86_;
	GalaMultitaskingView* _tmp87_;
	GalaMultitaskingView* _tmp88_;
	ClutterActor* _tmp89_;
	ClutterActor* _tmp90_;
	GalaMultitaskingView* _tmp91_;
	GalaPluginManager* _tmp92_;
	const gchar* _tmp93_;
	const gchar* _tmp94_;
	GalaWindowOverview* _tmp105_;
	GalaWindowOverview* _tmp106_;
	ClutterActor* _tmp107_;
	ClutterActor* _tmp108_;
	GalaWindowOverview* _tmp109_;
	ClutterActor* _tmp110_;
	ClutterActor* _tmp111_;
	ClutterActor* _tmp112_;
	ClutterActor* _tmp113_;
	ClutterActor* _tmp114_;
	ClutterActor* _tmp115_;
	ClutterActor* _tmp116_;
	ClutterActor* _tmp117_;
	ClutterActor* _tmp118_;
	ClutterActor* _tmp119_;
	GalaShellClientsManager* _tmp120_;
	GalaModalGroup* _tmp121_;
	GalaModalGroup* _tmp122_;
	GalaModalGroup* _tmp123_;
	ClutterStage* _tmp124_;
	ClutterStage* _tmp125_;
	ClutterBindConstraint* _tmp126_;
	ClutterBindConstraint* _tmp127_;
	ClutterActor* _tmp128_;
	ClutterActor* _tmp129_;
	GalaModalGroup* _tmp130_;
	ClutterActor* feedback_group = NULL;
	MetaDisplay* _tmp131_;
	MetaCompositor* _tmp132_;
	ClutterActor* _tmp133_;
	ClutterActor* _tmp134_;
	ClutterStage* _tmp135_;
	ClutterStage* _tmp136_;
	ClutterActor* _tmp137_;
	ClutterActor* _tmp138_;
	ClutterActor* _tmp139_;
	ClutterActor* _tmp140_;
	MetaDisplay* _tmp141_;
	GalaPointerLocator* _tmp142_;
	GalaPointerLocator* _tmp143_;
	ClutterActor* _tmp144_;
	ClutterActor* _tmp145_;
	GalaPointerLocator* _tmp146_;
	ClutterActor* _tmp147_;
	ClutterActor* _tmp148_;
	MetaDisplay* _tmp149_;
	GalaDwellClickTimer* _tmp150_;
	GalaDwellClickTimer* _tmp151_;
	GalaSessionLocker* session_locker = NULL;
	GalaSessionLocker* _tmp152_;
	ClutterActor* _tmp153_;
	ClutterActor* _tmp154_;
	GalaSessionLocker* _tmp155_;
	GalaSessionLocker* _tmp156_;
	GalaScreenSaverManager* _tmp157_;
	GalaScreenSaverManager* _tmp158_;
	GalaScreenSaverManager* _tmp159_;
	GSettings* keybinding_settings = NULL;
	GSettings* _tmp160_;
	MetaDisplay* _tmp161_;
	GSettings* _tmp162_;
	MetaDisplay* _tmp163_;
	GSettings* _tmp164_;
	MetaDisplay* _tmp165_;
	GSettings* _tmp166_;
	MetaDisplay* _tmp167_;
	GSettings* _tmp168_;
	MetaDisplay* _tmp169_;
	GSettings* _tmp170_;
	MetaDisplay* _tmp171_;
	GSettings* _tmp172_;
	MetaDisplay* _tmp173_;
	GSettings* _tmp174_;
	MetaDisplay* _tmp175_;
	GSettings* _tmp176_;
	MetaDisplay* _tmp177_;
	GSettings* _tmp178_;
	MetaDisplay* _tmp179_;
	MetaMonitorManager* monitor_manager = NULL;
	MetaDisplay* _tmp186_;
	MetaContext* _tmp187_;
	MetaBackend* _tmp188_;
	MetaMonitorManager* _tmp189_;
	GSettings* _tmp190_;
	GalaHotCornerManager* _tmp191_;
	GalaHotCornerManager* _tmp192_;
	GalaHotCornerManager* _tmp193_;
	GalaZoom* _tmp194_;
	GalaSuperScrollAction* scroll_action = NULL;
	MetaDisplay* _tmp195_;
	GalaSuperScrollAction* _tmp196_;
	ClutterStage* _tmp197_;
	ClutterStage* _tmp198_;
	MetaDisplay* _tmp199_;
	GalaWindowListener* _tmp200_;
	ClutterStage* _tmp201_;
	ClutterStage* _tmp202_;
	GalaPluginManager* _tmp203_;
	g_return_if_fail (self != NULL);
	_data12_ = g_slice_new0 (Block12Data);
	_data12_->_ref_count_ = 1;
	_data12_->self = g_object_ref (self);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	_data12_->display = _tmp0_;
	_tmp1_ = _data12_->display;
	gala_window_listener_init (_tmp1_);
	_tmp2_ = _data12_->display;
	_tmp3_ = gala_keyboard_manager_new (_tmp2_);
	_g_object_unref0 (self->priv->keyboard_manager);
	self->priv->keyboard_manager = _tmp3_;
	_tmp4_ = gala_window_tracker_new ();
	_tmp5_ = _tmp4_;
	gala_window_manager_gala_set_window_tracker (self, _tmp5_);
	_g_object_unref0 (_tmp5_);
	_tmp6_ = self->priv->_window_tracker;
	gala_window_state_saver_init (_tmp6_);
	_tmp7_ = self->priv->_window_tracker;
	_tmp8_ = _data12_->display;
	gala_window_tracker_init (_tmp7_, _tmp8_);
	_tmp9_ = _data12_->display;
	gala_window_attention_tracker_init (_tmp9_);
	_tmp10_ = _data12_->display;
	_tmp11_ = gala_window_listener_get_default ();
	_tmp12_ = gala_window_mover_new (_tmp10_, _tmp11_);
	_g_object_unref0 (self->priv->window_mover);
	self->priv->window_mover = _tmp12_;
	_tmp13_ = _data12_->display;
	_tmp14_ = gala_notification_stack_new (_tmp13_);
	_g_object_unref0 (self->priv->notification_stack);
	self->priv->notification_stack = _tmp14_;
	_tmp15_ = _data12_->display;
	_tmp16_ = meta_get_stage_for_display (_tmp15_);
	gala_window_manager_set_stage ((GalaWindowManager*) self, G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, clutter_stage_get_type ()) ? ((ClutterStage*) _tmp16_) : NULL);
	_tmp17_ = g_settings_new ("org.gnome.desktop.background");
	background_settings = _tmp17_;
	_tmp18_ = background_settings;
	_tmp19_ = g_settings_get_string (_tmp18_, "primary-color");
	color = _tmp19_;
	_tmp20_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp21_ = _tmp20_;
	_tmp22_ = color;
	_tmp23_ = _vala_clutter_color_from_string (_tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = *_tmp24_;
	clutter_actor_set_background_color ((ClutterActor*) _tmp21_, &_tmp25_);
	__vala_ClutterColor_free0 (_tmp24_);
	_tmp26_ = _data12_->display;
	_tmp27_ = meta_display_get_compositor (_tmp26_);
	_tmp28_ = meta_compositor_get_laters (_tmp27_);
	laters = _tmp28_;
	_tmp29_ = laters;
	meta_laters_add (_tmp29_, META_LATER_BEFORE_REDRAW, ___lambda113__gsource_func, g_object_ref (self), g_object_unref);
	_tmp30_ = _data12_->display;
	_tmp31_ = gala_system_background_new (_tmp30_);
	_g_object_unref0 (self->priv->system_background);
	self->priv->system_background = _tmp31_;
	_tmp32_ = self->priv->system_background;
	_tmp33_ = gala_system_background_get_background_actor (_tmp32_);
	_tmp34_ = _tmp33_;
	_tmp35_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp36_ = _tmp35_;
	_tmp37_ = (ClutterBindConstraint*) clutter_bind_constraint_new ((ClutterActor*) _tmp36_, CLUTTER_BIND_ALL, (gfloat) 0);
	g_object_ref_sink (_tmp37_);
	_tmp38_ = _tmp37_;
	clutter_actor_add_constraint ((ClutterActor*) _tmp34_, (ClutterConstraint*) _tmp38_);
	_g_object_unref0 (_tmp38_);
	_tmp39_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp40_ = _tmp39_;
	_tmp41_ = self->priv->system_background;
	_tmp42_ = gala_system_background_get_background_actor (_tmp41_);
	_tmp43_ = _tmp42_;
	clutter_actor_insert_child_below ((ClutterActor*) _tmp40_, (ClutterActor*) _tmp43_, NULL);
	_tmp44_ = clutter_actor_new ();
	g_object_ref_sink (_tmp44_);
	_tmp45_ = _tmp44_;
	gala_window_manager_set_ui_group ((GalaWindowManager*) self, _tmp45_);
	_g_object_unref0 (_tmp45_);
	gala_window_manager_gala_update_ui_group_size (self);
	_tmp46_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp47_ = _tmp46_;
	_tmp48_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp49_ = _tmp48_;
	clutter_actor_add_child ((ClutterActor*) _tmp47_, _tmp49_);
	_tmp50_ = _data12_->display;
	_tmp51_ = meta_get_window_group_for_display (_tmp50_);
	gala_window_manager_set_window_group ((GalaWindowManager*) self, _tmp51_);
	_tmp52_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp53_ = _tmp52_;
	_tmp54_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp55_ = _tmp54_;
	clutter_actor_remove_child ((ClutterActor*) _tmp53_, _tmp55_);
	_tmp56_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp57_ = _tmp56_;
	_tmp58_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp59_ = _tmp58_;
	clutter_actor_add_child (_tmp57_, _tmp59_);
	_tmp60_ = _data12_->display;
	_tmp61_ = gala_background_container_new (_tmp60_);
	g_object_ref_sink (_tmp61_);
	_tmp62_ = _tmp61_;
	gala_window_manager_set_background_group ((GalaWindowManager*) self, (MetaBackgroundGroup*) _tmp62_);
	_g_object_unref0 (_tmp62_);
	_tmp63_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
	_tmp64_ = _tmp63_;
	_tmp65_ = self->priv->daemon_manager;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp64_, GALA_TYPE_BACKGROUND_CONTAINER, GalaBackgroundContainer), "show-background-menu", (GCallback) _gala_daemon_manager_show_background_menu_gala_background_container_show_background_menu, _tmp65_, 0);
	_tmp66_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp67_ = _tmp66_;
	_tmp68_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
	_tmp69_ = _tmp68_;
	clutter_actor_add_child (_tmp67_, (ClutterActor*) _tmp69_);
	_tmp70_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp71_ = _tmp70_;
	_tmp72_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
	_tmp73_ = _tmp72_;
	clutter_actor_set_child_below_sibling (_tmp71_, (ClutterActor*) _tmp73_, NULL);
	_tmp74_ = _data12_->display;
	_tmp75_ = meta_get_top_window_group_for_display (_tmp74_);
	gala_window_manager_set_top_window_group ((GalaWindowManager*) self, _tmp75_);
	_tmp76_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp77_ = _tmp76_;
	_tmp78_ = gala_window_manager_get_top_window_group ((GalaWindowManager*) self);
	_tmp79_ = _tmp78_;
	clutter_actor_remove_child ((ClutterActor*) _tmp77_, _tmp79_);
	_tmp80_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp81_ = _tmp80_;
	_tmp82_ = gala_window_manager_get_top_window_group ((GalaWindowManager*) self);
	_tmp83_ = _tmp82_;
	clutter_actor_add_child (_tmp81_, _tmp83_);
	_tmp84_ = gala_plugin_manager_get_default ();
	plugin_manager = _tmp84_;
	_tmp85_ = plugin_manager;
	gala_plugin_manager_initialize (_tmp85_, (GalaWindowManager*) self);
	_tmp86_ = plugin_manager;
	g_signal_connect_object (_tmp86_, "regions-changed", (GCallback) _gala_window_manager_gala_update_input_area_gala_plugin_manager_regions_changed, self, 0);
	_tmp87_ = gala_multitasking_view_new (self);
	g_object_ref_sink (_tmp87_);
	_tmp88_ = _tmp87_;
	gala_window_manager_gala_set_multitasking_view (self, _tmp88_);
	_g_object_unref0 (_tmp88_);
	_tmp89_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp90_ = _tmp89_;
	_tmp91_ = self->priv->_multitasking_view;
	clutter_actor_add_child (_tmp90_, (ClutterActor*) _tmp91_);
	_tmp92_ = plugin_manager;
	_tmp93_ = gala_plugin_manager_get_window_switcher_provider (_tmp92_);
	_tmp94_ = _tmp93_;
	if (_tmp94_ == NULL) {
		GalaWindowSwitcher* _tmp95_;
		ClutterActor* _tmp96_;
		ClutterActor* _tmp97_;
		GalaWindowSwitcher* _tmp98_;
		GalaWindowSwitcher* _tmp99_;
		GalaWindowSwitcher* _tmp100_;
		GalaWindowSwitcher* _tmp101_;
		GalaWindowSwitcher* _tmp102_;
		GalaWindowSwitcher* _tmp103_;
		GalaWindowSwitcher* _tmp104_;
		_tmp95_ = gala_window_switcher_new ((GalaWindowManager*) self);
		g_object_ref_sink (_tmp95_);
		_g_object_unref0 (self->priv->window_switcher);
		self->priv->window_switcher = _tmp95_;
		_tmp96_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
		_tmp97_ = _tmp96_;
		_tmp98_ = self->priv->window_switcher;
		clutter_actor_add_child (_tmp97_, (ClutterActor*) _tmp98_);
		_tmp99_ = self->priv->window_switcher;
		meta_keybindings_set_custom_handler ("switch-applications", _gala_window_switcher_handle_switch_windows_meta_key_handler_func, g_object_ref (_tmp99_), g_object_unref);
		_tmp100_ = self->priv->window_switcher;
		meta_keybindings_set_custom_handler ("switch-applications-backward", _gala_window_switcher_handle_switch_windows_meta_key_handler_func, g_object_ref (_tmp100_), g_object_unref);
		_tmp101_ = self->priv->window_switcher;
		meta_keybindings_set_custom_handler ("switch-windows", _gala_window_switcher_handle_switch_windows_meta_key_handler_func, g_object_ref (_tmp101_), g_object_unref);
		_tmp102_ = self->priv->window_switcher;
		meta_keybindings_set_custom_handler ("switch-windows-backward", _gala_window_switcher_handle_switch_windows_meta_key_handler_func, g_object_ref (_tmp102_), g_object_unref);
		_tmp103_ = self->priv->window_switcher;
		meta_keybindings_set_custom_handler ("switch-group", _gala_window_switcher_handle_switch_windows_meta_key_handler_func, g_object_ref (_tmp103_), g_object_unref);
		_tmp104_ = self->priv->window_switcher;
		meta_keybindings_set_custom_handler ("switch-group-backward", _gala_window_switcher_handle_switch_windows_meta_key_handler_func, g_object_ref (_tmp104_), g_object_unref);
	}
	_tmp105_ = gala_window_overview_new ((GalaWindowManager*) self);
	g_object_ref_sink (_tmp105_);
	_tmp106_ = _tmp105_;
	gala_window_manager_gala_set_window_overview (self, _tmp106_);
	_g_object_unref0 (_tmp106_);
	_tmp107_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp108_ = _tmp107_;
	_tmp109_ = self->priv->_window_overview;
	clutter_actor_add_child (_tmp108_, (ClutterActor*) _tmp109_);
	_tmp110_ = clutter_actor_new ();
	g_object_ref_sink (_tmp110_);
	_tmp111_ = _tmp110_;
	gala_window_manager_gala_set_shell_group (self, _tmp111_);
	_g_object_unref0 (_tmp111_);
	_tmp112_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp113_ = _tmp112_;
	_tmp114_ = self->priv->_shell_group;
	clutter_actor_add_child (_tmp113_, _tmp114_);
	_tmp115_ = clutter_actor_new ();
	g_object_ref_sink (_tmp115_);
	_tmp116_ = _tmp115_;
	gala_window_manager_gala_set_menu_group (self, _tmp116_);
	_g_object_unref0 (_tmp116_);
	_tmp117_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp118_ = _tmp117_;
	_tmp119_ = self->priv->_menu_group;
	clutter_actor_add_child (_tmp118_, _tmp119_);
	_tmp120_ = gala_shell_clients_manager_get_instance ();
	_tmp121_ = gala_modal_group_new ((GalaWindowManager*) self, _tmp120_);
	g_object_ref_sink (_tmp121_);
	_tmp122_ = _tmp121_;
	gala_window_manager_gala_set_modal_group (self, _tmp122_);
	_g_object_unref0 (_tmp122_);
	_tmp123_ = self->priv->_modal_group;
	_tmp124_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp125_ = _tmp124_;
	_tmp126_ = (ClutterBindConstraint*) clutter_bind_constraint_new ((ClutterActor*) _tmp125_, CLUTTER_BIND_SIZE, (gfloat) 0);
	g_object_ref_sink (_tmp126_);
	_tmp127_ = _tmp126_;
	clutter_actor_add_constraint ((ClutterActor*) _tmp123_, (ClutterConstraint*) _tmp127_);
	_g_object_unref0 (_tmp127_);
	_tmp128_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp129_ = _tmp128_;
	_tmp130_ = self->priv->_modal_group;
	clutter_actor_add_child (_tmp129_, (ClutterActor*) _tmp130_);
	_tmp131_ = _data12_->display;
	_tmp132_ = meta_display_get_compositor (_tmp131_);
	_tmp133_ = meta_compositor_get_feedback_group (_tmp132_);
	_tmp134_ = _g_object_ref0 (_tmp133_);
	feedback_group = _tmp134_;
	_tmp135_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp136_ = _tmp135_;
	_tmp137_ = feedback_group;
	clutter_actor_remove_child ((ClutterActor*) _tmp136_, _tmp137_);
	_tmp138_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp139_ = _tmp138_;
	_tmp140_ = feedback_group;
	clutter_actor_add_child (_tmp139_, _tmp140_);
	_tmp141_ = _data12_->display;
	_tmp142_ = gala_pointer_locator_new (_tmp141_);
	g_object_ref_sink (_tmp142_);
	_tmp143_ = _tmp142_;
	gala_window_manager_gala_set_pointer_locator (self, _tmp143_);
	_g_object_unref0 (_tmp143_);
	_tmp144_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp145_ = _tmp144_;
	_tmp146_ = self->priv->_pointer_locator;
	clutter_actor_add_child (_tmp145_, (ClutterActor*) _tmp146_);
	_tmp147_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp148_ = _tmp147_;
	_tmp149_ = _data12_->display;
	_tmp150_ = gala_dwell_click_timer_new (_tmp149_);
	g_object_ref_sink (_tmp150_);
	_tmp151_ = _tmp150_;
	clutter_actor_add_child (_tmp148_, (ClutterActor*) _tmp151_);
	_g_object_unref0 (_tmp151_);
	_tmp152_ = gala_session_locker_new ((GalaWindowManager*) self);
	g_object_ref_sink (_tmp152_);
	session_locker = _tmp152_;
	_tmp153_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp154_ = _tmp153_;
	_tmp155_ = session_locker;
	clutter_actor_add_child (_tmp154_, (ClutterActor*) _tmp155_);
	_tmp156_ = session_locker;
	_tmp157_ = gala_screen_saver_manager_new (_tmp156_);
	_tmp158_ = _tmp157_;
	gala_window_manager_gala_set_screensaver (self, _tmp158_);
	_g_object_unref0 (_tmp158_);
	_tmp159_ = self->priv->_screensaver;
	g_signal_connect_object (_tmp159_, "active-changed", (GCallback) _gala_window_manager_gala_update_input_area_gala_screen_saver_manager_active_changed, self, 0);
	_tmp160_ = g_settings_new ("io.elementary.desktop.wm.keybindings");
	keybinding_settings = _tmp160_;
	_tmp161_ = _data12_->display;
	_tmp162_ = keybinding_settings;
	meta_display_add_keybinding (_tmp161_, "switch-to-workspace-first", _tmp162_, META_KEY_BINDING_IGNORE_AUTOREPEAT, _gala_window_manager_gala_handle_switch_to_workspace_end_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp163_ = _data12_->display;
	_tmp164_ = keybinding_settings;
	meta_display_add_keybinding (_tmp163_, "switch-to-workspace-last", _tmp164_, META_KEY_BINDING_IGNORE_AUTOREPEAT, _gala_window_manager_gala_handle_switch_to_workspace_end_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp165_ = _data12_->display;
	_tmp166_ = keybinding_settings;
	meta_display_add_keybinding (_tmp165_, "move-to-workspace-first", _tmp166_, META_KEY_BINDING_IGNORE_AUTOREPEAT, _gala_window_manager_gala_handle_move_to_workspace_end_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp167_ = _data12_->display;
	_tmp168_ = keybinding_settings;
	meta_display_add_keybinding (_tmp167_, "move-to-workspace-last", _tmp168_, META_KEY_BINDING_IGNORE_AUTOREPEAT, _gala_window_manager_gala_handle_move_to_workspace_end_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp169_ = _data12_->display;
	_tmp170_ = keybinding_settings;
	meta_display_add_keybinding (_tmp169_, "cycle-workspaces-next", _tmp170_, META_KEY_BINDING_NONE, _gala_window_manager_gala_handle_cycle_workspaces_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp171_ = _data12_->display;
	_tmp172_ = keybinding_settings;
	meta_display_add_keybinding (_tmp171_, "cycle-workspaces-previous", _tmp172_, META_KEY_BINDING_NONE, _gala_window_manager_gala_handle_cycle_workspaces_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp173_ = _data12_->display;
	_tmp174_ = keybinding_settings;
	meta_display_add_keybinding (_tmp173_, "panel-main-menu", _tmp174_, META_KEY_BINDING_IGNORE_AUTOREPEAT, _gala_window_manager_gala_handle_applications_menu_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp175_ = _data12_->display;
	_tmp176_ = keybinding_settings;
	meta_display_add_keybinding (_tmp175_, "toggle-multitasking-view", _tmp176_, META_KEY_BINDING_IGNORE_AUTOREPEAT, ___lambda118__meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp177_ = _data12_->display;
	_tmp178_ = keybinding_settings;
	meta_display_add_keybinding (_tmp177_, "expose-all-windows", _tmp178_, META_KEY_BINDING_IGNORE_AUTOREPEAT, ___lambda119__meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp179_ = _data12_->display;
	g_signal_connect_data (_tmp179_, "overlay-key", (GCallback) ___lambda120__meta_display_overlay_key, block12_data_ref (_data12_), (GClosureNotify) block12_data_unref, 0);
	meta_keybindings_set_custom_handler ("toggle-recording", ___lambda121__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-up", ___lambda122__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-down", ___lambda123__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-left", _gala_window_manager_gala_handle_switch_to_workspace_meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-right", _gala_window_manager_gala_handle_switch_to_workspace_meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-up", ___lambda124__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-down", ___lambda125__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-left", _gala_window_manager_gala_handle_move_to_workspace_meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-right", _gala_window_manager_gala_handle_move_to_workspace_meta_key_handler_func, g_object_ref (self), g_object_unref);
	{
		gint i = 0;
		i = 1;
		{
			gboolean _tmp180_ = FALSE;
			_tmp180_ = TRUE;
			while (TRUE) {
				gchar* _tmp182_;
				gchar* _tmp183_;
				gchar* _tmp184_;
				gchar* _tmp185_;
				if (!_tmp180_) {
					gint _tmp181_;
					_tmp181_ = i;
					i = _tmp181_ + 1;
				}
				_tmp180_ = FALSE;
				if (!(i < 13)) {
					break;
				}
				_tmp182_ = g_strdup_printf ("switch-to-workspace-%d", i);
				_tmp183_ = _tmp182_;
				meta_keybindings_set_custom_handler (_tmp183_, _gala_window_manager_gala_handle_switch_to_workspace_meta_key_handler_func, g_object_ref (self), g_object_unref);
				_g_free0 (_tmp183_);
				_tmp184_ = g_strdup_printf ("move-to-workspace-%d", i);
				_tmp185_ = _tmp184_;
				meta_keybindings_set_custom_handler (_tmp185_, _gala_window_manager_gala_handle_move_to_workspace_meta_key_handler_func, g_object_ref (self), g_object_unref);
				_g_free0 (_tmp185_);
			}
		}
	}
	_tmp186_ = _data12_->display;
	_tmp187_ = meta_display_get_context (_tmp186_);
	_tmp188_ = meta_context_get_backend (_tmp187_);
	_tmp189_ = meta_backend_get_monitor_manager (_tmp188_);
	monitor_manager = _tmp189_;
	g_signal_connect_object (monitor_manager, "monitors-changed", (GCallback) _gala_window_manager_gala_update_ui_group_size_meta_monitor_manager_monitors_changed, self, 0);
	_tmp190_ = self->priv->behavior_settings;
	_tmp191_ = gala_hot_corner_manager_new ((GalaWindowManager*) self, _tmp190_);
	_g_object_unref0 (self->priv->hot_corner_manager);
	self->priv->hot_corner_manager = _tmp191_;
	_tmp192_ = self->priv->hot_corner_manager;
	g_signal_connect_object (_tmp192_, "on-configured", (GCallback) _gala_window_manager_gala_update_input_area_gala_hot_corner_manager_on_configured, self, 0);
	_tmp193_ = self->priv->hot_corner_manager;
	gala_hot_corner_manager_configure (_tmp193_);
	_tmp194_ = gala_zoom_new ((GalaWindowManager*) self);
	_g_object_unref0 (self->priv->zoom);
	self->priv->zoom = _tmp194_;
	gala_window_manager_gala_update_input_area (self);
	_tmp195_ = _data12_->display;
	_tmp196_ = gala_super_scroll_action_new (_tmp195_);
	g_object_ref_sink (_tmp196_);
	scroll_action = _tmp196_;
	g_signal_connect_object (scroll_action, "triggered", (GCallback) _gala_window_manager_gala_handle_super_scroll_gala_super_scroll_action_triggered, self, 0);
	_tmp197_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp198_ = _tmp197_;
	clutter_actor_add_action_full ((ClutterActor*) _tmp198_, "wm-super-scroll-action", CLUTTER_PHASE_CAPTURE, (ClutterAction*) scroll_action);
	_tmp199_ = _data12_->display;
	g_signal_connect_object (_tmp199_, "window-created", (GCallback) ___lambda126__meta_display_window_created, self, 0);
	_tmp200_ = gala_window_listener_get_default ();
	g_signal_connect_object (_tmp200_, "window-type-changed", (GCallback) ___lambda127__gala_window_listener_window_type_changed, self, 0);
	_tmp201_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp202_ = _tmp201_;
	clutter_actor_show ((ClutterActor*) _tmp202_);
	_tmp203_ = plugin_manager;
	gala_plugin_manager_load_waiting_plugins (_tmp203_);
	g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda128__gsource_func, block12_data_ref (_data12_), block12_data_unref);
	_g_object_unref0 (scroll_action);
	_g_object_unref0 (keybinding_settings);
	_g_object_unref0 (session_locker);
	_g_object_unref0 (feedback_group);
	_g_free0 (color);
	_g_object_unref0 (background_settings);
	block12_data_unref (_data12_);
	_data12_ = NULL;
}

static void
gala_window_manager_gala_init_a11y (GalaWindowManagerGala* self)
{
	gchar** args = NULL;
	gchar** _tmp0_;
	gint args_length1;
	gint _args_size_;
	gchar** _args = NULL;
	gchar** _tmp1_;
	gint _tmp1__length1;
	gint _args_length1;
	gint __args_size_;
	g_return_if_fail (self != NULL);
	if (!clutter_get_accessibility_enabled ()) {
		g_warning ("WindowManager.vala:423: Clutter has no accessibility enabled");
		return;
	}
	_tmp0_ = g_new0 (gchar*, 0 + 1);
	args = _tmp0_;
	args_length1 = 0;
	_args_size_ = args_length1;
	_tmp1_ = args;
	_tmp1__length1 = args_length1;
	_args = _tmp1_;
	_args_length1 = _tmp1__length1;
	__args_size_ = _args_length1;
	atk_bridge_adaptor_init ((gint*) (&_args_length1), &_args);
	__args_size_ = _args_length1;
	args = (_vala_array_free (args, args_length1, (GDestroyNotify) g_free), NULL);
}

static void
gala_window_manager_gala_update_ui_group_size (GalaWindowManagerGala* self)
{
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp0_;
	gint max_width = 0;
	gint max_height = 0;
	gint num_monitors = 0;
	MetaDisplay* _tmp1_;
	ClutterActor* _tmp12_;
	ClutterActor* _tmp13_;
	g_return_if_fail (self != NULL);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	max_width = 0;
	max_height = 0;
	_tmp1_ = display;
	num_monitors = meta_display_get_n_monitors (_tmp1_);
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp2_ = FALSE;
			_tmp2_ = TRUE;
			while (TRUE) {
				MtkRectangle geom = {0};
				MetaDisplay* _tmp4_;
				MtkRectangle _tmp5_ = {0};
				gint total_width = 0;
				MtkRectangle _tmp6_;
				MtkRectangle _tmp7_;
				gint total_height = 0;
				MtkRectangle _tmp8_;
				MtkRectangle _tmp9_;
				gint _tmp10_ = 0;
				gint _tmp11_ = 0;
				if (!_tmp2_) {
					gint _tmp3_;
					_tmp3_ = i;
					i = _tmp3_ + 1;
				}
				_tmp2_ = FALSE;
				if (!(i < num_monitors)) {
					break;
				}
				_tmp4_ = display;
				meta_display_get_monitor_geometry (_tmp4_, i, &_tmp5_);
				geom = _tmp5_;
				_tmp6_ = geom;
				_tmp7_ = geom;
				total_width = _tmp6_.x + _tmp7_.width;
				_tmp8_ = geom;
				_tmp9_ = geom;
				total_height = _tmp8_.y + _tmp9_.height;
				if (max_width > total_width) {
					_tmp10_ = max_width;
				} else {
					_tmp10_ = total_width;
				}
				max_width = _tmp10_;
				if (max_height > total_height) {
					_tmp11_ = max_height;
				} else {
					_tmp11_ = total_height;
				}
				max_height = _tmp11_;
			}
		}
	}
	_tmp12_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp13_ = _tmp12_;
	clutter_actor_set_size (_tmp13_, (gfloat) max_width, (gfloat) max_height);
}

static void
gala_window_manager_gala_real_launch_action (GalaWindowManager* base,
                                             const gchar* action_key)
{
	GalaWindowManagerGala * self;
	GError* _inner_error0_ = NULL;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (action_key != NULL);
	{
		gchar* action = NULL;
		GSettings* _tmp0_;
		gchar* _tmp1_;
		const gchar* _tmp2_;
		_tmp0_ = self->priv->behavior_settings;
		_tmp1_ = g_settings_get_string (_tmp0_, action_key);
		action = _tmp1_;
		_tmp2_ = action;
		if (_tmp2_ != NULL) {
			const gchar* _tmp3_;
			_tmp3_ = action;
			g_spawn_command_line_async (_tmp3_, &_inner_error0_);
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_free0 (action);
				goto __catch0_g_error;
			}
		}
		_g_free0 (action);
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp4_;
		const gchar* _tmp5_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp4_ = e;
		_tmp5_ = _tmp4_->message;
		g_warning ("WindowManager.vala:458: %s", _tmp5_);
		_g_error_free0 (e);
	}
	__finally0:
	if (G_UNLIKELY (_inner_error0_ != NULL)) {
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
		g_clear_error (&_inner_error0_);
		return;
	}
}

static gboolean
gala_window_manager_gala_handle_super_scroll (GalaWindowManagerGala* self,
                                              guint32 timestamp,
                                              gdouble dx,
                                              gdouble dy)
{
	GSettings* _tmp0_;
	gdouble _tmp1_ = 0.0;
	gdouble d = 0.0;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_tmp0_ = self->priv->behavior_settings;
	if (g_settings_get_enum (_tmp0_, "super-scroll-action") != 1) {
		result = CLUTTER_EVENT_PROPAGATE;
		return result;
	}
	if (fabs (dx) > fabs (dy)) {
		_tmp1_ = dx;
	} else {
		_tmp1_ = dy;
	}
	d = _tmp1_;
	if (d > ((gdouble) 0)) {
		gala_window_manager_switch_to_next_workspace ((GalaWindowManager*) self, META_MOTION_RIGHT, timestamp);
	} else {
		if (d < ((gdouble) 0)) {
			gala_window_manager_switch_to_next_workspace ((GalaWindowManager*) self, META_MOTION_LEFT, timestamp);
		}
	}
	result = CLUTTER_EVENT_STOP;
	return result;
}

static void
gala_window_manager_gala_handle_cycle_workspaces (GalaWindowManagerGala* self,
                                                  MetaDisplay* display,
                                                  MetaWindow* window,
                                                  ClutterKeyEvent* event,
                                                  MetaKeyBinding* binding)
{
	gint _tmp0_ = 0;
	const gchar* _tmp1_;
	gint direction = 0;
	MetaWorkspaceManager* manager = NULL;
	MetaWorkspaceManager* _tmp2_;
	gint active_workspace_index = 0;
	MetaWorkspaceManager* _tmp3_;
	gint index = 0;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (binding != NULL);
	_tmp1_ = meta_key_binding_get_name (binding);
	if (g_strcmp0 (_tmp1_, "cycle-workspaces-next") == 0) {
		_tmp0_ = 1;
	} else {
		_tmp0_ = -1;
	}
	direction = _tmp0_;
	_tmp2_ = meta_display_get_workspace_manager (display);
	manager = _tmp2_;
	_tmp3_ = manager;
	active_workspace_index = meta_workspace_manager_get_active_workspace_index (_tmp3_);
	index = active_workspace_index + direction;
	if (index < 0) {
		MetaWorkspaceManager* _tmp4_;
		_tmp4_ = manager;
		index = meta_workspace_manager_get_n_workspaces (_tmp4_) - 2;
	} else {
		MetaWorkspaceManager* _tmp5_;
		_tmp5_ = manager;
		if (index > (meta_workspace_manager_get_n_workspaces (_tmp5_) - 2)) {
			index = 0;
		}
	}
	if (active_workspace_index != index) {
		guint32 _tmp6_ = 0U;
		guint32 timestamp = 0U;
		MetaWorkspaceManager* _tmp7_;
		MetaWorkspace* _tmp8_;
		if (event != NULL) {
			_tmp6_ = clutter_event_get_time ((ClutterEvent*) event);
		} else {
			_tmp6_ = (guint32) META_CURRENT_TIME;
		}
		timestamp = _tmp6_;
		_tmp7_ = manager;
		_tmp8_ = meta_workspace_manager_get_workspace_by_index (_tmp7_, index);
		meta_workspace_activate (_tmp8_, timestamp);
	} else {
		gala_internal_utils_bell_notify (display);
	}
}

static const gchar*
string_offset (const gchar* self,
               glong offset)
{
	const gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	result = (const gchar*) (((gchar*) self) + offset);
	return result;
}

static void
gala_window_manager_gala_handle_move_to_workspace (GalaWindowManagerGala* self,
                                                   MetaDisplay* display,
                                                   MetaWindow* window,
                                                   ClutterKeyEvent* event,
                                                   MetaKeyBinding* binding)
{
	const gchar* name = NULL;
	const gchar* _tmp0_;
	MetaWorkspaceManager* workspace_manager = NULL;
	MetaWorkspaceManager* _tmp1_;
	MetaWorkspace* active_workspace = NULL;
	MetaWorkspaceManager* _tmp2_;
	MetaWorkspace* _tmp3_;
	MetaWorkspace* target_workspace = NULL;
	gboolean _tmp4_ = FALSE;
	const gchar* _tmp5_;
	MetaWorkspace* _tmp20_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (binding != NULL);
	if (window == NULL) {
		return;
	}
	_tmp0_ = meta_key_binding_get_name (binding);
	name = _tmp0_;
	_tmp1_ = meta_display_get_workspace_manager (display);
	workspace_manager = _tmp1_;
	_tmp2_ = workspace_manager;
	_tmp3_ = meta_workspace_manager_get_active_workspace (_tmp2_);
	active_workspace = _tmp3_;
	target_workspace = NULL;
	_tmp5_ = name;
	if (g_strcmp0 (_tmp5_, "move-to-workspace-left") == 0) {
		_tmp4_ = TRUE;
	} else {
		const gchar* _tmp6_;
		_tmp6_ = name;
		_tmp4_ = g_strcmp0 (_tmp6_, "move-to-workspace-right") == 0;
	}
	if (_tmp4_) {
		MetaMotionDirection _tmp7_ = 0;
		const gchar* _tmp8_;
		MetaMotionDirection direction = 0;
		MetaWorkspace* _tmp9_;
		MetaWorkspace* _tmp10_;
		_tmp8_ = name;
		if (g_strcmp0 (_tmp8_, "move-to-workspace-left") == 0) {
			_tmp7_ = META_MOTION_LEFT;
		} else {
			_tmp7_ = META_MOTION_RIGHT;
		}
		direction = _tmp7_;
		_tmp9_ = active_workspace;
		_tmp10_ = meta_workspace_get_neighbor (_tmp9_, direction);
		target_workspace = _tmp10_;
	} else {
		gint workspace_number = 0;
		const gchar* _tmp11_;
		gint _tmp12_;
		gint _tmp13_;
		const gchar* _tmp14_;
		gint workspace_index = 0;
		MetaWorkspaceManager* _tmp15_;
		gint _tmp16_;
		gint _tmp17_;
		MetaWorkspaceManager* _tmp18_;
		MetaWorkspace* _tmp19_;
		_tmp11_ = name;
		_tmp12_ = strlen ("move-to-workspace-");
		_tmp13_ = _tmp12_;
		_tmp14_ = string_offset (_tmp11_, (glong) _tmp13_);
		workspace_number = atoi (_tmp14_) - 1;
		_tmp15_ = workspace_manager;
		_tmp16_ = meta_workspace_manager_get_n_workspaces (_tmp15_);
		_tmp17_ = _tmp16_;
		workspace_index = CLAMP (workspace_number, 0, _tmp17_ - 1);
		_tmp18_ = workspace_manager;
		_tmp19_ = meta_workspace_manager_get_workspace_by_index (_tmp18_, workspace_index);
		target_workspace = _tmp19_;
	}
	_tmp20_ = target_workspace;
	if (_tmp20_ != NULL) {
		guint32 _tmp21_ = 0U;
		guint32 timestamp = 0U;
		MetaWorkspace* _tmp22_;
		if (event != NULL) {
			_tmp21_ = clutter_event_get_time ((ClutterEvent*) event);
		} else {
			_tmp21_ = (guint32) META_CURRENT_TIME;
		}
		timestamp = _tmp21_;
		_tmp22_ = target_workspace;
		gala_window_manager_move_window ((GalaWindowManager*) self, window, _tmp22_, timestamp);
	}
}

static void
gala_window_manager_gala_handle_move_to_workspace_end (GalaWindowManagerGala* self,
                                                       MetaDisplay* display,
                                                       MetaWindow* window,
                                                       ClutterKeyEvent* event,
                                                       MetaKeyBinding* binding)
{
	guint32 _tmp0_ = 0U;
	guint32 timestamp = 0U;
	MetaWorkspaceManager* manager = NULL;
	MetaWorkspaceManager* _tmp1_;
	gint _tmp2_ = 0;
	const gchar* _tmp3_;
	gint index = 0;
	MetaWorkspace* workspace = NULL;
	MetaWorkspaceManager* _tmp5_;
	MetaWorkspace* _tmp6_;
	MetaWorkspace* _tmp7_;
	MetaWorkspace* _tmp8_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (binding != NULL);
	if (window == NULL) {
		return;
	}
	if (event != NULL) {
		_tmp0_ = clutter_event_get_time ((ClutterEvent*) event);
	} else {
		_tmp0_ = (guint32) META_CURRENT_TIME;
	}
	timestamp = _tmp0_;
	_tmp1_ = meta_display_get_workspace_manager (display);
	manager = _tmp1_;
	_tmp3_ = meta_key_binding_get_name (binding);
	if (g_strcmp0 (_tmp3_, "move-to-workspace-first") == 0) {
		_tmp2_ = 0;
	} else {
		MetaWorkspaceManager* _tmp4_;
		_tmp4_ = manager;
		_tmp2_ = meta_workspace_manager_get_n_workspaces (_tmp4_) - 1;
	}
	index = _tmp2_;
	_tmp5_ = manager;
	_tmp6_ = meta_workspace_manager_get_workspace_by_index (_tmp5_, index);
	workspace = _tmp6_;
	_tmp7_ = workspace;
	meta_window_change_workspace (window, _tmp7_);
	_tmp8_ = workspace;
	meta_workspace_activate_with_focus (_tmp8_, window, timestamp);
}

static void
gala_window_manager_gala_handle_switch_to_workspace (GalaWindowManagerGala* self,
                                                     MetaDisplay* display,
                                                     MetaWindow* window,
                                                     ClutterKeyEvent* event,
                                                     MetaKeyBinding* binding)
{
	guint32 _tmp0_ = 0U;
	guint32 timestamp = 0U;
	const gchar* name = NULL;
	const gchar* _tmp1_;
	gboolean _tmp2_ = FALSE;
	const gchar* _tmp3_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (binding != NULL);
	if (event != NULL) {
		_tmp0_ = clutter_event_get_time ((ClutterEvent*) event);
	} else {
		_tmp0_ = (guint32) META_CURRENT_TIME;
	}
	timestamp = _tmp0_;
	_tmp1_ = meta_key_binding_get_name (binding);
	name = _tmp1_;
	_tmp3_ = name;
	if (g_strcmp0 (_tmp3_, "switch-to-workspace-left") == 0) {
		_tmp2_ = TRUE;
	} else {
		const gchar* _tmp4_;
		_tmp4_ = name;
		_tmp2_ = g_strcmp0 (_tmp4_, "switch-to-workspace-right") == 0;
	}
	if (_tmp2_) {
		MetaMotionDirection _tmp5_ = 0;
		const gchar* _tmp6_;
		MetaMotionDirection direction = 0;
		_tmp6_ = name;
		if (g_strcmp0 (_tmp6_, "switch-to-workspace-left") == 0) {
			_tmp5_ = META_MOTION_LEFT;
		} else {
			_tmp5_ = META_MOTION_RIGHT;
		}
		direction = _tmp5_;
		gala_window_manager_switch_to_next_workspace ((GalaWindowManager*) self, direction, timestamp);
	} else {
		MetaWorkspaceManager* workspace_manager = NULL;
		MetaDisplay* _tmp7_;
		MetaWorkspaceManager* _tmp8_;
		gint workspace_number = 0;
		const gchar* _tmp9_;
		gint _tmp10_;
		gint _tmp11_;
		const gchar* _tmp12_;
		gint workspace_index = 0;
		MetaWorkspaceManager* _tmp13_;
		gint _tmp14_;
		gint _tmp15_;
		MetaWorkspace* workspace = NULL;
		MetaWorkspaceManager* _tmp16_;
		MetaWorkspace* _tmp17_;
		MetaWorkspace* _tmp18_;
		MetaWorkspace* _tmp19_;
		MetaWorkspace* _tmp20_;
		_tmp7_ = meta_plugin_get_display ((MetaPlugin*) self);
		_tmp8_ = meta_display_get_workspace_manager (_tmp7_);
		workspace_manager = _tmp8_;
		_tmp9_ = name;
		_tmp10_ = strlen ("switch-to-workspace-");
		_tmp11_ = _tmp10_;
		_tmp12_ = string_offset (_tmp9_, (glong) _tmp11_);
		workspace_number = atoi (_tmp12_) - 1;
		_tmp13_ = workspace_manager;
		_tmp14_ = meta_workspace_manager_get_n_workspaces (_tmp13_);
		_tmp15_ = _tmp14_;
		workspace_index = CLAMP (workspace_number, 0, _tmp15_ - 1);
		_tmp16_ = workspace_manager;
		_tmp17_ = meta_workspace_manager_get_workspace_by_index (_tmp16_, workspace_index);
		_tmp18_ = _g_object_ref0 (_tmp17_);
		workspace = _tmp18_;
		_tmp19_ = workspace;
		if (_tmp19_ == NULL) {
			_g_object_unref0 (workspace);
			return;
		}
		_tmp20_ = workspace;
		meta_workspace_activate (_tmp20_, timestamp);
		_g_object_unref0 (workspace);
	}
}

static void
gala_window_manager_gala_handle_switch_to_workspace_end (GalaWindowManagerGala* self,
                                                         MetaDisplay* display,
                                                         MetaWindow* window,
                                                         ClutterKeyEvent* event,
                                                         MetaKeyBinding* binding)
{
	MetaWorkspaceManager* manager = NULL;
	MetaWorkspaceManager* _tmp0_;
	gint _tmp1_ = 0;
	const gchar* _tmp2_;
	gint index = 0;
	guint32 _tmp6_ = 0U;
	MetaWorkspaceManager* _tmp7_;
	MetaWorkspace* _tmp8_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (binding != NULL);
	_tmp0_ = meta_display_get_workspace_manager (display);
	manager = _tmp0_;
	_tmp2_ = meta_key_binding_get_name (binding);
	if (g_strcmp0 (_tmp2_, "switch-to-workspace-first") == 0) {
		_tmp1_ = 0;
	} else {
		MetaWorkspaceManager* _tmp3_;
		gint _tmp4_;
		gint _tmp5_;
		_tmp3_ = manager;
		_tmp4_ = meta_workspace_manager_get_n_workspaces (_tmp3_);
		_tmp5_ = _tmp4_;
		_tmp1_ = _tmp5_ - 1;
	}
	index = _tmp1_;
	if (event != NULL) {
		_tmp6_ = clutter_event_get_time ((ClutterEvent*) event);
	} else {
		_tmp6_ = (guint32) META_CURRENT_TIME;
	}
	_tmp7_ = manager;
	_tmp8_ = meta_workspace_manager_get_workspace_by_index (_tmp7_, index);
	meta_workspace_activate (_tmp8_, _tmp6_);
}

static void
gala_window_manager_gala_handle_applications_menu (GalaWindowManagerGala* self,
                                                   MetaDisplay* display,
                                                   MetaWindow* window,
                                                   ClutterKeyEvent* event,
                                                   MetaKeyBinding* binding)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (binding != NULL);
	gala_window_manager_launch_action ((GalaWindowManager*) self, GALA_ACTION_KEYS_PANEL_MAIN_MENU_ACTION);
}

/**
         * {@inheritDoc}
         */
static void
gala_window_manager_gala_real_switch_to_next_workspace (GalaWindowManager* base,
                                                        MetaMotionDirection direction,
                                                        guint32 timestamp)
{
	GalaWindowManagerGala * self;
	GalaMultitaskingView* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_multitasking_view;
	gala_multitasking_view_switch_to_next_workspace (_tmp0_, direction);
}

static void
gala_window_manager_gala_update_input_area (GalaWindowManagerGala* self)
{
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp0_;
	GalaScreenSaverManager* _tmp1_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	_tmp1_ = self->priv->_screensaver;
	if (_tmp1_ != NULL) {
		{
			gboolean _tmp2_ = FALSE;
			GalaScreenSaverManager* _tmp3_;
			_tmp3_ = self->priv->_screensaver;
			_tmp2_ = gala_screen_saver_manager_get_active (_tmp3_, &_inner_error0_);
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				goto __catch0_g_error;
			}
			if (_tmp2_) {
				MetaDisplay* _tmp4_;
				_tmp4_ = display;
				gala_internal_utils_set_input_area (_tmp4_, GALA_INPUT_AREA_NONE);
				return;
			}
		}
		goto __finally0;
		__catch0_g_error:
		{
			g_clear_error (&_inner_error0_);
		}
		__finally0:
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error0_->message, g_quark_to_string (_inner_error0_->domain), _inner_error0_->code);
			g_clear_error (&_inner_error0_);
			return;
		}
	}
	if (gala_window_manager_is_modal ((GalaWindowManager*) self)) {
		GalaInputArea _tmp5_ = 0;
		GalaMultitaskingView* _tmp6_;
		GalaInputArea area = 0;
		MetaDisplay* _tmp7_;
		_tmp6_ = self->priv->_multitasking_view;
		if (gala_activatable_component_is_opened ((GalaActivatableComponent*) _tmp6_)) {
			_tmp5_ = GALA_INPUT_AREA_MULTITASKING_VIEW;
		} else {
			_tmp5_ = GALA_INPUT_AREA_FULLSCREEN;
		}
		area = _tmp5_;
		_tmp7_ = display;
		gala_internal_utils_set_input_area (_tmp7_, area);
	} else {
		MetaDisplay* _tmp8_;
		_tmp8_ = display;
		gala_internal_utils_set_input_area (_tmp8_, GALA_INPUT_AREA_DEFAULT);
	}
}

/**
         * {@inheritDoc}
         */
static void
gala_window_manager_gala_real_move_window (GalaWindowManager* base,
                                           MetaWindow* window,
                                           MetaWorkspace* workspace,
                                           guint32 timestamp)
{
	GalaWindowManagerGala * self;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp0_;
	MetaWorkspaceManager* manager = NULL;
	MetaDisplay* _tmp1_;
	MetaWorkspaceManager* _tmp2_;
	MetaWorkspace* active = NULL;
	MetaWorkspaceManager* _tmp3_;
	MetaWorkspace* _tmp4_;
	gboolean _tmp5_ = FALSE;
	MetaWorkspace* _tmp6_;
	MetaWorkspace* _tmp11_;
	GalaMultitaskingView* _tmp13_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (workspace != NULL);
	if (window == NULL) {
		return;
	}
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	_tmp1_ = display;
	_tmp2_ = meta_display_get_workspace_manager (_tmp1_);
	manager = _tmp2_;
	_tmp3_ = manager;
	_tmp4_ = meta_workspace_manager_get_active_workspace (_tmp3_);
	active = _tmp4_;
	_tmp6_ = active;
	if (gala_utils_get_n_windows (_tmp6_, FALSE, NULL) == ((guint) 1)) {
		MetaWorkspaceManager* _tmp7_;
		gint _tmp8_;
		gint _tmp9_;
		_tmp7_ = manager;
		_tmp8_ = meta_workspace_manager_get_n_workspaces (_tmp7_);
		_tmp9_ = _tmp8_;
		_tmp5_ = meta_workspace_index (workspace) == (_tmp9_ - 1);
	} else {
		_tmp5_ = FALSE;
	}
	if (_tmp5_) {
		MetaDisplay* _tmp10_;
		_tmp10_ = display;
		gala_internal_utils_bell_notify (_tmp10_);
		return;
	}
	_tmp11_ = active;
	if (_tmp11_ == workspace) {
		MetaDisplay* _tmp12_;
		_tmp12_ = display;
		gala_internal_utils_bell_notify (_tmp12_);
		return;
	}
	_tmp13_ = self->priv->_multitasking_view;
	gala_multitasking_view_move_window (_tmp13_, window, workspace);
}

/**
         * {@inheritDoc}
         */
static GalaModalProxy*
gala_window_manager_gala_real_push_modal (GalaWindowManager* base,
                                          ClutterActor* actor,
                                          gboolean grab)
{
	GalaWindowManagerGala * self;
	GalaModalProxy* proxy = NULL;
	GalaModalProxy* _tmp0_;
	GeeLinkedList* _tmp1_;
	GalaModalProxy* _tmp2_;
	GeeLinkedList* _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	MetaDisplay* _tmp11_;
	GalaModalProxy* result;
	self = (GalaWindowManagerGala*) base;
	g_return_val_if_fail (actor != NULL, NULL);
	_tmp0_ = gala_modal_proxy_new ();
	proxy = _tmp0_;
	_tmp1_ = self->priv->modal_stack;
	_tmp2_ = proxy;
	gee_deque_offer_head ((GeeDeque*) _tmp1_, _tmp2_);
	if (grab) {
		GalaModalProxy* _tmp3_;
		ClutterStage* _tmp4_;
		ClutterStage* _tmp5_;
		ClutterGrab* _tmp6_;
		ClutterGrab* _tmp7_;
		_tmp3_ = proxy;
		_tmp4_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
		_tmp5_ = _tmp4_;
		_tmp6_ = clutter_stage_grab (_tmp5_, actor);
		_tmp7_ = _tmp6_;
		gala_modal_proxy_set_grab (_tmp3_, _tmp7_);
		_g_object_unref0 (_tmp7_);
	}
	gala_window_manager_gala_on_focus_window_changed (self);
	_tmp8_ = self->priv->modal_stack;
	_tmp9_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp8_);
	_tmp10_ = _tmp9_;
	if (_tmp10_ >= 2) {
		result = proxy;
		return result;
	}
	gala_window_manager_gala_update_input_area (self);
	_tmp11_ = meta_plugin_get_display ((MetaPlugin*) self);
	meta_disable_unredirect_for_display (_tmp11_);
	result = proxy;
	return result;
}

/**
         * {@inheritDoc}
         */
static void
gala_window_manager_gala_real_pop_modal (GalaWindowManager* base,
                                         GalaModalProxy* proxy)
{
	GalaWindowManagerGala * self;
	GeeLinkedList* _tmp0_;
	ClutterGrab* _tmp1_;
	ClutterGrab* _tmp2_;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp5_;
	MetaDisplay* _tmp6_;
	MetaDisplay* _tmp7_;
	MetaDisplay* _tmp8_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (proxy != NULL);
	_tmp0_ = self->priv->modal_stack;
	if (!gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, proxy)) {
		g_warning ("WindowManager.vala:670: Attempted to remove a modal proxy that was not" \
" in the stack");
		return;
	}
	_tmp1_ = gala_modal_proxy_get_grab (proxy);
	_tmp2_ = _tmp1_;
	if (_tmp2_ != NULL) {
		ClutterGrab* _tmp3_;
		ClutterGrab* _tmp4_;
		_tmp3_ = gala_modal_proxy_get_grab (proxy);
		_tmp4_ = _tmp3_;
		clutter_grab_dismiss (_tmp4_);
	}
	gala_window_manager_gala_on_focus_window_changed (self);
	if (gala_window_manager_is_modal ((GalaWindowManager*) self)) {
		return;
	}
	gala_window_manager_gala_update_input_area (self);
	_tmp5_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp5_;
	_tmp6_ = display;
	meta_enable_unredirect_for_display (_tmp6_);
	_tmp7_ = display;
	_tmp8_ = display;
	meta_display_focus_default_window (_tmp7_, meta_display_get_current_time (_tmp8_));
}

/**
         * {@inheritDoc}
         */
static gboolean
gala_window_manager_gala_real_is_modal (GalaWindowManager* base)
{
	GalaWindowManagerGala * self;
	GeeLinkedList* _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean result;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->modal_stack;
	_tmp1_ = gee_collection_get_is_empty ((GeeCollection*) _tmp0_);
	_tmp2_ = _tmp1_;
	result = !_tmp2_;
	return result;
}

/**
         * {@inheritDoc}
         */
static gboolean
gala_window_manager_gala_real_modal_proxy_valid (GalaWindowManager* base,
                                                 GalaModalProxy* proxy)
{
	GalaWindowManagerGala * self;
	GeeLinkedList* _tmp0_;
	gboolean result;
	self = (GalaWindowManagerGala*) base;
	g_return_val_if_fail (proxy != NULL, FALSE);
	_tmp0_ = self->priv->modal_stack;
	result = gee_abstract_collection_contains ((GeeAbstractCollection*) _tmp0_, proxy);
	return result;
}

static void
gala_window_manager_gala_on_focus_window_changed (GalaWindowManagerGala* self)
{
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp0_;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	MetaDisplay* _tmp16_;
	MetaDisplay* _tmp17_;
	g_return_if_fail (self != NULL);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	if (!gala_window_manager_is_modal ((GalaWindowManager*) self)) {
		_tmp3_ = TRUE;
	} else {
		GeeLinkedList* _tmp4_;
		gpointer _tmp5_;
		GalaModalProxy* _tmp6_;
		ClutterGrab* _tmp7_;
		ClutterGrab* _tmp8_;
		_tmp4_ = self->priv->modal_stack;
		_tmp5_ = gee_deque_peek_head ((GeeDeque*) _tmp4_);
		_tmp6_ = (GalaModalProxy*) _tmp5_;
		_tmp7_ = gala_modal_proxy_get_grab (_tmp6_);
		_tmp8_ = _tmp7_;
		_tmp3_ = _tmp8_ != NULL;
		_g_object_unref0 (_tmp6_);
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		MetaDisplay* _tmp9_;
		MetaWindow* _tmp10_;
		MetaWindow* _tmp11_;
		_tmp9_ = display;
		_tmp10_ = meta_display_get_focus_window (_tmp9_);
		_tmp11_ = _tmp10_;
		_tmp2_ = _tmp11_ == NULL;
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		GalaShellClientsManager* _tmp12_;
		MetaDisplay* _tmp13_;
		MetaWindow* _tmp14_;
		MetaWindow* _tmp15_;
		_tmp12_ = gala_shell_clients_manager_get_instance ();
		_tmp13_ = display;
		_tmp14_ = meta_display_get_focus_window (_tmp13_);
		_tmp15_ = _tmp14_;
		_tmp1_ = gala_shell_clients_manager_is_shell_window (_tmp12_, _tmp15_);
	}
	if (_tmp1_) {
		return;
	}
	_tmp16_ = display;
	_tmp17_ = display;
	meta_display_unset_input_focus (_tmp16_, meta_display_get_current_time (_tmp17_));
}

static Block13Data*
block13_data_ref (Block13Data* _data13_)
{
	g_atomic_int_inc (&_data13_->_ref_count_);
	return _data13_;
}

static void
block13_data_unref (void * _userdata_)
{
	Block13Data* _data13_;
	_data13_ = (Block13Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data13_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data13_->self;
		_g_object_unref0 (self);
		g_slice_free (Block13Data, _data13_);
	}
}

static void
__lambda155_ (Block13Data* _data13_)
{
	GalaWindowManagerGala* self;
	gboolean _tmp0_ = FALSE;
	MetaWindowActor* _tmp1_;
	self = _data13_->self;
	_tmp1_ = _data13_->transient_actor;
	if (_tmp1_ != NULL) {
		MetaWindowActor* _tmp2_;
		ClutterEffect* _tmp3_;
		_tmp2_ = _data13_->transient_actor;
		_tmp3_ = clutter_actor_get_effect ((ClutterActor*) _tmp2_, "dim-parent");
		_tmp0_ = _tmp3_ != NULL;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		MetaWindowActor* _tmp4_;
		_tmp4_ = _data13_->transient_actor;
		clutter_actor_remove_effect_by_name ((ClutterActor*) _tmp4_, "dim-parent");
	}
}

static void
___lambda155__meta_window_unmanaged (MetaWindow* _sender,
                                     gpointer self)
{
	__lambda155_ (self);
}

static void
gala_window_manager_gala_dim_parent_window (GalaWindowManagerGala* self,
                                            MetaWindow* window)
{
	Block13Data* _data13_;
	MetaWindowType _tmp0_;
	MetaWindowType _tmp1_;
	MetaWindow* transient = NULL;
	MetaWindow* _tmp2_;
	gboolean _tmp3_ = FALSE;
	MetaWindow* _tmp4_;
	MetaWindow* _tmp6_;
	GObject* _tmp7_;
	ClutterBrightnessContrastEffect* dark_effect = NULL;
	ClutterBrightnessContrastEffect* _tmp8_;
	ClutterBrightnessContrastEffect* _tmp9_;
	MetaWindowActor* _tmp10_;
	ClutterBrightnessContrastEffect* _tmp11_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (window != NULL);
	_data13_ = g_slice_new0 (Block13Data);
	_data13_->_ref_count_ = 1;
	_data13_->self = g_object_ref (self);
	_tmp0_ = meta_window_get_window_type (window);
	_tmp1_ = _tmp0_;
	if (_tmp1_ != META_WINDOW_MODAL_DIALOG) {
		block13_data_unref (_data13_);
		_data13_ = NULL;
		return;
	}
	_tmp2_ = meta_window_get_transient_for (window);
	transient = _tmp2_;
	_tmp4_ = transient;
	if (_tmp4_ == NULL) {
		_tmp3_ = TRUE;
	} else {
		MetaWindow* _tmp5_;
		_tmp5_ = transient;
		_tmp3_ = _tmp5_ == window;
	}
	if (_tmp3_) {
		g_warning ("WindowManager.vala:728: No transient found");
		block13_data_unref (_data13_);
		_data13_ = NULL;
		return;
	}
	_tmp6_ = transient;
	_tmp7_ = meta_window_get_compositor_private (_tmp6_);
	_data13_->transient_actor = G_TYPE_CHECK_INSTANCE_CAST (_tmp7_, meta_window_actor_get_type (), MetaWindowActor);
	_tmp8_ = (ClutterBrightnessContrastEffect*) clutter_brightness_contrast_effect_new ();
	g_object_ref_sink (_tmp8_);
	dark_effect = _tmp8_;
	_tmp9_ = dark_effect;
	clutter_brightness_contrast_effect_set_brightness (_tmp9_, -0.4f);
	_tmp10_ = _data13_->transient_actor;
	_tmp11_ = dark_effect;
	clutter_actor_add_effect_with_name ((ClutterActor*) _tmp10_, "dim-parent", (ClutterEffect*) _tmp11_);
	g_signal_connect_data (window, "unmanaged", (GCallback) ___lambda155__meta_window_unmanaged, block13_data_ref (_data13_), (GClosureNotify) block13_data_unref, 0);
	_g_object_unref0 (dark_effect);
	block13_data_unref (_data13_);
	_data13_ = NULL;
}

static Block14Data*
block14_data_ref (Block14Data* _data14_)
{
	g_atomic_int_inc (&_data14_->_ref_count_);
	return _data14_;
}

static void
block14_data_unref (void * _userdata_)
{
	Block14Data* _data14_;
	_data14_ = (Block14Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data14_->self;
		_g_object_unref0 (_data14_->proxy);
		_g_object_unref0 (_data14_->window);
		_g_object_unref0 (self);
		g_slice_free (Block14Data, _data14_);
	}
}

static gboolean
__lambda152_ (Block14Data* _data14_,
              ClutterEvent* event)
{
	GalaWindowManagerGala* self;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	ClutterStage* _tmp4_;
	ClutterStage* _tmp5_;
	gboolean result;
	self = _data14_->self;
	g_return_val_if_fail (event != NULL, FALSE);
	if (clutter_event_type (event) == CLUTTER_MOTION) {
		_tmp2_ = TRUE;
	} else {
		_tmp2_ = clutter_event_type (event) == CLUTTER_ENTER;
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = clutter_event_type (event) == CLUTTER_TOUCHPAD_HOLD;
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = clutter_event_type (event) == CLUTTER_TOUCH_BEGIN;
	}
	if (_tmp0_) {
		ClutterEventSequence* _tmp3_;
		_tmp3_ = clutter_event_get_event_sequence (event);
		meta_window_begin_grab_op (_data14_->window, _data14_->op, NULL, _tmp3_, clutter_event_get_time (event), NULL);
	} else {
		if (clutter_event_type (event) == CLUTTER_LEAVE) {
			result = CLUTTER_EVENT_PROPAGATE;
			return result;
		}
	}
	gala_window_manager_pop_modal ((GalaWindowManager*) self, _data14_->proxy);
	_tmp4_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp5_ = _tmp4_;
	g_signal_handler_disconnect ((GObject*) _tmp5_, _data14_->handler);
	result = CLUTTER_EVENT_PROPAGATE;
	return result;
}

static gboolean
___lambda152__clutter_actor_captured_event (ClutterActor* _sender,
                                            ClutterEvent* event,
                                            gpointer self)
{
	gboolean result;
	result = __lambda152_ (self, event);
	return result;
}

static void
gala_window_manager_gala_set_grab_trigger (GalaWindowManagerGala* self,
                                           MetaWindow* window,
                                           MetaGrabOp op)
{
	Block14Data* _data14_;
	MetaWindow* _tmp0_;
	ClutterStage* _tmp1_;
	ClutterStage* _tmp2_;
	GalaModalProxy* _tmp3_;
	ClutterStage* _tmp4_;
	ClutterStage* _tmp5_;
	gulong _tmp6_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (window != NULL);
	_data14_ = g_slice_new0 (Block14Data);
	_data14_->_ref_count_ = 1;
	_data14_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (window);
	_g_object_unref0 (_data14_->window);
	_data14_->window = _tmp0_;
	_data14_->op = op;
	_tmp1_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp2_ = _tmp1_;
	_tmp3_ = gala_window_manager_push_modal ((GalaWindowManager*) self, (ClutterActor*) _tmp2_, TRUE);
	_data14_->proxy = _tmp3_;
	_data14_->handler = (gulong) 0;
	_tmp4_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp5_ = _tmp4_;
	_tmp6_ = g_signal_connect_data ((ClutterActor*) _tmp5_, "captured-event", (GCallback) ___lambda152__clutter_actor_captured_event, block14_data_ref (_data14_), (GClosureNotify) block14_data_unref, 0);
	_data14_->handler = _tmp6_;
	block14_data_unref (_data14_);
	_data14_ = NULL;
}

/**
         * {@inheritDoc}
         */
static void
gala_window_manager_gala_real_perform_action (GalaWindowManager* base,
                                              GalaActionType type)
{
	GalaWindowManagerGala * self;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp0_;
	MetaWindow* current = NULL;
	MetaDisplay* _tmp1_;
	MetaWindow* _tmp2_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	_tmp1_ = display;
	_tmp2_ = meta_display_get_focus_window (_tmp1_);
	current = _tmp2_;
	switch (type) {
		case GALA_ACTION_TYPE_SHOW_MULTITASKING_VIEW:
		{
			GalaMultitaskingView* _tmp3_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_MULTITASKING_VIEW)) {
				break;
			}
			_tmp3_ = self->priv->_multitasking_view;
			if (gala_activatable_component_is_opened ((GalaActivatableComponent*) _tmp3_)) {
				GalaMultitaskingView* _tmp4_;
				_tmp4_ = self->priv->_multitasking_view;
				gala_activatable_component_close ((GalaActivatableComponent*) _tmp4_, NULL);
			} else {
				GalaMultitaskingView* _tmp5_;
				_tmp5_ = self->priv->_multitasking_view;
				gala_activatable_component_open ((GalaActivatableComponent*) _tmp5_, NULL);
			}
			break;
		}
		case GALA_ACTION_TYPE_MAXIMIZE_CURRENT:
		{
			gboolean _tmp6_ = FALSE;
			gboolean _tmp7_ = FALSE;
			MetaWindow* _tmp8_;
			MetaMaximizeFlags maximize_flags = 0U;
			MetaWindow* _tmp13_;
			gboolean _tmp14_ = FALSE;
			_tmp8_ = current;
			if (_tmp8_ == NULL) {
				_tmp7_ = TRUE;
			} else {
				MetaWindow* _tmp9_;
				MetaWindowType _tmp10_;
				MetaWindowType _tmp11_;
				_tmp9_ = current;
				_tmp10_ = meta_window_get_window_type (_tmp9_);
				_tmp11_ = _tmp10_;
				_tmp7_ = _tmp11_ != META_WINDOW_NORMAL;
			}
			if (_tmp7_) {
				_tmp6_ = TRUE;
			} else {
				MetaWindow* _tmp12_;
				_tmp12_ = current;
				_tmp6_ = !meta_window_can_maximize (_tmp12_);
			}
			if (_tmp6_) {
				break;
			}
			_tmp13_ = current;
			maximize_flags = meta_window_get_maximized (_tmp13_);
			if ((maximize_flags & META_MAXIMIZE_VERTICAL) == META_MAXIMIZE_VERTICAL) {
				_tmp14_ = TRUE;
			} else {
				_tmp14_ = (maximize_flags & META_MAXIMIZE_HORIZONTAL) == META_MAXIMIZE_HORIZONTAL;
			}
			if (_tmp14_) {
				MetaWindow* _tmp15_;
				_tmp15_ = current;
				meta_window_unmaximize (_tmp15_, META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
			} else {
				MetaWindow* _tmp16_;
				_tmp16_ = current;
				meta_window_maximize (_tmp16_, META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
			}
			break;
		}
		case GALA_ACTION_TYPE_HIDE_CURRENT:
		{
			gboolean _tmp17_ = FALSE;
			MetaWindow* _tmp18_;
			_tmp18_ = current;
			if (_tmp18_ != NULL) {
				MetaWindow* _tmp19_;
				MetaWindowType _tmp20_;
				MetaWindowType _tmp21_;
				_tmp19_ = current;
				_tmp20_ = meta_window_get_window_type (_tmp19_);
				_tmp21_ = _tmp20_;
				_tmp17_ = _tmp21_ == META_WINDOW_NORMAL;
			} else {
				_tmp17_ = FALSE;
			}
			if (_tmp17_) {
				MetaWindow* _tmp22_;
				_tmp22_ = current;
				meta_window_minimize (_tmp22_);
			}
			break;
		}
		case GALA_ACTION_TYPE_START_MOVE_CURRENT:
		{
			gboolean _tmp23_ = FALSE;
			MetaWindow* _tmp24_;
			_tmp24_ = current;
			if (_tmp24_ != NULL) {
				MetaWindow* _tmp25_;
				_tmp25_ = current;
				_tmp23_ = meta_window_allows_move (_tmp25_);
			} else {
				_tmp23_ = FALSE;
			}
			if (_tmp23_) {
				MetaWindow* _tmp26_;
				_tmp26_ = current;
				gala_window_manager_gala_set_grab_trigger (self, _tmp26_, META_GRAB_OP_KEYBOARD_MOVING);
			}
			break;
		}
		case GALA_ACTION_TYPE_START_RESIZE_CURRENT:
		{
			gboolean _tmp27_ = FALSE;
			MetaWindow* _tmp28_;
			_tmp28_ = current;
			if (_tmp28_ != NULL) {
				MetaWindow* _tmp29_;
				_tmp29_ = current;
				_tmp27_ = meta_window_allows_resize (_tmp29_);
			} else {
				_tmp27_ = FALSE;
			}
			if (_tmp27_) {
				MetaWindow* _tmp30_;
				_tmp30_ = current;
				gala_window_manager_gala_set_grab_trigger (self, _tmp30_, META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN);
			}
			break;
		}
		case GALA_ACTION_TYPE_TOGGLE_ALWAYS_ON_TOP_CURRENT:
		{
			MetaWindow* _tmp31_;
			MetaWindow* _tmp32_;
			_tmp31_ = current;
			if (_tmp31_ == NULL) {
				break;
			}
			_tmp32_ = current;
			if (meta_window_is_above (_tmp32_)) {
				MetaWindow* _tmp33_;
				_tmp33_ = current;
				meta_window_unmake_above (_tmp33_);
			} else {
				MetaWindow* _tmp34_;
				_tmp34_ = current;
				meta_window_make_above (_tmp34_);
			}
			break;
		}
		case GALA_ACTION_TYPE_TOGGLE_ALWAYS_ON_VISIBLE_WORKSPACE_CURRENT:
		{
			MetaWindow* _tmp35_;
			MetaWindow* _tmp36_;
			gboolean _tmp37_;
			gboolean _tmp38_;
			_tmp35_ = current;
			if (_tmp35_ == NULL) {
				break;
			}
			_tmp36_ = current;
			g_object_get (_tmp36_, "on-all-workspaces", &_tmp37_, NULL);
			_tmp38_ = _tmp37_;
			if (_tmp38_) {
				MetaWindow* _tmp39_;
				_tmp39_ = current;
				meta_window_unstick (_tmp39_);
			} else {
				MetaWindow* _tmp40_;
				_tmp40_ = current;
				meta_window_stick (_tmp40_);
			}
			break;
		}
		case GALA_ACTION_TYPE_SWITCH_TO_WORKSPACE_PREVIOUS:
		{
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SWITCH_WORKSPACE)) {
				break;
			}
			gala_window_manager_switch_to_next_workspace ((GalaWindowManager*) self, META_MOTION_LEFT, (guint32) META_CURRENT_TIME);
			break;
		}
		case GALA_ACTION_TYPE_SWITCH_TO_WORKSPACE_NEXT:
		{
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SWITCH_WORKSPACE)) {
				break;
			}
			gala_window_manager_switch_to_next_workspace ((GalaWindowManager*) self, META_MOTION_RIGHT, (guint32) META_CURRENT_TIME);
			break;
		}
		case GALA_ACTION_TYPE_MOVE_CURRENT_WORKSPACE_LEFT:
		{
			MetaWorkspaceManager* workspace_manager = NULL;
			MetaDisplay* _tmp41_;
			MetaWorkspaceManager* _tmp42_;
			MetaWorkspace* active_workspace = NULL;
			MetaWorkspaceManager* _tmp43_;
			MetaWorkspace* _tmp44_;
			MetaWorkspace* target_workspace = NULL;
			MetaWorkspace* _tmp45_;
			MetaWorkspace* _tmp46_;
			MetaWindow* _tmp47_;
			MetaWorkspace* _tmp48_;
			_tmp41_ = meta_plugin_get_display ((MetaPlugin*) self);
			_tmp42_ = meta_display_get_workspace_manager (_tmp41_);
			workspace_manager = _tmp42_;
			_tmp43_ = workspace_manager;
			_tmp44_ = meta_workspace_manager_get_active_workspace (_tmp43_);
			active_workspace = _tmp44_;
			_tmp45_ = active_workspace;
			_tmp46_ = meta_workspace_get_neighbor (_tmp45_, META_MOTION_LEFT);
			target_workspace = _tmp46_;
			_tmp47_ = current;
			_tmp48_ = target_workspace;
			gala_window_manager_move_window ((GalaWindowManager*) self, _tmp47_, _tmp48_, (guint32) META_CURRENT_TIME);
			break;
		}
		case GALA_ACTION_TYPE_MOVE_CURRENT_WORKSPACE_RIGHT:
		{
			MetaWorkspaceManager* workspace_manager = NULL;
			MetaDisplay* _tmp49_;
			MetaWorkspaceManager* _tmp50_;
			MetaWorkspace* active_workspace = NULL;
			MetaWorkspaceManager* _tmp51_;
			MetaWorkspace* _tmp52_;
			MetaWorkspace* target_workspace = NULL;
			MetaWorkspace* _tmp53_;
			MetaWorkspace* _tmp54_;
			MetaWindow* _tmp55_;
			MetaWorkspace* _tmp56_;
			_tmp49_ = meta_plugin_get_display ((MetaPlugin*) self);
			_tmp50_ = meta_display_get_workspace_manager (_tmp49_);
			workspace_manager = _tmp50_;
			_tmp51_ = workspace_manager;
			_tmp52_ = meta_workspace_manager_get_active_workspace (_tmp51_);
			active_workspace = _tmp52_;
			_tmp53_ = active_workspace;
			_tmp54_ = meta_workspace_get_neighbor (_tmp53_, META_MOTION_RIGHT);
			target_workspace = _tmp54_;
			_tmp55_ = current;
			_tmp56_ = target_workspace;
			gala_window_manager_move_window ((GalaWindowManager*) self, _tmp55_, _tmp56_, (guint32) META_CURRENT_TIME);
			break;
		}
		case GALA_ACTION_TYPE_CLOSE_CURRENT:
		{
			gboolean _tmp57_ = FALSE;
			MetaWindow* _tmp58_;
			_tmp58_ = current;
			if (_tmp58_ != NULL) {
				MetaWindow* _tmp59_;
				_tmp59_ = current;
				_tmp57_ = meta_window_can_close (_tmp59_);
			} else {
				_tmp57_ = FALSE;
			}
			if (_tmp57_) {
				MetaWindow* _tmp60_;
				_tmp60_ = current;
				meta_window_delete (_tmp60_, (guint32) META_CURRENT_TIME);
			}
			break;
		}
		case GALA_ACTION_TYPE_OPEN_LAUNCHER:
		{
			gala_window_manager_launch_action ((GalaWindowManager*) self, GALA_ACTION_KEYS_PANEL_MAIN_MENU_ACTION);
			break;
		}
		case GALA_ACTION_TYPE_WINDOW_OVERVIEW:
		{
			GalaWindowOverview* _tmp61_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_WINDOW_OVERVIEW)) {
				break;
			}
			_tmp61_ = self->priv->_window_overview;
			if (gala_activatable_component_is_opened ((GalaActivatableComponent*) _tmp61_)) {
				GalaWindowOverview* _tmp62_;
				_tmp62_ = self->priv->_window_overview;
				gala_activatable_component_close ((GalaActivatableComponent*) _tmp62_, NULL);
			} else {
				GalaWindowOverview* _tmp63_;
				_tmp63_ = self->priv->_window_overview;
				gala_activatable_component_open ((GalaActivatableComponent*) _tmp63_, NULL);
			}
			g_critical ("WindowManager.vala:892: Window overview is deprecated");
			break;
		}
		case GALA_ACTION_TYPE_WINDOW_OVERVIEW_ALL:
		{
			GalaWindowOverview* _tmp64_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_WINDOW_OVERVIEW)) {
				break;
			}
			_tmp64_ = self->priv->_window_overview;
			if (gala_activatable_component_is_opened ((GalaActivatableComponent*) _tmp64_)) {
				GalaWindowOverview* _tmp65_;
				_tmp65_ = self->priv->_window_overview;
				gala_activatable_component_close ((GalaActivatableComponent*) _tmp65_, NULL);
			} else {
				GalaWindowOverview* _tmp66_;
				_tmp66_ = self->priv->_window_overview;
				gala_activatable_component_open ((GalaActivatableComponent*) _tmp66_, NULL);
			}
			break;
		}
		case GALA_ACTION_TYPE_SWITCH_TO_WORKSPACE_LAST:
		{
			MetaWorkspaceManager* manager = NULL;
			MetaDisplay* _tmp67_;
			MetaWorkspaceManager* _tmp68_;
			MetaWorkspace* workspace = NULL;
			MetaWorkspaceManager* _tmp69_;
			MetaWorkspaceManager* _tmp70_;
			MetaWorkspace* _tmp71_;
			MetaWorkspace* _tmp72_;
			MetaDisplay* _tmp73_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SWITCH_WORKSPACE)) {
				break;
			}
			_tmp67_ = display;
			_tmp68_ = meta_display_get_workspace_manager (_tmp67_);
			manager = _tmp68_;
			_tmp69_ = manager;
			_tmp70_ = manager;
			_tmp71_ = meta_workspace_manager_get_workspace_by_index (_tmp69_, meta_workspace_manager_get_n_workspaces (_tmp70_) - 1);
			workspace = _tmp71_;
			_tmp72_ = workspace;
			_tmp73_ = display;
			meta_workspace_activate (_tmp72_, meta_display_get_current_time (_tmp73_));
			break;
		}
		case GALA_ACTION_TYPE_SCREENSHOT_CURRENT:
		{
			GalaScreenshotManager* _tmp74_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SCREENSHOT_WINDOW)) {
				break;
			}
			_tmp74_ = self->priv->screenshot_manager;
			gala_screenshot_manager_handle_screenshot_current_window_shortcut (_tmp74_, FALSE, NULL, NULL);
			break;
		}
		default:
		{
			g_warning ("WindowManager.vala:922: Trying to run unknown action");
			break;
		}
	}
}

static void
gala_window_manager_gala_real_show_window_menu (MetaPlugin* base,
                                                MetaWindow* window,
                                                MetaWindowMenuType menu,
                                                gint x,
                                                gint y)
{
	GalaWindowManagerGala * self;
	gboolean _tmp0_ = FALSE;
	GalaWindowFlags flags = 0U;
	MetaMaximizeFlags maximize_flags = 0U;
	gboolean _tmp2_;
	gboolean _tmp3_;
	MetaWorkspace* workspace = NULL;
	MetaWorkspace* _tmp4_;
	MetaWorkspace* _tmp5_;
	GalaDaemonManager* _tmp17_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (window != NULL);
	if (menu != META_WINDOW_MENU_WM) {
		g_warning ("WindowManager.vala:929: Unsupported window menu type");
		return;
	}
	if (!gala_utils_get_window_is_normal (window)) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = gala_notification_stack_is_notification (window);
	}
	if (_tmp0_) {
		return;
	}
	flags = GALA_WINDOW_FLAGS_NONE;
	if (meta_window_can_minimize (window)) {
		flags |= GALA_WINDOW_FLAGS_CAN_HIDE;
	}
	if (meta_window_can_maximize (window)) {
		flags |= GALA_WINDOW_FLAGS_CAN_MAXIMIZE;
	}
	maximize_flags = meta_window_get_maximized (window);
	if (maximize_flags > 0) {
		gboolean _tmp1_ = FALSE;
		flags |= GALA_WINDOW_FLAGS_IS_MAXIMIZED;
		if ((maximize_flags & META_MAXIMIZE_VERTICAL) == META_MAXIMIZE_VERTICAL) {
			_tmp1_ = !((maximize_flags & META_MAXIMIZE_HORIZONTAL) == META_MAXIMIZE_HORIZONTAL);
		} else {
			_tmp1_ = FALSE;
		}
		if (_tmp1_) {
			flags |= GALA_WINDOW_FLAGS_IS_TILED;
		}
	}
	if (meta_window_allows_move (window)) {
		flags |= GALA_WINDOW_FLAGS_ALLOWS_MOVE;
	}
	if (meta_window_allows_resize (window)) {
		flags |= GALA_WINDOW_FLAGS_ALLOWS_RESIZE;
	}
	if (meta_window_is_above (window)) {
		flags |= GALA_WINDOW_FLAGS_ALWAYS_ON_TOP;
	}
	g_object_get (window, "on-all-workspaces", &_tmp2_, NULL);
	_tmp3_ = _tmp2_;
	if (_tmp3_) {
		flags |= GALA_WINDOW_FLAGS_ON_ALL_WORKSPACES;
	}
	if (meta_window_can_close (window)) {
		flags |= GALA_WINDOW_FLAGS_CAN_CLOSE;
	}
	_tmp4_ = meta_window_get_workspace (window);
	workspace = _tmp4_;
	_tmp5_ = workspace;
	if (_tmp5_ != NULL) {
		MetaWorkspaceManager* manager = NULL;
		MetaDisplay* _tmp6_;
		MetaDisplay* _tmp7_;
		MetaWorkspaceManager* _tmp8_;
		guint workspace_index = 0U;
		MetaWorkspace* _tmp9_;
		guint _tmp10_;
		guint _tmp11_;
		gboolean _tmp12_ = FALSE;
		MetaWorkspaceManager* _tmp13_;
		gint _tmp14_;
		gint _tmp15_;
		_tmp6_ = meta_window_get_display (window);
		_tmp7_ = _tmp6_;
		_tmp8_ = meta_display_get_workspace_manager (_tmp7_);
		manager = _tmp8_;
		_tmp9_ = workspace;
		g_object_get (_tmp9_, "workspace-index", &_tmp10_, NULL);
		_tmp11_ = _tmp10_;
		workspace_index = _tmp11_;
		if (workspace_index != ((guint) 0)) {
			flags |= GALA_WINDOW_FLAGS_ALLOWS_MOVE_LEFT;
		}
		_tmp13_ = manager;
		_tmp14_ = meta_workspace_manager_get_n_workspaces (_tmp13_);
		_tmp15_ = _tmp14_;
		if (workspace_index != ((guint) (_tmp15_ - 2))) {
			_tmp12_ = TRUE;
		} else {
			MetaWorkspace* _tmp16_;
			_tmp16_ = workspace;
			_tmp12_ = gala_utils_get_n_windows (_tmp16_, FALSE, NULL) != ((guint) 1);
		}
		if (_tmp12_) {
			flags |= GALA_WINDOW_FLAGS_ALLOWS_MOVE_RIGHT;
		}
	}
	_tmp17_ = self->priv->daemon_manager;
	gala_daemon_manager_show_window_menu (_tmp17_, flags, x, y, NULL, NULL);
}

static void
gala_window_manager_gala_real_show_tile_preview (MetaPlugin* base,
                                                 MetaWindow* window,
                                                 MtkRectangle* tile_rect,
                                                 gint tile_monitor_number)
{
	GalaWindowManagerGala * self;
	ClutterActor* _tmp0_;
	MetaWindowActor* window_actor = NULL;
	GObject* _tmp24_;
	ClutterActor* _tmp25_;
	ClutterActor* _tmp26_;
	ClutterActor* _tmp27_;
	MetaWindowActor* _tmp28_;
	guint duration = 0U;
	MtkRectangle rect = {0};
	MtkRectangle _tmp29_ = {0};
	ClutterActor* _tmp30_;
	MtkRectangle _tmp31_;
	MtkRectangle _tmp32_;
	ClutterActor* _tmp33_;
	MtkRectangle _tmp34_;
	MtkRectangle _tmp35_;
	ClutterActor* _tmp36_;
	ClutterActor* _tmp37_;
	ClutterActor* _tmp38_;
	ClutterActor* _tmp39_;
	ClutterActor* _tmp40_;
	ClutterActor* _tmp41_;
	MtkRectangle _tmp42_;
	MtkRectangle _tmp43_;
	ClutterActor* _tmp44_;
	MtkRectangle _tmp45_;
	MtkRectangle _tmp46_;
	ClutterActor* _tmp47_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (window != NULL);
	g_return_if_fail (tile_rect != NULL);
	_tmp0_ = self->priv->tile_preview;
	if (_tmp0_ == NULL) {
		GalaDrawingStyleManager* _tmp1_;
		ClutterColor _tmp2_ = {0};
		ClutterColor _tmp3_;
		ClutterActor* _tmp4_ = NULL;
		ClutterActor* _tmp5_;
		ClutterActor* _tmp6_;
		ClutterActor* _tmp7_;
		_tmp1_ = gala_drawing_style_manager_get_instance ();
		gala_drawing_style_manager_get_theme_accent_color (_tmp1_, &_tmp2_);
		_tmp3_ = _tmp2_;
		_tmp4_ = clutter_actor_new ();
		clutter_actor_set_background_color (_tmp4_, &_tmp3_);
		clutter_actor_set_opacity (_tmp4_, (guint) 0);
		g_object_ref_sink (_tmp4_);
		_g_object_unref0 (self->priv->tile_preview);
		self->priv->tile_preview = _tmp4_;
		_tmp5_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
		_tmp6_ = _tmp5_;
		_tmp7_ = self->priv->tile_preview;
		clutter_actor_add_child (_tmp6_, _tmp7_);
	} else {
		gfloat width = 0.0F;
		gfloat height = 0.0F;
		gfloat x = 0.0F;
		gfloat y = 0.0F;
		ClutterActor* _tmp8_;
		gfloat _tmp9_ = 0.0F;
		gfloat _tmp10_ = 0.0F;
		ClutterActor* _tmp11_;
		gfloat _tmp12_ = 0.0F;
		gfloat _tmp13_ = 0.0F;
		gboolean _tmp14_ = FALSE;
		gboolean _tmp15_ = FALSE;
		gboolean _tmp16_ = FALSE;
		gboolean _tmp17_ = FALSE;
		MtkRectangle _tmp18_;
		_tmp8_ = self->priv->tile_preview;
		clutter_actor_get_position (_tmp8_, &_tmp9_, &_tmp10_);
		x = _tmp9_;
		y = _tmp10_;
		_tmp11_ = self->priv->tile_preview;
		clutter_actor_get_size (_tmp11_, &_tmp12_, &_tmp13_);
		width = _tmp12_;
		height = _tmp13_;
		_tmp18_ = *tile_rect;
		if (((gfloat) _tmp18_.width) == width) {
			MtkRectangle _tmp19_;
			_tmp19_ = *tile_rect;
			_tmp17_ = ((gfloat) _tmp19_.height) == height;
		} else {
			_tmp17_ = FALSE;
		}
		if (_tmp17_) {
			MtkRectangle _tmp20_;
			_tmp20_ = *tile_rect;
			_tmp16_ = ((gfloat) _tmp20_.x) == x;
		} else {
			_tmp16_ = FALSE;
		}
		if (_tmp16_) {
			MtkRectangle _tmp21_;
			_tmp21_ = *tile_rect;
			_tmp15_ = ((gfloat) _tmp21_.y) == y;
		} else {
			_tmp15_ = FALSE;
		}
		if (_tmp15_) {
			_tmp14_ = TRUE;
		} else {
			ClutterActor* _tmp22_;
			ClutterTransition* _tmp23_;
			_tmp22_ = self->priv->tile_preview;
			_tmp23_ = clutter_actor_get_transition (_tmp22_, "size");
			_tmp14_ = _tmp23_ != NULL;
		}
		if (_tmp14_) {
			return;
		}
	}
	_tmp24_ = meta_window_get_compositor_private (window);
	window_actor = G_TYPE_CHECK_INSTANCE_TYPE (_tmp24_, meta_window_actor_get_type ()) ? ((MetaWindowActor*) _tmp24_) : NULL;
	_tmp25_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp26_ = _tmp25_;
	_tmp27_ = self->priv->tile_preview;
	_tmp28_ = window_actor;
	clutter_actor_set_child_below_sibling (_tmp26_, _tmp27_, (ClutterActor*) _tmp28_);
	duration = gala_utils_get_animation_duration (GALA_ANIMATION_DURATION_SNAP / 2U);
	meta_window_get_frame_rect (window, &_tmp29_);
	rect = _tmp29_;
	_tmp30_ = self->priv->tile_preview;
	_tmp31_ = rect;
	_tmp32_ = rect;
	clutter_actor_set_position (_tmp30_, (gfloat) _tmp31_.x, (gfloat) _tmp32_.y);
	_tmp33_ = self->priv->tile_preview;
	_tmp34_ = rect;
	_tmp35_ = rect;
	clutter_actor_set_size (_tmp33_, (gfloat) _tmp34_.width, (gfloat) _tmp35_.height);
	_tmp36_ = self->priv->tile_preview;
	clutter_actor_show (_tmp36_);
	_tmp37_ = self->priv->tile_preview;
	clutter_actor_save_easing_state (_tmp37_);
	_tmp38_ = self->priv->tile_preview;
	clutter_actor_set_easing_mode (_tmp38_, CLUTTER_EASE_IN_OUT_QUAD);
	_tmp39_ = self->priv->tile_preview;
	clutter_actor_set_easing_duration (_tmp39_, duration);
	_tmp40_ = self->priv->tile_preview;
	clutter_actor_set_opacity (_tmp40_, 255U);
	_tmp41_ = self->priv->tile_preview;
	_tmp42_ = *tile_rect;
	_tmp43_ = *tile_rect;
	clutter_actor_set_position (_tmp41_, (gfloat) _tmp42_.x, (gfloat) _tmp43_.y);
	_tmp44_ = self->priv->tile_preview;
	_tmp45_ = *tile_rect;
	_tmp46_ = *tile_rect;
	clutter_actor_set_size (_tmp44_, (gfloat) _tmp45_.width, (gfloat) _tmp46_.height);
	_tmp47_ = self->priv->tile_preview;
	clutter_actor_restore_easing_state (_tmp47_);
}

static void
gala_window_manager_gala_real_hide_tile_preview (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	ClutterActor* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->tile_preview;
	if (_tmp0_ != NULL) {
		ClutterActor* _tmp1_;
		ClutterActor* _tmp2_;
		ClutterActor* _tmp3_;
		_tmp1_ = self->priv->tile_preview;
		clutter_actor_remove_all_transitions (_tmp1_);
		_tmp2_ = self->priv->tile_preview;
		clutter_actor_set_opacity (_tmp2_, 0U);
		_tmp3_ = self->priv->tile_preview;
		clutter_actor_hide (_tmp3_);
		_g_object_unref0 (self->priv->tile_preview);
		self->priv->tile_preview = NULL;
	}
}

static void
gala_window_manager_gala_real_show_window_menu_for_rect (MetaPlugin* base,
                                                         MetaWindow* window,
                                                         MetaWindowMenuType menu,
                                                         MtkRectangle* rect)
{
	GalaWindowManagerGala * self;
	MtkRectangle _tmp0_;
	MtkRectangle _tmp1_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (window != NULL);
	g_return_if_fail (rect != NULL);
	_tmp0_ = *rect;
	_tmp1_ = *rect;
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->show_window_menu ((MetaPlugin*) self, window, menu, _tmp0_.x, _tmp1_.y);
}

static void
gala_window_manager_gala_check_shell_window (GalaWindowManagerGala* self,
                                             MetaWindowActor* actor)
{
	MetaWindow* window = NULL;
	MetaWindow* _tmp0_;
	GalaShellClientsManager* _tmp1_;
	MetaWindow* _tmp2_;
	GalaShellClientsManager* _tmp6_;
	MetaWindow* _tmp7_;
	MetaWindow* _tmp9_;
	gboolean _tmp11_ = FALSE;
	gboolean _tmp12_ = FALSE;
	gboolean _tmp13_ = FALSE;
	MetaWindow* _tmp14_;
	MetaWindowType _tmp15_;
	MetaWindowType _tmp16_;
	gboolean _tmp27_ = FALSE;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_tmp0_ = meta_window_actor_get_meta_window (actor);
	window = _tmp0_;
	_tmp1_ = gala_shell_clients_manager_get_instance ();
	_tmp2_ = window;
	if (gala_shell_clients_manager_is_system_modal_window (_tmp1_, _tmp2_)) {
		GalaModalGroup* _tmp3_;
		ClutterActor* _tmp4_;
		ClutterActor* _tmp5_;
		_tmp3_ = self->priv->_modal_group;
		_tmp4_ = gala_modal_group_get_window_group (_tmp3_);
		_tmp5_ = _tmp4_;
		gala_internal_utils_clutter_actor_reparent ((ClutterActor*) actor, _tmp5_);
		return;
	}
	_tmp6_ = gala_shell_clients_manager_get_instance ();
	_tmp7_ = window;
	if (gala_shell_clients_manager_is_shell_window (_tmp6_, _tmp7_)) {
		ClutterActor* _tmp8_;
		_tmp8_ = self->priv->_shell_group;
		gala_internal_utils_clutter_actor_reparent ((ClutterActor*) actor, _tmp8_);
		clutter_actor_set_scale ((ClutterActor*) actor, 1.0, 1.0);
		clutter_actor_set_opacity ((ClutterActor*) actor, (guint) 255);
	}
	_tmp9_ = window;
	if (gala_notification_stack_is_notification (_tmp9_)) {
		GalaNotificationStack* _tmp10_;
		_tmp10_ = self->priv->notification_stack;
		gala_notification_stack_show_notification (_tmp10_, actor);
	}
	_tmp14_ = window;
	_tmp15_ = meta_window_get_window_type (_tmp14_);
	_tmp16_ = _tmp15_;
	if (_tmp16_ == META_WINDOW_MENU) {
		_tmp13_ = TRUE;
	} else {
		MetaWindow* _tmp17_;
		MetaWindowType _tmp18_;
		MetaWindowType _tmp19_;
		_tmp17_ = window;
		_tmp18_ = meta_window_get_window_type (_tmp17_);
		_tmp19_ = _tmp18_;
		_tmp13_ = _tmp19_ == META_WINDOW_DROPDOWN_MENU;
	}
	if (_tmp13_) {
		_tmp12_ = TRUE;
	} else {
		MetaWindow* _tmp20_;
		MetaWindowType _tmp21_;
		MetaWindowType _tmp22_;
		_tmp20_ = window;
		_tmp21_ = meta_window_get_window_type (_tmp20_);
		_tmp22_ = _tmp21_;
		_tmp12_ = _tmp22_ == META_WINDOW_POPUP_MENU;
	}
	if (_tmp12_) {
		_tmp11_ = TRUE;
	} else {
		MetaWindow* _tmp23_;
		MetaWindowType _tmp24_;
		MetaWindowType _tmp25_;
		_tmp23_ = window;
		_tmp24_ = meta_window_get_window_type (_tmp23_);
		_tmp25_ = _tmp24_;
		_tmp11_ = _tmp25_ == META_WINDOW_TOOLTIP;
	}
	if (_tmp11_) {
		ClutterActor* _tmp26_;
		_tmp26_ = self->priv->_menu_group;
		gala_internal_utils_clutter_actor_reparent ((ClutterActor*) actor, _tmp26_);
	}
	if (!meta_is_wayland_compositor ()) {
		MetaWindow* _tmp28_;
		MetaWindowType _tmp29_;
		MetaWindowType _tmp30_;
		_tmp28_ = window;
		_tmp29_ = meta_window_get_window_type (_tmp28_);
		_tmp30_ = _tmp29_;
		_tmp27_ = _tmp30_ == META_WINDOW_DND;
	} else {
		_tmp27_ = FALSE;
	}
	if (_tmp27_) {
		MetaDisplay* _tmp31_;
		MetaCompositor* _tmp32_;
		ClutterActor* _tmp33_;
		_tmp31_ = meta_plugin_get_display ((MetaPlugin*) self);
		_tmp32_ = meta_display_get_compositor (_tmp31_);
		_tmp33_ = meta_compositor_get_feedback_group (_tmp32_);
		gala_internal_utils_clutter_actor_reparent ((ClutterActor*) actor, _tmp33_);
	}
}

static MetaSizeChange*
_meta_size_change_dup (MetaSizeChange* self)
{
	MetaSizeChange* dup;
	dup = g_new0 (MetaSizeChange, 1);
	memcpy (dup, self, sizeof (MetaSizeChange));
	return dup;
}

static gpointer
__meta_size_change_dup0 (gpointer self)
{
	return self ? _meta_size_change_dup (self) : NULL;
}

static void
gala_window_manager_gala_real_size_change (MetaPlugin* base,
                                           MetaWindowActor* actor,
                                           MetaSizeChange which_change_local,
                                           MtkRectangle* old_frame_rect,
                                           MtkRectangle* old_buffer_rect)
{
	GalaWindowManagerGala * self;
	MetaSizeChange* _tmp0_;
	MtkRectangle _tmp1_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	g_return_if_fail (old_frame_rect != NULL);
	g_return_if_fail (old_buffer_rect != NULL);
	_tmp0_ = __meta_size_change_dup0 (&which_change_local);
	_g_free0 (self->priv->which_change);
	self->priv->which_change = _tmp0_;
	_tmp1_ = *old_frame_rect;
	self->priv->old_rect_size_change = _tmp1_;
	if (meta_prefs_get_gnome_animations ()) {
		MtkRectangle _tmp2_;
		ClutterActor* _tmp3_;
		_tmp2_ = *old_frame_rect;
		_tmp3_ = gala_utils_get_window_actor_snapshot (actor, &_tmp2_);
		_g_object_unref0 (self->priv->latest_window_snapshot);
		self->priv->latest_window_snapshot = _tmp3_;
	}
}

static void
gala_window_manager_gala_real_size_changed (MetaPlugin* base,
                                            MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	MetaSizeChange* _tmp0_;
	MetaWindow* window = NULL;
	MetaWindow* _tmp1_;
	MtkRectangle new_rect = {0};
	MetaWindow* _tmp2_;
	MtkRectangle _tmp3_ = {0};
	MetaSizeChange* _tmp4_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_tmp0_ = self->priv->which_change;
	if (_tmp0_ == NULL) {
		return;
	}
	_tmp1_ = meta_window_actor_get_meta_window (actor);
	window = _tmp1_;
	_tmp2_ = window;
	meta_window_get_frame_rect (_tmp2_, &_tmp3_);
	new_rect = _tmp3_;
	_tmp4_ = self->priv->which_change;
	switch (*_tmp4_) {
		case META_SIZE_CHANGE_MAXIMIZE:
		case META_SIZE_CHANGE_FULLSCREEN:
		{
			gboolean _tmp5_ = FALSE;
			MetaWindow* _tmp6_;
			MetaWindow* _tmp7_;
			MtkRectangle _tmp18_;
			MtkRectangle _tmp19_;
			MtkRectangle _tmp20_;
			MtkRectangle _tmp21_;
			_tmp6_ = window;
			_tmp7_ = meta_window_get_tile_match (_tmp6_);
			if (_tmp7_ != NULL) {
				MetaWindow* _tmp8_;
				gboolean _tmp9_;
				gboolean _tmp10_;
				_tmp8_ = window;
				g_object_get (_tmp8_, "maximized-horizontally", &_tmp9_, NULL);
				_tmp10_ = _tmp9_;
				_tmp5_ = !_tmp10_;
			} else {
				_tmp5_ = FALSE;
			}
			if (_tmp5_) {
				gint old_end = 0;
				MtkRectangle _tmp11_;
				MtkRectangle _tmp12_;
				gint new_end = 0;
				MtkRectangle _tmp13_;
				MtkRectangle _tmp14_;
				gboolean _tmp15_ = FALSE;
				MtkRectangle _tmp16_;
				MtkRectangle _tmp17_;
				_tmp11_ = self->priv->old_rect_size_change;
				_tmp12_ = self->priv->old_rect_size_change;
				old_end = _tmp11_.x + _tmp12_.width;
				_tmp13_ = new_rect;
				_tmp14_ = new_rect;
				new_end = _tmp13_.x + _tmp14_.width;
				_tmp16_ = self->priv->old_rect_size_change;
				_tmp17_ = new_rect;
				if (_tmp16_.x == _tmp17_.x) {
					_tmp15_ = TRUE;
				} else {
					_tmp15_ = old_end == new_end;
				}
				if (_tmp15_) {
					break;
				}
			}
			_tmp18_ = new_rect;
			_tmp19_ = new_rect;
			_tmp20_ = new_rect;
			_tmp21_ = new_rect;
			gala_window_manager_gala_maximize (self, actor, _tmp18_.x, _tmp19_.y, _tmp20_.width, _tmp21_.height);
			break;
		}
		case META_SIZE_CHANGE_UNMAXIMIZE:
		case META_SIZE_CHANGE_UNFULLSCREEN:
		{
			MtkRectangle _tmp22_;
			MtkRectangle _tmp23_;
			MtkRectangle _tmp24_;
			MtkRectangle _tmp25_;
			_tmp22_ = new_rect;
			_tmp23_ = new_rect;
			_tmp24_ = new_rect;
			_tmp25_ = new_rect;
			gala_window_manager_gala_unmaximize (self, actor, _tmp22_.x, _tmp23_.y, _tmp24_.width, _tmp25_.height);
			break;
		}
		default:
		{
			break;
		}
	}
	_g_free0 (self->priv->which_change);
	self->priv->which_change = NULL;
	meta_plugin_size_change_completed ((MetaPlugin*) self, actor);
}

static Block15Data*
block15_data_ref (Block15Data* _data15_)
{
	g_atomic_int_inc (&_data15_->_ref_count_);
	return _data15_;
}

static void
block15_data_unref (void * _userdata_)
{
	Block15Data* _data15_;
	_data15_ = (Block15Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data15_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data15_->self;
		_g_object_unref0 (_data15_->actor);
		_g_object_unref0 (self);
		g_slice_free (Block15Data, _data15_);
	}
}

static Block16Data*
block16_data_ref (Block16Data* _data16_)
{
	g_atomic_int_inc (&_data16_->_ref_count_);
	return _data16_;
}

static void
block16_data_unref (void * _userdata_)
{
	Block16Data* _data16_;
	_data16_ = (Block16Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data16_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data16_->_data15_->self;
		block15_data_unref (_data16_->_data15_);
		_data16_->_data15_ = NULL;
		g_slice_free (Block16Data, _data16_);
	}
}

static void
___lambda161_ (Block16Data* _data16_)
{
	Block15Data* _data15_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data15_ = _data16_->_data15_;
	self = _data15_->self;
	g_signal_handler_disconnect ((GObject*) _data15_->actor, _data16_->minimize_handler_id);
	meta_plugin_minimize_completed ((MetaPlugin*) self, _data15_->actor);
	_tmp0_ = self->priv->minimizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data15_->actor);
}

static void
____lambda161__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda161_ (self);
}

static Block17Data*
block17_data_ref (Block17Data* _data17_)
{
	g_atomic_int_inc (&_data17_->_ref_count_);
	return _data17_;
}

static void
block17_data_unref (void * _userdata_)
{
	Block17Data* _data17_;
	_data17_ = (Block17Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data17_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data17_->_data15_->self;
		block15_data_unref (_data17_->_data15_);
		_data17_->_data15_ = NULL;
		g_slice_free (Block17Data, _data17_);
	}
}

static void
___lambda162_ (Block17Data* _data17_)
{
	Block15Data* _data15_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data15_ = _data17_->_data15_;
	self = _data15_->self;
	g_signal_handler_disconnect ((GObject*) _data15_->actor, _data17_->minimize_handler_id);
	clutter_actor_set_pivot_point ((ClutterActor*) _data15_->actor, 0.0f, 0.0f);
	meta_plugin_minimize_completed ((MetaPlugin*) self, _data15_->actor);
	_tmp0_ = self->priv->minimizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data15_->actor);
}

static void
____lambda162__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda162_ (self);
}

static void
gala_window_manager_gala_real_minimize (MetaPlugin* base,
                                        MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	Block15Data* _data15_;
	MetaWindowActor* _tmp0_;
	gboolean _tmp1_ = FALSE;
	GeeHashSet* _tmp5_;
	MtkRectangle icon = {0};
	MtkRectangle _tmp6_ = {0};
	MetaWindow* _tmp7_;
	MtkRectangle _tmp8_ = {0};
	gboolean _tmp9_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_data15_ = g_slice_new0 (Block15Data);
	_data15_->_ref_count_ = 1;
	_data15_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data15_->actor);
	_data15_->actor = _tmp0_;
	if (!meta_prefs_get_gnome_animations ()) {
		_tmp1_ = TRUE;
	} else {
		MetaWindow* _tmp2_;
		MetaWindowType _tmp3_;
		MetaWindowType _tmp4_;
		_tmp2_ = meta_window_actor_get_meta_window (_data15_->actor);
		_tmp3_ = meta_window_get_window_type (_tmp2_);
		_tmp4_ = _tmp3_;
		_tmp1_ = _tmp4_ != META_WINDOW_NORMAL;
	}
	if (_tmp1_) {
		meta_plugin_minimize_completed ((MetaPlugin*) self, _data15_->actor);
		block15_data_unref (_data15_);
		_data15_ = NULL;
		return;
	}
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) self, _data15_->actor);
	_tmp5_ = self->priv->minimizing;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp5_, _data15_->actor);
	icon = _tmp6_;
	_tmp7_ = meta_window_actor_get_meta_window (_data15_->actor);
	_tmp9_ = meta_window_get_icon_geometry (_tmp7_, &_tmp8_);
	icon = _tmp8_;
	if (_tmp9_) {
		Block16Data* _data16_;
		gfloat ui_scale = 0.0F;
		MetaDisplay* _tmp10_;
		MetaDisplay* _tmp11_;
		MtkRectangle _tmp12_;
		MtkRectangle _tmp13_;
		MtkRectangle _tmp14_;
		MtkRectangle _tmp15_;
		MtkRectangle _tmp16_;
		gfloat _tmp17_;
		gfloat _tmp18_;
		MtkRectangle _tmp19_;
		MtkRectangle _tmp20_;
		gfloat _tmp21_;
		gfloat _tmp22_;
		gfloat _tmp23_;
		gfloat _tmp24_;
		MtkRectangle _tmp25_;
		MtkRectangle _tmp26_;
		gfloat _tmp27_;
		gfloat _tmp28_;
		MtkRectangle _tmp29_;
		gfloat _tmp30_;
		gfloat _tmp31_;
		MtkRectangle _tmp32_;
		gfloat _tmp33_;
		gfloat _tmp34_;
		gulong _tmp35_;
		_data16_ = g_slice_new0 (Block16Data);
		_data16_->_ref_count_ = 1;
		_data16_->_data15_ = block15_data_ref (_data15_);
		_tmp10_ = meta_plugin_get_display ((MetaPlugin*) self);
		_tmp11_ = meta_plugin_get_display ((MetaPlugin*) self);
		_tmp12_ = icon;
		ui_scale = meta_display_get_monitor_scale (_tmp10_, meta_display_get_monitor_index_for_rect (_tmp11_, &_tmp12_));
		_tmp13_ = icon;
		icon.x = gala_utils_scale_to_int (_tmp13_.x, ui_scale);
		_tmp14_ = icon;
		icon.y = gala_utils_scale_to_int (_tmp14_.y, ui_scale);
		_tmp15_ = icon;
		icon.width = gala_utils_scale_to_int (_tmp15_.width, ui_scale);
		_tmp16_ = icon;
		icon.height = gala_utils_scale_to_int (_tmp16_.height, ui_scale);
		_tmp17_ = clutter_actor_get_x ((ClutterActor*) _data15_->actor);
		_tmp18_ = _tmp17_;
		_tmp19_ = icon;
		_tmp20_ = icon;
		_tmp21_ = clutter_actor_get_width ((ClutterActor*) _data15_->actor);
		_tmp22_ = _tmp21_;
		_tmp23_ = clutter_actor_get_y ((ClutterActor*) _data15_->actor);
		_tmp24_ = _tmp23_;
		_tmp25_ = icon;
		_tmp26_ = icon;
		_tmp27_ = clutter_actor_get_height ((ClutterActor*) _data15_->actor);
		_tmp28_ = _tmp27_;
		clutter_actor_set_pivot_point ((ClutterActor*) _data15_->actor, (_tmp18_ - _tmp19_.x) / (_tmp20_.width - _tmp22_), (_tmp24_ - _tmp25_.y) / (_tmp26_.height - _tmp28_));
		clutter_actor_save_easing_state ((ClutterActor*) _data15_->actor);
		clutter_actor_set_easing_mode ((ClutterActor*) _data15_->actor, CLUTTER_EASE_IN_EXPO);
		clutter_actor_set_easing_duration ((ClutterActor*) _data15_->actor, (guint) GALA_ANIMATION_DURATION_HIDE);
		_tmp29_ = icon;
		_tmp30_ = clutter_actor_get_width ((ClutterActor*) _data15_->actor);
		_tmp31_ = _tmp30_;
		_tmp32_ = icon;
		_tmp33_ = clutter_actor_get_height ((ClutterActor*) _data15_->actor);
		_tmp34_ = _tmp33_;
		clutter_actor_set_scale ((ClutterActor*) _data15_->actor, (gdouble) (_tmp29_.width / _tmp31_), (gdouble) (_tmp32_.height / _tmp34_));
		clutter_actor_set_opacity ((ClutterActor*) _data15_->actor, (guint) 0);
		clutter_actor_restore_easing_state ((ClutterActor*) _data15_->actor);
		_data16_->minimize_handler_id = (gulong) 0;
		_tmp35_ = g_signal_connect_data ((ClutterActor*) _data15_->actor, "transitions-completed", (GCallback) ____lambda161__clutter_actor_transitions_completed, block16_data_ref (_data16_), (GClosureNotify) block16_data_unref, 0);
		_data16_->minimize_handler_id = _tmp35_;
		block16_data_unref (_data16_);
		_data16_ = NULL;
	} else {
		Block17Data* _data17_;
		gulong _tmp36_;
		_data17_ = g_slice_new0 (Block17Data);
		_data17_->_ref_count_ = 1;
		_data17_->_data15_ = block15_data_ref (_data15_);
		clutter_actor_set_pivot_point ((ClutterActor*) _data15_->actor, 0.5f, 1.0f);
		clutter_actor_save_easing_state ((ClutterActor*) _data15_->actor);
		clutter_actor_set_easing_mode ((ClutterActor*) _data15_->actor, CLUTTER_EASE_IN_EXPO);
		clutter_actor_set_easing_duration ((ClutterActor*) _data15_->actor, (guint) GALA_ANIMATION_DURATION_HIDE);
		clutter_actor_set_scale ((ClutterActor*) _data15_->actor, 0.0, 0.0);
		clutter_actor_set_opacity ((ClutterActor*) _data15_->actor, (guint) 0);
		clutter_actor_restore_easing_state ((ClutterActor*) _data15_->actor);
		_data17_->minimize_handler_id = (gulong) 0;
		_tmp36_ = g_signal_connect_data ((ClutterActor*) _data15_->actor, "transitions-completed", (GCallback) ____lambda162__clutter_actor_transitions_completed, block17_data_ref (_data17_), (GClosureNotify) block17_data_unref, 0);
		_data17_->minimize_handler_id = _tmp36_;
		block17_data_unref (_data17_);
		_data17_ = NULL;
	}
	block15_data_unref (_data15_);
	_data15_ = NULL;
}

static Block18Data*
block18_data_ref (Block18Data* _data18_)
{
	g_atomic_int_inc (&_data18_->_ref_count_);
	return _data18_;
}

static void
block18_data_unref (void * _userdata_)
{
	Block18Data* _data18_;
	_data18_ = (Block18Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data18_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data18_->self;
		_g_object_unref0 (_data18_->actor);
		_g_object_unref0 (self);
		g_slice_free (Block18Data, _data18_);
	}
}

static gboolean
___lambda156_ (Block18Data* _data18_)
{
	GalaWindowManagerGala* self;
	gboolean result;
	self = _data18_->self;
	clutter_actor_set_opacity ((ClutterActor*) _data18_->actor, (guint) 255);
	result = FALSE;
	return result;
}

static gboolean
____lambda156__gsource_func (gpointer self)
{
	gboolean result;
	result = ___lambda156_ (self);
	return result;
}

static void
__lambda157_ (Block18Data* _data18_,
              ClutterActor* snapshot,
              const gchar* name,
              gboolean is_finished)
{
	GalaWindowManagerGala* self;
	ClutterActor* parent = NULL;
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	self = _data18_->self;
	g_return_if_fail (snapshot != NULL);
	g_return_if_fail (name != NULL);
	g_signal_handler_disconnect ((GObject*) snapshot, _data18_->maximize_old_handler_id);
	clutter_actor_set_translation ((ClutterActor*) _data18_->actor, 0.0f, 0.0f, 0.0f);
	_tmp0_ = clutter_actor_get_parent (snapshot);
	parent = _tmp0_;
	_tmp1_ = parent;
	if (_tmp1_ != NULL) {
		ClutterActor* _tmp2_;
		_tmp2_ = parent;
		clutter_actor_remove_child (_tmp2_, snapshot);
	}
}

static void
___lambda157__clutter_actor_transition_stopped (ClutterActor* _sender,
                                                const gchar* name,
                                                gboolean is_finished,
                                                gpointer self)
{
	__lambda157_ (self, _sender, name, is_finished);
}

static void
__lambda158_ (Block18Data* _data18_)
{
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	self = _data18_->self;
	g_signal_handler_disconnect ((GObject*) _data18_->actor, _data18_->handler_id);
	_tmp0_ = self->priv->maximizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data18_->actor);
}

static void
___lambda158__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                   gpointer self)
{
	__lambda158_ (self);
}

static void
gala_window_manager_gala_maximize (GalaWindowManagerGala* self,
                                   MetaWindowActor* actor,
                                   gint ex,
                                   gint ey,
                                   gint ew,
                                   gint eh)
{
	Block18Data* _data18_;
	MetaWindowActor* _tmp0_;
	MetaWindow* window = NULL;
	MetaWindow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	GalaAnimationDuration duration = 0;
	GeeHashSet* _tmp8_;
	ClutterActor* _tmp9_;
	MtkRectangle _tmp10_;
	MtkRectangle _tmp11_;
	ClutterActor* _tmp12_;
	ClutterActor* _tmp13_;
	ClutterActor* _tmp14_;
	static const gint FLASH_PREVENT_TIMEOUT = 80;
	gint delay = 0;
	gdouble scale_x = 0.0;
	MtkRectangle _tmp15_;
	gdouble scale_y = 0.0;
	MtkRectangle _tmp16_;
	ClutterActor* _tmp17_;
	ClutterActor* _tmp18_;
	ClutterActor* _tmp19_;
	ClutterActor* _tmp20_;
	ClutterActor* _tmp21_;
	ClutterActor* _tmp22_;
	ClutterActor* _tmp23_;
	ClutterActor* _tmp24_;
	ClutterActor* _tmp25_;
	ClutterActor* _tmp26_;
	ClutterActor* _tmp27_;
	ClutterActor* _tmp28_;
	gulong _tmp29_;
	MtkRectangle _tmp30_;
	MtkRectangle _tmp31_;
	gulong _tmp32_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data18_ = g_slice_new0 (Block18Data);
	_data18_->_ref_count_ = 1;
	_data18_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data18_->actor);
	_data18_->actor = _tmp0_;
	_tmp1_ = meta_window_actor_get_meta_window (_data18_->actor);
	window = _tmp1_;
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) self, _data18_->actor);
	if (!meta_prefs_get_gnome_animations ()) {
		_tmp3_ = TRUE;
	} else {
		ClutterActor* _tmp4_;
		_tmp4_ = self->priv->latest_window_snapshot;
		_tmp3_ = _tmp4_ == NULL;
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		MetaWindow* _tmp5_;
		MetaWindowType _tmp6_;
		MetaWindowType _tmp7_;
		_tmp5_ = window;
		_tmp6_ = meta_window_get_window_type (_tmp5_);
		_tmp7_ = _tmp6_;
		_tmp2_ = _tmp7_ != META_WINDOW_NORMAL;
	}
	if (_tmp2_) {
		block18_data_unref (_data18_);
		_data18_ = NULL;
		return;
	}
	duration = GALA_ANIMATION_DURATION_SNAP;
	_tmp8_ = self->priv->maximizing;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp8_, _data18_->actor);
	_tmp9_ = self->priv->latest_window_snapshot;
	_tmp10_ = self->priv->old_rect_size_change;
	_tmp11_ = self->priv->old_rect_size_change;
	clutter_actor_set_position (_tmp9_, (gfloat) _tmp10_.x, (gfloat) _tmp11_.y);
	_tmp12_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp13_ = _tmp12_;
	_tmp14_ = self->priv->latest_window_snapshot;
	clutter_actor_add_child (_tmp13_, _tmp14_);
	delay = 0;
	if (FLASH_PREVENT_TIMEOUT <= ((gint) (duration / 3))) {
		clutter_actor_set_opacity ((ClutterActor*) _data18_->actor, (guint) 0);
		delay = FLASH_PREVENT_TIMEOUT;
		g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) FLASH_PREVENT_TIMEOUT, ____lambda156__gsource_func, block18_data_ref (_data18_), block18_data_unref);
	}
	_tmp15_ = self->priv->old_rect_size_change;
	scale_x = ((gdouble) ew) / _tmp15_.width;
	_tmp16_ = self->priv->old_rect_size_change;
	scale_y = ((gdouble) eh) / _tmp16_.height;
	_tmp17_ = self->priv->latest_window_snapshot;
	clutter_actor_save_easing_state (_tmp17_);
	_tmp18_ = self->priv->latest_window_snapshot;
	clutter_actor_set_easing_mode (_tmp18_, CLUTTER_EASE_IN_OUT_QUAD);
	_tmp19_ = self->priv->latest_window_snapshot;
	clutter_actor_set_easing_duration (_tmp19_, (guint) duration);
	_tmp20_ = self->priv->latest_window_snapshot;
	clutter_actor_set_position (_tmp20_, (gfloat) ex, (gfloat) ey);
	_tmp21_ = self->priv->latest_window_snapshot;
	clutter_actor_set_scale (_tmp21_, scale_x, scale_y);
	_tmp22_ = self->priv->latest_window_snapshot;
	clutter_actor_restore_easing_state (_tmp22_);
	_tmp23_ = self->priv->latest_window_snapshot;
	clutter_actor_save_easing_state (_tmp23_);
	_tmp24_ = self->priv->latest_window_snapshot;
	clutter_actor_set_easing_delay (_tmp24_, (guint) delay);
	_tmp25_ = self->priv->latest_window_snapshot;
	clutter_actor_set_easing_duration (_tmp25_, (guint) (duration - delay));
	_tmp26_ = self->priv->latest_window_snapshot;
	clutter_actor_set_opacity (_tmp26_, (guint) 0);
	_tmp27_ = self->priv->latest_window_snapshot;
	clutter_actor_restore_easing_state (_tmp27_);
	_data18_->maximize_old_handler_id = (gulong) 0;
	_tmp28_ = self->priv->latest_window_snapshot;
	_tmp29_ = g_signal_connect_data (_tmp28_, "transition-stopped", (GCallback) ___lambda157__clutter_actor_transition_stopped, block18_data_ref (_data18_), (GClosureNotify) block18_data_unref, 0);
	_data18_->maximize_old_handler_id = _tmp29_;
	_g_object_unref0 (self->priv->latest_window_snapshot);
	self->priv->latest_window_snapshot = NULL;
	clutter_actor_set_pivot_point ((ClutterActor*) _data18_->actor, 0.0f, 0.0f);
	_tmp30_ = self->priv->old_rect_size_change;
	_tmp31_ = self->priv->old_rect_size_change;
	clutter_actor_set_translation ((ClutterActor*) _data18_->actor, (gfloat) (_tmp30_.x - ex), (gfloat) (_tmp31_.y - ey), 0.0f);
	clutter_actor_set_scale ((ClutterActor*) _data18_->actor, 1.0f / scale_x, 1.0f / scale_y);
	clutter_actor_save_easing_state ((ClutterActor*) _data18_->actor);
	clutter_actor_set_easing_mode ((ClutterActor*) _data18_->actor, CLUTTER_EASE_IN_OUT_QUAD);
	clutter_actor_set_easing_duration ((ClutterActor*) _data18_->actor, (guint) duration);
	clutter_actor_set_scale ((ClutterActor*) _data18_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
	clutter_actor_set_translation ((ClutterActor*) _data18_->actor, 0.0f, 0.0f, 0.0f);
	clutter_actor_restore_easing_state ((ClutterActor*) _data18_->actor);
	_data18_->handler_id = 0UL;
	_tmp32_ = g_signal_connect_data ((ClutterActor*) _data18_->actor, "transitions-completed", (GCallback) ___lambda158__clutter_actor_transitions_completed, block18_data_ref (_data18_), (GClosureNotify) block18_data_unref, 0);
	_data18_->handler_id = _tmp32_;
	block18_data_unref (_data18_);
	_data18_ = NULL;
}

static Block19Data*
block19_data_ref (Block19Data* _data19_)
{
	g_atomic_int_inc (&_data19_->_ref_count_);
	return _data19_;
}

static void
block19_data_unref (void * _userdata_)
{
	Block19Data* _data19_;
	_data19_ = (Block19Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data19_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data19_->self;
		_g_object_unref0 (_data19_->actor);
		_g_object_unref0 (self);
		g_slice_free (Block19Data, _data19_);
	}
}

static Block20Data*
block20_data_ref (Block20Data* _data20_)
{
	g_atomic_int_inc (&_data20_->_ref_count_);
	return _data20_;
}

static void
block20_data_unref (void * _userdata_)
{
	Block20Data* _data20_;
	_data20_ = (Block20Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data20_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data20_->_data19_->self;
		block19_data_unref (_data20_->_data19_);
		_data20_->_data19_ = NULL;
		g_slice_free (Block20Data, _data20_);
	}
}

static void
___lambda163_ (Block20Data* _data20_)
{
	Block19Data* _data19_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data19_ = _data20_->_data19_;
	self = _data19_->self;
	g_signal_handler_disconnect ((GObject*) _data19_->actor, _data20_->unminimize_handler_id);
	_tmp0_ = self->priv->unminimizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data19_->actor);
	meta_plugin_unminimize_completed ((MetaPlugin*) self, _data19_->actor);
}

static void
____lambda163__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda163_ (self);
}

static void
gala_window_manager_gala_real_unminimize (MetaPlugin* base,
                                          MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	Block19Data* _data19_;
	MetaWindowActor* _tmp0_;
	GalaAnimationDuration duration = 0;
	MetaWindow* window = NULL;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	MetaWindowType _tmp3_;
	MetaWindowType _tmp4_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_data19_ = g_slice_new0 (Block19Data);
	_data19_->_ref_count_ = 1;
	_data19_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data19_->actor);
	_data19_->actor = _tmp0_;
	if (!meta_prefs_get_gnome_animations ()) {
		clutter_actor_show ((ClutterActor*) _data19_->actor);
		meta_plugin_unminimize_completed ((MetaPlugin*) self, _data19_->actor);
		block19_data_unref (_data19_);
		_data19_ = NULL;
		return;
	}
	duration = GALA_ANIMATION_DURATION_HIDE;
	_tmp1_ = meta_window_actor_get_meta_window (_data19_->actor);
	window = _tmp1_;
	clutter_actor_remove_all_transitions ((ClutterActor*) _data19_->actor);
	clutter_actor_show ((ClutterActor*) _data19_->actor);
	_tmp2_ = window;
	_tmp3_ = meta_window_get_window_type (_tmp2_);
	_tmp4_ = _tmp3_;
	switch (_tmp4_) {
		case META_WINDOW_NORMAL:
		{
			Block20Data* _data20_;
			GeeHashSet* _tmp5_;
			gulong _tmp6_;
			_data20_ = g_slice_new0 (Block20Data);
			_data20_->_ref_count_ = 1;
			_data20_->_data19_ = block19_data_ref (_data19_);
			_tmp5_ = self->priv->unminimizing;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp5_, _data19_->actor);
			clutter_actor_set_pivot_point ((ClutterActor*) _data19_->actor, 0.5f, 1.0f);
			clutter_actor_set_scale ((ClutterActor*) _data19_->actor, (gdouble) 0.01f, (gdouble) 0.1f);
			clutter_actor_set_opacity ((ClutterActor*) _data19_->actor, 0U);
			clutter_actor_save_easing_state ((ClutterActor*) _data19_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data19_->actor, CLUTTER_EASE_OUT_EXPO);
			clutter_actor_set_easing_duration ((ClutterActor*) _data19_->actor, (guint) duration);
			clutter_actor_set_scale ((ClutterActor*) _data19_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
			clutter_actor_set_opacity ((ClutterActor*) _data19_->actor, 255U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data19_->actor);
			_data20_->unminimize_handler_id = 0UL;
			_tmp6_ = g_signal_connect_data ((ClutterActor*) _data19_->actor, "transitions-completed", (GCallback) ____lambda163__clutter_actor_transitions_completed, block20_data_ref (_data20_), (GClosureNotify) block20_data_unref, 0);
			_data20_->unminimize_handler_id = _tmp6_;
			block20_data_unref (_data20_);
			_data20_ = NULL;
			break;
		}
		default:
		{
			meta_plugin_unminimize_completed ((MetaPlugin*) self, _data19_->actor);
			break;
		}
	}
	block19_data_unref (_data19_);
	_data19_ = NULL;
}

static Block21Data*
block21_data_ref (Block21Data* _data21_)
{
	g_atomic_int_inc (&_data21_->_ref_count_);
	return _data21_;
}

static void
block21_data_unref (void * _userdata_)
{
	Block21Data* _data21_;
	_data21_ = (Block21Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data21_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data21_->self;
		_g_object_unref0 (_data21_->actor);
		_g_object_unref0 (self);
		g_slice_free (Block21Data, _data21_);
	}
}

static Block22Data*
block22_data_ref (Block22Data* _data22_)
{
	g_atomic_int_inc (&_data22_->_ref_count_);
	return _data22_;
}

static void
block22_data_unref (void * _userdata_)
{
	Block22Data* _data22_;
	_data22_ = (Block22Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data22_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data22_->_data21_->self;
		block21_data_unref (_data22_->_data21_);
		_data22_->_data21_ = NULL;
		g_slice_free (Block22Data, _data22_);
	}
}

static void
___lambda164_ (Block22Data* _data22_)
{
	Block21Data* _data21_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data21_ = _data22_->_data21_;
	self = _data21_->self;
	g_signal_handler_disconnect ((GObject*) _data21_->actor, _data22_->map_handler_id);
	_tmp0_ = self->priv->mapping;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data21_->actor);
	meta_plugin_map_completed ((MetaPlugin*) self, _data21_->actor);
}

static void
____lambda164__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda164_ (self);
}

static Block23Data*
block23_data_ref (Block23Data* _data23_)
{
	g_atomic_int_inc (&_data23_->_ref_count_);
	return _data23_;
}

static void
block23_data_unref (void * _userdata_)
{
	Block23Data* _data23_;
	_data23_ = (Block23Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data23_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data23_->_data21_->self;
		block21_data_unref (_data23_->_data21_);
		_data23_->_data21_ = NULL;
		g_slice_free (Block23Data, _data23_);
	}
}

static void
___lambda165_ (Block23Data* _data23_)
{
	Block21Data* _data21_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data21_ = _data23_->_data21_;
	self = _data21_->self;
	g_signal_handler_disconnect ((GObject*) _data21_->actor, _data23_->map_handler_id);
	_tmp0_ = self->priv->mapping;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data21_->actor);
	meta_plugin_map_completed ((MetaPlugin*) self, _data21_->actor);
}

static void
____lambda165__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda165_ (self);
}

static Block24Data*
block24_data_ref (Block24Data* _data24_)
{
	g_atomic_int_inc (&_data24_->_ref_count_);
	return _data24_;
}

static void
block24_data_unref (void * _userdata_)
{
	Block24Data* _data24_;
	_data24_ = (Block24Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data24_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data24_->_data21_->self;
		block21_data_unref (_data24_->_data21_);
		_data24_->_data21_ = NULL;
		g_slice_free (Block24Data, _data24_);
	}
}

static void
___lambda166_ (Block24Data* _data24_)
{
	Block21Data* _data21_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data21_ = _data24_->_data21_;
	self = _data21_->self;
	g_signal_handler_disconnect ((GObject*) _data21_->actor, _data24_->map_handler_id);
	_tmp0_ = self->priv->mapping;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data21_->actor);
	meta_plugin_map_completed ((MetaPlugin*) self, _data21_->actor);
}

static void
____lambda166__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda166_ (self);
}

static void
gala_window_manager_gala_real_map (MetaPlugin* base,
                                   MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	Block21Data* _data21_;
	MetaWindowActor* _tmp0_;
	MetaWindow* window = NULL;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	gboolean _tmp3_ = FALSE;
	MetaWindow* _tmp4_;
	MetaWindow* _tmp6_;
	MetaWindowType _tmp7_;
	MetaWindowType _tmp8_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_data21_ = g_slice_new0 (Block21Data);
	_data21_->_ref_count_ = 1;
	_data21_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data21_->actor);
	_data21_->actor = _tmp0_;
	_tmp1_ = meta_window_actor_get_meta_window (_data21_->actor);
	window = _tmp1_;
	_tmp2_ = window;
	gala_window_state_saver_on_map (_tmp2_);
	clutter_actor_remove_all_transitions ((ClutterActor*) _data21_->actor);
	clutter_actor_show ((ClutterActor*) _data21_->actor);
	_tmp4_ = window;
	if (gala_notification_stack_is_notification (_tmp4_)) {
		_tmp3_ = TRUE;
	} else {
		_tmp3_ = !meta_prefs_get_gnome_animations ();
	}
	if (_tmp3_) {
		MetaWindow* _tmp5_;
		_tmp5_ = window;
		gala_window_manager_gala_dim_parent_window (self, _tmp5_);
		meta_plugin_map_completed ((MetaPlugin*) self, _data21_->actor);
		block21_data_unref (_data21_);
		_data21_ = NULL;
		return;
	}
	_tmp6_ = window;
	_tmp7_ = meta_window_get_window_type (_tmp6_);
	_tmp8_ = _tmp7_;
	switch (_tmp8_) {
		case META_WINDOW_NORMAL:
		{
			Block22Data* _data22_;
			GalaAnimationDuration duration = 0;
			GeeHashSet* _tmp9_;
			gboolean _tmp10_ = FALSE;
			MetaWindow* _tmp11_;
			gboolean _tmp12_;
			gboolean _tmp13_;
			gulong _tmp21_;
			_data22_ = g_slice_new0 (Block22Data);
			_data22_->_ref_count_ = 1;
			_data22_->_data21_ = block21_data_ref (_data21_);
			duration = GALA_ANIMATION_DURATION_HIDE;
			if (duration == 0) {
				meta_plugin_map_completed ((MetaPlugin*) self, _data21_->actor);
				block22_data_unref (_data22_);
				_data22_ = NULL;
				block21_data_unref (_data21_);
				_data21_ = NULL;
				return;
			}
			_tmp9_ = self->priv->mapping;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp9_, _data21_->actor);
			_tmp11_ = window;
			g_object_get (_tmp11_, "maximized-vertically", &_tmp12_, NULL);
			_tmp13_ = _tmp12_;
			if (_tmp13_) {
				_tmp10_ = TRUE;
			} else {
				MetaWindow* _tmp14_;
				gboolean _tmp15_;
				gboolean _tmp16_;
				_tmp14_ = window;
				g_object_get (_tmp14_, "maximized-horizontally", &_tmp15_, NULL);
				_tmp16_ = _tmp15_;
				_tmp10_ = _tmp16_;
			}
			if (_tmp10_) {
				MtkRectangle outer_rect = {0};
				MetaWindow* _tmp17_;
				MtkRectangle _tmp18_ = {0};
				MtkRectangle _tmp19_;
				MtkRectangle _tmp20_;
				_tmp17_ = window;
				meta_window_get_frame_rect (_tmp17_, &_tmp18_);
				outer_rect = _tmp18_;
				_tmp19_ = outer_rect;
				_tmp20_ = outer_rect;
				clutter_actor_set_position ((ClutterActor*) _data21_->actor, (gfloat) _tmp19_.x, (gfloat) _tmp20_.y);
			}
			clutter_actor_set_pivot_point ((ClutterActor*) _data21_->actor, 0.5f, 1.0f);
			clutter_actor_set_scale ((ClutterActor*) _data21_->actor, (gdouble) 0.01f, (gdouble) 0.1f);
			clutter_actor_set_opacity ((ClutterActor*) _data21_->actor, (guint) 0);
			clutter_actor_save_easing_state ((ClutterActor*) _data21_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data21_->actor, CLUTTER_EASE_OUT_EXPO);
			clutter_actor_set_easing_duration ((ClutterActor*) _data21_->actor, (guint) duration);
			clutter_actor_set_scale ((ClutterActor*) _data21_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
			clutter_actor_set_opacity ((ClutterActor*) _data21_->actor, 255U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data21_->actor);
			_data22_->map_handler_id = 0UL;
			_tmp21_ = g_signal_connect_data ((ClutterActor*) _data21_->actor, "transitions-completed", (GCallback) ____lambda164__clutter_actor_transitions_completed, block22_data_ref (_data22_), (GClosureNotify) block22_data_unref, 0);
			_data22_->map_handler_id = _tmp21_;
			block22_data_unref (_data22_);
			_data22_ = NULL;
			break;
		}
		case META_WINDOW_MENU:
		case META_WINDOW_DROPDOWN_MENU:
		case META_WINDOW_POPUP_MENU:
		{
			Block23Data* _data23_;
			GalaAnimationDuration duration = 0;
			GeeHashSet* _tmp22_;
			gulong _tmp23_;
			_data23_ = g_slice_new0 (Block23Data);
			_data23_->_ref_count_ = 1;
			_data23_->_data21_ = block21_data_ref (_data21_);
			duration = GALA_ANIMATION_DURATION_MENU_MAP;
			if (duration == 0) {
				meta_plugin_map_completed ((MetaPlugin*) self, _data21_->actor);
				block23_data_unref (_data23_);
				_data23_ = NULL;
				block21_data_unref (_data21_);
				_data21_ = NULL;
				return;
			}
			_tmp22_ = self->priv->mapping;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp22_, _data21_->actor);
			clutter_actor_set_opacity ((ClutterActor*) _data21_->actor, (guint) 0);
			clutter_actor_save_easing_state ((ClutterActor*) _data21_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data21_->actor, CLUTTER_EASE_OUT_QUAD);
			clutter_actor_set_easing_duration ((ClutterActor*) _data21_->actor, (guint) duration);
			clutter_actor_set_opacity ((ClutterActor*) _data21_->actor, (guint) 255);
			clutter_actor_restore_easing_state ((ClutterActor*) _data21_->actor);
			_data23_->map_handler_id = 0UL;
			_tmp23_ = g_signal_connect_data ((ClutterActor*) _data21_->actor, "transitions-completed", (GCallback) ____lambda165__clutter_actor_transitions_completed, block23_data_ref (_data23_), (GClosureNotify) block23_data_unref, 0);
			_data23_->map_handler_id = _tmp23_;
			block23_data_unref (_data23_);
			_data23_ = NULL;
			break;
		}
		case META_WINDOW_MODAL_DIALOG:
		case META_WINDOW_DIALOG:
		{
			Block24Data* _data24_;
			GeeHashSet* _tmp24_;
			gulong _tmp25_;
			MetaWindow* _tmp26_;
			_data24_ = g_slice_new0 (Block24Data);
			_data24_->_ref_count_ = 1;
			_data24_->_data21_ = block21_data_ref (_data21_);
			_tmp24_ = self->priv->mapping;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp24_, _data21_->actor);
			clutter_actor_set_pivot_point ((ClutterActor*) _data21_->actor, 0.5f, 0.5f);
			clutter_actor_set_scale ((ClutterActor*) _data21_->actor, (gdouble) 1.05f, (gdouble) 1.05f);
			clutter_actor_set_opacity ((ClutterActor*) _data21_->actor, (guint) 0);
			clutter_actor_save_easing_state ((ClutterActor*) _data21_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data21_->actor, CLUTTER_EASE_OUT_QUAD);
			clutter_actor_set_easing_duration ((ClutterActor*) _data21_->actor, (guint) 200);
			clutter_actor_set_scale ((ClutterActor*) _data21_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
			clutter_actor_set_opacity ((ClutterActor*) _data21_->actor, 255U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data21_->actor);
			_data24_->map_handler_id = 0UL;
			_tmp25_ = g_signal_connect_data ((ClutterActor*) _data21_->actor, "transitions-completed", (GCallback) ____lambda166__clutter_actor_transitions_completed, block24_data_ref (_data24_), (GClosureNotify) block24_data_unref, 0);
			_data24_->map_handler_id = _tmp25_;
			_tmp26_ = window;
			gala_window_manager_gala_dim_parent_window (self, _tmp26_);
			block24_data_unref (_data24_);
			_data24_ = NULL;
			break;
		}
		default:
		{
			meta_plugin_map_completed ((MetaPlugin*) self, _data21_->actor);
			break;
		}
	}
	block21_data_unref (_data21_);
	_data21_ = NULL;
}

static Block25Data*
block25_data_ref (Block25Data* _data25_)
{
	g_atomic_int_inc (&_data25_->_ref_count_);
	return _data25_;
}

static void
block25_data_unref (void * _userdata_)
{
	Block25Data* _data25_;
	_data25_ = (Block25Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data25_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data25_->self;
		_g_object_unref0 (_data25_->actor);
		_g_object_unref0 (self);
		g_slice_free (Block25Data, _data25_);
	}
}

static Block26Data*
block26_data_ref (Block26Data* _data26_)
{
	g_atomic_int_inc (&_data26_->_ref_count_);
	return _data26_;
}

static void
block26_data_unref (void * _userdata_)
{
	Block26Data* _data26_;
	_data26_ = (Block26Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data26_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data26_->_data25_->self;
		block25_data_unref (_data26_->_data25_);
		_data26_->_data25_ = NULL;
		g_slice_free (Block26Data, _data26_);
	}
}

static void
____lambda167_ (Block26Data* _data26_)
{
	Block25Data* _data25_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data25_ = _data26_->_data25_;
	self = _data25_->self;
	g_signal_handler_disconnect ((GObject*) _data25_->actor, _data26_->destroy_handler_id);
	_tmp0_ = self->priv->destroying;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data25_->actor);
	meta_plugin_destroy_completed ((MetaPlugin*) self, _data25_->actor);
}

static void
_____lambda167__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                     gpointer self)
{
	____lambda167_ (self);
}

static Block27Data*
block27_data_ref (Block27Data* _data27_)
{
	g_atomic_int_inc (&_data27_->_ref_count_);
	return _data27_;
}

static void
block27_data_unref (void * _userdata_)
{
	Block27Data* _data27_;
	_data27_ = (Block27Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data27_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data27_->_data25_->self;
		block25_data_unref (_data27_->_data25_);
		_data27_->_data25_ = NULL;
		g_slice_free (Block27Data, _data27_);
	}
}

static void
___lambda168_ (Block27Data* _data27_)
{
	Block25Data* _data25_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	MetaWindow* _tmp1_;
	_data25_ = _data27_->_data25_;
	self = _data25_->self;
	g_signal_handler_disconnect ((GObject*) _data25_->actor, _data27_->destroy_handler_id);
	_tmp0_ = self->priv->destroying;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data25_->actor);
	meta_plugin_destroy_completed ((MetaPlugin*) self, _data25_->actor);
	_tmp1_ = _data25_->window;
	gala_utils_clear_window_cache (_tmp1_);
}

static void
____lambda168__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda168_ (self);
}

static Block28Data*
block28_data_ref (Block28Data* _data28_)
{
	g_atomic_int_inc (&_data28_->_ref_count_);
	return _data28_;
}

static void
block28_data_unref (void * _userdata_)
{
	Block28Data* _data28_;
	_data28_ = (Block28Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data28_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data28_->_data25_->self;
		block25_data_unref (_data28_->_data25_);
		_data28_->_data25_ = NULL;
		g_slice_free (Block28Data, _data28_);
	}
}

static void
___lambda169_ (Block28Data* _data28_)
{
	Block25Data* _data25_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data25_ = _data28_->_data25_;
	self = _data25_->self;
	g_signal_handler_disconnect ((GObject*) _data25_->actor, _data28_->destroy_handler_id);
	_tmp0_ = self->priv->destroying;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data25_->actor);
	meta_plugin_destroy_completed ((MetaPlugin*) self, _data25_->actor);
}

static void
____lambda169__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda169_ (self);
}

static void
gala_window_manager_gala_real_destroy (MetaPlugin* base,
                                       MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	Block25Data* _data25_;
	MetaWindowActor* _tmp0_;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	MetaWindow* _tmp10_;
	MetaWindowType _tmp11_;
	MetaWindowType _tmp12_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_data25_ = g_slice_new0 (Block25Data);
	_data25_->_ref_count_ = 1;
	_data25_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data25_->actor);
	_data25_->actor = _tmp0_;
	_tmp1_ = meta_window_actor_get_meta_window (_data25_->actor);
	_data25_->window = _tmp1_;
	clutter_actor_remove_all_transitions ((ClutterActor*) _data25_->actor);
	_tmp2_ = _data25_->window;
	if (gala_notification_stack_is_notification (_tmp2_)) {
		GalaNotificationStack* _tmp4_;
		if (meta_prefs_get_gnome_animations ()) {
			GeeHashSet* _tmp3_;
			_tmp3_ = self->priv->destroying;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp3_, _data25_->actor);
		}
		_tmp4_ = self->priv->notification_stack;
		gala_notification_stack_destroy_notification (_tmp4_, _data25_->actor);
		if (meta_prefs_get_gnome_animations ()) {
			Block26Data* _data26_;
			gulong _tmp5_;
			_data26_ = g_slice_new0 (Block26Data);
			_data26_->_ref_count_ = 1;
			_data26_->_data25_ = block25_data_ref (_data25_);
			_data26_->destroy_handler_id = 0UL;
			_tmp5_ = g_signal_connect_data ((ClutterActor*) _data25_->actor, "transitions-completed", (GCallback) _____lambda167__clutter_actor_transitions_completed, block26_data_ref (_data26_), (GClosureNotify) block26_data_unref, 0);
			_data26_->destroy_handler_id = _tmp5_;
			block26_data_unref (_data26_);
			_data26_ = NULL;
		} else {
			meta_plugin_destroy_completed ((MetaPlugin*) self, _data25_->actor);
		}
		block25_data_unref (_data25_);
		_data25_ = NULL;
		return;
	}
	if (!meta_prefs_get_gnome_animations ()) {
		MetaWindow* _tmp6_;
		MetaWindowType _tmp7_;
		MetaWindowType _tmp8_;
		clutter_actor_set_opacity ((ClutterActor*) _data25_->actor, (guint) 0);
		meta_plugin_destroy_completed ((MetaPlugin*) self, _data25_->actor);
		_tmp6_ = _data25_->window;
		_tmp7_ = meta_window_get_window_type (_tmp6_);
		_tmp8_ = _tmp7_;
		if (_tmp8_ == META_WINDOW_NORMAL) {
			MetaWindow* _tmp9_;
			_tmp9_ = _data25_->window;
			gala_utils_clear_window_cache (_tmp9_);
		}
		block25_data_unref (_data25_);
		_data25_ = NULL;
		return;
	}
	_tmp10_ = _data25_->window;
	_tmp11_ = meta_window_get_window_type (_tmp10_);
	_tmp12_ = _tmp11_;
	switch (_tmp12_) {
		case META_WINDOW_NORMAL:
		{
			Block27Data* _data27_;
			GalaAnimationDuration duration = 0;
			GeeHashSet* _tmp13_;
			gulong _tmp14_;
			_data27_ = g_slice_new0 (Block27Data);
			_data27_->_ref_count_ = 1;
			_data27_->_data25_ = block25_data_ref (_data25_);
			duration = GALA_ANIMATION_DURATION_CLOSE;
			if (duration == 0) {
				meta_plugin_destroy_completed ((MetaPlugin*) self, _data25_->actor);
				block27_data_unref (_data27_);
				_data27_ = NULL;
				block25_data_unref (_data25_);
				_data25_ = NULL;
				return;
			}
			_tmp13_ = self->priv->destroying;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp13_, _data25_->actor);
			clutter_actor_set_pivot_point ((ClutterActor*) _data25_->actor, 0.5f, 0.5f);
			clutter_actor_show ((ClutterActor*) _data25_->actor);
			clutter_actor_save_easing_state ((ClutterActor*) _data25_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data25_->actor, CLUTTER_LINEAR);
			clutter_actor_set_easing_duration ((ClutterActor*) _data25_->actor, (guint) duration);
			clutter_actor_set_scale ((ClutterActor*) _data25_->actor, (gdouble) 0.8f, (gdouble) 0.8f);
			clutter_actor_set_opacity ((ClutterActor*) _data25_->actor, 0U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data25_->actor);
			_data27_->destroy_handler_id = 0UL;
			_tmp14_ = g_signal_connect_data ((ClutterActor*) _data25_->actor, "transitions-completed", (GCallback) ____lambda168__clutter_actor_transitions_completed, block27_data_ref (_data27_), (GClosureNotify) block27_data_unref, 0);
			_data27_->destroy_handler_id = _tmp14_;
			block27_data_unref (_data27_);
			_data27_ = NULL;
			break;
		}
		case META_WINDOW_MODAL_DIALOG:
		case META_WINDOW_DIALOG:
		{
			Block28Data* _data28_;
			GeeHashSet* _tmp15_;
			gulong _tmp16_;
			_data28_ = g_slice_new0 (Block28Data);
			_data28_->_ref_count_ = 1;
			_data28_->_data25_ = block25_data_ref (_data25_);
			_tmp15_ = self->priv->destroying;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp15_, _data25_->actor);
			clutter_actor_set_pivot_point ((ClutterActor*) _data25_->actor, 0.5f, 0.5f);
			clutter_actor_save_easing_state ((ClutterActor*) _data25_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data25_->actor, CLUTTER_EASE_OUT_QUAD);
			clutter_actor_set_easing_duration ((ClutterActor*) _data25_->actor, (guint) 150);
			clutter_actor_set_scale ((ClutterActor*) _data25_->actor, (gdouble) 1.05f, (gdouble) 1.05f);
			clutter_actor_set_opacity ((ClutterActor*) _data25_->actor, 0U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data25_->actor);
			_data28_->destroy_handler_id = 0UL;
			_tmp16_ = g_signal_connect_data ((ClutterActor*) _data25_->actor, "transitions-completed", (GCallback) ____lambda169__clutter_actor_transitions_completed, block28_data_ref (_data28_), (GClosureNotify) block28_data_unref, 0);
			_data28_->destroy_handler_id = _tmp16_;
			block28_data_unref (_data28_);
			_data28_ = NULL;
			break;
		}
		default:
		{
			meta_plugin_destroy_completed ((MetaPlugin*) self, _data25_->actor);
			break;
		}
	}
	block25_data_unref (_data25_);
	_data25_ = NULL;
}

static Block29Data*
block29_data_ref (Block29Data* _data29_)
{
	g_atomic_int_inc (&_data29_->_ref_count_);
	return _data29_;
}

static void
block29_data_unref (void * _userdata_)
{
	Block29Data* _data29_;
	_data29_ = (Block29Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data29_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data29_->self;
		_g_object_unref0 (_data29_->actor);
		_g_object_unref0 (self);
		g_slice_free (Block29Data, _data29_);
	}
}

static void
__lambda159_ (Block29Data* _data29_,
              ClutterActor* snapshot,
              const gchar* name,
              gboolean is_finished)
{
	GalaWindowManagerGala* self;
	ClutterActor* parent = NULL;
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	self = _data29_->self;
	g_return_if_fail (snapshot != NULL);
	g_return_if_fail (name != NULL);
	g_signal_handler_disconnect ((GObject*) snapshot, _data29_->unmaximize_old_handler_id);
	_tmp0_ = clutter_actor_get_parent (snapshot);
	parent = _tmp0_;
	_tmp1_ = parent;
	if (_tmp1_ != NULL) {
		ClutterActor* _tmp2_;
		_tmp2_ = parent;
		clutter_actor_remove_child (_tmp2_, snapshot);
	}
}

static void
___lambda159__clutter_actor_transition_stopped (ClutterActor* _sender,
                                                const gchar* name,
                                                gboolean is_finished,
                                                gpointer self)
{
	__lambda159_ (self, _sender, name, is_finished);
}

static void
__lambda160_ (Block29Data* _data29_)
{
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	self = _data29_->self;
	g_signal_handler_disconnect ((GObject*) _data29_->actor, _data29_->handler_id);
	_tmp0_ = self->priv->unmaximizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data29_->actor);
}

static void
___lambda160__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                   gpointer self)
{
	__lambda160_ (self);
}

static void
gala_window_manager_gala_unmaximize (GalaWindowManagerGala* self,
                                     MetaWindowActor* actor,
                                     gint ex,
                                     gint ey,
                                     gint ew,
                                     gint eh)
{
	Block29Data* _data29_;
	MetaWindowActor* _tmp0_;
	MetaWindow* window = NULL;
	MetaWindow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	GalaAnimationDuration duration = 0;
	gfloat offset_x = 0.0F;
	gfloat offset_y = 0.0F;
	GalaWindowListenerWindowGeometry* unmaximized_window_geometry = NULL;
	GalaWindowListener* _tmp8_;
	MetaWindow* _tmp9_;
	GalaWindowListenerWindowGeometry* _tmp10_;
	GalaWindowListenerWindowGeometry* _tmp11_;
	GeeHashSet* _tmp20_;
	ClutterActor* _tmp21_;
	MtkRectangle _tmp22_;
	MtkRectangle _tmp23_;
	ClutterActor* _tmp24_;
	ClutterActor* _tmp25_;
	ClutterActor* _tmp26_;
	gfloat scale_x = 0.0F;
	MtkRectangle _tmp27_;
	gfloat scale_y = 0.0F;
	MtkRectangle _tmp28_;
	ClutterActor* _tmp29_;
	ClutterActor* _tmp30_;
	ClutterActor* _tmp31_;
	ClutterActor* _tmp32_;
	ClutterActor* _tmp33_;
	ClutterActor* _tmp34_;
	ClutterActor* _tmp35_;
	ClutterActor* _tmp36_;
	gulong _tmp37_;
	MtkRectangle buffer_rect = {0};
	MetaWindow* _tmp38_;
	MtkRectangle _tmp39_ = {0};
	MtkRectangle frame_rect = {0};
	MetaWindow* _tmp40_;
	MtkRectangle _tmp41_ = {0};
	gint real_actor_offset_x = 0;
	MtkRectangle _tmp42_;
	MtkRectangle _tmp43_;
	gint real_actor_offset_y = 0;
	MtkRectangle _tmp44_;
	MtkRectangle _tmp45_;
	MtkRectangle _tmp46_;
	MtkRectangle _tmp47_;
	gulong _tmp48_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data29_ = g_slice_new0 (Block29Data);
	_data29_->_ref_count_ = 1;
	_data29_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data29_->actor);
	_data29_->actor = _tmp0_;
	_tmp1_ = meta_window_actor_get_meta_window (_data29_->actor);
	window = _tmp1_;
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) self, _data29_->actor);
	if (!meta_prefs_get_gnome_animations ()) {
		_tmp3_ = TRUE;
	} else {
		ClutterActor* _tmp4_;
		_tmp4_ = self->priv->latest_window_snapshot;
		_tmp3_ = _tmp4_ == NULL;
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		MetaWindow* _tmp5_;
		MetaWindowType _tmp6_;
		MetaWindowType _tmp7_;
		_tmp5_ = window;
		_tmp6_ = meta_window_get_window_type (_tmp5_);
		_tmp7_ = _tmp6_;
		_tmp2_ = _tmp7_ != META_WINDOW_NORMAL;
	}
	if (_tmp2_) {
		block29_data_unref (_data29_);
		_data29_ = NULL;
		return;
	}
	duration = GALA_ANIMATION_DURATION_SNAP;
	_tmp8_ = gala_window_listener_get_default ();
	_tmp9_ = window;
	_tmp10_ = gala_window_listener_get_unmaximized_state_geometry (_tmp8_, _tmp9_);
	unmaximized_window_geometry = _tmp10_;
	_tmp11_ = unmaximized_window_geometry;
	if (_tmp11_ != NULL) {
		GalaWindowListenerWindowGeometry* _tmp12_;
		MtkRectangle _tmp13_;
		GalaWindowListenerWindowGeometry* _tmp14_;
		MtkRectangle _tmp15_;
		GalaWindowListenerWindowGeometry* _tmp16_;
		MtkRectangle _tmp17_;
		GalaWindowListenerWindowGeometry* _tmp18_;
		MtkRectangle _tmp19_;
		_tmp12_ = unmaximized_window_geometry;
		_tmp13_ = (*_tmp12_).outer;
		_tmp14_ = unmaximized_window_geometry;
		_tmp15_ = (*_tmp14_).inner;
		offset_x = (gfloat) (_tmp13_.x - _tmp15_.x);
		_tmp16_ = unmaximized_window_geometry;
		_tmp17_ = (*_tmp16_).outer;
		_tmp18_ = unmaximized_window_geometry;
		_tmp19_ = (*_tmp18_).inner;
		offset_y = (gfloat) (_tmp17_.y - _tmp19_.y);
	} else {
		offset_x = (gfloat) 0;
		offset_y = (gfloat) 0;
	}
	_tmp20_ = self->priv->unmaximizing;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp20_, _data29_->actor);
	_tmp21_ = self->priv->latest_window_snapshot;
	_tmp22_ = self->priv->old_rect_size_change;
	_tmp23_ = self->priv->old_rect_size_change;
	clutter_actor_set_position (_tmp21_, (gfloat) _tmp22_.x, (gfloat) _tmp23_.y);
	_tmp24_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp25_ = _tmp24_;
	_tmp26_ = self->priv->latest_window_snapshot;
	clutter_actor_add_child (_tmp25_, _tmp26_);
	_tmp27_ = self->priv->old_rect_size_change;
	scale_x = ((gfloat) ew) / _tmp27_.width;
	_tmp28_ = self->priv->old_rect_size_change;
	scale_y = ((gfloat) eh) / _tmp28_.height;
	_tmp29_ = self->priv->latest_window_snapshot;
	clutter_actor_save_easing_state (_tmp29_);
	_tmp30_ = self->priv->latest_window_snapshot;
	clutter_actor_set_easing_mode (_tmp30_, CLUTTER_EASE_IN_OUT_QUAD);
	_tmp31_ = self->priv->latest_window_snapshot;
	clutter_actor_set_easing_duration (_tmp31_, (guint) duration);
	_tmp32_ = self->priv->latest_window_snapshot;
	clutter_actor_set_position (_tmp32_, (gfloat) ex, (gfloat) ey);
	_tmp33_ = self->priv->latest_window_snapshot;
	clutter_actor_set_scale (_tmp33_, (gdouble) scale_x, (gdouble) scale_y);
	_tmp34_ = self->priv->latest_window_snapshot;
	clutter_actor_set_opacity (_tmp34_, 0U);
	_tmp35_ = self->priv->latest_window_snapshot;
	clutter_actor_restore_easing_state (_tmp35_);
	_data29_->unmaximize_old_handler_id = (gulong) 0;
	_tmp36_ = self->priv->latest_window_snapshot;
	_tmp37_ = g_signal_connect_data (_tmp36_, "transition-stopped", (GCallback) ___lambda159__clutter_actor_transition_stopped, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
	_data29_->unmaximize_old_handler_id = _tmp37_;
	_g_object_unref0 (self->priv->latest_window_snapshot);
	self->priv->latest_window_snapshot = NULL;
	_tmp38_ = window;
	meta_window_get_buffer_rect (_tmp38_, &_tmp39_);
	buffer_rect = _tmp39_;
	_tmp40_ = window;
	meta_window_get_frame_rect (_tmp40_, &_tmp41_);
	frame_rect = _tmp41_;
	_tmp42_ = frame_rect;
	_tmp43_ = buffer_rect;
	real_actor_offset_x = _tmp42_.x - _tmp43_.x;
	_tmp44_ = frame_rect;
	_tmp45_ = buffer_rect;
	real_actor_offset_y = _tmp44_.y - _tmp45_.y;
	clutter_actor_set_pivot_point ((ClutterActor*) _data29_->actor, 0.0f, 0.0f);
	clutter_actor_set_position ((ClutterActor*) _data29_->actor, (gfloat) (ex - real_actor_offset_x), (gfloat) (ey - real_actor_offset_y));
	_tmp46_ = self->priv->old_rect_size_change;
	_tmp47_ = self->priv->old_rect_size_change;
	clutter_actor_set_translation ((ClutterActor*) _data29_->actor, ((-ex) + (offset_x * ((1.0f / scale_x) - 1.0f))) + _tmp46_.x, ((-ey) + (offset_y * ((1.0f / scale_y) - 1.0f))) + _tmp47_.y, 0.0f);
	clutter_actor_set_scale ((ClutterActor*) _data29_->actor, (gdouble) (1.0f / scale_x), (gdouble) (1.0f / scale_y));
	clutter_actor_save_easing_state ((ClutterActor*) _data29_->actor);
	clutter_actor_set_easing_mode ((ClutterActor*) _data29_->actor, CLUTTER_EASE_IN_OUT_QUAD);
	clutter_actor_set_easing_duration ((ClutterActor*) _data29_->actor, (guint) duration);
	clutter_actor_set_scale ((ClutterActor*) _data29_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
	clutter_actor_set_translation ((ClutterActor*) _data29_->actor, 0.0f, 0.0f, 0.0f);
	clutter_actor_restore_easing_state ((ClutterActor*) _data29_->actor);
	_data29_->handler_id = 0UL;
	_tmp48_ = g_signal_connect_data ((ClutterActor*) _data29_->actor, "transitions-completed", (GCallback) ___lambda160__clutter_actor_transitions_completed, block29_data_ref (_data29_), (GClosureNotify) block29_data_unref, 0);
	_data29_->handler_id = _tmp48_;
	_gala_window_listener_window_geometry_free0 (unmaximized_window_geometry);
	block29_data_unref (_data29_);
	_data29_ = NULL;
}

static gboolean
gala_window_manager_gala_end_animation (GalaWindowManagerGala* self,
                                        GeeHashSet** list,
                                        MetaWindowActor* actor)
{
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (*list != NULL, FALSE);
	g_return_val_if_fail (actor != NULL, FALSE);
	if (!gee_abstract_collection_contains ((GeeAbstractCollection*) (*list), actor)) {
		result = FALSE;
		return result;
	}
	if (meta_window_actor_is_destroyed (actor)) {
		gee_abstract_collection_remove ((GeeAbstractCollection*) (*list), actor);
		result = FALSE;
		return result;
	}
	clutter_actor_remove_all_transitions ((ClutterActor*) actor);
	clutter_actor_set_opacity ((ClutterActor*) actor, 255U);
	clutter_actor_set_scale ((ClutterActor*) actor, (gdouble) 1.0f, (gdouble) 1.0f);
	g_object_set ((ClutterActor*) actor, "rotation-angle-x", (gdouble) 0.0f, NULL);
	clutter_actor_set_pivot_point ((ClutterActor*) actor, 0.0f, 0.0f);
	gee_abstract_collection_remove ((GeeAbstractCollection*) (*list), actor);
	result = TRUE;
	return result;
}

static void
gala_window_manager_gala_real_kill_window_effects (MetaPlugin* base,
                                                   MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	gboolean _tmp0_;
	gboolean _tmp1_;
	gboolean _tmp2_;
	gboolean _tmp3_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_tmp0_ = gala_window_manager_gala_end_animation (self, &self->priv->mapping, actor);
	if (_tmp0_) {
		meta_plugin_map_completed ((MetaPlugin*) self, actor);
	}
	_tmp1_ = gala_window_manager_gala_end_animation (self, &self->priv->unminimizing, actor);
	if (_tmp1_) {
		meta_plugin_unminimize_completed ((MetaPlugin*) self, actor);
	}
	_tmp2_ = gala_window_manager_gala_end_animation (self, &self->priv->minimizing, actor);
	if (_tmp2_) {
		meta_plugin_minimize_completed ((MetaPlugin*) self, actor);
	}
	_tmp3_ = gala_window_manager_gala_end_animation (self, &self->priv->destroying, actor);
	if (_tmp3_) {
		meta_plugin_destroy_completed ((MetaPlugin*) self, actor);
	}
	gala_window_manager_gala_end_animation (self, &self->priv->unmaximizing, actor);
	gala_window_manager_gala_end_animation (self, &self->priv->maximizing, actor);
}

static void
gala_window_manager_gala_real_switch_workspace (MetaPlugin* base,
                                                gint from,
                                                gint to,
                                                MetaMotionDirection direction)
{
	GalaWindowManagerGala * self;
	self = (GalaWindowManagerGala*) base;
	meta_plugin_switch_workspace_completed ((MetaPlugin*) self);
}

static void
gala_window_manager_gala_real_kill_switch_workspace (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	GalaMultitaskingView* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_multitasking_view;
	gala_multitasking_view_kill_switch_workspace (_tmp0_);
}

static void
gala_window_manager_gala_real_locate_pointer (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	GalaPointerLocator* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_pointer_locator;
	gala_pointer_locator_show_ripple (_tmp0_);
}

static gboolean
gala_window_manager_gala_real_keybinding_filter (MetaPlugin* base,
                                                 MetaKeyBinding* binding)
{
	GalaWindowManagerGala * self;
	MetaKeyBindingAction action = 0;
	const gchar* _tmp0_;
	const gchar* _tmp5_;
	const gchar* _tmp6_;
	GQuark _tmp8_ = 0U;
	static GQuark _tmp7_label0 = 0;
	static GQuark _tmp7_label1 = 0;
	static GQuark _tmp7_label2 = 0;
	static GQuark _tmp7_label3 = 0;
	static GQuark _tmp7_label4 = 0;
	static GQuark _tmp7_label5 = 0;
	static GQuark _tmp7_label6 = 0;
	static GQuark _tmp7_label7 = 0;
	static GQuark _tmp7_label8 = 0;
	static GQuark _tmp7_label9 = 0;
	static GQuark _tmp7_label10 = 0;
	static GQuark _tmp7_label11 = 0;
	static GQuark _tmp7_label12 = 0;
	static GQuark _tmp7_label13 = 0;
	static GQuark _tmp7_label14 = 0;
	gboolean result;
	self = (GalaWindowManagerGala*) base;
	g_return_val_if_fail (binding != NULL, FALSE);
	if (!gala_window_manager_is_modal ((GalaWindowManager*) self)) {
		result = FALSE;
		return result;
	}
	_tmp0_ = meta_key_binding_get_name (binding);
	action = meta_prefs_get_keybinding_action (_tmp0_);
	switch (action) {
		case META_KEYBINDING_ACTION_OVERLAY_KEY:
		{
			GSettings* _tmp1_;
			gchar* _tmp2_;
			gchar* _tmp3_;
			gboolean _tmp4_;
			_tmp1_ = self->priv->behavior_settings;
			_tmp2_ = g_settings_get_string (_tmp1_, "overlay-action");
			_tmp3_ = _tmp2_;
			_tmp4_ = g_strcmp0 (_tmp3_, GALA_WINDOW_MANAGER_GALA_OPEN_MULTITASKING_VIEW) == 0;
			_g_free0 (_tmp3_);
			if (_tmp4_) {
				result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_MULTITASKING_VIEW);
				return result;
			}
			break;
		}
		case META_KEYBINDING_ACTION_WORKSPACE_1:
		case META_KEYBINDING_ACTION_WORKSPACE_2:
		case META_KEYBINDING_ACTION_WORKSPACE_3:
		case META_KEYBINDING_ACTION_WORKSPACE_4:
		case META_KEYBINDING_ACTION_WORKSPACE_5:
		case META_KEYBINDING_ACTION_WORKSPACE_6:
		case META_KEYBINDING_ACTION_WORKSPACE_7:
		case META_KEYBINDING_ACTION_WORKSPACE_8:
		case META_KEYBINDING_ACTION_WORKSPACE_9:
		case META_KEYBINDING_ACTION_WORKSPACE_10:
		case META_KEYBINDING_ACTION_WORKSPACE_11:
		case META_KEYBINDING_ACTION_WORKSPACE_12:
		case META_KEYBINDING_ACTION_WORKSPACE_LEFT:
		case META_KEYBINDING_ACTION_WORKSPACE_RIGHT:
		{
			result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SWITCH_WORKSPACE);
			return result;
		}
		case META_KEYBINDING_ACTION_SWITCH_APPLICATIONS:
		case META_KEYBINDING_ACTION_SWITCH_APPLICATIONS_BACKWARD:
		case META_KEYBINDING_ACTION_SWITCH_WINDOWS:
		case META_KEYBINDING_ACTION_SWITCH_WINDOWS_BACKWARD:
		case META_KEYBINDING_ACTION_SWITCH_GROUP:
		case META_KEYBINDING_ACTION_SWITCH_GROUP_BACKWARD:
		{
			result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SWITCH_WINDOWS);
			return result;
		}
		case META_KEYBINDING_ACTION_LOCATE_POINTER_KEY:
		{
			result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_LOCATE_POINTER);
			return result;
		}
		case META_KEYBINDING_ACTION_NONE:
		{
			result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_MEDIA_KEYS);
			return result;
		}
		default:
		{
			break;
		}
	}
	_tmp5_ = meta_key_binding_get_name (binding);
	_tmp6_ = _tmp5_;
	_tmp8_ = (NULL == _tmp6_) ? 0 : g_quark_from_string (_tmp6_);
	if ((((_tmp8_ == ((0 != _tmp7_label0) ? _tmp7_label0 : (_tmp7_label0 = g_quark_from_static_string ("cycle-workspaces-next")))) || (_tmp8_ == ((0 != _tmp7_label1) ? _tmp7_label1 : (_tmp7_label1 = g_quark_from_static_string ("cycle-workspaces-previous"))))) || (_tmp8_ == ((0 != _tmp7_label2) ? _tmp7_label2 : (_tmp7_label2 = g_quark_from_static_string ("switch-to-workspace-first"))))) || (_tmp8_ == ((0 != _tmp7_label3) ? _tmp7_label3 : (_tmp7_label3 = g_quark_from_static_string ("switch-to-workspace-last"))))) {
		switch (0) {
			default:
			{
				result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SWITCH_WORKSPACE);
				return result;
			}
		}
	} else if ((_tmp8_ == ((0 != _tmp7_label4) ? _tmp7_label4 : (_tmp7_label4 = g_quark_from_static_string ("zoom-in")))) || (_tmp8_ == ((0 != _tmp7_label5) ? _tmp7_label5 : (_tmp7_label5 = g_quark_from_static_string ("zoom-out"))))) {
		switch (0) {
			default:
			{
				result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_ZOOM);
				return result;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label6) ? _tmp7_label6 : (_tmp7_label6 = g_quark_from_static_string ("toggle-multitasking-view")))) {
		switch (0) {
			default:
			{
				result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_MULTITASKING_VIEW);
				return result;
			}
		}
	} else if (_tmp8_ == ((0 != _tmp7_label7) ? _tmp7_label7 : (_tmp7_label7 = g_quark_from_static_string ("expose-all-windows")))) {
		switch (0) {
			default:
			{
				result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_WINDOW_OVERVIEW);
				return result;
			}
		}
	} else if (((_tmp8_ == ((0 != _tmp7_label8) ? _tmp7_label8 : (_tmp7_label8 = g_quark_from_static_string ("screenshot")))) || (_tmp8_ == ((0 != _tmp7_label9) ? _tmp7_label9 : (_tmp7_label9 = g_quark_from_static_string ("screenshot-clip"))))) || (_tmp8_ == ((0 != _tmp7_label10) ? _tmp7_label10 : (_tmp7_label10 = g_quark_from_static_string ("interactive-screenshot"))))) {
		switch (0) {
			default:
			{
				result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SCREENSHOT);
				return result;
			}
		}
	} else if ((_tmp8_ == ((0 != _tmp7_label11) ? _tmp7_label11 : (_tmp7_label11 = g_quark_from_static_string ("area-screenshot")))) || (_tmp8_ == ((0 != _tmp7_label12) ? _tmp7_label12 : (_tmp7_label12 = g_quark_from_static_string ("area-screenshot-clip"))))) {
		switch (0) {
			default:
			{
				result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SCREENSHOT_AREA);
				return result;
			}
		}
	} else if ((_tmp8_ == ((0 != _tmp7_label13) ? _tmp7_label13 : (_tmp7_label13 = g_quark_from_static_string ("window-screenshot")))) || (_tmp8_ == ((0 != _tmp7_label14) ? _tmp7_label14 : (_tmp7_label14 = g_quark_from_static_string ("window-screenshot-clip"))))) {
		switch (0) {
			default:
			{
				result = gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SCREENSHOT_WINDOW);
				return result;
			}
		}
	} else {
		switch (0) {
			default:
			{
				break;
			}
		}
	}
	result = FALSE;
	return result;
}

static gboolean
gala_window_manager_gala_real_filter_action (GalaWindowManager* base,
                                             GalaModalActions action)
{
	GalaWindowManagerGala * self;
	GeeLinkedList* _tmp0_;
	gpointer _tmp1_;
	GalaModalProxy* _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	self = (GalaWindowManagerGala*) base;
	if (!gala_window_manager_is_modal ((GalaWindowManager*) self)) {
		result = FALSE;
		return result;
	}
	_tmp0_ = self->priv->modal_stack;
	_tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_);
	_tmp2_ = (GalaModalProxy*) _tmp1_;
	_tmp3_ = gala_modal_proxy_filter_action (_tmp2_, action);
	_g_object_unref0 (_tmp2_);
	result = _tmp3_;
	return result;
}

static Block30Data*
block30_data_ref (Block30Data* _data30_)
{
	g_atomic_int_inc (&_data30_->_ref_count_);
	return _data30_;
}

static void
block30_data_unref (void * _userdata_)
{
	Block30Data* _data30_;
	_data30_ = (Block30Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data30_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data30_->self;
		_g_object_unref0 (_data30_->dialog);
		_g_object_unref0 (self);
		g_slice_free (Block30Data, _data30_);
	}
}

static gboolean
__lambda171_ (Block30Data* _data30_)
{
	GalaWindowManagerGala* self;
	gboolean result;
	self = _data30_->self;
	_data30_->dialog_timeout_id = (guint) 0;
	gala_access_dialog_close (_data30_->dialog);
	result = G_SOURCE_REMOVE;
	return result;
}

static gboolean
___lambda171__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda171_ (self);
	return result;
}

static void
__lambda170_ (Block30Data* _data30_)
{
	GalaWindowManagerGala* self;
	self = _data30_->self;
	_data30_->dialog_timeout_id = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) _data30_->timeout, ___lambda171__gsource_func, block30_data_ref (_data30_), block30_data_unref);
}

static void
___lambda170__gala_access_dialog_show (GalaAccessDialog* _sender,
                                       gpointer self)
{
	__lambda170_ (self);
}

static void
__lambda172_ (Block30Data* _data30_,
              guint res)
{
	GalaWindowManagerGala* self;
	self = _data30_->self;
	if (_data30_->dialog_timeout_id != ((guint) 0)) {
		g_source_remove (_data30_->dialog_timeout_id);
		_data30_->dialog_timeout_id = (guint) 0;
	}
	meta_plugin_complete_display_change ((MetaPlugin*) self, res == ((guint) 0));
}

static void
___lambda172__gala_access_dialog_response (GalaAccessDialog* _sender,
                                           guint response,
                                           gpointer self)
{
	__lambda172_ (self, response);
}

static void
gala_window_manager_gala_real_confirm_display_change (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	Block30Data* _data30_;
	MetaMonitorManager* monitor_manager = NULL;
	MetaDisplay* _tmp0_;
	MetaContext* _tmp1_;
	MetaBackend* _tmp2_;
	MetaMonitorManager* _tmp3_;
	gchar* summary = NULL;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gchar* _tmp6_;
	gchar* _tmp7_;
	gchar* _tmp8_;
	GalaAccessDialog* _tmp9_ = NULL;
	GalaAccessDialog* _tmp10_;
	self = (GalaWindowManagerGala*) base;
	_data30_ = g_slice_new0 (Block30Data);
	_data30_->_ref_count_ = 1;
	_data30_->self = g_object_ref (self);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	_tmp1_ = meta_display_get_context (_tmp0_);
	_tmp2_ = meta_context_get_backend (_tmp1_);
	_tmp3_ = meta_backend_get_monitor_manager (_tmp2_);
	monitor_manager = _tmp3_;
	_data30_->timeout = meta_monitor_manager_get_display_configuration_timeout (monitor_manager);
	_tmp4_ = g_strdup (ngettext ("Changes will automatically revert after %i second.", "Changes will automatically revert after %i seconds.", (gulong) _data30_->timeout));
	summary = _tmp4_;
	_data30_->dialog_timeout_id = (guint) 0;
	_tmp5_ = g_strdup_printf (summary, _data30_->timeout);
	_tmp6_ = _tmp5_;
	_tmp7_ = g_strdup (_ ("Keep Settings"));
	_tmp8_ = g_strdup (_ ("Use Previous Settings"));
	_tmp9_ = gala_access_dialog_new (_ ("Keep new display settings?"), _tmp6_, "preferences-desktop-display");
	gala_access_dialog_set_accept_label (_tmp9_, _tmp7_);
	_g_free0 (_tmp7_);
	gala_access_dialog_set_deny_label (_tmp9_, _tmp8_);
	_g_free0 (_tmp8_);
	_tmp10_ = _tmp9_;
	_g_free0 (_tmp6_);
	_data30_->dialog = _tmp10_;
	g_signal_connect_data (_data30_->dialog, "show", (GCallback) ___lambda170__gala_access_dialog_show, block30_data_ref (_data30_), (GClosureNotify) block30_data_unref, 0);
	g_signal_connect_data (_data30_->dialog, "response", (GCallback) ___lambda172__gala_access_dialog_response, block30_data_ref (_data30_), (GClosureNotify) block30_data_unref, 0);
	g_signal_emit_by_name (_data30_->dialog, "show");
	_g_free0 (summary);
	block30_data_unref (_data30_);
	_data30_ = NULL;
}

static MetaCloseDialog*
gala_window_manager_gala_real_create_close_dialog (MetaPlugin* base,
                                                   MetaWindow* window)
{
	GalaWindowManagerGala * self;
	GalaWindowTracker* _tmp0_;
	GalaApp* _tmp1_;
	GalaApp* _tmp2_;
	GalaCloseDialog* _tmp3_;
	MetaCloseDialog* _tmp4_;
	MetaCloseDialog* result;
	self = (GalaWindowManagerGala*) base;
	g_return_val_if_fail (window != NULL, NULL);
	_tmp0_ = self->priv->_window_tracker;
	_tmp1_ = gala_window_tracker_get_app_for_window (_tmp0_, window);
	_tmp2_ = _tmp1_;
	_tmp3_ = gala_close_dialog_new (_tmp2_, window);
	_tmp4_ = (MetaCloseDialog*) _tmp3_;
	_g_object_unref0 (_tmp2_);
	result = _tmp4_;
	return result;
}

static MetaInhibitShortcutsDialog*
gala_window_manager_gala_real_create_inhibit_shortcuts_dialog (MetaPlugin* base,
                                                               MetaWindow* window)
{
	GalaWindowManagerGala * self;
	GalaWindowTracker* _tmp0_;
	GalaApp* _tmp1_;
	GalaApp* _tmp2_;
	GalaInhibitShortcutsDialog* _tmp3_;
	MetaInhibitShortcutsDialog* _tmp4_;
	MetaInhibitShortcutsDialog* result;
	self = (GalaWindowManagerGala*) base;
	g_return_val_if_fail (window != NULL, NULL);
	_tmp0_ = self->priv->_window_tracker;
	_tmp1_ = gala_window_tracker_get_app_for_window (_tmp0_, window);
	_tmp2_ = _tmp1_;
	_tmp3_ = gala_inhibit_shortcuts_dialog_new (_tmp2_, window);
	_tmp4_ = (MetaInhibitShortcutsDialog*) _tmp3_;
	_g_object_unref0 (_tmp2_);
	result = _tmp4_;
	return result;
}

static MetaPluginInfo*
gala_window_manager_gala_real_plugin_info (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	MetaPluginInfo _tmp0_;
	MetaPluginInfo* result;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->info;
	result = &_tmp0_;
	return result;
}

GalaWindowManagerGala*
gala_window_manager_gala_construct (GType object_type)
{
	GalaWindowManagerGala * self = NULL;
	self = (GalaWindowManagerGala*) g_object_new (object_type, NULL);
	return self;
}

GalaWindowManagerGala*
gala_window_manager_gala_new (void)
{
	return gala_window_manager_gala_construct (GALA_TYPE_WINDOW_MANAGER_GALA);
}

static ClutterActor*
gala_window_manager_gala_real_get_ui_group (GalaWindowManager* base)
{
	ClutterActor* result;
	GalaWindowManagerGala* self;
	ClutterActor* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_ui_group;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_real_set_ui_group (GalaWindowManager* base,
                                            ClutterActor* value)
{
	GalaWindowManagerGala* self;
	ClutterActor* old_value;
	self = (GalaWindowManagerGala*) base;
	old_value = gala_window_manager_gala_real_get_ui_group (base);
	if (old_value != value) {
		ClutterActor* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_ui_group);
		self->priv->_ui_group = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_UI_GROUP_PROPERTY]);
	}
}

static ClutterStage*
gala_window_manager_gala_real_get_stage (GalaWindowManager* base)
{
	ClutterStage* result;
	GalaWindowManagerGala* self;
	ClutterStage* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_stage;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_real_set_stage (GalaWindowManager* base,
                                         ClutterStage* value)
{
	GalaWindowManagerGala* self;
	ClutterStage* old_value;
	self = (GalaWindowManagerGala*) base;
	old_value = gala_window_manager_gala_real_get_stage (base);
	if (old_value != value) {
		ClutterStage* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_stage);
		self->priv->_stage = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_STAGE_PROPERTY]);
	}
}

static ClutterActor*
gala_window_manager_gala_real_get_window_group (GalaWindowManager* base)
{
	ClutterActor* result;
	GalaWindowManagerGala* self;
	ClutterActor* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_window_group;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_real_set_window_group (GalaWindowManager* base,
                                                ClutterActor* value)
{
	GalaWindowManagerGala* self;
	ClutterActor* old_value;
	self = (GalaWindowManagerGala*) base;
	old_value = gala_window_manager_gala_real_get_window_group (base);
	if (old_value != value) {
		ClutterActor* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_window_group);
		self->priv->_window_group = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WINDOW_GROUP_PROPERTY]);
	}
}

static ClutterActor*
gala_window_manager_gala_real_get_top_window_group (GalaWindowManager* base)
{
	ClutterActor* result;
	GalaWindowManagerGala* self;
	ClutterActor* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_top_window_group;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_real_set_top_window_group (GalaWindowManager* base,
                                                    ClutterActor* value)
{
	GalaWindowManagerGala* self;
	ClutterActor* old_value;
	self = (GalaWindowManagerGala*) base;
	old_value = gala_window_manager_gala_real_get_top_window_group (base);
	if (old_value != value) {
		ClutterActor* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_top_window_group);
		self->priv->_top_window_group = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_TOP_WINDOW_GROUP_PROPERTY]);
	}
}

static ClutterActor*
gala_window_manager_gala_get_shell_group (GalaWindowManagerGala* self)
{
	ClutterActor* result;
	ClutterActor* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_shell_group;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_set_shell_group (GalaWindowManagerGala* self,
                                          ClutterActor* value)
{
	ClutterActor* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_shell_group);
	self->priv->_shell_group = _tmp0_;
}

static ClutterActor*
gala_window_manager_gala_get_menu_group (GalaWindowManagerGala* self)
{
	ClutterActor* result;
	ClutterActor* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_menu_group;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_set_menu_group (GalaWindowManagerGala* self,
                                         ClutterActor* value)
{
	ClutterActor* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = _g_object_ref0 (value);
	_g_object_unref0 (self->priv->_menu_group);
	self->priv->_menu_group = _tmp0_;
}

GalaModalGroup*
gala_window_manager_gala_get_modal_group (GalaWindowManagerGala* self)
{
	GalaModalGroup* result;
	GalaModalGroup* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_modal_group;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_set_modal_group (GalaWindowManagerGala* self,
                                          GalaModalGroup* value)
{
	GalaModalGroup* old_value;
	g_return_if_fail (self != NULL);
	old_value = gala_window_manager_gala_get_modal_group (self);
	if (old_value != value) {
		GalaModalGroup* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_modal_group);
		self->priv->_modal_group = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_MODAL_GROUP_PROPERTY]);
	}
}

static MetaBackgroundGroup*
gala_window_manager_gala_real_get_background_group (GalaWindowManager* base)
{
	MetaBackgroundGroup* result;
	GalaWindowManagerGala* self;
	MetaBackgroundGroup* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_background_group;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_real_set_background_group (GalaWindowManager* base,
                                                    MetaBackgroundGroup* value)
{
	GalaWindowManagerGala* self;
	MetaBackgroundGroup* old_value;
	self = (GalaWindowManagerGala*) base;
	old_value = gala_window_manager_gala_real_get_background_group (base);
	if (old_value != value) {
		MetaBackgroundGroup* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_background_group);
		self->priv->_background_group = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_BACKGROUND_GROUP_PROPERTY]);
	}
}

GalaMultitaskingView*
gala_window_manager_gala_get_multitasking_view (GalaWindowManagerGala* self)
{
	GalaMultitaskingView* result;
	GalaMultitaskingView* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_multitasking_view;
	result = _tmp0_;
	return result;
}

void
gala_window_manager_gala_set_multitasking_view (GalaWindowManagerGala* self,
                                                GalaMultitaskingView* value)
{
	GalaMultitaskingView* old_value;
	g_return_if_fail (self != NULL);
	old_value = gala_window_manager_gala_get_multitasking_view (self);
	if (old_value != value) {
		GalaMultitaskingView* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_multitasking_view);
		self->priv->_multitasking_view = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_MULTITASKING_VIEW_PROPERTY]);
	}
}

GalaPointerLocator*
gala_window_manager_gala_get_pointer_locator (GalaWindowManagerGala* self)
{
	GalaPointerLocator* result;
	GalaPointerLocator* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_pointer_locator;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_set_pointer_locator (GalaWindowManagerGala* self,
                                              GalaPointerLocator* value)
{
	GalaPointerLocator* old_value;
	g_return_if_fail (self != NULL);
	old_value = gala_window_manager_gala_get_pointer_locator (self);
	if (old_value != value) {
		GalaPointerLocator* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_pointer_locator);
		self->priv->_pointer_locator = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY]);
	}
}

GalaWindowOverview*
gala_window_manager_gala_get_window_overview (GalaWindowManagerGala* self)
{
	GalaWindowOverview* result;
	GalaWindowOverview* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_window_overview;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_set_window_overview (GalaWindowManagerGala* self,
                                              GalaWindowOverview* value)
{
	GalaWindowOverview* old_value;
	g_return_if_fail (self != NULL);
	old_value = gala_window_manager_gala_get_window_overview (self);
	if (old_value != value) {
		GalaWindowOverview* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_window_overview);
		self->priv->_window_overview = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WINDOW_OVERVIEW_PROPERTY]);
	}
}

GalaScreenSaverManager*
gala_window_manager_gala_get_screensaver (GalaWindowManagerGala* self)
{
	GalaScreenSaverManager* result;
	GalaScreenSaverManager* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_screensaver;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_set_screensaver (GalaWindowManagerGala* self,
                                          GalaScreenSaverManager* value)
{
	GalaScreenSaverManager* old_value;
	g_return_if_fail (self != NULL);
	old_value = gala_window_manager_gala_get_screensaver (self);
	if (old_value != value) {
		GalaScreenSaverManager* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_screensaver);
		self->priv->_screensaver = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_SCREENSAVER_PROPERTY]);
	}
}

GalaWindowTracker*
gala_window_manager_gala_get_window_tracker (GalaWindowManagerGala* self)
{
	GalaWindowTracker* result;
	GalaWindowTracker* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_window_tracker;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_set_window_tracker (GalaWindowManagerGala* self,
                                             GalaWindowTracker* value)
{
	GalaWindowTracker* old_value;
	g_return_if_fail (self != NULL);
	old_value = gala_window_manager_gala_get_window_tracker (self);
	if (old_value != value) {
		GalaWindowTracker* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_window_tracker);
		self->priv->_window_tracker = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WINDOW_TRACKER_PROPERTY]);
	}
}

static GObject *
gala_window_manager_gala_constructor (GType type,
                                      guint n_construct_properties,
                                      GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GalaWindowManagerGala * self;
	MetaPluginInfo _tmp0_ = {0};
	GSettings* _tmp1_;
	parent_class = G_OBJECT_CLASS (gala_window_manager_gala_parent_class);
	obj = parent_class->constructor (type, n_construct_properties, construct_properties);
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GALA_TYPE_WINDOW_MANAGER_GALA, GalaWindowManagerGala);
	memset (&_tmp0_, 0, sizeof (MetaPluginInfo));
	_tmp0_.name = "Gala";
	_tmp0_.version = CONFIG_VERSION;
	_tmp0_.author = "Gala Developers";
	_tmp0_.license = "GPLv3";
	_tmp0_.description = "A nice elementary window manager";
	self->priv->info = _tmp0_;
	_tmp1_ = g_settings_new ("io.elementary.desktop.wm.behavior");
	_g_object_unref0 (self->priv->behavior_settings);
	self->priv->behavior_settings = _tmp1_;
	gala_drawing_style_manager_get_instance ();
	return obj;
}

static void
gala_window_manager_gala_class_init (GalaWindowManagerGalaClass * klass,
                                     gpointer klass_data)
{
	gala_window_manager_gala_parent_class = g_type_class_peek_parent (klass);
	g_type_class_adjust_private_offset (klass, &GalaWindowManagerGala_private_offset);
	((MetaPluginClass *) klass)->start = (void (*) (MetaPlugin*)) gala_window_manager_gala_real_start;
	((MetaPluginClass *) klass)->show_window_menu = (void (*) (MetaPlugin*, MetaWindow*, MetaWindowMenuType, gint, gint)) gala_window_manager_gala_real_show_window_menu;
	((MetaPluginClass *) klass)->show_tile_preview = (void (*) (MetaPlugin*, MetaWindow*, MtkRectangle*, gint)) gala_window_manager_gala_real_show_tile_preview;
	((MetaPluginClass *) klass)->hide_tile_preview = (void (*) (MetaPlugin*)) gala_window_manager_gala_real_hide_tile_preview;
	((MetaPluginClass *) klass)->show_window_menu_for_rect = (void (*) (MetaPlugin*, MetaWindow*, MetaWindowMenuType, MtkRectangle*)) gala_window_manager_gala_real_show_window_menu_for_rect;
	((MetaPluginClass *) klass)->size_change = (void (*) (MetaPlugin*, MetaWindowActor*, MetaSizeChange, MtkRectangle*, MtkRectangle*)) gala_window_manager_gala_real_size_change;
	((MetaPluginClass *) klass)->size_changed = (void (*) (MetaPlugin*, MetaWindowActor*)) gala_window_manager_gala_real_size_changed;
	((MetaPluginClass *) klass)->minimize = (void (*) (MetaPlugin*, MetaWindowActor*)) gala_window_manager_gala_real_minimize;
	((MetaPluginClass *) klass)->unminimize = (void (*) (MetaPlugin*, MetaWindowActor*)) gala_window_manager_gala_real_unminimize;
	((MetaPluginClass *) klass)->map = (void (*) (MetaPlugin*, MetaWindowActor*)) gala_window_manager_gala_real_map;
	((MetaPluginClass *) klass)->destroy = (void (*) (MetaPlugin*, MetaWindowActor*)) gala_window_manager_gala_real_destroy;
	((MetaPluginClass *) klass)->kill_window_effects = (void (*) (MetaPlugin*, MetaWindowActor*)) gala_window_manager_gala_real_kill_window_effects;
	((MetaPluginClass *) klass)->switch_workspace = (void (*) (MetaPlugin*, gint, gint, MetaMotionDirection)) gala_window_manager_gala_real_switch_workspace;
	((MetaPluginClass *) klass)->kill_switch_workspace = (void (*) (MetaPlugin*)) gala_window_manager_gala_real_kill_switch_workspace;
	((MetaPluginClass *) klass)->locate_pointer = (void (*) (MetaPlugin*)) gala_window_manager_gala_real_locate_pointer;
	((MetaPluginClass *) klass)->keybinding_filter = (gboolean (*) (MetaPlugin*, MetaKeyBinding*)) gala_window_manager_gala_real_keybinding_filter;
	((MetaPluginClass *) klass)->confirm_display_change = (void (*) (MetaPlugin*)) gala_window_manager_gala_real_confirm_display_change;
	((MetaPluginClass *) klass)->create_close_dialog = (MetaCloseDialog* (*) (MetaPlugin*, MetaWindow*)) gala_window_manager_gala_real_create_close_dialog;
	((MetaPluginClass *) klass)->create_inhibit_shortcuts_dialog = (MetaInhibitShortcutsDialog* (*) (MetaPlugin*, MetaWindow*)) gala_window_manager_gala_real_create_inhibit_shortcuts_dialog;
	((MetaPluginClass *) klass)->plugin_info = (MetaPluginInfo* (*) (MetaPlugin*)) gala_window_manager_gala_real_plugin_info;
	G_OBJECT_CLASS (klass)->get_property = _vala_gala_window_manager_gala_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gala_window_manager_gala_set_property;
	G_OBJECT_CLASS (klass)->constructor = gala_window_manager_gala_constructor;
	G_OBJECT_CLASS (klass)->finalize = gala_window_manager_gala_finalize;
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_UI_GROUP_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_UI_GROUP_PROPERTY] = g_param_spec_object ("ui-group", "ui-group", "ui-group", clutter_actor_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_STAGE_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_STAGE_PROPERTY] = g_param_spec_object ("stage", "stage", "stage", clutter_stage_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_WINDOW_GROUP_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WINDOW_GROUP_PROPERTY] = g_param_spec_object ("window-group", "window-group", "window-group", clutter_actor_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_TOP_WINDOW_GROUP_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_TOP_WINDOW_GROUP_PROPERTY] = g_param_spec_object ("top-window-group", "top-window-group", "top-window-group", clutter_actor_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * The group that contains all WindowActors that are system modal.
	         * See {@link ShellClientsManager.is_system_modal_window}.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_MODAL_GROUP_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_MODAL_GROUP_PROPERTY] = g_param_spec_object ("modal-group", "modal-group", "modal-group", GALA_TYPE_MODAL_GROUP, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_BACKGROUND_GROUP_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_BACKGROUND_GROUP_PROPERTY] = g_param_spec_object ("background-group", "background-group", "background-group", meta_background_group_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * View that allows to see and manage all your windows and desktops.
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_MULTITASKING_VIEW_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_MULTITASKING_VIEW_PROPERTY] = g_param_spec_object ("multitasking-view", "multitasking-view", "multitasking-view", GALA_TYPE_MULTITASKING_VIEW, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY] = g_param_spec_object ("pointer-locator", "pointer-locator", "pointer-locator", GALA_TYPE_POINTER_LOCATOR, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_WINDOW_OVERVIEW_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WINDOW_OVERVIEW_PROPERTY] = g_param_spec_object ("window-overview", "window-overview", "window-overview", GALA_TYPE_WINDOW_OVERVIEW, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_SCREENSAVER_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_SCREENSAVER_PROPERTY] = g_param_spec_object ("screensaver", "screensaver", "screensaver", GALA_TYPE_SCREEN_SAVER_MANAGER, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_WINDOW_TRACKER_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WINDOW_TRACKER_PROPERTY] = g_param_spec_object ("window-tracker", "window-tracker", "window-tracker", GALA_TYPE_WINDOW_TRACKER, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
}

static void
gala_window_manager_gala_gala_window_manager_interface_init (GalaWindowManagerIface * iface,
                                                             gpointer iface_data)
{
	gala_window_manager_gala_gala_window_manager_parent_iface = g_type_interface_peek_parent (iface);
	iface->launch_action = (void (*) (GalaWindowManager*, const gchar*)) gala_window_manager_gala_real_launch_action;
	iface->switch_to_next_workspace = (void (*) (GalaWindowManager*, MetaMotionDirection, guint32)) gala_window_manager_gala_real_switch_to_next_workspace;
	iface->move_window = (void (*) (GalaWindowManager*, MetaWindow*, MetaWorkspace*, guint32)) gala_window_manager_gala_real_move_window;
	iface->push_modal = (GalaModalProxy* (*) (GalaWindowManager*, ClutterActor*, gboolean)) gala_window_manager_gala_real_push_modal;
	iface->pop_modal = (void (*) (GalaWindowManager*, GalaModalProxy*)) gala_window_manager_gala_real_pop_modal;
	iface->is_modal = (gboolean (*) (GalaWindowManager*)) gala_window_manager_gala_real_is_modal;
	iface->modal_proxy_valid = (gboolean (*) (GalaWindowManager*, GalaModalProxy*)) gala_window_manager_gala_real_modal_proxy_valid;
	iface->perform_action = (void (*) (GalaWindowManager*, GalaActionType)) gala_window_manager_gala_real_perform_action;
	iface->filter_action = (gboolean (*) (GalaWindowManager*, GalaModalActions)) gala_window_manager_gala_real_filter_action;
	iface->get_ui_group = gala_window_manager_gala_real_get_ui_group;
	iface->set_ui_group = gala_window_manager_gala_real_set_ui_group;
	iface->get_stage = gala_window_manager_gala_real_get_stage;
	iface->set_stage = gala_window_manager_gala_real_set_stage;
	iface->get_window_group = gala_window_manager_gala_real_get_window_group;
	iface->set_window_group = gala_window_manager_gala_real_set_window_group;
	iface->get_top_window_group = gala_window_manager_gala_real_get_top_window_group;
	iface->set_top_window_group = gala_window_manager_gala_real_set_top_window_group;
	iface->get_background_group = gala_window_manager_gala_real_get_background_group;
	iface->set_background_group = gala_window_manager_gala_real_set_background_group;
}

static void
gala_window_manager_gala_instance_init (GalaWindowManagerGala * self,
                                        gpointer klass)
{
	GeeLinkedList* _tmp0_;
	GeeHashSet* _tmp1_;
	GeeHashSet* _tmp2_;
	GeeHashSet* _tmp3_;
	GeeHashSet* _tmp4_;
	GeeHashSet* _tmp5_;
	GeeHashSet* _tmp6_;
	self->priv = gala_window_manager_gala_get_instance_private (self);
	self->priv->window_switcher = NULL;
	self->priv->hot_corner_manager = NULL;
	self->priv->zoom = NULL;
	_tmp0_ = gee_linked_list_new (GALA_TYPE_MODAL_PROXY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	self->priv->modal_stack = _tmp0_;
	_tmp1_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->minimizing = _tmp1_;
	_tmp2_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->maximizing = _tmp2_;
	_tmp3_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->unmaximizing = _tmp3_;
	_tmp4_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->mapping = _tmp4_;
	_tmp5_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->destroying = _tmp5_;
	_tmp6_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->unminimizing = _tmp6_;
	self->priv->which_change = NULL;
}

static void
gala_window_manager_gala_finalize (GObject * obj)
{
	GalaWindowManagerGala * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GALA_TYPE_WINDOW_MANAGER_GALA, GalaWindowManagerGala);
	_g_object_unref0 (self->priv->_ui_group);
	_g_object_unref0 (self->priv->_stage);
	_g_object_unref0 (self->priv->_window_group);
	_g_object_unref0 (self->priv->_top_window_group);
	_g_object_unref0 (self->priv->_shell_group);
	_g_object_unref0 (self->priv->_menu_group);
	_g_object_unref0 (self->priv->_modal_group);
	_g_object_unref0 (self->priv->_background_group);
	_g_object_unref0 (self->priv->_multitasking_view);
	_g_object_unref0 (self->priv->_pointer_locator);
	_g_object_unref0 (self->priv->system_background);
	_g_object_unref0 (self->priv->window_switcher);
	_g_object_unref0 (self->priv->_window_overview);
	_g_object_unref0 (self->priv->_screensaver);
	_g_object_unref0 (self->priv->hot_corner_manager);
	_g_object_unref0 (self->priv->keyboard_manager);
	_g_object_unref0 (self->priv->_window_tracker);
	_g_object_unref0 (self->priv->window_mover);
	_g_object_unref0 (self->priv->filter_manager);
	_g_object_unref0 (self->priv->notifications_manager);
	_g_object_unref0 (self->priv->screenshot_manager);
	_g_object_unref0 (self->priv->zoom);
	_g_object_unref0 (self->priv->tile_preview);
	_g_object_unref0 (self->priv->daemon_manager);
	_g_object_unref0 (self->priv->notification_stack);
	_g_object_unref0 (self->priv->modal_stack);
	_g_object_unref0 (self->priv->minimizing);
	_g_object_unref0 (self->priv->maximizing);
	_g_object_unref0 (self->priv->unmaximizing);
	_g_object_unref0 (self->priv->mapping);
	_g_object_unref0 (self->priv->destroying);
	_g_object_unref0 (self->priv->unminimizing);
	_g_free0 (self->priv->which_change);
	_g_object_unref0 (self->priv->latest_window_snapshot);
	_g_object_unref0 (self->priv->behavior_settings);
	G_OBJECT_CLASS (gala_window_manager_gala_parent_class)->finalize (obj);
}

 G_GNUC_NO_INLINE static GType
gala_window_manager_gala_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GalaWindowManagerGalaClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gala_window_manager_gala_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GalaWindowManagerGala), 0, (GInstanceInitFunc) gala_window_manager_gala_instance_init, NULL };
	static const GInterfaceInfo gala_window_manager_info = { (GInterfaceInitFunc) gala_window_manager_gala_gala_window_manager_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
	GType gala_window_manager_gala_type_id;
	gala_window_manager_gala_type_id = g_type_register_static (meta_plugin_get_type (), "GalaWindowManagerGala", &g_define_type_info, 0);
	g_type_add_interface_static (gala_window_manager_gala_type_id, GALA_TYPE_WINDOW_MANAGER, &gala_window_manager_info);
	GalaWindowManagerGala_private_offset = g_type_add_instance_private (gala_window_manager_gala_type_id, sizeof (GalaWindowManagerGalaPrivate));
	return gala_window_manager_gala_type_id;
}

GType
gala_window_manager_gala_get_type (void)
{
	static gsize gala_window_manager_gala_type_id__once = 0;
	if (g_once_init_enter (&gala_window_manager_gala_type_id__once)) {
		GType gala_window_manager_gala_type_id;
		gala_window_manager_gala_type_id = gala_window_manager_gala_get_type_once ();
		g_once_init_leave (&gala_window_manager_gala_type_id__once, gala_window_manager_gala_type_id);
	}
	return gala_window_manager_gala_type_id__once;
}

static void
_vala_gala_window_manager_gala_get_property (GObject * object,
                                             guint property_id,
                                             GValue * value,
                                             GParamSpec * pspec)
{
	GalaWindowManagerGala * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GALA_TYPE_WINDOW_MANAGER_GALA, GalaWindowManagerGala);
	switch (property_id) {
		case GALA_WINDOW_MANAGER_GALA_UI_GROUP_PROPERTY:
		g_value_set_object (value, gala_window_manager_get_ui_group ((GalaWindowManager*) self));
		break;
		case GALA_WINDOW_MANAGER_GALA_STAGE_PROPERTY:
		g_value_set_object (value, gala_window_manager_get_stage ((GalaWindowManager*) self));
		break;
		case GALA_WINDOW_MANAGER_GALA_WINDOW_GROUP_PROPERTY:
		g_value_set_object (value, gala_window_manager_get_window_group ((GalaWindowManager*) self));
		break;
		case GALA_WINDOW_MANAGER_GALA_TOP_WINDOW_GROUP_PROPERTY:
		g_value_set_object (value, gala_window_manager_get_top_window_group ((GalaWindowManager*) self));
		break;
		case GALA_WINDOW_MANAGER_GALA_MODAL_GROUP_PROPERTY:
		g_value_set_object (value, gala_window_manager_gala_get_modal_group (self));
		break;
		case GALA_WINDOW_MANAGER_GALA_BACKGROUND_GROUP_PROPERTY:
		g_value_set_object (value, gala_window_manager_get_background_group ((GalaWindowManager*) self));
		break;
		case GALA_WINDOW_MANAGER_GALA_MULTITASKING_VIEW_PROPERTY:
		g_value_set_object (value, gala_window_manager_gala_get_multitasking_view (self));
		break;
		case GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY:
		g_value_set_object (value, gala_window_manager_gala_get_pointer_locator (self));
		break;
		case GALA_WINDOW_MANAGER_GALA_WINDOW_OVERVIEW_PROPERTY:
		g_value_set_object (value, gala_window_manager_gala_get_window_overview (self));
		break;
		case GALA_WINDOW_MANAGER_GALA_SCREENSAVER_PROPERTY:
		g_value_set_object (value, gala_window_manager_gala_get_screensaver (self));
		break;
		case GALA_WINDOW_MANAGER_GALA_WINDOW_TRACKER_PROPERTY:
		g_value_set_object (value, gala_window_manager_gala_get_window_tracker (self));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_gala_window_manager_gala_set_property (GObject * object,
                                             guint property_id,
                                             const GValue * value,
                                             GParamSpec * pspec)
{
	GalaWindowManagerGala * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (object, GALA_TYPE_WINDOW_MANAGER_GALA, GalaWindowManagerGala);
	switch (property_id) {
		case GALA_WINDOW_MANAGER_GALA_UI_GROUP_PROPERTY:
		gala_window_manager_set_ui_group ((GalaWindowManager*) self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_STAGE_PROPERTY:
		gala_window_manager_set_stage ((GalaWindowManager*) self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_WINDOW_GROUP_PROPERTY:
		gala_window_manager_set_window_group ((GalaWindowManager*) self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_TOP_WINDOW_GROUP_PROPERTY:
		gala_window_manager_set_top_window_group ((GalaWindowManager*) self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_MODAL_GROUP_PROPERTY:
		gala_window_manager_gala_set_modal_group (self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_BACKGROUND_GROUP_PROPERTY:
		gala_window_manager_set_background_group ((GalaWindowManager*) self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_MULTITASKING_VIEW_PROPERTY:
		gala_window_manager_gala_set_multitasking_view (self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY:
		gala_window_manager_gala_set_pointer_locator (self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_WINDOW_OVERVIEW_PROPERTY:
		gala_window_manager_gala_set_window_overview (self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_SCREENSAVER_PROPERTY:
		gala_window_manager_gala_set_screensaver (self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_WINDOW_TRACKER_PROPERTY:
		gala_window_manager_gala_set_window_tracker (self, g_value_get_object (value));
		break;
		default:
		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
		break;
	}
}

static void
_vala_array_destroy (gpointer array,
                     gssize array_length,
                     GDestroyNotify destroy_func)
{
	if ((array != NULL) && (destroy_func != NULL)) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}

static void
_vala_array_free (gpointer array,
                  gssize array_length,
                  GDestroyNotify destroy_func)
{
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}

