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

/**/
/*  Copyright (C) 2012-2014 Tom Beckmann, Rico Tzschichholz*/
/*                2025-2026 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/window.h>
#include <meta/compositor.h>
#include <glib.h>
#include <mtk/mtk.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/main.h>
#include <meta/types.h>
#include <meta/util.h>
#include <meta/prefs.h>
#include <float.h>
#include <math.h>
#include <systemd/sd-daemon.h>
#include <meta/meta-context.h>
#include <atk-bridge.h>
#include <meta/meta-workspace-manager.h>
#include <meta/workspace.h>
#include <cogl/cogl.h>
#include <meta/meta-monitor-manager.h>
#include <meta/meta-backend.h>
#include <glib/gi18n-lib.h>
#include <gobject/gvaluecollector.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"
#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_LAYOUT_MANAGER (gala_layout_manager_get_type ())
#define GALA_LAYOUT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_LAYOUT_MANAGER, GalaLayoutManager))
#define GALA_LAYOUT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_LAYOUT_MANAGER, GalaLayoutManagerClass))
#define GALA_IS_LAYOUT_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_LAYOUT_MANAGER))
#define GALA_IS_LAYOUT_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_LAYOUT_MANAGER))
#define GALA_LAYOUT_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_LAYOUT_MANAGER, GalaLayoutManagerClass))

typedef struct _GalaLayoutManager GalaLayoutManager;
typedef struct _GalaLayoutManagerClass GalaLayoutManagerClass;

#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_INPUT_METHOD (gala_input_method_get_type ())
#define GALA_INPUT_METHOD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_INPUT_METHOD, GalaInputMethod))
#define GALA_INPUT_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_INPUT_METHOD, GalaInputMethodClass))
#define GALA_IS_INPUT_METHOD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_INPUT_METHOD))
#define GALA_IS_INPUT_METHOD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_INPUT_METHOD))
#define GALA_INPUT_METHOD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_INPUT_METHOD, GalaInputMethodClass))

typedef struct _GalaInputMethod GalaInputMethod;
typedef struct _GalaInputMethodClass GalaInputMethodClass;

#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_WINDOW_MENU_MANAGER (gala_window_menu_manager_get_type ())
#define GALA_WINDOW_MENU_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_WINDOW_MENU_MANAGER, GalaWindowMenuManager))
#define GALA_WINDOW_MENU_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_WINDOW_MENU_MANAGER, GalaWindowMenuManagerClass))
#define GALA_IS_WINDOW_MENU_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_WINDOW_MENU_MANAGER))
#define GALA_IS_WINDOW_MENU_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_WINDOW_MENU_MANAGER))
#define GALA_WINDOW_MENU_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_WINDOW_MENU_MANAGER, GalaWindowMenuManagerClass))

typedef struct _GalaWindowMenuManager GalaWindowMenuManager;
typedef struct _GalaWindowMenuManagerClass GalaWindowMenuManagerClass;

#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;

#define GALA_TYPE_LOCK_SCREEN_MANAGER (gala_lock_screen_manager_get_type ())
#define GALA_LOCK_SCREEN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_LOCK_SCREEN_MANAGER, GalaLockScreenManager))
#define GALA_LOCK_SCREEN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_LOCK_SCREEN_MANAGER, GalaLockScreenManagerClass))
#define GALA_IS_LOCK_SCREEN_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_LOCK_SCREEN_MANAGER))
#define GALA_IS_LOCK_SCREEN_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_LOCK_SCREEN_MANAGER))
#define GALA_LOCK_SCREEN_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_LOCK_SCREEN_MANAGER, GalaLockScreenManagerClass))

typedef struct _GalaLockScreenManager GalaLockScreenManager;
typedef struct _GalaLockScreenManagerClass GalaLockScreenManagerClass;

#define GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO (gala_window_manager_gala_size_change_info_get_type ())
#define GALA_WINDOW_MANAGER_GALA_SIZE_CHANGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO, GalaWindowManagerGalaSizeChangeInfo))
#define GALA_WINDOW_MANAGER_GALA_SIZE_CHANGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO, GalaWindowManagerGalaSizeChangeInfoClass))
#define GALA_WINDOW_MANAGER_GALA_IS_SIZE_CHANGE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO))
#define GALA_WINDOW_MANAGER_GALA_IS_SIZE_CHANGE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO))
#define GALA_WINDOW_MANAGER_GALA_SIZE_CHANGE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO, GalaWindowManagerGalaSizeChangeInfoClass))

typedef struct _GalaWindowManagerGalaSizeChangeInfo GalaWindowManagerGalaSizeChangeInfo;
typedef struct _GalaWindowManagerGalaSizeChangeInfoClass GalaWindowManagerGalaSizeChangeInfoClass;
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_BACKGROUND_GROUP_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 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 _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 _Block7Data Block7Data;

#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 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_LOCK_SCREEN (gala_lock_screen_get_type ())
#define GALA_LOCK_SCREEN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_LOCK_SCREEN, GalaLockScreen))
#define GALA_LOCK_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_LOCK_SCREEN, GalaLockScreenClass))
#define GALA_IS_LOCK_SCREEN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_LOCK_SCREEN))
#define GALA_IS_LOCK_SCREEN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_LOCK_SCREEN))
#define GALA_LOCK_SCREEN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_LOCK_SCREEN, GalaLockScreenClass))

typedef struct _GalaLockScreen GalaLockScreen;
typedef struct _GalaLockScreenClass GalaLockScreenClass;

#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_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 _g_free0(var) (var = (g_free (var), NULL))

#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 _Block8Data Block8Data;
typedef struct _Block9Data Block9Data;
typedef struct _Block10Data Block10Data;
#define _gala_window_manager_gala_size_change_info_unref0(var) ((var == NULL) ? NULL : (var = (gala_window_manager_gala_size_change_info_unref (var), NULL)))
typedef struct _GalaWindowManagerGalaSizeChangeInfoPrivate GalaWindowManagerGalaSizeChangeInfoPrivate;
typedef struct _GalaWindowManagerGalaAnimateSizeChangeData GalaWindowManagerGalaAnimateSizeChangeData;
typedef struct _GalaWindowManagerGalaAnimateMinimizeData GalaWindowManagerGalaAnimateMinimizeData;
typedef struct _GalaWindowManagerGalaAnimateUnminimizeData GalaWindowManagerGalaAnimateUnminimizeData;
typedef struct _GalaWindowManagerGalaAnimateMapData GalaWindowManagerGalaAnimateMapData;
typedef struct _GalaWindowManagerGalaAnimateDestroyData GalaWindowManagerGalaAnimateDestroyData;

#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_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 _Block11Data Block11Data;

#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;
typedef struct _GalaWindowManagerGalaParamSpecSizeChangeInfo GalaWindowManagerGalaParamSpecSizeChangeInfo;

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;
	MetaBackgroundGroup* _background_group;
	GalaLayoutManager* layout_manager;
	GalaScreenSaverManager* _screensaver;
	GalaHotCornerManager* hot_corner_manager;
	GalaKeyboardManager* keyboard_manager;
	GalaInputMethod* input_method;
	GalaWindowTracker* _window_tracker;
	GalaWindowMover* window_mover;
	GalaFilterManager* filter_manager;
	GalaNotificationsManager* notifications_manager;
	GalaScreenshotManager* screenshot_manager;
	GalaZoom* zoom;
	ClutterActor* tile_preview;
	GalaDaemonManager* daemon_manager;
	GalaWindowMenuManager* window_menu_manager;
	GalaNotificationStack* notification_stack;
	GalaLockScreenManager* lock_screen_manager;
	GeeLinkedList* modal_stack;
	GeeHashSet* minimizing;
	GeeHashSet* mapping;
	GeeHashSet* destroying;
	GeeHashSet* unminimizing;
	GeeHashMap* pending_size_change;
	GeeHashSet* changing_size;
	GSettings* behavior_settings;
	GeeMap* overridden_window_group;
};

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 _Block7Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaDisplay* display;
};

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

struct _Block9Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	GalaWindowGroup new_group;
};

struct _Block10Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaWindow* window;
};

struct _GalaWindowManagerGalaSizeChangeInfo {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GalaWindowManagerGalaSizeChangeInfoPrivate * priv;
	MetaSizeChange change;
	MtkRectangle old_rect;
	ClutterActor* snapshot;
};

struct _GalaWindowManagerGalaSizeChangeInfoClass {
	GTypeClass parent_class;
	void (*finalize) (GalaWindowManagerGalaSizeChangeInfo *self);
};

struct _GalaWindowManagerGalaAnimateSizeChangeData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	MetaWindowActor* actor;
	MtkRectangle old_rect;
	MtkRectangle new_rect;
	ClutterActor* snapshot;
	GeeHashSet* _tmp0_;
	MtkRectangle _tmp1_;
	MtkRectangle _tmp2_;
	ClutterActor* _tmp3_;
	ClutterActor* _tmp4_;
	gdouble snapshot_scale_x;
	MtkRectangle _tmp5_;
	MtkRectangle _tmp6_;
	gdouble snapshot_scale_y;
	MtkRectangle _tmp7_;
	MtkRectangle _tmp8_;
	MtkRectangle _tmp9_;
	MtkRectangle _tmp10_;
	gdouble actor_scale_x;
	MtkRectangle _tmp11_;
	MtkRectangle _tmp12_;
	gdouble actor_scale_y;
	MtkRectangle _tmp13_;
	MtkRectangle _tmp14_;
	MtkRectangle new_buffer_rect;
	MetaWindow* _tmp15_;
	MetaWindow* _tmp16_;
	MtkRectangle _tmp17_;
	gdouble scaled_frame_rect_x;
	MtkRectangle _tmp18_;
	MtkRectangle _tmp19_;
	MtkRectangle _tmp20_;
	gdouble scaled_frame_rect_y;
	MtkRectangle _tmp21_;
	MtkRectangle _tmp22_;
	MtkRectangle _tmp23_;
	gfloat translation_x;
	MtkRectangle _tmp24_;
	gfloat translation_y;
	MtkRectangle _tmp25_;
	GalaTransitionBuilder* actor_transition_builder;
	GalaTransitionBuilder* _tmp26_;
	GValue _tmp27_;
	GValue _tmp28_;
	GValue _tmp29_;
	GValue _tmp30_;
	GValue _tmp31_;
	GValue _tmp32_;
	GValue _tmp33_;
	GValue _tmp34_;
	ClutterActor* _tmp35_;
	ClutterActor* _tmp36_;
	GeeHashSet* _tmp37_;
};

struct _GalaWindowManagerGalaAnimateMinimizeData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	MetaWindowActor* actor;
	MetaWindow* _tmp0_;
	MetaWindowType _tmp1_;
	MetaWindowType _tmp2_;
	GeeHashSet* _tmp3_;
	GalaTransitionBuilder* builder;
	GalaTransitionBuilder* _tmp4_;
	MtkRectangle icon;
	MtkRectangle _tmp5_;
	MetaWindow* _tmp6_;
	MtkRectangle _tmp7_;
	gboolean _tmp8_;
	gfloat ui_scale;
	MetaDisplay* _tmp9_;
	MetaDisplay* _tmp10_;
	MtkRectangle _tmp11_;
	MtkRectangle _tmp12_;
	MtkRectangle _tmp13_;
	MtkRectangle _tmp14_;
	MtkRectangle _tmp15_;
	gfloat _tmp16_;
	gfloat _tmp17_;
	MtkRectangle _tmp18_;
	MtkRectangle _tmp19_;
	gfloat _tmp20_;
	gfloat _tmp21_;
	gfloat _tmp22_;
	gfloat _tmp23_;
	MtkRectangle _tmp24_;
	MtkRectangle _tmp25_;
	gfloat _tmp26_;
	gfloat _tmp27_;
	GalaTransitionBuilder* _tmp28_;
	MtkRectangle _tmp29_;
	gfloat _tmp30_;
	gfloat _tmp31_;
	GValue _tmp32_;
	GalaTransitionBuilder* _tmp33_;
	MtkRectangle _tmp34_;
	gfloat _tmp35_;
	gfloat _tmp36_;
	GValue _tmp37_;
	GalaTransitionBuilder* _tmp38_;
	GValue _tmp39_;
	GalaTransitionBuilder* _tmp40_;
	GValue _tmp41_;
	GalaTransitionBuilder* _tmp42_;
	GValue _tmp43_;
	GalaTransitionBuilder* _tmp44_;
	GeeHashSet* _tmp45_;
};

struct _GalaWindowManagerGalaAnimateUnminimizeData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	MetaWindowActor* actor;
	MetaWindow* _tmp0_;
	MetaWindow* _tmp1_;
	MetaWindowType _tmp2_;
	MetaWindowType _tmp3_;
	GeeHashSet* _tmp4_;
	GalaTransitionBuilder* builder;
	GalaTransitionBuilder* _tmp5_;
	GalaTransitionBuilder* _tmp6_;
	GValue _tmp7_;
	GValue _tmp8_;
	GalaTransitionBuilder* _tmp9_;
	GValue _tmp10_;
	GValue _tmp11_;
	GalaTransitionBuilder* _tmp12_;
	GValue _tmp13_;
	GValue _tmp14_;
	GalaTransitionBuilder* _tmp15_;
	GeeHashSet* _tmp16_;
};

struct _GalaWindowManagerGalaAnimateMapData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	MetaWindowActor* actor;
	MetaWindow* window;
	MetaWindow* _tmp0_;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	GeeHashSet* _tmp3_;
	MetaWindow* _tmp4_;
	MetaWindowType _tmp5_;
	MetaWindowType _tmp6_;
	gboolean _tmp7_;
	MetaWindow* _tmp8_;
	gboolean _tmp9_;
	gboolean _tmp10_;
	MetaWindow* _tmp11_;
	gboolean _tmp12_;
	gboolean _tmp13_;
	MtkRectangle outer_rect;
	MetaWindow* _tmp14_;
	MtkRectangle _tmp15_;
	MtkRectangle _tmp16_;
	MtkRectangle _tmp17_;
	GalaTransitionBuilder* builder;
	GalaTransitionBuilder* _tmp18_;
	GalaTransitionBuilder* _tmp19_;
	GValue _tmp20_;
	GValue _tmp21_;
	GalaTransitionBuilder* _tmp22_;
	GValue _tmp23_;
	GValue _tmp24_;
	GalaTransitionBuilder* _tmp25_;
	GValue _tmp26_;
	GValue _tmp27_;
	GalaTransitionBuilder* _tmp28_;
	MetaWindow* _tmp29_;
	GalaTransitionBuilder* _vala1_builder;
	GalaTransitionBuilder* _tmp30_;
	GalaTransitionBuilder* _tmp31_;
	GValue _tmp32_;
	GValue _tmp33_;
	GalaTransitionBuilder* _tmp34_;
	GValue _tmp35_;
	GValue _tmp36_;
	GalaTransitionBuilder* _tmp37_;
	GValue _tmp38_;
	GValue _tmp39_;
	GalaTransitionBuilder* _tmp40_;
	GeeHashSet* _tmp41_;
};

struct _GalaWindowManagerGalaAnimateDestroyData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	MetaWindowActor* actor;
	MetaWindow* window;
	MetaWindow* _tmp0_;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	GeeHashSet* _tmp3_;
	MetaWindow* _tmp4_;
	MetaWindowType _tmp5_;
	MetaWindowType _tmp6_;
	GalaTransitionBuilder* builder;
	GalaTransitionBuilder* _tmp7_;
	GalaTransitionBuilder* _tmp8_;
	GValue _tmp9_;
	GalaTransitionBuilder* _tmp10_;
	GValue _tmp11_;
	GalaTransitionBuilder* _tmp12_;
	GValue _tmp13_;
	GalaTransitionBuilder* _tmp14_;
	MetaWindow* _tmp15_;
	GalaTransitionBuilder* _vala1_builder;
	GalaTransitionBuilder* _tmp16_;
	GalaTransitionBuilder* _tmp17_;
	GValue _tmp18_;
	GalaTransitionBuilder* _tmp19_;
	GValue _tmp20_;
	GalaTransitionBuilder* _tmp21_;
	GValue _tmp22_;
	GalaTransitionBuilder* _tmp23_;
	MetaWindow* _tmp24_;
	GalaNotificationStack* _tmp25_;
	GeeHashSet* _tmp26_;
};

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

struct _GalaWindowManagerGalaParamSpecSizeChangeInfo {
	GParamSpec parent_instance;
};

static gint GalaWindowManagerGala_private_offset;
static gpointer gala_window_manager_gala_parent_class = NULL;
static gpointer gala_window_manager_gala_size_change_info_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_layout_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaLayoutManager, 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_input_method_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaInputMethod, 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_window_menu_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowMenuManager, g_object_unref)
VALA_EXTERN GType gala_notification_stack_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaNotificationStack, g_object_unref)
VALA_EXTERN GType gala_lock_screen_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaLockScreenManager, g_object_unref)
static gpointer gala_window_manager_gala_size_change_info_ref (gpointer instance);
static void gala_window_manager_gala_size_change_info_unref (gpointer instance);
static GParamSpec* gala_window_manager_gala_param_spec_size_change_info (const gchar* name,
                                                                  const gchar* nick,
                                                                  const gchar* blurb,
                                                                  GType object_type,
                                                                  GParamFlags flags) G_GNUC_UNUSED ;
static void gala_window_manager_gala_value_set_size_change_info (GValue* value,
                                                          gpointer v_object) G_GNUC_UNUSED ;
static void gala_window_manager_gala_value_take_size_change_info (GValue* value,
                                                           gpointer v_object) G_GNUC_UNUSED ;
static gpointer gala_window_manager_gala_value_get_size_change_info (const GValue* value) G_GNUC_UNUSED ;
static GType gala_window_manager_gala_size_change_info_get_type (void) G_GNUC_CONST  G_GNUC_UNUSED ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowManagerGalaSizeChangeInfo, gala_window_manager_gala_size_change_info_unref)
static void gala_window_manager_gala_real_start (MetaPlugin* base);
VALA_EXTERN GalaInputMethod* gala_input_method_new (MetaDisplay* display);
VALA_EXTERN GalaInputMethod* gala_input_method_construct (GType object_type,
                                              MetaDisplay* display);
VALA_EXTERN void gala_shell_clients_manager_init (GalaWindowManagerGala* wm,
                                      GalaInputMethod* im);
VALA_EXTERN void gala_blur_manager_init (GalaWindowManager* wm);
VALA_EXTERN GalaDaemonManager* gala_daemon_manager_new (MetaDisplay* display);
VALA_EXTERN GalaDaemonManager* gala_daemon_manager_construct (GType object_type,
                                                  MetaDisplay* display);
VALA_EXTERN GalaWindowMenuManager* gala_window_menu_manager_new (GalaWindowManager* wm,
                                                     GalaDaemonManager* daemon_manager);
VALA_EXTERN GalaWindowMenuManager* gala_window_menu_manager_construct (GType object_type,
                                                           GalaWindowManager* wm,
                                                           GalaDaemonManager* daemon_manager);
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 GType gala_window_overview_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowOverview, g_object_unref)
VALA_EXTERN void gala_dbus_init (GalaWindowManagerGala* _wm,
                     GalaNotificationsManager* notifications_manager,
                     GalaScreenshotManager* screenshot_manager,
                     GalaWindowOverview* window_overview);
VALA_EXTERN GalaWindowOverview* gala_layout_manager_get_window_overview (GalaLayoutManager* self);
static void __lambda158_ (GalaWindowManagerGala* self);
static void ___lambda158__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 ___lambda159_ (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 ____lambda159__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 Block7Data* block7_data_ref (Block7Data* _data7_);
static void block7_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 gboolean __lambda125_ (GalaWindowManagerGala* self);
VALA_EXTERN void gala_workspace_manager_init (GalaWindowManager* wm);
static gboolean ___lambda125__gsource_func (gpointer self);
VALA_EXTERN GalaLayoutManager* gala_layout_manager_new (MetaDisplay* display,
                                            GalaDaemonManager* daemon_manager);
VALA_EXTERN GalaLayoutManager* gala_layout_manager_construct (GType object_type,
                                                  MetaDisplay* display,
                                                  GalaDaemonManager* daemon_manager);
VALA_EXTERN ClutterStage* gala_layout_manager_get_stage (GalaLayoutManager* self);
VALA_EXTERN ClutterActor* gala_layout_manager_get_ui_group (GalaLayoutManager* self);
VALA_EXTERN ClutterActor* gala_layout_manager_get_window_group (GalaLayoutManager* self);
VALA_EXTERN ClutterActor* gala_layout_manager_get_top_window_group (GalaLayoutManager* self);
VALA_EXTERN MetaBackgroundGroup* gala_layout_manager_get_background_group (GalaLayoutManager* 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 void gala_layout_manager_init_ui (GalaLayoutManager* self,
                                  GalaWindowManager* wm);
VALA_EXTERN GType gala_lock_screen_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaLockScreen, g_object_unref)
VALA_EXTERN GalaLockScreen* gala_layout_manager_get_lock_screen (GalaLayoutManager* self);
VALA_EXTERN GalaLockScreenManager* gala_lock_screen_manager_new (GalaLockScreen* lock_screen);
VALA_EXTERN GalaLockScreenManager* gala_lock_screen_manager_construct (GType object_type,
                                                           GalaLockScreen* lock_screen);
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_layout_manager_get_session_locker (GalaLayoutManager* self);
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 ClutterEvent* 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 ClutterEvent* 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 ClutterEvent* 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 ClutterEvent* event,
                                                                               MetaKeyBinding* binding,
                                                                               gpointer self);
VALA_EXTERN GType gala_multitasking_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaMultitaskingView, g_object_unref)
VALA_EXTERN GalaMultitaskingView* gala_layout_manager_get_multitasking_view (GalaLayoutManager* self);
VALA_EXTERN void gala_multitasking_view_toggle (GalaMultitaskingView* self);
static void _gala_multitasking_view_toggle_meta_key_handler_func (MetaDisplay* display,
                                                           MetaWindow* window,
                                                           const ClutterEvent* event,
                                                           MetaKeyBinding* binding,
                                                           gpointer self);
VALA_EXTERN void gala_window_overview_toggle (GalaWindowOverview* self);
static void _gala_window_overview_toggle_meta_key_handler_func (MetaDisplay* display,
                                                         MetaWindow* window,
                                                         const ClutterEvent* event,
                                                         MetaKeyBinding* binding,
                                                         gpointer self);
static void __lambda126_ (Block7Data* _data7_);
VALA_EXTERN gboolean gala_internal_utils_get_x11_in_fullscreen (MetaDisplay* display);
static void ___lambda126__meta_display_overlay_key (MetaDisplay* _sender,
                                             gpointer self);
static void __lambda127_ (GalaWindowManagerGala* self);
static void ___lambda127__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda128_ (GalaWindowManagerGala* self);
static void ___lambda128__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda129_ (GalaWindowManagerGala* self);
static void ___lambda129__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterEvent* 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 ClutterEvent* event,
                                                                                 MetaKeyBinding* binding,
                                                                                 gpointer self);
static void __lambda130_ (GalaWindowManagerGala* self);
static void ___lambda130__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda131_ (GalaWindowManagerGala* self);
static void ___lambda131__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          const ClutterEvent* 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 ClutterEvent* event,
                                                                               MetaKeyBinding* binding,
                                                                               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 __lambda132_ (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_window_group (GalaWindowManagerGala* self,
                                                  MetaWindowActor* actor);
static void _gala_window_manager_gala_check_window_group_gala_internal_utils_window_actor_ready_callback (MetaWindowActor* window_actor,
                                                                                                   gpointer self);
static void ___lambda132__meta_display_window_created (MetaDisplay* _sender,
                                                MetaWindow* object,
                                                gpointer self);
VALA_EXTERN void gala_plugin_manager_load_waiting_plugins (GalaPluginManager* self);
static gboolean __lambda134_ (Block7Data* _data7_);
static gboolean ___lambda134__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);
VALA_EXTERN gboolean gala_multitasking_view_get_opened (GalaMultitaskingView* self);
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);
static void gala_window_manager_gala_dim_parent_window (GalaWindowManagerGala* self,
                                                 MetaWindow* window);
static Block8Data* block8_data_ref (Block8Data* _data8_);
static void block8_data_unref (void * _userdata_);
static void __lambda160_ (Block8Data* _data8_);
static void ___lambda160__meta_window_unmanaged (MetaWindow* _sender,
                                          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_window_menu_manager_show_window_menu (GalaWindowMenuManager* self,
                                                MetaWindow* window,
                                                gint x,
                                                gint y);
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 void gala_window_manager_gala_override_window_group (GalaWindowManagerGala* self,
                                                     MetaWindow* window,
                                                     GalaWindowGroup new_group);
static Block9Data* block9_data_ref (Block9Data* _data9_);
static void block9_data_unref (void * _userdata_);
static void __lambda27_ (GalaWindowManagerGala* self,
                  MetaWindow* _window);
static void ___lambda27__meta_window_unmanaged (MetaWindow* _sender,
                                         gpointer self);
static void __lambda28_ (Block9Data* _data9_,
                  MetaWindowActor* actor);
VALA_EXTERN void gala_layout_manager_change_window_group (GalaLayoutManager* self,
                                              MetaWindowActor* actor,
                                              GalaWindowGroup new_group);
static void ___lambda28__gala_internal_utils_window_actor_ready_callback (MetaWindowActor* window_actor,
                                                                   gpointer self);
static Block10Data* block10_data_ref (Block10Data* _data10_);
static void block10_data_unref (void * _userdata_);
static gboolean __lambda133_ (Block10Data* _data10_,
                       MetaWindow* ancestor);
static gboolean ___lambda133__meta_window_foreach_func (MetaWindow* window,
                                                 gpointer self);
VALA_EXTERN void gala_notification_stack_show_notification (GalaNotificationStack* self,
                                                MetaWindowActor* notification);
VALA_EXTERN void gala_internal_utils_clutter_actor_reparent (ClutterActor* actor,
                                                 ClutterActor* new_parent);
static void gala_window_manager_gala_real_size_change (MetaPlugin* base,
                                                MetaWindowActor* actor,
                                                MetaSizeChange which_change,
                                                MtkRectangle* old_frame_rect,
                                                MtkRectangle* old_buffer_rect);
static GalaWindowManagerGalaSizeChangeInfo* gala_window_manager_gala_size_change_info_new (MetaSizeChange change,
                                                                                    MtkRectangle* old_rect,
                                                                                    ClutterActor* snapshot);
static GalaWindowManagerGalaSizeChangeInfo* gala_window_manager_gala_size_change_info_construct (GType object_type,
                                                                                          MetaSizeChange change,
                                                                                          MtkRectangle* old_rect,
                                                                                          ClutterActor* snapshot);
static void gala_window_manager_gala_real_size_changed (MetaPlugin* base,
                                                 MetaWindowActor* actor);
static void gala_window_manager_gala_animate_size_change (GalaWindowManagerGala* self,
                                                   MetaWindowActor* actor,
                                                   MtkRectangle* old_rect,
                                                   MtkRectangle* new_rect,
                                                   ClutterActor* snapshot,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
static void gala_window_manager_gala_animate_size_change_finish (GalaWindowManagerGala* self,
                                                          GAsyncResult* _res_);
static void gala_window_manager_gala_animate_size_change_data_free (gpointer _data);
static gboolean gala_window_manager_gala_animate_size_change_co (GalaWindowManagerGalaAnimateSizeChangeData* _data_);
static void gala_window_manager_gala_animate_size_change_ready (GObject* source_object,
                                                         GAsyncResult* _res_,
                                                         gpointer _user_data_);
static void gala_window_manager_gala_real_minimize (MetaPlugin* base,
                                             MetaWindowActor* actor);
static void gala_window_manager_gala_animate_minimize (GalaWindowManagerGala* self,
                                                MetaWindowActor* actor,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
static void gala_window_manager_gala_animate_minimize_finish (GalaWindowManagerGala* self,
                                                       GAsyncResult* _res_);
static void gala_window_manager_gala_animate_minimize_data_free (gpointer _data);
static gboolean gala_window_manager_gala_animate_minimize_co (GalaWindowManagerGalaAnimateMinimizeData* _data_);
static void gala_window_manager_gala_animate_minimize_ready (GObject* source_object,
                                                      GAsyncResult* _res_,
                                                      gpointer _user_data_);
static void gala_window_manager_gala_real_unminimize (MetaPlugin* base,
                                               MetaWindowActor* actor);
static void gala_window_manager_gala_animate_unminimize (GalaWindowManagerGala* self,
                                                  MetaWindowActor* actor,
                                                  GAsyncReadyCallback _callback_,
                                                  gpointer _user_data_);
static void gala_window_manager_gala_animate_unminimize_finish (GalaWindowManagerGala* self,
                                                         GAsyncResult* _res_);
static void gala_window_manager_gala_animate_unminimize_data_free (gpointer _data);
static gboolean gala_window_manager_gala_animate_unminimize_co (GalaWindowManagerGalaAnimateUnminimizeData* _data_);
static void gala_window_manager_gala_animate_unminimize_ready (GObject* source_object,
                                                        GAsyncResult* _res_,
                                                        gpointer _user_data_);
static void gala_window_manager_gala_real_map (MetaPlugin* base,
                                        MetaWindowActor* actor);
VALA_EXTERN void gala_window_state_saver_on_map (MetaWindow* window);
static void gala_window_manager_gala_animate_map (GalaWindowManagerGala* self,
                                           MetaWindowActor* actor,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_);
static void gala_window_manager_gala_animate_map_finish (GalaWindowManagerGala* self,
                                                  GAsyncResult* _res_);
static void gala_window_manager_gala_animate_map_data_free (gpointer _data);
static gboolean gala_window_manager_gala_animate_map_co (GalaWindowManagerGalaAnimateMapData* _data_);
static void gala_window_manager_gala_animate_map_ready (GObject* source_object,
                                                 GAsyncResult* _res_,
                                                 gpointer _user_data_);
static void gala_window_manager_gala_real_destroy (MetaPlugin* base,
                                            MetaWindowActor* actor);
static void gala_window_manager_gala_animate_destroy (GalaWindowManagerGala* self,
                                               MetaWindowActor* actor,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_);
static void gala_window_manager_gala_animate_destroy_finish (GalaWindowManagerGala* self,
                                                      GAsyncResult* _res_);
static void gala_window_manager_gala_animate_destroy_data_free (gpointer _data);
static gboolean gala_window_manager_gala_animate_destroy_co (GalaWindowManagerGalaAnimateDestroyData* _data_);
static void gala_window_manager_gala_animate_destroy_ready (GObject* source_object,
                                                     GAsyncResult* _res_,
                                                     gpointer _user_data_);
VALA_EXTERN void gala_notification_stack_destroy_notification (GalaNotificationStack* self,
                                                   MetaWindowActor* notification,
                                                   GAsyncReadyCallback _callback_,
                                                   gpointer _user_data_);
VALA_EXTERN void gala_notification_stack_destroy_notification_finish (GalaNotificationStack* self,
                                                          GAsyncResult* _res_);
static void 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 GType gala_pointer_locator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaPointerLocator, g_object_unref)
VALA_EXTERN GalaPointerLocator* gala_layout_manager_get_pointer_locator (GalaLayoutManager* self);
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 Block11Data* block11_data_ref (Block11Data* _data11_);
static void block11_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 __lambda161_ (Block11Data* _data11_);
static gboolean __lambda162_ (Block11Data* _data11_);
VALA_EXTERN void gala_access_dialog_close (GalaAccessDialog* self);
static gboolean ___lambda162__gsource_func (gpointer self);
static void ___lambda161__gala_access_dialog_show (GalaAccessDialog* _sender,
                                            gpointer self);
static void __lambda163_ (Block11Data* _data11_,
                   guint res);
static void ___lambda163__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)
VALA_EXTERN GalaWindowManagerGala* gala_window_manager_gala_new (void);
VALA_EXTERN GalaWindowManagerGala* gala_window_manager_gala_construct (GType object_type);
static void gala_window_manager_gala_size_change_info_finalize (GalaWindowManagerGalaSizeChangeInfo * obj);
static GType gala_window_manager_gala_size_change_info_get_type_once (void);
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
__lambda158_ (GalaWindowManagerGala* self)
{
	meta_background_refresh_all ();
}

static void
___lambda158__meta_display_gl_video_memory_purged (MetaDisplay* _sender,
                                                   gpointer self)
{
	__lambda158_ ((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
meta_util_is_wayland_compositor (void)
{
	gboolean result;
	result = TRUE;
	return result;
}

static gboolean
___lambda159_ (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
____lambda159__meta_display_init_xserver (MetaDisplay* _sender,
                                          GTask* object,
                                          gpointer self)
{
	gboolean result;
	result = ___lambda159_ ((GalaWindowManagerGala*) self, object);
	return result;
}

static void
gala_window_manager_gala_real_start (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	MetaDisplay* _tmp0_;
	GalaInputMethod* _tmp1_;
	ClutterBackend* _tmp2_;
	GalaInputMethod* _tmp3_;
	GalaInputMethod* _tmp4_;
	MetaDisplay* _tmp5_;
	GalaDaemonManager* _tmp6_;
	GalaDaemonManager* _tmp7_;
	GalaWindowMenuManager* _tmp8_;
	GalaFilterManager* _tmp9_;
	GalaNotificationsManager* _tmp10_;
	GalaNotificationsManager* _tmp11_;
	GalaFilterManager* _tmp12_;
	GalaScreenshotManager* _tmp13_;
	GalaNotificationsManager* _tmp14_;
	GalaScreenshotManager* _tmp15_;
	GalaLayoutManager* _tmp16_;
	GalaWindowOverview* _tmp17_;
	GalaWindowOverview* _tmp18_;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp19_;
	MetaDisplay* _tmp20_;
	MetaDisplay* _tmp21_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	_tmp1_ = gala_input_method_new (_tmp0_);
	_g_object_unref0 (self->priv->input_method);
	self->priv->input_method = _tmp1_;
	_tmp2_ = clutter_get_default_backend ();
	_tmp3_ = self->priv->input_method;
	clutter_backend_set_input_method (_tmp2_, (ClutterInputMethod*) _tmp3_);
	_tmp4_ = self->priv->input_method;
	gala_shell_clients_manager_init (self, _tmp4_);
	gala_blur_manager_init ((GalaWindowManager*) self);
	_tmp5_ = meta_plugin_get_display ((MetaPlugin*) self);
	_tmp6_ = gala_daemon_manager_new (_tmp5_);
	_g_object_unref0 (self->priv->daemon_manager);
	self->priv->daemon_manager = _tmp6_;
	_tmp7_ = self->priv->daemon_manager;
	_tmp8_ = gala_window_menu_manager_new ((GalaWindowManager*) self, _tmp7_);
	_g_object_unref0 (self->priv->window_menu_manager);
	self->priv->window_menu_manager = _tmp8_;
	gala_window_manager_gala_show_stage (self);
	gala_window_manager_gala_init_a11y (self);
	gala_access_dialog_watch_portal ();
	_tmp9_ = gala_filter_manager_new ((GalaWindowManager*) self);
	_g_object_unref0 (self->priv->filter_manager);
	self->priv->filter_manager = _tmp9_;
	_tmp10_ = gala_notifications_manager_new ();
	_g_object_unref0 (self->priv->notifications_manager);
	self->priv->notifications_manager = _tmp10_;
	_tmp11_ = self->priv->notifications_manager;
	_tmp12_ = self->priv->filter_manager;
	_tmp13_ = gala_screenshot_manager_new ((GalaWindowManager*) self, _tmp11_, _tmp12_);
	_g_object_unref0 (self->priv->screenshot_manager);
	self->priv->screenshot_manager = _tmp13_;
	_tmp14_ = self->priv->notifications_manager;
	_tmp15_ = self->priv->screenshot_manager;
	_tmp16_ = self->priv->layout_manager;
	_tmp17_ = gala_layout_manager_get_window_overview (_tmp16_);
	_tmp18_ = _tmp17_;
	gala_dbus_init (self, _tmp14_, _tmp15_, _tmp18_);
	_tmp19_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp19_;
	_tmp20_ = display;
	g_signal_connect_object (_tmp20_, "gl-video-memory-purged", (GCallback) ___lambda158__meta_display_gl_video_memory_purged, self, 0);
	_tmp21_ = display;
	g_signal_connect_object ((GObject*) _tmp21_, "notify::focus-window", (GCallback) _gala_window_manager_gala_on_focus_window_changed_g_object_notify, self, 0);
	if (meta_util_is_wayland_compositor ()) {
		MetaDisplay* _tmp22_;
		_tmp22_ = display;
		g_signal_connect_object (_tmp22_, "init-xserver", (GCallback) ____lambda159__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:169: %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 Block7Data*
block7_data_ref (Block7Data* _data7_)
{
	g_atomic_int_inc (&_data7_->_ref_count_);
	return _data7_;
}

static void
block7_data_unref (void * _userdata_)
{
	Block7Data* _data7_;
	_data7_ = (Block7Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data7_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data7_->self;
		_g_object_unref0 (self);
		g_slice_free (Block7Data, _data7_);
	}
}

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

static gboolean
___lambda125__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda125_ ((GalaWindowManagerGala*) self);
	return result;
}

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_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 ClutterEvent* 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 ClutterEvent* 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 ClutterEvent* 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 ClutterEvent* event,
                                                                          MetaKeyBinding* binding,
                                                                          gpointer self)
{
	gala_window_manager_gala_handle_applications_menu ((GalaWindowManagerGala*) self, display, window, event, binding);
}

static void
_gala_multitasking_view_toggle_meta_key_handler_func (MetaDisplay* display,
                                                      MetaWindow* window,
                                                      const ClutterEvent* event,
                                                      MetaKeyBinding* binding,
                                                      gpointer self)
{
	gala_multitasking_view_toggle ((GalaMultitaskingView*) self);
}

static void
_gala_window_overview_toggle_meta_key_handler_func (MetaDisplay* display,
                                                    MetaWindow* window,
                                                    const ClutterEvent* event,
                                                    MetaKeyBinding* binding,
                                                    gpointer self)
{
	gala_window_overview_toggle ((GalaWindowOverview*) self);
}

static void
__lambda126_ (Block7Data* _data7_)
{
	GalaWindowManagerGala* self;
	gboolean _tmp0_ = FALSE;
	MetaDisplay* _tmp1_;
	self = _data7_->self;
	_tmp1_ = _data7_->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
___lambda126__meta_display_overlay_key (MetaDisplay* _sender,
                                        gpointer self)
{
	__lambda126_ (self);
}

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

static void
___lambda127__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda127_ ((GalaWindowManagerGala*) self);
}

static void
__lambda128_ (GalaWindowManagerGala* self)
{
}

static void
___lambda128__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda128_ ((GalaWindowManagerGala*) self);
}

static void
__lambda129_ (GalaWindowManagerGala* self)
{
}

static void
___lambda129__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda129_ ((GalaWindowManagerGala*) self);
}

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

static void
__lambda130_ (GalaWindowManagerGala* self)
{
}

static void
___lambda130__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda130_ ((GalaWindowManagerGala*) self);
}

static void
__lambda131_ (GalaWindowManagerGala* self)
{
}

static void
___lambda131__meta_key_handler_func (MetaDisplay* display,
                                     MetaWindow* window,
                                     const ClutterEvent* event,
                                     MetaKeyBinding* binding,
                                     gpointer self)
{
	__lambda131_ ((GalaWindowManagerGala*) self);
}

static void
_gala_window_manager_gala_handle_move_to_workspace_meta_key_handler_func (MetaDisplay* display,
                                                                          MetaWindow* window,
                                                                          const ClutterEvent* 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_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_window_group_gala_internal_utils_window_actor_ready_callback (MetaWindowActor* window_actor,
                                                                                              gpointer self)
{
	gala_window_manager_gala_check_window_group ((GalaWindowManagerGala*) self, window_actor);
}

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

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

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

static gboolean
___lambda134__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda134_ (self);
	return result;
}

static void
gala_window_manager_gala_show_stage (GalaWindowManagerGala* self)
{
	Block7Data* _data7_;
	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_;
	MetaLaters* laters = NULL;
	MetaDisplay* _tmp15_;
	MetaCompositor* _tmp16_;
	MetaLaters* _tmp17_;
	MetaLaters* _tmp18_;
	MetaDisplay* _tmp19_;
	GalaDaemonManager* _tmp20_;
	GalaLayoutManager* _tmp21_;
	GalaLayoutManager* _tmp22_;
	ClutterStage* _tmp23_;
	ClutterStage* _tmp24_;
	GalaLayoutManager* _tmp25_;
	ClutterActor* _tmp26_;
	ClutterActor* _tmp27_;
	GalaLayoutManager* _tmp28_;
	ClutterActor* _tmp29_;
	ClutterActor* _tmp30_;
	GalaLayoutManager* _tmp31_;
	ClutterActor* _tmp32_;
	ClutterActor* _tmp33_;
	GalaLayoutManager* _tmp34_;
	MetaBackgroundGroup* _tmp35_;
	MetaBackgroundGroup* _tmp36_;
	GalaPluginManager* plugin_manager = NULL;
	GalaPluginManager* _tmp37_;
	GalaPluginManager* _tmp38_;
	GalaPluginManager* _tmp39_;
	GalaLayoutManager* _tmp40_;
	GalaLayoutManager* _tmp41_;
	GalaLockScreen* _tmp42_;
	GalaLockScreen* _tmp43_;
	GalaLockScreenManager* _tmp44_;
	GalaLayoutManager* _tmp45_;
	GalaSessionLocker* _tmp46_;
	GalaSessionLocker* _tmp47_;
	GalaScreenSaverManager* _tmp48_;
	GalaScreenSaverManager* _tmp49_;
	GalaScreenSaverManager* _tmp50_;
	GSettings* keybinding_settings = NULL;
	GSettings* _tmp51_;
	MetaDisplay* _tmp52_;
	GSettings* _tmp53_;
	MetaDisplay* _tmp54_;
	GSettings* _tmp55_;
	MetaDisplay* _tmp56_;
	GSettings* _tmp57_;
	MetaDisplay* _tmp58_;
	GSettings* _tmp59_;
	MetaDisplay* _tmp60_;
	GSettings* _tmp61_;
	MetaDisplay* _tmp62_;
	GSettings* _tmp63_;
	MetaDisplay* _tmp64_;
	GSettings* _tmp65_;
	MetaDisplay* _tmp66_;
	GSettings* _tmp67_;
	GalaLayoutManager* _tmp68_;
	GalaMultitaskingView* _tmp69_;
	GalaMultitaskingView* _tmp70_;
	MetaDisplay* _tmp71_;
	GSettings* _tmp72_;
	GalaLayoutManager* _tmp73_;
	GalaWindowOverview* _tmp74_;
	GalaWindowOverview* _tmp75_;
	MetaDisplay* _tmp76_;
	GSettings* _tmp83_;
	GalaHotCornerManager* _tmp84_;
	GalaHotCornerManager* _tmp85_;
	GalaHotCornerManager* _tmp86_;
	GalaZoom* _tmp87_;
	GalaSuperScrollAction* scroll_action = NULL;
	MetaDisplay* _tmp88_;
	GalaSuperScrollAction* _tmp89_;
	ClutterStage* _tmp90_;
	ClutterStage* _tmp91_;
	MetaDisplay* _tmp92_;
	ClutterStage* _tmp93_;
	ClutterStage* _tmp94_;
	GalaPluginManager* _tmp95_;
	g_return_if_fail (self != NULL);
	_data7_ = g_slice_new0 (Block7Data);
	_data7_->_ref_count_ = 1;
	_data7_->self = g_object_ref (self);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	_data7_->display = _tmp0_;
	_tmp1_ = _data7_->display;
	gala_window_listener_init (_tmp1_);
	_tmp2_ = _data7_->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_ = _data7_->display;
	gala_window_tracker_init (_tmp7_, _tmp8_);
	_tmp9_ = _data7_->display;
	gala_window_attention_tracker_init (_tmp9_);
	_tmp10_ = _data7_->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_ = _data7_->display;
	_tmp14_ = gala_notification_stack_new (_tmp13_);
	_g_object_unref0 (self->priv->notification_stack);
	self->priv->notification_stack = _tmp14_;
	_tmp15_ = _data7_->display;
	_tmp16_ = meta_display_get_compositor (_tmp15_);
	_tmp17_ = meta_compositor_get_laters (_tmp16_);
	laters = _tmp17_;
	_tmp18_ = laters;
	meta_laters_add (_tmp18_, META_LATER_BEFORE_REDRAW, ___lambda125__gsource_func, g_object_ref (self), g_object_unref);
	_tmp19_ = _data7_->display;
	_tmp20_ = self->priv->daemon_manager;
	_tmp21_ = gala_layout_manager_new (_tmp19_, _tmp20_);
	_g_object_unref0 (self->priv->layout_manager);
	self->priv->layout_manager = _tmp21_;
	_tmp22_ = self->priv->layout_manager;
	_tmp23_ = gala_layout_manager_get_stage (_tmp22_);
	_tmp24_ = _tmp23_;
	gala_window_manager_set_stage ((GalaWindowManager*) self, _tmp24_);
	_tmp25_ = self->priv->layout_manager;
	_tmp26_ = gala_layout_manager_get_ui_group (_tmp25_);
	_tmp27_ = _tmp26_;
	gala_window_manager_set_ui_group ((GalaWindowManager*) self, _tmp27_);
	_tmp28_ = self->priv->layout_manager;
	_tmp29_ = gala_layout_manager_get_window_group (_tmp28_);
	_tmp30_ = _tmp29_;
	gala_window_manager_set_window_group ((GalaWindowManager*) self, _tmp30_);
	_tmp31_ = self->priv->layout_manager;
	_tmp32_ = gala_layout_manager_get_top_window_group (_tmp31_);
	_tmp33_ = _tmp32_;
	gala_window_manager_set_top_window_group ((GalaWindowManager*) self, _tmp33_);
	_tmp34_ = self->priv->layout_manager;
	_tmp35_ = gala_layout_manager_get_background_group (_tmp34_);
	_tmp36_ = _tmp35_;
	gala_window_manager_set_background_group ((GalaWindowManager*) self, _tmp36_);
	_tmp37_ = gala_plugin_manager_get_default ();
	plugin_manager = _tmp37_;
	_tmp38_ = plugin_manager;
	gala_plugin_manager_initialize (_tmp38_, (GalaWindowManager*) self);
	_tmp39_ = plugin_manager;
	g_signal_connect_object (_tmp39_, "regions-changed", (GCallback) _gala_window_manager_gala_update_input_area_gala_plugin_manager_regions_changed, self, 0);
	_tmp40_ = self->priv->layout_manager;
	gala_layout_manager_init_ui (_tmp40_, (GalaWindowManager*) self);
	_tmp41_ = self->priv->layout_manager;
	_tmp42_ = gala_layout_manager_get_lock_screen (_tmp41_);
	_tmp43_ = _tmp42_;
	_tmp44_ = gala_lock_screen_manager_new (_tmp43_);
	_g_object_unref0 (self->priv->lock_screen_manager);
	self->priv->lock_screen_manager = _tmp44_;
	_tmp45_ = self->priv->layout_manager;
	_tmp46_ = gala_layout_manager_get_session_locker (_tmp45_);
	_tmp47_ = _tmp46_;
	_tmp48_ = gala_screen_saver_manager_new (_tmp47_);
	_tmp49_ = _tmp48_;
	gala_window_manager_gala_set_screensaver (self, _tmp49_);
	_g_object_unref0 (_tmp49_);
	_tmp50_ = self->priv->_screensaver;
	g_signal_connect_object (_tmp50_, "active-changed", (GCallback) _gala_window_manager_gala_update_input_area_gala_screen_saver_manager_active_changed, self, 0);
	_tmp51_ = g_settings_new ("io.elementary.desktop.wm.keybindings");
	keybinding_settings = _tmp51_;
	_tmp52_ = _data7_->display;
	_tmp53_ = keybinding_settings;
	meta_display_add_keybinding (_tmp52_, "switch-to-workspace-first", _tmp53_, 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);
	_tmp54_ = _data7_->display;
	_tmp55_ = keybinding_settings;
	meta_display_add_keybinding (_tmp54_, "switch-to-workspace-last", _tmp55_, 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);
	_tmp56_ = _data7_->display;
	_tmp57_ = keybinding_settings;
	meta_display_add_keybinding (_tmp56_, "move-to-workspace-first", _tmp57_, 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);
	_tmp58_ = _data7_->display;
	_tmp59_ = keybinding_settings;
	meta_display_add_keybinding (_tmp58_, "move-to-workspace-last", _tmp59_, 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);
	_tmp60_ = _data7_->display;
	_tmp61_ = keybinding_settings;
	meta_display_add_keybinding (_tmp60_, "cycle-workspaces-next", _tmp61_, META_KEY_BINDING_NONE, _gala_window_manager_gala_handle_cycle_workspaces_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp62_ = _data7_->display;
	_tmp63_ = keybinding_settings;
	meta_display_add_keybinding (_tmp62_, "cycle-workspaces-previous", _tmp63_, META_KEY_BINDING_NONE, _gala_window_manager_gala_handle_cycle_workspaces_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp64_ = _data7_->display;
	_tmp65_ = keybinding_settings;
	meta_display_add_keybinding (_tmp64_, "panel-main-menu", _tmp65_, META_KEY_BINDING_IGNORE_AUTOREPEAT, _gala_window_manager_gala_handle_applications_menu_meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp66_ = _data7_->display;
	_tmp67_ = keybinding_settings;
	_tmp68_ = self->priv->layout_manager;
	_tmp69_ = gala_layout_manager_get_multitasking_view (_tmp68_);
	_tmp70_ = _tmp69_;
	meta_display_add_keybinding (_tmp66_, "toggle-multitasking-view", _tmp67_, META_KEY_BINDING_IGNORE_AUTOREPEAT, _gala_multitasking_view_toggle_meta_key_handler_func, g_object_ref (_tmp70_), g_object_unref);
	_tmp71_ = _data7_->display;
	_tmp72_ = keybinding_settings;
	_tmp73_ = self->priv->layout_manager;
	_tmp74_ = gala_layout_manager_get_window_overview (_tmp73_);
	_tmp75_ = _tmp74_;
	meta_display_add_keybinding (_tmp71_, "expose-all-windows", _tmp72_, META_KEY_BINDING_IGNORE_AUTOREPEAT, _gala_window_overview_toggle_meta_key_handler_func, g_object_ref (_tmp75_), g_object_unref);
	_tmp76_ = _data7_->display;
	g_signal_connect_data (_tmp76_, "overlay-key", (GCallback) ___lambda126__meta_display_overlay_key, block7_data_ref (_data7_), (GClosureNotify) block7_data_unref, 0);
	meta_keybindings_set_custom_handler ("toggle-recording", ___lambda127__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-up", ___lambda128__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-down", ___lambda129__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", ___lambda130__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-down", ___lambda131__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 _tmp77_ = FALSE;
			_tmp77_ = TRUE;
			while (TRUE) {
				gchar* _tmp79_;
				gchar* _tmp80_;
				gchar* _tmp81_;
				gchar* _tmp82_;
				if (!_tmp77_) {
					gint _tmp78_;
					_tmp78_ = i;
					i = _tmp78_ + 1;
				}
				_tmp77_ = FALSE;
				if (!(i < 13)) {
					break;
				}
				_tmp79_ = g_strdup_printf ("switch-to-workspace-%d", i);
				_tmp80_ = _tmp79_;
				meta_keybindings_set_custom_handler (_tmp80_, _gala_window_manager_gala_handle_switch_to_workspace_meta_key_handler_func, g_object_ref (self), g_object_unref);
				_g_free0 (_tmp80_);
				_tmp81_ = g_strdup_printf ("move-to-workspace-%d", i);
				_tmp82_ = _tmp81_;
				meta_keybindings_set_custom_handler (_tmp82_, _gala_window_manager_gala_handle_move_to_workspace_meta_key_handler_func, g_object_ref (self), g_object_unref);
				_g_free0 (_tmp82_);
			}
		}
	}
	_tmp83_ = self->priv->behavior_settings;
	_tmp84_ = gala_hot_corner_manager_new ((GalaWindowManager*) self, _tmp83_);
	_g_object_unref0 (self->priv->hot_corner_manager);
	self->priv->hot_corner_manager = _tmp84_;
	_tmp85_ = self->priv->hot_corner_manager;
	g_signal_connect_object (_tmp85_, "on-configured", (GCallback) _gala_window_manager_gala_update_input_area_gala_hot_corner_manager_on_configured, self, 0);
	_tmp86_ = self->priv->hot_corner_manager;
	gala_hot_corner_manager_configure (_tmp86_);
	_tmp87_ = gala_zoom_new ((GalaWindowManager*) self);
	_g_object_unref0 (self->priv->zoom);
	self->priv->zoom = _tmp87_;
	gala_window_manager_gala_update_input_area (self);
	_tmp88_ = _data7_->display;
	_tmp89_ = gala_super_scroll_action_new (_tmp88_);
	g_object_ref_sink (_tmp89_);
	scroll_action = _tmp89_;
	g_signal_connect_object (scroll_action, "triggered", (GCallback) _gala_window_manager_gala_handle_super_scroll_gala_super_scroll_action_triggered, self, 0);
	_tmp90_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp91_ = _tmp90_;
	clutter_actor_add_action_full ((ClutterActor*) _tmp91_, "wm-super-scroll-action", CLUTTER_PHASE_CAPTURE, (ClutterAction*) scroll_action);
	_tmp92_ = _data7_->display;
	g_signal_connect_object (_tmp92_, "window-created", (GCallback) ___lambda132__meta_display_window_created, self, 0);
	_tmp93_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp94_ = _tmp93_;
	clutter_actor_show ((ClutterActor*) _tmp94_);
	_tmp95_ = plugin_manager;
	gala_plugin_manager_load_waiting_plugins (_tmp95_);
	g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda134__gsource_func, block7_data_ref (_data7_), block7_data_unref);
	_g_object_unref0 (scroll_action);
	_g_object_unref0 (keybinding_settings);
	block7_data_unref (_data7_);
	_data7_ = 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:300: 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_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:316: %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;
	GalaLayoutManager* _tmp0_;
	GalaMultitaskingView* _tmp1_;
	GalaMultitaskingView* _tmp2_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->layout_manager;
	_tmp1_ = gala_layout_manager_get_multitasking_view (_tmp0_);
	_tmp2_ = _tmp1_;
	gala_multitasking_view_switch_to_next_workspace (_tmp2_, 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;
		GalaLayoutManager* _tmp6_;
		GalaMultitaskingView* _tmp7_;
		GalaMultitaskingView* _tmp8_;
		gboolean _tmp9_;
		gboolean _tmp10_;
		GalaInputArea area = 0;
		MetaDisplay* _tmp11_;
		_tmp6_ = self->priv->layout_manager;
		_tmp7_ = gala_layout_manager_get_multitasking_view (_tmp6_);
		_tmp8_ = _tmp7_;
		_tmp9_ = gala_multitasking_view_get_opened (_tmp8_);
		_tmp10_ = _tmp9_;
		if (_tmp10_) {
			_tmp5_ = GALA_INPUT_AREA_MULTITASKING_VIEW;
		} else {
			_tmp5_ = GALA_INPUT_AREA_FULLSCREEN;
		}
		area = _tmp5_;
		_tmp11_ = display;
		gala_internal_utils_set_input_area (_tmp11_, area);
	} else {
		MetaDisplay* _tmp12_;
		_tmp12_ = display;
		gala_internal_utils_set_input_area (_tmp12_, 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_;
	GalaLayoutManager* _tmp13_;
	GalaMultitaskingView* _tmp14_;
	GalaMultitaskingView* _tmp15_;
	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->layout_manager;
	_tmp14_ = gala_layout_manager_get_multitasking_view (_tmp13_);
	_tmp15_ = _tmp14_;
	gala_multitasking_view_move_window (_tmp15_, 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_;
	MetaCompositor* _tmp12_;
	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);
	_tmp12_ = meta_display_get_compositor (_tmp11_);
	meta_compositor_disable_unredirect (_tmp12_);
	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_;
	MetaCompositor* _tmp7_;
	MetaDisplay* _tmp8_;
	MetaDisplay* _tmp9_;
	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:528: 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;
	_tmp7_ = meta_display_get_compositor (_tmp6_);
	meta_compositor_enable_unredirect (_tmp7_);
	_tmp8_ = display;
	_tmp9_ = display;
	meta_display_focus_default_window (_tmp8_, meta_display_get_current_time (_tmp9_));
}

/**
         * {@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;
	GeeMap* _tmp11_;
	MetaDisplay* _tmp12_;
	MetaWindow* _tmp13_;
	MetaWindow* _tmp14_;
	MetaDisplay* _tmp24_;
	MetaDisplay* _tmp25_;
	g_return_if_fail (self != NULL);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	if (!gala_window_manager_is_modal ((GalaWindowManager*) self)) {
		_tmp2_ = TRUE;
	} else {
		GeeLinkedList* _tmp3_;
		gpointer _tmp4_;
		GalaModalProxy* _tmp5_;
		ClutterGrab* _tmp6_;
		ClutterGrab* _tmp7_;
		_tmp3_ = self->priv->modal_stack;
		_tmp4_ = gee_deque_peek_head ((GeeDeque*) _tmp3_);
		_tmp5_ = (GalaModalProxy*) _tmp4_;
		_tmp6_ = gala_modal_proxy_get_grab (_tmp5_);
		_tmp7_ = _tmp6_;
		_tmp2_ = _tmp7_ != NULL;
		_g_object_unref0 (_tmp5_);
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		MetaDisplay* _tmp8_;
		MetaWindow* _tmp9_;
		MetaWindow* _tmp10_;
		_tmp8_ = display;
		_tmp9_ = meta_display_get_focus_window (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp1_ = _tmp10_ == NULL;
	}
	if (_tmp1_) {
		return;
	}
	_tmp11_ = self->priv->overridden_window_group;
	_tmp12_ = display;
	_tmp13_ = meta_display_get_focus_window (_tmp12_);
	_tmp14_ = _tmp13_;
	if (gee_map_has_key (_tmp11_, _tmp14_)) {
		GalaWindowGroup overridden_group = 0;
		GeeMap* _tmp15_;
		MetaDisplay* _tmp16_;
		MetaWindow* _tmp17_;
		MetaWindow* _tmp18_;
		gpointer _tmp19_;
		GeeLinkedList* _tmp20_;
		gpointer _tmp21_;
		GalaModalProxy* _tmp22_;
		gboolean _tmp23_;
		_tmp15_ = self->priv->overridden_window_group;
		_tmp16_ = display;
		_tmp17_ = meta_display_get_focus_window (_tmp16_);
		_tmp18_ = _tmp17_;
		_tmp19_ = gee_map_get (_tmp15_, _tmp18_);
		overridden_group = (GalaWindowGroup) ((gintptr) _tmp19_);
		_tmp20_ = self->priv->modal_stack;
		_tmp21_ = gee_deque_peek_head ((GeeDeque*) _tmp20_);
		_tmp22_ = (GalaModalProxy*) _tmp21_;
		_tmp23_ = gala_modal_proxy_is_window_group_allowed (_tmp22_, overridden_group);
		_g_object_unref0 (_tmp22_);
		if (_tmp23_) {
			return;
		}
	}
	_tmp24_ = display;
	_tmp25_ = display;
	meta_display_unset_input_focus (_tmp24_, meta_display_get_current_time (_tmp25_));
}

static Block8Data*
block8_data_ref (Block8Data* _data8_)
{
	g_atomic_int_inc (&_data8_->_ref_count_);
	return _data8_;
}

static void
block8_data_unref (void * _userdata_)
{
	Block8Data* _data8_;
	_data8_ = (Block8Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data8_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data8_->self;
		_g_object_unref0 (self);
		g_slice_free (Block8Data, _data8_);
	}
}

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

static void
___lambda160__meta_window_unmanaged (MetaWindow* _sender,
                                     gpointer self)
{
	__lambda160_ (self);
}

static void
gala_window_manager_gala_dim_parent_window (GalaWindowManagerGala* self,
                                            MetaWindow* window)
{
	Block8Data* _data8_;
	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);
	_data8_ = g_slice_new0 (Block8Data);
	_data8_->_ref_count_ = 1;
	_data8_->self = g_object_ref (self);
	_tmp0_ = meta_window_get_window_type (window);
	_tmp1_ = _tmp0_;
	if (_tmp1_ != META_WINDOW_MODAL_DIALOG) {
		block8_data_unref (_data8_);
		_data8_ = 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:592: No transient found");
		block8_data_unref (_data8_);
		_data8_ = NULL;
		return;
	}
	_tmp6_ = transient;
	_tmp7_ = meta_window_get_compositor_private (_tmp6_);
	_data8_->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_ = _data8_->transient_actor;
	_tmp11_ = dark_effect;
	clutter_actor_add_effect_with_name ((ClutterActor*) _tmp10_, "dim-parent", (ClutterEffect*) _tmp11_);
	g_signal_connect_data (window, "unmanaged", (GCallback) ___lambda160__meta_window_unmanaged, block8_data_ref (_data8_), (GClosureNotify) block8_data_unref, 0);
	_g_object_unref0 (dark_effect);
	block8_data_unref (_data8_);
	_data8_ = 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:
		{
			GalaLayoutManager* _tmp3_;
			GalaMultitaskingView* _tmp4_;
			GalaMultitaskingView* _tmp5_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_MULTITASKING_VIEW)) {
				break;
			}
			_tmp3_ = self->priv->layout_manager;
			_tmp4_ = gala_layout_manager_get_multitasking_view (_tmp3_);
			_tmp5_ = _tmp4_;
			gala_multitasking_view_toggle (_tmp5_);
			break;
		}
		case GALA_ACTION_TYPE_MAXIMIZE_CURRENT:
		{
			gboolean _tmp6_ = FALSE;
			gboolean _tmp7_ = FALSE;
			MetaWindow* _tmp8_;
			MetaWindow* _tmp13_;
			_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;
			if (meta_window_is_maximized (_tmp13_)) {
				MetaWindow* _tmp14_;
				_tmp14_ = current;
				meta_window_unmaximize (_tmp14_);
			} else {
				MetaWindow* _tmp15_;
				_tmp15_ = current;
				meta_window_maximize (_tmp15_);
			}
			break;
		}
		case GALA_ACTION_TYPE_HIDE_CURRENT:
		{
			gboolean _tmp16_ = FALSE;
			MetaWindow* _tmp17_;
			_tmp17_ = current;
			if (_tmp17_ != NULL) {
				MetaWindow* _tmp18_;
				MetaWindowType _tmp19_;
				MetaWindowType _tmp20_;
				_tmp18_ = current;
				_tmp19_ = meta_window_get_window_type (_tmp18_);
				_tmp20_ = _tmp19_;
				_tmp16_ = _tmp20_ == META_WINDOW_NORMAL;
			} else {
				_tmp16_ = FALSE;
			}
			if (_tmp16_) {
				MetaWindow* _tmp21_;
				_tmp21_ = current;
				meta_window_minimize (_tmp21_);
			}
			break;
		}
		case GALA_ACTION_TYPE_START_MOVE_CURRENT:
		{
			g_warning ("WindowManager.vala:646: Action START_MOVE_CURRENT is deprecated");
			break;
		}
		case GALA_ACTION_TYPE_START_RESIZE_CURRENT:
		{
			g_warning ("WindowManager.vala:649: Action START_RESIZE_CURRENT is deprecated");
			break;
		}
		case GALA_ACTION_TYPE_TOGGLE_ALWAYS_ON_TOP_CURRENT:
		{
			MetaWindow* _tmp22_;
			MetaWindow* _tmp23_;
			_tmp22_ = current;
			if (_tmp22_ == NULL) {
				break;
			}
			_tmp23_ = current;
			if (meta_window_is_above (_tmp23_)) {
				MetaWindow* _tmp24_;
				_tmp24_ = current;
				meta_window_unmake_above (_tmp24_);
			} else {
				MetaWindow* _tmp25_;
				_tmp25_ = current;
				meta_window_make_above (_tmp25_);
			}
			break;
		}
		case GALA_ACTION_TYPE_TOGGLE_ALWAYS_ON_VISIBLE_WORKSPACE_CURRENT:
		{
			MetaWindow* _tmp26_;
			MetaWindow* _tmp27_;
			gboolean _tmp28_;
			gboolean _tmp29_;
			_tmp26_ = current;
			if (_tmp26_ == NULL) {
				break;
			}
			_tmp27_ = current;
			g_object_get (_tmp27_, "on-all-workspaces", &_tmp28_, NULL);
			_tmp29_ = _tmp28_;
			if (_tmp29_) {
				MetaWindow* _tmp30_;
				_tmp30_ = current;
				meta_window_unstick (_tmp30_);
			} else {
				MetaWindow* _tmp31_;
				_tmp31_ = current;
				meta_window_stick (_tmp31_);
			}
			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* _tmp32_;
			MetaWorkspaceManager* _tmp33_;
			MetaWorkspace* active_workspace = NULL;
			MetaWorkspaceManager* _tmp34_;
			MetaWorkspace* _tmp35_;
			MetaWorkspace* target_workspace = NULL;
			MetaWorkspace* _tmp36_;
			MetaWorkspace* _tmp37_;
			MetaWindow* _tmp38_;
			MetaWorkspace* _tmp39_;
			_tmp32_ = meta_plugin_get_display ((MetaPlugin*) self);
			_tmp33_ = meta_display_get_workspace_manager (_tmp32_);
			workspace_manager = _tmp33_;
			_tmp34_ = workspace_manager;
			_tmp35_ = meta_workspace_manager_get_active_workspace (_tmp34_);
			active_workspace = _tmp35_;
			_tmp36_ = active_workspace;
			_tmp37_ = meta_workspace_get_neighbor (_tmp36_, META_MOTION_LEFT);
			target_workspace = _tmp37_;
			_tmp38_ = current;
			_tmp39_ = target_workspace;
			gala_window_manager_move_window ((GalaWindowManager*) self, _tmp38_, _tmp39_, (guint32) META_CURRENT_TIME);
			break;
		}
		case GALA_ACTION_TYPE_MOVE_CURRENT_WORKSPACE_RIGHT:
		{
			MetaWorkspaceManager* workspace_manager = NULL;
			MetaDisplay* _tmp40_;
			MetaWorkspaceManager* _tmp41_;
			MetaWorkspace* active_workspace = NULL;
			MetaWorkspaceManager* _tmp42_;
			MetaWorkspace* _tmp43_;
			MetaWorkspace* target_workspace = NULL;
			MetaWorkspace* _tmp44_;
			MetaWorkspace* _tmp45_;
			MetaWindow* _tmp46_;
			MetaWorkspace* _tmp47_;
			_tmp40_ = meta_plugin_get_display ((MetaPlugin*) self);
			_tmp41_ = meta_display_get_workspace_manager (_tmp40_);
			workspace_manager = _tmp41_;
			_tmp42_ = workspace_manager;
			_tmp43_ = meta_workspace_manager_get_active_workspace (_tmp42_);
			active_workspace = _tmp43_;
			_tmp44_ = active_workspace;
			_tmp45_ = meta_workspace_get_neighbor (_tmp44_, META_MOTION_RIGHT);
			target_workspace = _tmp45_;
			_tmp46_ = current;
			_tmp47_ = target_workspace;
			gala_window_manager_move_window ((GalaWindowManager*) self, _tmp46_, _tmp47_, (guint32) META_CURRENT_TIME);
			break;
		}
		case GALA_ACTION_TYPE_CLOSE_CURRENT:
		{
			gboolean _tmp48_ = FALSE;
			MetaWindow* _tmp49_;
			_tmp49_ = current;
			if (_tmp49_ != NULL) {
				MetaWindow* _tmp50_;
				_tmp50_ = current;
				_tmp48_ = meta_window_can_close (_tmp50_);
			} else {
				_tmp48_ = FALSE;
			}
			if (_tmp48_) {
				MetaWindow* _tmp51_;
				_tmp51_ = current;
				meta_window_delete (_tmp51_, (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:
		{
			GalaLayoutManager* _tmp52_;
			GalaWindowOverview* _tmp53_;
			GalaWindowOverview* _tmp54_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_WINDOW_OVERVIEW)) {
				break;
			}
			_tmp52_ = self->priv->layout_manager;
			_tmp53_ = gala_layout_manager_get_window_overview (_tmp52_);
			_tmp54_ = _tmp53_;
			gala_window_overview_toggle (_tmp54_);
			g_critical ("WindowManager.vala:708: Window overview is deprecated");
			break;
		}
		case GALA_ACTION_TYPE_WINDOW_OVERVIEW_ALL:
		{
			GalaLayoutManager* _tmp55_;
			GalaWindowOverview* _tmp56_;
			GalaWindowOverview* _tmp57_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_WINDOW_OVERVIEW)) {
				break;
			}
			_tmp55_ = self->priv->layout_manager;
			_tmp56_ = gala_layout_manager_get_window_overview (_tmp55_);
			_tmp57_ = _tmp56_;
			gala_window_overview_toggle (_tmp57_);
			break;
		}
		case GALA_ACTION_TYPE_SWITCH_TO_WORKSPACE_LAST:
		{
			MetaWorkspaceManager* manager = NULL;
			MetaDisplay* _tmp58_;
			MetaWorkspaceManager* _tmp59_;
			MetaWorkspace* workspace = NULL;
			MetaWorkspaceManager* _tmp60_;
			MetaWorkspaceManager* _tmp61_;
			MetaWorkspace* _tmp62_;
			MetaWorkspace* _tmp63_;
			MetaDisplay* _tmp64_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SWITCH_WORKSPACE)) {
				break;
			}
			_tmp58_ = display;
			_tmp59_ = meta_display_get_workspace_manager (_tmp58_);
			manager = _tmp59_;
			_tmp60_ = manager;
			_tmp61_ = manager;
			_tmp62_ = meta_workspace_manager_get_workspace_by_index (_tmp60_, meta_workspace_manager_get_n_workspaces (_tmp61_) - 1);
			workspace = _tmp62_;
			_tmp63_ = workspace;
			_tmp64_ = display;
			meta_workspace_activate (_tmp63_, meta_display_get_current_time (_tmp64_));
			break;
		}
		case GALA_ACTION_TYPE_SCREENSHOT_CURRENT:
		{
			GalaScreenshotManager* _tmp65_;
			if (gala_window_manager_filter_action ((GalaWindowManager*) self, GALA_MODAL_ACTIONS_SCREENSHOT_WINDOW)) {
				break;
			}
			_tmp65_ = self->priv->screenshot_manager;
			gala_screenshot_manager_handle_screenshot_current_window_shortcut (_tmp65_, FALSE, NULL, NULL);
			break;
		}
		default:
		{
			g_warning ("WindowManager.vala:734: 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;
	GalaWindowMenuManager* _tmp1_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (window != NULL);
	if (menu != META_WINDOW_MENU_WM) {
		g_warning ("WindowManager.vala:741: 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;
	}
	_tmp1_ = self->priv->window_menu_manager;
	gala_window_menu_manager_show_window_menu (_tmp1_, window, x, y);
}

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_;
		CoglColor _tmp2_ = {0};
		CoglColor _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);
}

/**
         * Tells the wm to place the {@link window} in the given {@link new_group} instead of the default
         * window group as determined by the wm.
         * The wm will also automatically place transient windows of {@link window} in the same group.
         */
static Block9Data*
block9_data_ref (Block9Data* _data9_)
{
	g_atomic_int_inc (&_data9_->_ref_count_);
	return _data9_;
}

static void
block9_data_unref (void * _userdata_)
{
	Block9Data* _data9_;
	_data9_ = (Block9Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data9_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data9_->self;
		_g_object_unref0 (self);
		g_slice_free (Block9Data, _data9_);
	}
}

static void
__lambda27_ (GalaWindowManagerGala* self,
             MetaWindow* _window)
{
	GeeMap* _tmp0_;
	g_return_if_fail (_window != NULL);
	_tmp0_ = self->priv->overridden_window_group;
	gee_map_unset (_tmp0_, _window, NULL);
}

static void
___lambda27__meta_window_unmanaged (MetaWindow* _sender,
                                    gpointer self)
{
	__lambda27_ ((GalaWindowManagerGala*) self, _sender);
}

static void
__lambda28_ (Block9Data* _data9_,
             MetaWindowActor* actor)
{
	GalaWindowManagerGala* self;
	GalaLayoutManager* _tmp0_;
	self = _data9_->self;
	g_return_if_fail (actor != NULL);
	_tmp0_ = self->priv->layout_manager;
	gala_layout_manager_change_window_group (_tmp0_, actor, _data9_->new_group);
	clutter_actor_set_scale ((ClutterActor*) actor, 1.0, 1.0);
	clutter_actor_set_opacity ((ClutterActor*) actor, (guint) 255);
}

static void
___lambda28__gala_internal_utils_window_actor_ready_callback (MetaWindowActor* window_actor,
                                                              gpointer self)
{
	__lambda28_ (self, window_actor);
}

void
gala_window_manager_gala_override_window_group (GalaWindowManagerGala* self,
                                                MetaWindow* window,
                                                GalaWindowGroup new_group)
{
	Block9Data* _data9_;
	GeeMap* _tmp0_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (window != NULL);
	_data9_ = g_slice_new0 (Block9Data);
	_data9_->_ref_count_ = 1;
	_data9_->self = g_object_ref (self);
	_data9_->new_group = new_group;
	_tmp0_ = self->priv->overridden_window_group;
	gee_map_set (_tmp0_, window, (gpointer) ((gintptr) _data9_->new_group));
	g_signal_connect_object (window, "unmanaged", (GCallback) ___lambda27__meta_window_unmanaged, self, 0);
	gala_internal_utils_wait_for_window_actor_visible (window, ___lambda28__gala_internal_utils_window_actor_ready_callback, block9_data_ref (_data9_), block9_data_unref);
	block9_data_unref (_data9_);
	_data9_ = NULL;
}

static Block10Data*
block10_data_ref (Block10Data* _data10_)
{
	g_atomic_int_inc (&_data10_->_ref_count_);
	return _data10_;
}

static void
block10_data_unref (void * _userdata_)
{
	Block10Data* _data10_;
	_data10_ = (Block10Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data10_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data10_->self;
		_g_object_unref0 (self);
		g_slice_free (Block10Data, _data10_);
	}
}

static gboolean
__lambda133_ (Block10Data* _data10_,
              MetaWindow* ancestor)
{
	GalaWindowManagerGala* self;
	GeeMap* _tmp0_;
	gboolean result;
	self = _data10_->self;
	g_return_val_if_fail (ancestor != NULL, FALSE);
	_tmp0_ = self->priv->overridden_window_group;
	if (gee_map_has_key (_tmp0_, ancestor)) {
		MetaWindow* _tmp1_;
		GeeMap* _tmp2_;
		gpointer _tmp3_;
		_tmp1_ = _data10_->window;
		_tmp2_ = self->priv->overridden_window_group;
		_tmp3_ = gee_map_get (_tmp2_, ancestor);
		gala_window_manager_gala_override_window_group (self, _tmp1_, (GalaWindowGroup) ((gintptr) _tmp3_));
		result = FALSE;
		return result;
	}
	result = TRUE;
	return result;
}

static gboolean
___lambda133__meta_window_foreach_func (MetaWindow* window,
                                        gpointer self)
{
	gboolean result;
	result = __lambda133_ (self, window);
	return result;
}

static void
gala_window_manager_gala_check_window_group (GalaWindowManagerGala* self,
                                             MetaWindowActor* actor)
{
	Block10Data* _data10_;
	MetaWindow* _tmp0_;
	GeeMap* _tmp1_;
	MetaWindow* _tmp2_;
	MetaWindow* _tmp3_;
	GeeMap* _tmp4_;
	MetaWindow* _tmp5_;
	MetaWindow* _tmp7_;
	gboolean _tmp10_ = FALSE;
	gboolean _tmp11_ = FALSE;
	gboolean _tmp12_ = FALSE;
	MetaWindow* _tmp13_;
	MetaWindowType _tmp14_;
	MetaWindowType _tmp15_;
	gboolean _tmp26_ = FALSE;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data10_ = g_slice_new0 (Block10Data);
	_data10_->_ref_count_ = 1;
	_data10_->self = g_object_ref (self);
	_tmp0_ = meta_window_actor_get_meta_window (actor);
	_data10_->window = _tmp0_;
	_tmp1_ = self->priv->overridden_window_group;
	_tmp2_ = _data10_->window;
	if (gee_map_has_key (_tmp1_, _tmp2_)) {
		block10_data_unref (_data10_);
		_data10_ = NULL;
		return;
	}
	_tmp3_ = _data10_->window;
	meta_window_foreach_ancestor (_tmp3_, ___lambda133__meta_window_foreach_func, _data10_);
	_tmp4_ = self->priv->overridden_window_group;
	_tmp5_ = _data10_->window;
	if (gee_map_has_key (_tmp4_, _tmp5_)) {
		block10_data_unref (_data10_);
		_data10_ = NULL;
		return;
	}
	if (gala_session_settings_is_greeter ()) {
		MetaWindow* _tmp6_;
		_tmp6_ = _data10_->window;
		gala_window_manager_gala_override_window_group (self, _tmp6_, GALA_WINDOW_GROUP_LOCK_SCREEN);
		block10_data_unref (_data10_);
		_data10_ = NULL;
		return;
	}
	_tmp7_ = _data10_->window;
	if (gala_notification_stack_is_notification (_tmp7_)) {
		MetaWindow* _tmp8_;
		GalaNotificationStack* _tmp9_;
		_tmp8_ = _data10_->window;
		gala_window_manager_gala_override_window_group (self, _tmp8_, GALA_WINDOW_GROUP_DESKTOP_SHELL);
		_tmp9_ = self->priv->notification_stack;
		gala_notification_stack_show_notification (_tmp9_, actor);
	}
	_tmp13_ = _data10_->window;
	_tmp14_ = meta_window_get_window_type (_tmp13_);
	_tmp15_ = _tmp14_;
	if (_tmp15_ == META_WINDOW_MENU) {
		_tmp12_ = TRUE;
	} else {
		MetaWindow* _tmp16_;
		MetaWindowType _tmp17_;
		MetaWindowType _tmp18_;
		_tmp16_ = _data10_->window;
		_tmp17_ = meta_window_get_window_type (_tmp16_);
		_tmp18_ = _tmp17_;
		_tmp12_ = _tmp18_ == META_WINDOW_DROPDOWN_MENU;
	}
	if (_tmp12_) {
		_tmp11_ = TRUE;
	} else {
		MetaWindow* _tmp19_;
		MetaWindowType _tmp20_;
		MetaWindowType _tmp21_;
		_tmp19_ = _data10_->window;
		_tmp20_ = meta_window_get_window_type (_tmp19_);
		_tmp21_ = _tmp20_;
		_tmp11_ = _tmp21_ == META_WINDOW_POPUP_MENU;
	}
	if (_tmp11_) {
		_tmp10_ = TRUE;
	} else {
		MetaWindow* _tmp22_;
		MetaWindowType _tmp23_;
		MetaWindowType _tmp24_;
		_tmp22_ = _data10_->window;
		_tmp23_ = meta_window_get_window_type (_tmp22_);
		_tmp24_ = _tmp23_;
		_tmp10_ = _tmp24_ == META_WINDOW_TOOLTIP;
	}
	if (_tmp10_) {
		GalaLayoutManager* _tmp25_;
		_tmp25_ = self->priv->layout_manager;
		gala_layout_manager_change_window_group (_tmp25_, actor, GALA_WINDOW_GROUP_MENU);
	}
	if (!meta_util_is_wayland_compositor ()) {
		MetaWindow* _tmp27_;
		MetaWindowType _tmp28_;
		MetaWindowType _tmp29_;
		_tmp27_ = _data10_->window;
		_tmp28_ = meta_window_get_window_type (_tmp27_);
		_tmp29_ = _tmp28_;
		_tmp26_ = _tmp29_ == META_WINDOW_DND;
	} else {
		_tmp26_ = FALSE;
	}
	if (_tmp26_) {
		MetaDisplay* _tmp30_;
		MetaCompositor* _tmp31_;
		ClutterActor* _tmp32_;
		_tmp30_ = meta_plugin_get_display ((MetaPlugin*) self);
		_tmp31_ = meta_display_get_compositor (_tmp30_);
		_tmp32_ = meta_compositor_get_feedback_group (_tmp31_);
		gala_internal_utils_clutter_actor_reparent ((ClutterActor*) actor, _tmp32_);
	}
	block10_data_unref (_data10_);
	_data10_ = NULL;
}

static void
gala_window_manager_gala_real_size_change (MetaPlugin* base,
                                           MetaWindowActor* actor,
                                           MetaSizeChange which_change,
                                           MtkRectangle* old_frame_rect,
                                           MtkRectangle* old_buffer_rect)
{
	GalaWindowManagerGala * self;
	gboolean _tmp0_ = FALSE;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	MetaWindowType _tmp3_;
	MetaWindowType _tmp4_;
	ClutterActor* snapshot = NULL;
	MtkRectangle _tmp5_;
	ClutterActor* _tmp6_;
	ClutterActor* _tmp7_;
	GalaWindowManagerGalaSizeChangeInfo* info = NULL;
	MtkRectangle _tmp8_;
	ClutterActor* _tmp9_;
	GalaWindowManagerGalaSizeChangeInfo* _tmp10_;
	GeeHashMap* _tmp11_;
	GalaWindowManagerGalaSizeChangeInfo* _tmp12_;
	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);
	_tmp1_ = meta_window_actor_get_meta_window (actor);
	_tmp2_ = _tmp1_;
	_tmp3_ = meta_window_get_window_type (_tmp2_);
	_tmp4_ = _tmp3_;
	if (_tmp4_ != META_WINDOW_NORMAL) {
		_tmp0_ = TRUE;
	} else {
		_tmp0_ = !meta_prefs_get_gnome_animations ();
	}
	if (_tmp0_) {
		meta_plugin_size_change_completed ((MetaPlugin*) self, actor);
		return;
	}
	_tmp5_ = *old_frame_rect;
	_tmp6_ = gala_utils_get_window_actor_snapshot (actor, &_tmp5_);
	snapshot = _tmp6_;
	_tmp7_ = snapshot;
	if (_tmp7_ == NULL) {
		meta_plugin_size_change_completed ((MetaPlugin*) self, actor);
		_g_object_unref0 (snapshot);
		return;
	}
	_tmp8_ = *old_frame_rect;
	_tmp9_ = snapshot;
	_tmp10_ = gala_window_manager_gala_size_change_info_new (which_change, &_tmp8_, _tmp9_);
	info = _tmp10_;
	_tmp11_ = self->priv->pending_size_change;
	_tmp12_ = info;
	gee_abstract_map_set ((GeeAbstractMap*) _tmp11_, actor, _tmp12_);
	_gala_window_manager_gala_size_change_info_unref0 (info);
	_g_object_unref0 (snapshot);
}

static void
gala_window_manager_gala_real_size_changed (MetaPlugin* base,
                                            MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	GalaWindowManagerGalaSizeChangeInfo* info = NULL;
	GeeHashMap* _tmp0_;
	gpointer _tmp1_ = NULL;
	gboolean _tmp2_;
	MetaWindow* window = NULL;
	MetaWindow* _tmp3_;
	MtkRectangle new_rect = {0};
	MetaWindow* _tmp4_;
	MtkRectangle _tmp5_ = {0};
	MtkRectangle old_rect = {0};
	GalaWindowManagerGalaSizeChangeInfo* _tmp6_;
	MtkRectangle _tmp7_;
	GalaWindowManagerGalaSizeChangeInfo* _tmp8_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_tmp0_ = self->priv->pending_size_change;
	_tmp2_ = gee_abstract_map_unset ((GeeAbstractMap*) _tmp0_, actor, &_tmp1_);
	_gala_window_manager_gala_size_change_info_unref0 (info);
	info = (GalaWindowManagerGalaSizeChangeInfo*) _tmp1_;
	if (!_tmp2_) {
		_gala_window_manager_gala_size_change_info_unref0 (info);
		return;
	}
	_tmp3_ = meta_window_actor_get_meta_window (actor);
	window = _tmp3_;
	_tmp4_ = window;
	meta_window_get_frame_rect (_tmp4_, &_tmp5_);
	new_rect = _tmp5_;
	_tmp6_ = info;
	_tmp7_ = _tmp6_->old_rect;
	old_rect = _tmp7_;
	_tmp8_ = info;
	switch (_tmp8_->change) {
		case META_SIZE_CHANGE_MAXIMIZE:
		case META_SIZE_CHANGE_FULLSCREEN:
		{
			gboolean _tmp9_ = FALSE;
			MetaWindow* _tmp10_;
			MetaWindow* _tmp11_;
			MtkRectangle _tmp22_;
			MtkRectangle _tmp23_;
			GalaWindowManagerGalaSizeChangeInfo* _tmp24_;
			ClutterActor* _tmp25_;
			_tmp10_ = window;
			_tmp11_ = meta_window_get_tile_match (_tmp10_);
			if (_tmp11_ != NULL) {
				MetaWindow* _tmp12_;
				gboolean _tmp13_;
				gboolean _tmp14_;
				_tmp12_ = window;
				g_object_get (_tmp12_, "maximized-horizontally", &_tmp13_, NULL);
				_tmp14_ = _tmp13_;
				_tmp9_ = !_tmp14_;
			} else {
				_tmp9_ = FALSE;
			}
			if (_tmp9_) {
				gint old_end = 0;
				MtkRectangle _tmp15_;
				MtkRectangle _tmp16_;
				gint new_end = 0;
				MtkRectangle _tmp17_;
				MtkRectangle _tmp18_;
				gboolean _tmp19_ = FALSE;
				MtkRectangle _tmp20_;
				MtkRectangle _tmp21_;
				_tmp15_ = old_rect;
				_tmp16_ = old_rect;
				old_end = _tmp15_.x + _tmp16_.width;
				_tmp17_ = new_rect;
				_tmp18_ = new_rect;
				new_end = _tmp17_.x + _tmp18_.width;
				_tmp20_ = old_rect;
				_tmp21_ = new_rect;
				if (_tmp20_.x == _tmp21_.x) {
					_tmp19_ = TRUE;
				} else {
					_tmp19_ = old_end == new_end;
				}
				if (_tmp19_) {
					break;
				}
			}
			_tmp22_ = old_rect;
			_tmp23_ = new_rect;
			_tmp24_ = info;
			_tmp25_ = _tmp24_->snapshot;
			gala_window_manager_gala_animate_size_change (self, actor, &_tmp22_, &_tmp23_, _tmp25_, NULL, NULL);
			break;
		}
		case META_SIZE_CHANGE_UNMAXIMIZE:
		case META_SIZE_CHANGE_UNFULLSCREEN:
		{
			MtkRectangle _tmp26_;
			MtkRectangle _tmp27_;
			GalaWindowManagerGalaSizeChangeInfo* _tmp28_;
			ClutterActor* _tmp29_;
			_tmp26_ = old_rect;
			_tmp27_ = new_rect;
			_tmp28_ = info;
			_tmp29_ = _tmp28_->snapshot;
			gala_window_manager_gala_animate_size_change (self, actor, &_tmp26_, &_tmp27_, _tmp29_, NULL, NULL);
			break;
		}
		default:
		{
			break;
		}
	}
	meta_plugin_size_change_completed ((MetaPlugin*) self, actor);
	_gala_window_manager_gala_size_change_info_unref0 (info);
}

static void
gala_window_manager_gala_animate_size_change_data_free (gpointer _data)
{
	GalaWindowManagerGalaAnimateSizeChangeData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->actor);
	_g_object_unref0 (_data_->snapshot);
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaAnimateSizeChangeData, _data_);
}

static void
gala_window_manager_gala_animate_size_change (GalaWindowManagerGala* self,
                                              MetaWindowActor* actor,
                                              MtkRectangle* old_rect,
                                              MtkRectangle* new_rect,
                                              ClutterActor* snapshot,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateSizeChangeData* _data_;
	GalaWindowManagerGala* _tmp0_;
	MetaWindowActor* _tmp1_;
	MtkRectangle _tmp2_;
	MtkRectangle _tmp3_;
	ClutterActor* _tmp4_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	g_return_if_fail (old_rect != NULL);
	g_return_if_fail (new_rect != NULL);
	g_return_if_fail (snapshot != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaAnimateSizeChangeData);
	_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_animate_size_change_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data_->actor);
	_data_->actor = _tmp1_;
	_tmp2_ = *old_rect;
	_data_->old_rect = _tmp2_;
	_tmp3_ = *new_rect;
	_data_->new_rect = _tmp3_;
	_tmp4_ = _g_object_ref0 (snapshot);
	_g_object_unref0 (_data_->snapshot);
	_data_->snapshot = _tmp4_;
	gala_window_manager_gala_animate_size_change_co (_data_);
}

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

static void
gala_window_manager_gala_animate_size_change_ready (GObject* source_object,
                                                    GAsyncResult* _res_,
                                                    gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateSizeChangeData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_animate_size_change_co (_data_);
}

static gboolean
gala_window_manager_gala_animate_size_change_co (GalaWindowManagerGalaAnimateSizeChangeData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) _data_->self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) _data_->self, _data_->actor);
	_data_->_tmp0_ = _data_->self->priv->changing_size;
	gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp0_, _data_->actor);
	_data_->_tmp1_ = _data_->old_rect;
	_data_->_tmp2_ = _data_->old_rect;
	clutter_actor_set_position (_data_->snapshot, (gfloat) _data_->_tmp1_.x, (gfloat) _data_->_tmp2_.y);
	_data_->_tmp3_ = gala_window_manager_get_ui_group ((GalaWindowManager*) _data_->self);
	_data_->_tmp4_ = _data_->_tmp3_;
	clutter_actor_add_child (_data_->_tmp4_, _data_->snapshot);
	_data_->_tmp5_ = _data_->new_rect;
	_data_->_tmp6_ = _data_->old_rect;
	_data_->snapshot_scale_x = ((gdouble) _data_->_tmp5_.width) / _data_->_tmp6_.width;
	_data_->_tmp7_ = _data_->new_rect;
	_data_->_tmp8_ = _data_->old_rect;
	_data_->snapshot_scale_y = ((gdouble) _data_->_tmp7_.height) / _data_->_tmp8_.height;
	clutter_actor_save_easing_state (_data_->snapshot);
	clutter_actor_set_easing_mode (_data_->snapshot, CLUTTER_EASE_IN_OUT_QUAD);
	clutter_actor_set_easing_duration (_data_->snapshot, (guint) GALA_ANIMATION_DURATION_SNAP);
	_data_->_tmp9_ = _data_->new_rect;
	_data_->_tmp10_ = _data_->new_rect;
	clutter_actor_set_position (_data_->snapshot, (gfloat) _data_->_tmp9_.x, (gfloat) _data_->_tmp10_.y);
	clutter_actor_set_scale (_data_->snapshot, _data_->snapshot_scale_x, _data_->snapshot_scale_y);
	clutter_actor_set_opacity (_data_->snapshot, 0U);
	clutter_actor_restore_easing_state (_data_->snapshot);
	_data_->_tmp11_ = _data_->old_rect;
	_data_->_tmp12_ = _data_->new_rect;
	_data_->actor_scale_x = ((gdouble) _data_->_tmp11_.width) / _data_->_tmp12_.width;
	_data_->_tmp13_ = _data_->old_rect;
	_data_->_tmp14_ = _data_->new_rect;
	_data_->actor_scale_y = ((gdouble) _data_->_tmp13_.height) / _data_->_tmp14_.height;
	_data_->_tmp15_ = meta_window_actor_get_meta_window (_data_->actor);
	_data_->_tmp16_ = _data_->_tmp15_;
	memset (&_data_->_tmp17_, 0, sizeof (MtkRectangle));
	meta_window_get_buffer_rect (_data_->_tmp16_, &_data_->_tmp17_);
	_data_->new_buffer_rect = _data_->_tmp17_;
	_data_->_tmp18_ = _data_->new_buffer_rect;
	_data_->_tmp19_ = _data_->new_rect;
	_data_->_tmp20_ = _data_->new_buffer_rect;
	_data_->scaled_frame_rect_x = _data_->_tmp18_.x + ((_data_->_tmp19_.x - _data_->_tmp20_.x) * _data_->actor_scale_x);
	_data_->_tmp21_ = _data_->new_buffer_rect;
	_data_->_tmp22_ = _data_->new_rect;
	_data_->_tmp23_ = _data_->new_buffer_rect;
	_data_->scaled_frame_rect_y = _data_->_tmp21_.y + ((_data_->_tmp22_.y - _data_->_tmp23_.y) * _data_->actor_scale_y);
	_data_->_tmp24_ = _data_->old_rect;
	_data_->translation_x = (gfloat) (_data_->_tmp24_.x - _data_->scaled_frame_rect_x);
	_data_->_tmp25_ = _data_->old_rect;
	_data_->translation_y = (gfloat) (_data_->_tmp25_.y - _data_->scaled_frame_rect_y);
	clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, 0.0f, 0.0f);
	_data_->_tmp26_ = gala_transition_builder_new ((ClutterActor*) _data_->actor, (guint) GALA_ANIMATION_DURATION_SNAP, CLUTTER_EASE_IN_OUT_QUAD);
	_data_->actor_transition_builder = _data_->_tmp26_;
	memset (&_data_->_tmp27_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp27_, G_TYPE_DOUBLE);
	g_value_set_double (&_data_->_tmp27_, _data_->actor_scale_x);
	memset (&_data_->_tmp28_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp28_, G_TYPE_DOUBLE);
	g_value_set_double (&_data_->_tmp28_, 1.0);
	gala_transition_builder_add_property_with_from (_data_->actor_transition_builder, "scale-x", &_data_->_tmp27_, &_data_->_tmp28_);
	G_IS_VALUE (&_data_->_tmp28_) ? (g_value_unset (&_data_->_tmp28_), NULL) : NULL;
	G_IS_VALUE (&_data_->_tmp27_) ? (g_value_unset (&_data_->_tmp27_), NULL) : NULL;
	memset (&_data_->_tmp29_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp29_, G_TYPE_DOUBLE);
	g_value_set_double (&_data_->_tmp29_, _data_->actor_scale_y);
	memset (&_data_->_tmp30_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp30_, G_TYPE_DOUBLE);
	g_value_set_double (&_data_->_tmp30_, 1.0);
	gala_transition_builder_add_property_with_from (_data_->actor_transition_builder, "scale-y", &_data_->_tmp29_, &_data_->_tmp30_);
	G_IS_VALUE (&_data_->_tmp30_) ? (g_value_unset (&_data_->_tmp30_), NULL) : NULL;
	G_IS_VALUE (&_data_->_tmp29_) ? (g_value_unset (&_data_->_tmp29_), NULL) : NULL;
	memset (&_data_->_tmp31_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp31_, G_TYPE_FLOAT);
	g_value_set_float (&_data_->_tmp31_, _data_->translation_x);
	memset (&_data_->_tmp32_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp32_, G_TYPE_FLOAT);
	g_value_set_float (&_data_->_tmp32_, 0.0f);
	gala_transition_builder_add_property_with_from (_data_->actor_transition_builder, "translation-x", &_data_->_tmp31_, &_data_->_tmp32_);
	G_IS_VALUE (&_data_->_tmp32_) ? (g_value_unset (&_data_->_tmp32_), NULL) : NULL;
	G_IS_VALUE (&_data_->_tmp31_) ? (g_value_unset (&_data_->_tmp31_), NULL) : NULL;
	memset (&_data_->_tmp33_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp33_, G_TYPE_FLOAT);
	g_value_set_float (&_data_->_tmp33_, _data_->translation_y);
	memset (&_data_->_tmp34_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp34_, G_TYPE_FLOAT);
	g_value_set_float (&_data_->_tmp34_, 0.0f);
	gala_transition_builder_add_property_with_from (_data_->actor_transition_builder, "translation-y", &_data_->_tmp33_, &_data_->_tmp34_);
	G_IS_VALUE (&_data_->_tmp34_) ? (g_value_unset (&_data_->_tmp34_), NULL) : NULL;
	G_IS_VALUE (&_data_->_tmp33_) ? (g_value_unset (&_data_->_tmp33_), NULL) : NULL;
	_data_->_state_ = 1;
	gala_transition_builder_run (_data_->actor_transition_builder, gala_window_manager_gala_animate_size_change_ready, _data_);
	return FALSE;
	_state_1:
	gala_transition_builder_run_finish (_data_->actor_transition_builder, _data_->_res_);
	_data_->_tmp35_ = gala_window_manager_get_ui_group ((GalaWindowManager*) _data_->self);
	_data_->_tmp36_ = _data_->_tmp35_;
	clutter_actor_remove_child (_data_->_tmp36_, _data_->snapshot);
	_data_->_tmp37_ = _data_->self->priv->changing_size;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _data_->_tmp37_, _data_->actor);
	_g_object_unref0 (_data_->actor_transition_builder);
	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 void
gala_window_manager_gala_real_minimize (MetaPlugin* base,
                                        MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	gala_window_manager_gala_animate_minimize (self, actor, NULL, NULL);
}

static void
gala_window_manager_gala_animate_minimize_data_free (gpointer _data)
{
	GalaWindowManagerGalaAnimateMinimizeData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->actor);
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaAnimateMinimizeData, _data_);
}

static void
gala_window_manager_gala_animate_minimize (GalaWindowManagerGala* self,
                                           MetaWindowActor* actor,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateMinimizeData* _data_;
	GalaWindowManagerGala* _tmp0_;
	MetaWindowActor* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaAnimateMinimizeData);
	_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_animate_minimize_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data_->actor);
	_data_->actor = _tmp1_;
	gala_window_manager_gala_animate_minimize_co (_data_);
}

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

static void
gala_window_manager_gala_animate_minimize_ready (GObject* source_object,
                                                 GAsyncResult* _res_,
                                                 gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateMinimizeData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_animate_minimize_co (_data_);
}

static gboolean
gala_window_manager_gala_animate_minimize_co (GalaWindowManagerGalaAnimateMinimizeData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = meta_window_actor_get_meta_window (_data_->actor);
	_data_->_tmp1_ = meta_window_get_window_type (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	if (_data_->_tmp2_ != META_WINDOW_NORMAL) {
		meta_plugin_minimize_completed ((MetaPlugin*) _data_->self, _data_->actor);
		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;
	}
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) _data_->self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) _data_->self, _data_->actor);
	_data_->_tmp3_ = _data_->self->priv->minimizing;
	gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp3_, _data_->actor);
	_data_->_tmp4_ = gala_transition_builder_new ((ClutterActor*) _data_->actor, (guint) GALA_ANIMATION_DURATION_HIDE, CLUTTER_EASE_IN_EXPO);
	_data_->builder = _data_->_tmp4_;
	memset (&_data_->_tmp5_, 0, sizeof (MtkRectangle));
	_data_->icon = _data_->_tmp5_;
	_data_->_tmp6_ = meta_window_actor_get_meta_window (_data_->actor);
	memset (&_data_->_tmp7_, 0, sizeof (MtkRectangle));
	_data_->_tmp8_ = meta_window_get_icon_geometry (_data_->_tmp6_, &_data_->_tmp7_);
	_data_->icon = _data_->_tmp7_;
	if (_data_->_tmp8_) {
		_data_->_tmp9_ = meta_plugin_get_display ((MetaPlugin*) _data_->self);
		_data_->_tmp10_ = meta_plugin_get_display ((MetaPlugin*) _data_->self);
		_data_->_tmp11_ = _data_->icon;
		_data_->ui_scale = meta_display_get_monitor_scale (_data_->_tmp9_, meta_display_get_monitor_index_for_rect (_data_->_tmp10_, &_data_->_tmp11_));
		_data_->_tmp12_ = _data_->icon;
		_data_->icon.x = gala_utils_scale_to_int (_data_->_tmp12_.x, _data_->ui_scale);
		_data_->_tmp13_ = _data_->icon;
		_data_->icon.y = gala_utils_scale_to_int (_data_->_tmp13_.y, _data_->ui_scale);
		_data_->_tmp14_ = _data_->icon;
		_data_->icon.width = gala_utils_scale_to_int (_data_->_tmp14_.width, _data_->ui_scale);
		_data_->_tmp15_ = _data_->icon;
		_data_->icon.height = gala_utils_scale_to_int (_data_->_tmp15_.height, _data_->ui_scale);
		_data_->_tmp16_ = clutter_actor_get_x ((ClutterActor*) _data_->actor);
		_data_->_tmp17_ = _data_->_tmp16_;
		_data_->_tmp18_ = _data_->icon;
		_data_->_tmp19_ = _data_->icon;
		_data_->_tmp20_ = clutter_actor_get_width ((ClutterActor*) _data_->actor);
		_data_->_tmp21_ = _data_->_tmp20_;
		_data_->_tmp22_ = clutter_actor_get_y ((ClutterActor*) _data_->actor);
		_data_->_tmp23_ = _data_->_tmp22_;
		_data_->_tmp24_ = _data_->icon;
		_data_->_tmp25_ = _data_->icon;
		_data_->_tmp26_ = clutter_actor_get_height ((ClutterActor*) _data_->actor);
		_data_->_tmp27_ = _data_->_tmp26_;
		clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, (_data_->_tmp17_ - _data_->_tmp18_.x) / (_data_->_tmp19_.width - _data_->_tmp21_), (_data_->_tmp23_ - _data_->_tmp24_.y) / (_data_->_tmp25_.height - _data_->_tmp27_));
		_data_->_tmp28_ = _data_->builder;
		_data_->_tmp29_ = _data_->icon;
		_data_->_tmp30_ = clutter_actor_get_width ((ClutterActor*) _data_->actor);
		_data_->_tmp31_ = _data_->_tmp30_;
		memset (&_data_->_tmp32_, 0, sizeof (GValue));
		g_value_init (&_data_->_tmp32_, G_TYPE_DOUBLE);
		g_value_set_double (&_data_->_tmp32_, (gdouble) (_data_->_tmp29_.width / _data_->_tmp31_));
		gala_transition_builder_add_property (_data_->_tmp28_, "scale-x", &_data_->_tmp32_);
		G_IS_VALUE (&_data_->_tmp32_) ? (g_value_unset (&_data_->_tmp32_), NULL) : NULL;
		_data_->_tmp33_ = _data_->builder;
		_data_->_tmp34_ = _data_->icon;
		_data_->_tmp35_ = clutter_actor_get_height ((ClutterActor*) _data_->actor);
		_data_->_tmp36_ = _data_->_tmp35_;
		memset (&_data_->_tmp37_, 0, sizeof (GValue));
		g_value_init (&_data_->_tmp37_, G_TYPE_DOUBLE);
		g_value_set_double (&_data_->_tmp37_, (gdouble) (_data_->_tmp34_.height / _data_->_tmp36_));
		gala_transition_builder_add_property (_data_->_tmp33_, "scale-y", &_data_->_tmp37_);
		G_IS_VALUE (&_data_->_tmp37_) ? (g_value_unset (&_data_->_tmp37_), NULL) : NULL;
	} else {
		clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, 0.5f, 1.0f);
		_data_->_tmp38_ = _data_->builder;
		memset (&_data_->_tmp39_, 0, sizeof (GValue));
		g_value_init (&_data_->_tmp39_, G_TYPE_DOUBLE);
		g_value_set_double (&_data_->_tmp39_, 0.0);
		gala_transition_builder_add_property (_data_->_tmp38_, "scale-x", &_data_->_tmp39_);
		G_IS_VALUE (&_data_->_tmp39_) ? (g_value_unset (&_data_->_tmp39_), NULL) : NULL;
		_data_->_tmp40_ = _data_->builder;
		memset (&_data_->_tmp41_, 0, sizeof (GValue));
		g_value_init (&_data_->_tmp41_, G_TYPE_DOUBLE);
		g_value_set_double (&_data_->_tmp41_, 0.0);
		gala_transition_builder_add_property (_data_->_tmp40_, "scale-y", &_data_->_tmp41_);
		G_IS_VALUE (&_data_->_tmp41_) ? (g_value_unset (&_data_->_tmp41_), NULL) : NULL;
	}
	_data_->_tmp42_ = _data_->builder;
	memset (&_data_->_tmp43_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp43_, G_TYPE_UINT);
	g_value_set_uint (&_data_->_tmp43_, 0U);
	gala_transition_builder_add_property (_data_->_tmp42_, "opacity", &_data_->_tmp43_);
	G_IS_VALUE (&_data_->_tmp43_) ? (g_value_unset (&_data_->_tmp43_), NULL) : NULL;
	_data_->_tmp44_ = _data_->builder;
	_data_->_state_ = 1;
	gala_transition_builder_run (_data_->_tmp44_, gala_window_manager_gala_animate_minimize_ready, _data_);
	return FALSE;
	_state_1:
	gala_transition_builder_run_finish (_data_->_tmp44_, _data_->_res_);
	clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, 0.0f, 0.0f);
	_data_->_tmp45_ = _data_->self->priv->minimizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _data_->_tmp45_, _data_->actor);
	meta_plugin_minimize_completed ((MetaPlugin*) _data_->self, _data_->actor);
	_g_object_unref0 (_data_->builder);
	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 void
gala_window_manager_gala_real_unminimize (MetaPlugin* base,
                                          MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	gala_window_manager_gala_animate_unminimize (self, actor, NULL, NULL);
}

static void
gala_window_manager_gala_animate_unminimize_data_free (gpointer _data)
{
	GalaWindowManagerGalaAnimateUnminimizeData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->actor);
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaAnimateUnminimizeData, _data_);
}

static void
gala_window_manager_gala_animate_unminimize (GalaWindowManagerGala* self,
                                             MetaWindowActor* actor,
                                             GAsyncReadyCallback _callback_,
                                             gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateUnminimizeData* _data_;
	GalaWindowManagerGala* _tmp0_;
	MetaWindowActor* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaAnimateUnminimizeData);
	_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_animate_unminimize_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data_->actor);
	_data_->actor = _tmp1_;
	gala_window_manager_gala_animate_unminimize_co (_data_);
}

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

static void
gala_window_manager_gala_animate_unminimize_ready (GObject* source_object,
                                                   GAsyncResult* _res_,
                                                   gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateUnminimizeData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_animate_unminimize_co (_data_);
}

static gboolean
gala_window_manager_gala_animate_unminimize_co (GalaWindowManagerGalaAnimateUnminimizeData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	clutter_actor_show ((ClutterActor*) _data_->actor);
	_data_->_tmp0_ = meta_window_actor_get_meta_window (_data_->actor);
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp2_ = meta_window_get_window_type (_data_->_tmp1_);
	_data_->_tmp3_ = _data_->_tmp2_;
	if (_data_->_tmp3_ != META_WINDOW_NORMAL) {
		meta_plugin_unminimize_completed ((MetaPlugin*) _data_->self, _data_->actor);
		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;
	}
	clutter_actor_remove_all_transitions ((ClutterActor*) _data_->actor);
	_data_->_tmp4_ = _data_->self->priv->unminimizing;
	gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp4_, _data_->actor);
	clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, 0.5f, 1.0f);
	_data_->_tmp5_ = gala_transition_builder_new ((ClutterActor*) _data_->actor, (guint) GALA_ANIMATION_DURATION_HIDE, CLUTTER_EASE_OUT_EXPO);
	_data_->builder = _data_->_tmp5_;
	_data_->_tmp6_ = _data_->builder;
	memset (&_data_->_tmp7_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp7_, G_TYPE_DOUBLE);
	g_value_set_double (&_data_->_tmp7_, 0.01);
	memset (&_data_->_tmp8_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp8_, G_TYPE_DOUBLE);
	g_value_set_double (&_data_->_tmp8_, 1.0);
	gala_transition_builder_add_property_with_from (_data_->_tmp6_, "scale-x", &_data_->_tmp7_, &_data_->_tmp8_);
	G_IS_VALUE (&_data_->_tmp8_) ? (g_value_unset (&_data_->_tmp8_), NULL) : NULL;
	G_IS_VALUE (&_data_->_tmp7_) ? (g_value_unset (&_data_->_tmp7_), NULL) : NULL;
	_data_->_tmp9_ = _data_->builder;
	memset (&_data_->_tmp10_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp10_, G_TYPE_DOUBLE);
	g_value_set_double (&_data_->_tmp10_, 0.1);
	memset (&_data_->_tmp11_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp11_, G_TYPE_DOUBLE);
	g_value_set_double (&_data_->_tmp11_, 1.0);
	gala_transition_builder_add_property_with_from (_data_->_tmp9_, "scale-y", &_data_->_tmp10_, &_data_->_tmp11_);
	G_IS_VALUE (&_data_->_tmp11_) ? (g_value_unset (&_data_->_tmp11_), NULL) : NULL;
	G_IS_VALUE (&_data_->_tmp10_) ? (g_value_unset (&_data_->_tmp10_), NULL) : NULL;
	_data_->_tmp12_ = _data_->builder;
	memset (&_data_->_tmp13_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp13_, G_TYPE_UINT);
	g_value_set_uint (&_data_->_tmp13_, 0U);
	memset (&_data_->_tmp14_, 0, sizeof (GValue));
	g_value_init (&_data_->_tmp14_, G_TYPE_UINT);
	g_value_set_uint (&_data_->_tmp14_, 255U);
	gala_transition_builder_add_property_with_from (_data_->_tmp12_, "opacity", &_data_->_tmp13_, &_data_->_tmp14_);
	G_IS_VALUE (&_data_->_tmp14_) ? (g_value_unset (&_data_->_tmp14_), NULL) : NULL;
	G_IS_VALUE (&_data_->_tmp13_) ? (g_value_unset (&_data_->_tmp13_), NULL) : NULL;
	_data_->_tmp15_ = _data_->builder;
	_data_->_state_ = 1;
	gala_transition_builder_run (_data_->_tmp15_, gala_window_manager_gala_animate_unminimize_ready, _data_);
	return FALSE;
	_state_1:
	gala_transition_builder_run_finish (_data_->_tmp15_, _data_->_res_);
	_data_->_tmp16_ = _data_->self->priv->unminimizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _data_->_tmp16_, _data_->actor);
	meta_plugin_unminimize_completed ((MetaPlugin*) _data_->self, _data_->actor);
	_g_object_unref0 (_data_->builder);
	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 void
gala_window_manager_gala_real_map (MetaPlugin* base,
                                   MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	MetaWindow* window = NULL;
	MetaWindow* _tmp0_;
	MetaWindow* _tmp1_;
	gboolean _tmp2_ = FALSE;
	MetaWindow* _tmp3_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_tmp0_ = meta_window_actor_get_meta_window (actor);
	window = _tmp0_;
	_tmp1_ = window;
	gala_window_state_saver_on_map (_tmp1_);
	clutter_actor_remove_all_transitions ((ClutterActor*) actor);
	clutter_actor_show ((ClutterActor*) actor);
	_tmp3_ = window;
	if (gala_notification_stack_is_notification (_tmp3_)) {
		_tmp2_ = TRUE;
	} else {
		_tmp2_ = !meta_prefs_get_gnome_animations ();
	}
	if (_tmp2_) {
		MetaWindow* _tmp4_;
		_tmp4_ = window;
		gala_window_manager_gala_dim_parent_window (self, _tmp4_);
		meta_plugin_map_completed ((MetaPlugin*) self, actor);
		return;
	}
	gala_window_manager_gala_animate_map (self, actor, NULL, NULL);
}

static void
gala_window_manager_gala_animate_map_data_free (gpointer _data)
{
	GalaWindowManagerGalaAnimateMapData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->actor);
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaAnimateMapData, _data_);
}

static void
gala_window_manager_gala_animate_map (GalaWindowManagerGala* self,
                                      MetaWindowActor* actor,
                                      GAsyncReadyCallback _callback_,
                                      gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateMapData* _data_;
	GalaWindowManagerGala* _tmp0_;
	MetaWindowActor* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaAnimateMapData);
	_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_animate_map_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data_->actor);
	_data_->actor = _tmp1_;
	gala_window_manager_gala_animate_map_co (_data_);
}

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

static void
gala_window_manager_gala_animate_map_ready (GObject* source_object,
                                            GAsyncResult* _res_,
                                            gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateMapData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_animate_map_co (_data_);
}

static gboolean
gala_window_manager_gala_animate_map_co (GalaWindowManagerGalaAnimateMapData* _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_->_tmp0_ = meta_window_actor_get_meta_window (_data_->actor);
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp2_ = _g_object_ref0 (_data_->_tmp1_);
	_data_->window = _data_->_tmp2_;
	_data_->_tmp3_ = _data_->self->priv->mapping;
	gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp3_, _data_->actor);
	_data_->_tmp4_ = _data_->window;
	_data_->_tmp5_ = meta_window_get_window_type (_data_->_tmp4_);
	_data_->_tmp6_ = _data_->_tmp5_;
	switch (_data_->_tmp6_) {
		case META_WINDOW_NORMAL:
		{
			_data_->_tmp8_ = _data_->window;
			g_object_get (_data_->_tmp8_, "maximized-vertically", &_data_->_tmp9_, NULL);
			_data_->_tmp10_ = _data_->_tmp9_;
			if (_data_->_tmp10_) {
				_data_->_tmp7_ = TRUE;
			} else {
				_data_->_tmp11_ = _data_->window;
				g_object_get (_data_->_tmp11_, "maximized-horizontally", &_data_->_tmp12_, NULL);
				_data_->_tmp13_ = _data_->_tmp12_;
				_data_->_tmp7_ = _data_->_tmp13_;
			}
			if (_data_->_tmp7_) {
				_data_->_tmp14_ = _data_->window;
				memset (&_data_->_tmp15_, 0, sizeof (MtkRectangle));
				meta_window_get_frame_rect (_data_->_tmp14_, &_data_->_tmp15_);
				_data_->outer_rect = _data_->_tmp15_;
				_data_->_tmp16_ = _data_->outer_rect;
				_data_->_tmp17_ = _data_->outer_rect;
				clutter_actor_set_position ((ClutterActor*) _data_->actor, (gfloat) _data_->_tmp16_.x, (gfloat) _data_->_tmp17_.y);
			}
			clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, 0.5f, 1.0f);
			_data_->_tmp18_ = gala_transition_builder_new ((ClutterActor*) _data_->actor, (guint) GALA_ANIMATION_DURATION_HIDE, CLUTTER_EASE_OUT_EXPO);
			_data_->builder = _data_->_tmp18_;
			_data_->_tmp19_ = _data_->builder;
			memset (&_data_->_tmp20_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp20_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp20_, 0.01);
			memset (&_data_->_tmp21_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp21_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp21_, 1.0);
			gala_transition_builder_add_property_with_from (_data_->_tmp19_, "scale-x", &_data_->_tmp20_, &_data_->_tmp21_);
			G_IS_VALUE (&_data_->_tmp21_) ? (g_value_unset (&_data_->_tmp21_), NULL) : NULL;
			G_IS_VALUE (&_data_->_tmp20_) ? (g_value_unset (&_data_->_tmp20_), NULL) : NULL;
			_data_->_tmp22_ = _data_->builder;
			memset (&_data_->_tmp23_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp23_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp23_, 0.1);
			memset (&_data_->_tmp24_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp24_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp24_, 1.0);
			gala_transition_builder_add_property_with_from (_data_->_tmp22_, "scale-y", &_data_->_tmp23_, &_data_->_tmp24_);
			G_IS_VALUE (&_data_->_tmp24_) ? (g_value_unset (&_data_->_tmp24_), NULL) : NULL;
			G_IS_VALUE (&_data_->_tmp23_) ? (g_value_unset (&_data_->_tmp23_), NULL) : NULL;
			_data_->_tmp25_ = _data_->builder;
			memset (&_data_->_tmp26_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp26_, G_TYPE_UINT);
			g_value_set_uint (&_data_->_tmp26_, 0U);
			memset (&_data_->_tmp27_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp27_, G_TYPE_UINT);
			g_value_set_uint (&_data_->_tmp27_, 255U);
			gala_transition_builder_add_property_with_from (_data_->_tmp25_, "opacity", &_data_->_tmp26_, &_data_->_tmp27_);
			G_IS_VALUE (&_data_->_tmp27_) ? (g_value_unset (&_data_->_tmp27_), NULL) : NULL;
			G_IS_VALUE (&_data_->_tmp26_) ? (g_value_unset (&_data_->_tmp26_), NULL) : NULL;
			_data_->_tmp28_ = _data_->builder;
			_data_->_state_ = 1;
			gala_transition_builder_run (_data_->_tmp28_, gala_window_manager_gala_animate_map_ready, _data_);
			return FALSE;
			_state_1:
			gala_transition_builder_run_finish (_data_->_tmp28_, _data_->_res_);
			_g_object_unref0 (_data_->builder);
			break;
		}
		case META_WINDOW_MODAL_DIALOG:
		case META_WINDOW_DIALOG:
		{
			_data_->_tmp29_ = _data_->window;
			gala_window_manager_gala_dim_parent_window (_data_->self, _data_->_tmp29_);
			clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, 0.5f, 0.5f);
			_data_->_tmp30_ = gala_transition_builder_new ((ClutterActor*) _data_->actor, (guint) 200, CLUTTER_EASE_OUT_QUAD);
			_data_->_vala1_builder = _data_->_tmp30_;
			_data_->_tmp31_ = _data_->_vala1_builder;
			memset (&_data_->_tmp32_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp32_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp32_, 1.05);
			memset (&_data_->_tmp33_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp33_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp33_, 1.0);
			gala_transition_builder_add_property_with_from (_data_->_tmp31_, "scale-x", &_data_->_tmp32_, &_data_->_tmp33_);
			G_IS_VALUE (&_data_->_tmp33_) ? (g_value_unset (&_data_->_tmp33_), NULL) : NULL;
			G_IS_VALUE (&_data_->_tmp32_) ? (g_value_unset (&_data_->_tmp32_), NULL) : NULL;
			_data_->_tmp34_ = _data_->_vala1_builder;
			memset (&_data_->_tmp35_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp35_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp35_, 1.05);
			memset (&_data_->_tmp36_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp36_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp36_, 1.0);
			gala_transition_builder_add_property_with_from (_data_->_tmp34_, "scale-y", &_data_->_tmp35_, &_data_->_tmp36_);
			G_IS_VALUE (&_data_->_tmp36_) ? (g_value_unset (&_data_->_tmp36_), NULL) : NULL;
			G_IS_VALUE (&_data_->_tmp35_) ? (g_value_unset (&_data_->_tmp35_), NULL) : NULL;
			_data_->_tmp37_ = _data_->_vala1_builder;
			memset (&_data_->_tmp38_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp38_, G_TYPE_UINT);
			g_value_set_uint (&_data_->_tmp38_, 0U);
			memset (&_data_->_tmp39_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp39_, G_TYPE_UINT);
			g_value_set_uint (&_data_->_tmp39_, 255U);
			gala_transition_builder_add_property_with_from (_data_->_tmp37_, "opacity", &_data_->_tmp38_, &_data_->_tmp39_);
			G_IS_VALUE (&_data_->_tmp39_) ? (g_value_unset (&_data_->_tmp39_), NULL) : NULL;
			G_IS_VALUE (&_data_->_tmp38_) ? (g_value_unset (&_data_->_tmp38_), NULL) : NULL;
			_data_->_tmp40_ = _data_->_vala1_builder;
			_data_->_state_ = 2;
			gala_transition_builder_run (_data_->_tmp40_, gala_window_manager_gala_animate_map_ready, _data_);
			return FALSE;
			_state_2:
			gala_transition_builder_run_finish (_data_->_tmp40_, _data_->_res_);
			_g_object_unref0 (_data_->_vala1_builder);
			break;
		}
		default:
		{
			break;
		}
	}
	_data_->_tmp41_ = _data_->self->priv->mapping;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _data_->_tmp41_, _data_->actor);
	meta_plugin_map_completed ((MetaPlugin*) _data_->self, _data_->actor);
	_g_object_unref0 (_data_->window);
	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 void
gala_window_manager_gala_real_destroy (MetaPlugin* base,
                                       MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	clutter_actor_remove_all_transitions ((ClutterActor*) actor);
	gala_window_manager_gala_animate_destroy (self, actor, NULL, NULL);
}

static void
gala_window_manager_gala_animate_destroy_data_free (gpointer _data)
{
	GalaWindowManagerGalaAnimateDestroyData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->actor);
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaAnimateDestroyData, _data_);
}

static void
gala_window_manager_gala_animate_destroy (GalaWindowManagerGala* self,
                                          MetaWindowActor* actor,
                                          GAsyncReadyCallback _callback_,
                                          gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateDestroyData* _data_;
	GalaWindowManagerGala* _tmp0_;
	MetaWindowActor* _tmp1_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaAnimateDestroyData);
	_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_animate_destroy_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data_->actor);
	_data_->actor = _tmp1_;
	gala_window_manager_gala_animate_destroy_co (_data_);
}

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

static void
gala_window_manager_gala_animate_destroy_ready (GObject* source_object,
                                                GAsyncResult* _res_,
                                                gpointer _user_data_)
{
	GalaWindowManagerGalaAnimateDestroyData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_animate_destroy_co (_data_);
}

static gboolean
gala_window_manager_gala_animate_destroy_co (GalaWindowManagerGalaAnimateDestroyData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = meta_window_actor_get_meta_window (_data_->actor);
	_data_->_tmp1_ = _data_->_tmp0_;
	_data_->_tmp2_ = _g_object_ref0 (_data_->_tmp1_);
	_data_->window = _data_->_tmp2_;
	_data_->_tmp3_ = _data_->self->priv->destroying;
	gee_abstract_collection_add ((GeeAbstractCollection*) _data_->_tmp3_, _data_->actor);
	_data_->_tmp4_ = _data_->window;
	_data_->_tmp5_ = meta_window_get_window_type (_data_->_tmp4_);
	_data_->_tmp6_ = _data_->_tmp5_;
	switch (_data_->_tmp6_) {
		case META_WINDOW_NORMAL:
		{
			clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, 0.5f, 0.5f);
			clutter_actor_show ((ClutterActor*) _data_->actor);
			_data_->_tmp7_ = gala_transition_builder_new ((ClutterActor*) _data_->actor, (guint) GALA_ANIMATION_DURATION_CLOSE, CLUTTER_LINEAR);
			_data_->builder = _data_->_tmp7_;
			_data_->_tmp8_ = _data_->builder;
			memset (&_data_->_tmp9_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp9_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp9_, 0.8);
			gala_transition_builder_add_property (_data_->_tmp8_, "scale-x", &_data_->_tmp9_);
			G_IS_VALUE (&_data_->_tmp9_) ? (g_value_unset (&_data_->_tmp9_), NULL) : NULL;
			_data_->_tmp10_ = _data_->builder;
			memset (&_data_->_tmp11_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp11_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp11_, 0.8);
			gala_transition_builder_add_property (_data_->_tmp10_, "scale-y", &_data_->_tmp11_);
			G_IS_VALUE (&_data_->_tmp11_) ? (g_value_unset (&_data_->_tmp11_), NULL) : NULL;
			_data_->_tmp12_ = _data_->builder;
			memset (&_data_->_tmp13_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp13_, G_TYPE_UINT);
			g_value_set_uint (&_data_->_tmp13_, 0U);
			gala_transition_builder_add_property (_data_->_tmp12_, "opacity", &_data_->_tmp13_);
			G_IS_VALUE (&_data_->_tmp13_) ? (g_value_unset (&_data_->_tmp13_), NULL) : NULL;
			_data_->_tmp14_ = _data_->builder;
			_data_->_state_ = 1;
			gala_transition_builder_run (_data_->_tmp14_, gala_window_manager_gala_animate_destroy_ready, _data_);
			return FALSE;
			_state_1:
			gala_transition_builder_run_finish (_data_->_tmp14_, _data_->_res_);
			_data_->_tmp15_ = _data_->window;
			gala_utils_clear_window_cache (_data_->_tmp15_);
			_g_object_unref0 (_data_->builder);
			break;
		}
		case META_WINDOW_MODAL_DIALOG:
		case META_WINDOW_DIALOG:
		{
			clutter_actor_set_pivot_point ((ClutterActor*) _data_->actor, 0.5f, 0.5f);
			_data_->_tmp16_ = gala_transition_builder_new ((ClutterActor*) _data_->actor, (guint) 150, CLUTTER_EASE_OUT_QUAD);
			_data_->_vala1_builder = _data_->_tmp16_;
			_data_->_tmp17_ = _data_->_vala1_builder;
			memset (&_data_->_tmp18_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp18_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp18_, 1.05);
			gala_transition_builder_add_property (_data_->_tmp17_, "scale-x", &_data_->_tmp18_);
			G_IS_VALUE (&_data_->_tmp18_) ? (g_value_unset (&_data_->_tmp18_), NULL) : NULL;
			_data_->_tmp19_ = _data_->_vala1_builder;
			memset (&_data_->_tmp20_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp20_, G_TYPE_DOUBLE);
			g_value_set_double (&_data_->_tmp20_, 1.05);
			gala_transition_builder_add_property (_data_->_tmp19_, "scale-y", &_data_->_tmp20_);
			G_IS_VALUE (&_data_->_tmp20_) ? (g_value_unset (&_data_->_tmp20_), NULL) : NULL;
			_data_->_tmp21_ = _data_->_vala1_builder;
			memset (&_data_->_tmp22_, 0, sizeof (GValue));
			g_value_init (&_data_->_tmp22_, G_TYPE_UINT);
			g_value_set_uint (&_data_->_tmp22_, 0U);
			gala_transition_builder_add_property (_data_->_tmp21_, "opacity", &_data_->_tmp22_);
			G_IS_VALUE (&_data_->_tmp22_) ? (g_value_unset (&_data_->_tmp22_), NULL) : NULL;
			_data_->_tmp23_ = _data_->_vala1_builder;
			_data_->_state_ = 2;
			gala_transition_builder_run (_data_->_tmp23_, gala_window_manager_gala_animate_destroy_ready, _data_);
			return FALSE;
			_state_2:
			gala_transition_builder_run_finish (_data_->_tmp23_, _data_->_res_);
			_g_object_unref0 (_data_->_vala1_builder);
			break;
		}
		default:
		{
			_data_->_tmp24_ = _data_->window;
			if (gala_notification_stack_is_notification (_data_->_tmp24_)) {
				_data_->_tmp25_ = _data_->self->priv->notification_stack;
				_data_->_state_ = 3;
				gala_notification_stack_destroy_notification (_data_->_tmp25_, _data_->actor, gala_window_manager_gala_animate_destroy_ready, _data_);
				return FALSE;
				_state_3:
				gala_notification_stack_destroy_notification_finish (_data_->_tmp25_, _data_->_res_);
			}
			break;
		}
	}
	_data_->_tmp26_ = _data_->self->priv->destroying;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _data_->_tmp26_, _data_->actor);
	meta_plugin_destroy_completed ((MetaPlugin*) _data_->self, _data_->actor);
	_g_object_unref0 (_data_->window);
	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;
}

/**
         * Cancel attached animation of an actor and reset its animation properties.
         */
static void
gala_window_manager_gala_end_animation (GalaWindowManagerGala* self,
                                        GeeHashSet** list,
                                        MetaWindowActor* actor)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (*list != NULL);
	g_return_if_fail (actor != NULL);
	if (!gee_abstract_collection_contains ((GeeAbstractCollection*) (*list), actor)) {
		return;
	}
	clutter_actor_remove_all_transitions ((ClutterActor*) actor);
	clutter_actor_set_opacity ((ClutterActor*) actor, 255U);
	clutter_actor_set_scale ((ClutterActor*) actor, 1.0, 1.0);
	g_object_set ((ClutterActor*) actor, "rotation-angle-x", 0.0, NULL);
	clutter_actor_set_pivot_point ((ClutterActor*) actor, 0.0f, 0.0f);
	gee_abstract_collection_remove ((GeeAbstractCollection*) (*list), actor);
}

static void
gala_window_manager_gala_real_kill_window_effects (MetaPlugin* base,
                                                   MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	GeeHashMap* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_tmp0_ = self->priv->pending_size_change;
	if (gee_abstract_map_unset ((GeeAbstractMap*) _tmp0_, actor, NULL)) {
		meta_plugin_size_change_completed ((MetaPlugin*) self, actor);
	}
	gala_window_manager_gala_end_animation (self, &self->priv->unminimizing, actor);
	gala_window_manager_gala_end_animation (self, &self->priv->minimizing, actor);
	gala_window_manager_gala_end_animation (self, &self->priv->mapping, actor);
	gala_window_manager_gala_end_animation (self, &self->priv->destroying, actor);
	gala_window_manager_gala_end_animation (self, &self->priv->changing_size, 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;
	GalaLayoutManager* _tmp0_;
	GalaMultitaskingView* _tmp1_;
	GalaMultitaskingView* _tmp2_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->layout_manager;
	_tmp1_ = gala_layout_manager_get_multitasking_view (_tmp0_);
	_tmp2_ = _tmp1_;
	gala_multitasking_view_kill_switch_workspace (_tmp2_);
}

static void
gala_window_manager_gala_real_locate_pointer (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	GalaLayoutManager* _tmp0_;
	GalaPointerLocator* _tmp1_;
	GalaPointerLocator* _tmp2_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->layout_manager;
	_tmp1_ = gala_layout_manager_get_pointer_locator (_tmp0_);
	_tmp2_ = _tmp1_;
	gala_pointer_locator_show_ripple (_tmp2_);
}

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;
			}
			result = TRUE;
			return result;
		}
		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 Block11Data*
block11_data_ref (Block11Data* _data11_)
{
	g_atomic_int_inc (&_data11_->_ref_count_);
	return _data11_;
}

static void
block11_data_unref (void * _userdata_)
{
	Block11Data* _data11_;
	_data11_ = (Block11Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data11_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data11_->self;
		_g_object_unref0 (_data11_->dialog);
		_g_object_unref0 (self);
		g_slice_free (Block11Data, _data11_);
	}
}

static gboolean
__lambda162_ (Block11Data* _data11_)
{
	GalaWindowManagerGala* self;
	gboolean result;
	self = _data11_->self;
	_data11_->dialog_timeout_id = (guint) 0;
	gala_access_dialog_close (_data11_->dialog);
	result = G_SOURCE_REMOVE;
	return result;
}

static gboolean
___lambda162__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda162_ (self);
	return result;
}

static void
__lambda161_ (Block11Data* _data11_)
{
	GalaWindowManagerGala* self;
	self = _data11_->self;
	_data11_->dialog_timeout_id = g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) _data11_->timeout, ___lambda162__gsource_func, block11_data_ref (_data11_), block11_data_unref);
}

static void
___lambda161__gala_access_dialog_show (GalaAccessDialog* _sender,
                                       gpointer self)
{
	__lambda161_ (self);
}

static void
__lambda163_ (Block11Data* _data11_,
              guint res)
{
	GalaWindowManagerGala* self;
	self = _data11_->self;
	if (_data11_->dialog_timeout_id != ((guint) 0)) {
		g_source_remove (_data11_->dialog_timeout_id);
		_data11_->dialog_timeout_id = (guint) 0;
	}
	meta_plugin_complete_display_change ((MetaPlugin*) self, res == ((guint) 0));
}

static void
___lambda163__gala_access_dialog_response (GalaAccessDialog* _sender,
                                           guint response,
                                           gpointer self)
{
	__lambda163_ (self, response);
}

static void
gala_window_manager_gala_real_confirm_display_change (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	Block11Data* _data11_;
	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;
	_data11_ = g_slice_new0 (Block11Data);
	_data11_->_ref_count_ = 1;
	_data11_->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_;
	_data11_->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) _data11_->timeout));
	summary = _tmp4_;
	_data11_->dialog_timeout_id = (guint) 0;
	_tmp5_ = g_strdup_printf (summary, _data11_->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_);
	_data11_->dialog = _tmp10_;
	g_signal_connect_data (_data11_->dialog, "show", (GCallback) ___lambda161__gala_access_dialog_show, block11_data_ref (_data11_), (GClosureNotify) block11_data_unref, 0);
	g_signal_connect_data (_data11_->dialog, "response", (GCallback) ___lambda163__gala_access_dialog_response, block11_data_ref (_data11_), (GClosureNotify) block11_data_unref, 0);
	g_signal_emit_by_name (_data11_->dialog, "show");
	_g_free0 (summary);
	block11_data_unref (_data11_);
	_data11_ = 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;
}

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 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]);
	}
}

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 GalaWindowManagerGalaSizeChangeInfo*
gala_window_manager_gala_size_change_info_construct (GType object_type,
                                                     MetaSizeChange change,
                                                     MtkRectangle* old_rect,
                                                     ClutterActor* snapshot)
{
	GalaWindowManagerGalaSizeChangeInfo* self = NULL;
	MtkRectangle _tmp0_;
	ClutterActor* _tmp1_;
	g_return_val_if_fail (old_rect != NULL, NULL);
	g_return_val_if_fail (snapshot != NULL, NULL);
	self = (GalaWindowManagerGalaSizeChangeInfo*) g_type_create_instance (object_type);
	self->change = change;
	_tmp0_ = *old_rect;
	self->old_rect = _tmp0_;
	_tmp1_ = _g_object_ref0 (snapshot);
	_g_object_unref0 (self->snapshot);
	self->snapshot = _tmp1_;
	return self;
}

static GalaWindowManagerGalaSizeChangeInfo*
gala_window_manager_gala_size_change_info_new (MetaSizeChange change,
                                               MtkRectangle* old_rect,
                                               ClutterActor* snapshot)
{
	return gala_window_manager_gala_size_change_info_construct (GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO, change, old_rect, snapshot);
}

static void
gala_window_manager_gala_value_size_change_info_init (GValue* value)
{
	value->data[0].v_pointer = NULL;
}

static void
gala_window_manager_gala_value_size_change_info_free_value (GValue* value)
{
	if (value->data[0].v_pointer) {
		gala_window_manager_gala_size_change_info_unref (value->data[0].v_pointer);
	}
}

static void
gala_window_manager_gala_value_size_change_info_copy_value (const GValue* src_value,
                                                            GValue* dest_value)
{
	if (src_value->data[0].v_pointer) {
		dest_value->data[0].v_pointer = gala_window_manager_gala_size_change_info_ref (src_value->data[0].v_pointer);
	} else {
		dest_value->data[0].v_pointer = NULL;
	}
}

static gpointer
gala_window_manager_gala_value_size_change_info_peek_pointer (const GValue* value)
{
	return value->data[0].v_pointer;
}

static gchar*
gala_window_manager_gala_value_size_change_info_collect_value (GValue* value,
                                                               guint n_collect_values,
                                                               GTypeCValue* collect_values,
                                                               guint collect_flags)
{
	if (collect_values[0].v_pointer) {
		GalaWindowManagerGalaSizeChangeInfo * object;
		object = collect_values[0].v_pointer;
		if (object->parent_instance.g_class == NULL) {
			return g_strconcat ("invalid unclassed object pointer for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
		} else if (!g_value_type_compatible (G_TYPE_FROM_INSTANCE (object), G_VALUE_TYPE (value))) {
			return g_strconcat ("invalid object type `", g_type_name (G_TYPE_FROM_INSTANCE (object)), "' for value type `", G_VALUE_TYPE_NAME (value), "'", NULL);
		}
		value->data[0].v_pointer = gala_window_manager_gala_size_change_info_ref (object);
	} else {
		value->data[0].v_pointer = NULL;
	}
	return NULL;
}

static gchar*
gala_window_manager_gala_value_size_change_info_lcopy_value (const GValue* value,
                                                             guint n_collect_values,
                                                             GTypeCValue* collect_values,
                                                             guint collect_flags)
{
	GalaWindowManagerGalaSizeChangeInfo ** object_p;
	object_p = collect_values[0].v_pointer;
	if (!object_p) {
		return g_strdup_printf ("value location for `%s' passed as NULL", G_VALUE_TYPE_NAME (value));
	}
	if (!value->data[0].v_pointer) {
		*object_p = NULL;
	} else if (collect_flags & G_VALUE_NOCOPY_CONTENTS) {
		*object_p = value->data[0].v_pointer;
	} else {
		*object_p = gala_window_manager_gala_size_change_info_ref (value->data[0].v_pointer);
	}
	return NULL;
}

static GParamSpec*
gala_window_manager_gala_param_spec_size_change_info (const gchar* name,
                                                      const gchar* nick,
                                                      const gchar* blurb,
                                                      GType object_type,
                                                      GParamFlags flags)
{
	GalaWindowManagerGalaParamSpecSizeChangeInfo* spec;
	g_return_val_if_fail (g_type_is_a (object_type, GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO), NULL);
	spec = g_param_spec_internal (G_TYPE_PARAM_OBJECT, name, nick, blurb, flags);
	G_PARAM_SPEC (spec)->value_type = object_type;
	return G_PARAM_SPEC (spec);
}

static gpointer
gala_window_manager_gala_value_get_size_change_info (const GValue* value)
{
	g_return_val_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO), NULL);
	return value->data[0].v_pointer;
}

static void
gala_window_manager_gala_value_set_size_change_info (GValue* value,
                                                     gpointer v_object)
{
	GalaWindowManagerGalaSizeChangeInfo * old;
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO));
	old = value->data[0].v_pointer;
	if (v_object) {
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO));
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
		value->data[0].v_pointer = v_object;
		gala_window_manager_gala_size_change_info_ref (value->data[0].v_pointer);
	} else {
		value->data[0].v_pointer = NULL;
	}
	if (old) {
		gala_window_manager_gala_size_change_info_unref (old);
	}
}

static void
gala_window_manager_gala_value_take_size_change_info (GValue* value,
                                                      gpointer v_object)
{
	GalaWindowManagerGalaSizeChangeInfo * old;
	g_return_if_fail (G_TYPE_CHECK_VALUE_TYPE (value, GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO));
	old = value->data[0].v_pointer;
	if (v_object) {
		g_return_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (v_object, GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO));
		g_return_if_fail (g_value_type_compatible (G_TYPE_FROM_INSTANCE (v_object), G_VALUE_TYPE (value)));
		value->data[0].v_pointer = v_object;
	} else {
		value->data[0].v_pointer = NULL;
	}
	if (old) {
		gala_window_manager_gala_size_change_info_unref (old);
	}
}

static void
gala_window_manager_gala_size_change_info_class_init (GalaWindowManagerGalaSizeChangeInfoClass * klass,
                                                      gpointer klass_data)
{
	gala_window_manager_gala_size_change_info_parent_class = g_type_class_peek_parent (klass);
	((GalaWindowManagerGalaSizeChangeInfoClass *) klass)->finalize = gala_window_manager_gala_size_change_info_finalize;
}

static void
gala_window_manager_gala_size_change_info_instance_init (GalaWindowManagerGalaSizeChangeInfo * self,
                                                         gpointer klass)
{
	self->ref_count = 1;
}

static void
gala_window_manager_gala_size_change_info_finalize (GalaWindowManagerGalaSizeChangeInfo * obj)
{
	GalaWindowManagerGalaSizeChangeInfo * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO, GalaWindowManagerGalaSizeChangeInfo);
	g_signal_handlers_destroy (self);
	_g_object_unref0 (self->snapshot);
}

 G_GNUC_NO_INLINE static GType
gala_window_manager_gala_size_change_info_get_type_once (void)
{
	static const GTypeValueTable g_define_type_value_table = { gala_window_manager_gala_value_size_change_info_init, gala_window_manager_gala_value_size_change_info_free_value, gala_window_manager_gala_value_size_change_info_copy_value, gala_window_manager_gala_value_size_change_info_peek_pointer, "p", gala_window_manager_gala_value_size_change_info_collect_value, "p", gala_window_manager_gala_value_size_change_info_lcopy_value };
	static const GTypeInfo g_define_type_info = { sizeof (GalaWindowManagerGalaSizeChangeInfoClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gala_window_manager_gala_size_change_info_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (GalaWindowManagerGalaSizeChangeInfo), 0, (GInstanceInitFunc) gala_window_manager_gala_size_change_info_instance_init, &g_define_type_value_table };
	static const GTypeFundamentalInfo g_define_type_fundamental_info = { (G_TYPE_FLAG_CLASSED | G_TYPE_FLAG_INSTANTIATABLE | G_TYPE_FLAG_DERIVABLE | G_TYPE_FLAG_DEEP_DERIVABLE) };
	GType gala_window_manager_gala_size_change_info_type_id;
	gala_window_manager_gala_size_change_info_type_id = g_type_register_fundamental (g_type_fundamental_next (), "GalaWindowManagerGalaSizeChangeInfo", &g_define_type_info, &g_define_type_fundamental_info, G_TYPE_FLAG_NONE);
	return gala_window_manager_gala_size_change_info_type_id;
}

static GType
gala_window_manager_gala_size_change_info_get_type (void)
{
	static gsize gala_window_manager_gala_size_change_info_type_id__once = 0;
	if (g_once_init_enter (&gala_window_manager_gala_size_change_info_type_id__once)) {
		GType gala_window_manager_gala_size_change_info_type_id;
		gala_window_manager_gala_size_change_info_type_id = gala_window_manager_gala_size_change_info_get_type_once ();
		g_once_init_leave (&gala_window_manager_gala_size_change_info_type_id__once, gala_window_manager_gala_size_change_info_type_id);
	}
	return gala_window_manager_gala_size_change_info_type_id__once;
}

static gpointer
gala_window_manager_gala_size_change_info_ref (gpointer instance)
{
	GalaWindowManagerGalaSizeChangeInfo * self;
	self = instance;
	g_atomic_int_inc (&self->ref_count);
	return instance;
}

static void
gala_window_manager_gala_size_change_info_unref (gpointer instance)
{
	GalaWindowManagerGalaSizeChangeInfo * self;
	self = instance;
	if (g_atomic_int_dec_and_test (&self->ref_count)) {
		GALA_WINDOW_MANAGER_GALA_SIZE_CHANGE_INFO_GET_CLASS (self)->finalize (self);
		g_type_free_instance ((GTypeInstance *) self);
	}
}

static GObject *
gala_window_manager_gala_constructor (GType type,
                                      guint n_construct_properties,
                                      GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GalaWindowManagerGala * self;
	GSettings* _tmp0_;
	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);
	_tmp0_ = g_settings_new ("io.elementary.desktop.wm.behavior");
	_g_object_unref0 (self->priv->behavior_settings);
	self->priv->behavior_settings = _tmp0_;
	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;
	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));
	/**
	         * {@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));
	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_;
	GeeHashMap* _tmp5_;
	GeeHashSet* _tmp6_;
	GeeHashMap* _tmp7_;
	self->priv = gala_window_manager_gala_get_instance_private (self);
	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->mapping = _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->destroying = _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->unminimizing = _tmp4_;
	_tmp5_ = gee_hash_map_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, GALA_WINDOW_MANAGER_GALA_TYPE_SIZE_CHANGE_INFO, (GBoxedCopyFunc) gala_window_manager_gala_size_change_info_ref, (GDestroyNotify) gala_window_manager_gala_size_change_info_unref, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->pending_size_change = _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->changing_size = _tmp6_;
	_tmp7_ = gee_hash_map_new (meta_window_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, GALA_TYPE_WINDOW_GROUP, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->overridden_window_group = (GeeMap*) _tmp7_;
}

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->_background_group);
	_g_object_unref0 (self->priv->layout_manager);
	_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->input_method);
	_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->window_menu_manager);
	_g_object_unref0 (self->priv->notification_stack);
	_g_object_unref0 (self->priv->lock_screen_manager);
	_g_object_unref0 (self->priv->modal_stack);
	_g_object_unref0 (self->priv->minimizing);
	_g_object_unref0 (self->priv->mapping);
	_g_object_unref0 (self->priv->destroying);
	_g_object_unref0 (self->priv->unminimizing);
	_g_object_unref0 (self->priv->pending_size_change);
	_g_object_unref0 (self->priv->changing_size);
	_g_object_unref0 (self->priv->behavior_settings);
	_g_object_unref0 (self->priv->overridden_window_group);
	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, G_TYPE_FLAG_NONE);
	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_BACKGROUND_GROUP_PROPERTY:
		g_value_set_object (value, gala_window_manager_get_background_group ((GalaWindowManager*) 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_BACKGROUND_GROUP_PROPERTY:
		gala_window_manager_set_background_group ((GalaWindowManager*) 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);
}

