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

/**/
/*  Copyright (C) 2012-2014 Tom Beckmann, Rico Tzschichholz*/
/**/
/*  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 <stdlib.h>
#include <string.h>
#include <glib.h>
#include <glib-object.h>
#include <gio/gio.h>
#include "gala.h"
#include <meta/meta-plugin.h>
#include <clutter/clutter.h>
#include <meta/meta-background-group.h>
#include <meta/window.h>
#include <gee.h>
#include <meta/meta-window-actor.h>
#include <meta/compositor.h>
#include <meta/boxes.h>
#include <meta/common.h>
#include <meta/keybindings.h>
#include <meta/meta-close-dialog.h>
#include <float.h>
#include <math.h>
#include <meta/display.h>
#include <meta/meta-background.h>
#include <meta/compositor-mutter.h>
#include <meta/util.h>
#include <meta/meta-background-actor.h>
#include "config.h"
#include <meta/prefs.h>
#include <meta/meta-monitor-manager.h>
#include <systemd/sd-daemon.h>
#include <meta/meta-context.h>
#include <meta/meta-workspace-manager.h>
#include <meta/workspace.h>
#include <gdk/gdk.h>
#include <gtk/gtk.h>
#include <glib/gi18n-lib.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#include <X11/Xregion.h>

#define GALA_DAEMON_DBUS_NAME "org.pantheon.gala.daemon"
#define GALA_DAEMON_DBUS_OBJECT_PATH "/org/pantheon/gala/daemon"
#define GALA_WINDOW_MANAGER_GALA_NUDGE_GAP ((gfloat) 32)
#define GALA_WINDOW_MANAGER_GALA_WORKSPACE_GAP 24
#define GALA_NOTIFICATION_STACK_TRANSITION_ENTRY_NAME "entry"
#define GALA_NOTIFICATION_STACK_TRANSITION_MOVE_STACK_ID "move-stack"
#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_DAEMON (gala_daemon_get_type ())
#define GALA_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_DAEMON, GalaDaemon))
#define GALA_IS_DAEMON(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_DAEMON))
#define GALA_DAEMON_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GALA_TYPE_DAEMON, GalaDaemonIface))

typedef struct _GalaDaemon GalaDaemon;
typedef struct _GalaDaemonIface GalaDaemonIface;

#define GALA_TYPE_DAEMON_PROXY (gala_daemon_proxy_get_type ())
typedef GDBusProxy GalaDaemonProxy;
typedef GDBusProxyClass GalaDaemonProxyClass;
typedef struct _GalaDaemonShowWindowMenuReadyData GalaDaemonShowWindowMenuReadyData;
typedef struct _GalaDaemonShowDesktopMenuReadyData GalaDaemonShowDesktopMenuReadyData;

#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_SCREEN_SHIELD (gala_screen_shield_get_type ())
#define GALA_SCREEN_SHIELD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SCREEN_SHIELD, GalaScreenShield))
#define GALA_SCREEN_SHIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SCREEN_SHIELD, GalaScreenShieldClass))
#define GALA_IS_SCREEN_SHIELD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SCREEN_SHIELD))
#define GALA_IS_SCREEN_SHIELD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SCREEN_SHIELD))
#define GALA_SCREEN_SHIELD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SCREEN_SHIELD, GalaScreenShieldClass))

typedef struct _GalaScreenShield GalaScreenShield;
typedef struct _GalaScreenShieldClass GalaScreenShieldClass;

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

typedef struct _GalaPointerLocator GalaPointerLocator;
typedef struct _GalaPointerLocatorClass GalaPointerLocatorClass;

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

typedef struct _GalaSystemBackground GalaSystemBackground;
typedef struct _GalaSystemBackgroundClass GalaSystemBackgroundClass;

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

typedef struct _GalaWindowSwitcher GalaWindowSwitcher;
typedef struct _GalaWindowSwitcherClass GalaWindowSwitcherClass;

#define GALA_TYPE_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_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_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_ACCENT_COLOR_MANAGER (gala_accent_color_manager_get_type ())
#define GALA_ACCENT_COLOR_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_ACCENT_COLOR_MANAGER, GalaAccentColorManager))
#define GALA_ACCENT_COLOR_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_ACCENT_COLOR_MANAGER, GalaAccentColorManagerClass))
#define GALA_IS_ACCENT_COLOR_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_ACCENT_COLOR_MANAGER))
#define GALA_IS_ACCENT_COLOR_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_ACCENT_COLOR_MANAGER))
#define GALA_ACCENT_COLOR_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_ACCENT_COLOR_MANAGER, GalaAccentColorManagerClass))

typedef struct _GalaAccentColorManager GalaAccentColorManager;
typedef struct _GalaAccentColorManagerClass GalaAccentColorManagerClass;

#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_GESTURE_TRACKER (gala_gesture_tracker_get_type ())
#define GALA_GESTURE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_GESTURE_TRACKER, GalaGestureTracker))
#define GALA_GESTURE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_GESTURE_TRACKER, GalaGestureTrackerClass))
#define GALA_IS_GESTURE_TRACKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_GESTURE_TRACKER))
#define GALA_IS_GESTURE_TRACKER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_GESTURE_TRACKER))
#define GALA_GESTURE_TRACKER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_GESTURE_TRACKER, GalaGestureTrackerClass))

typedef struct _GalaGestureTracker GalaGestureTracker;
typedef struct _GalaGestureTrackerClass GalaGestureTrackerClass;
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_WORKSPACE_VIEW_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_ENABLE_ANIMATIONS_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_SCREEN_SHIELD_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_SCREENSAVER_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_WINDOW_TRACKER_PROPERTY,
	GALA_WINDOW_MANAGER_GALA_NUM_PROPERTIES
};
static GParamSpec* gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
#define _g_free0(var) ((var == NULL) ? NULL : (var = (g_free (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))

#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;
typedef struct _Block9Data Block9Data;

#define GALA_TYPE_DBUS_ACCELERATOR (gala_dbus_accelerator_get_type ())
#define GALA_DBUS_ACCELERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_DBUS_ACCELERATOR, GalaDBusAccelerator))
#define GALA_DBUS_ACCELERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_DBUS_ACCELERATOR, GalaDBusAcceleratorClass))
#define GALA_IS_DBUS_ACCELERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_DBUS_ACCELERATOR))
#define GALA_IS_DBUS_ACCELERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_DBUS_ACCELERATOR))
#define GALA_DBUS_ACCELERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_DBUS_ACCELERATOR, GalaDBusAcceleratorClass))

typedef struct _GalaDBusAccelerator GalaDBusAccelerator;
typedef struct _GalaDBusAcceleratorClass GalaDBusAcceleratorClass;
#define __vala_ClutterColor_free0(var) ((var == NULL) ? NULL : (var = (_vala_ClutterColor_free (var), NULL)))

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

typedef struct _GalaBackgroundContainer GalaBackgroundContainer;
typedef struct _GalaBackgroundContainerClass GalaBackgroundContainerClass;

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

typedef struct _GalaDwellClickTimer GalaDwellClickTimer;
typedef struct _GalaDwellClickTimerClass GalaDwellClickTimerClass;

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

typedef struct _GalaMultitaskingView GalaMultitaskingView;
typedef struct _GalaMultitaskingViewClass GalaMultitaskingViewClass;

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

typedef struct _GalaWindowOverview GalaWindowOverview;
typedef struct _GalaWindowOverviewClass GalaWindowOverviewClass;

#define GALA_TYPE_GESTURE (gala_gesture_get_type ())
#define GALA_GESTURE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_GESTURE, GalaGesture))
#define GALA_GESTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_GESTURE, GalaGestureClass))
#define GALA_IS_GESTURE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_GESTURE))
#define GALA_IS_GESTURE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_GESTURE))
#define GALA_GESTURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_GESTURE, GalaGestureClass))

typedef struct _GalaGesture GalaGesture;
typedef struct _GalaGestureClass GalaGestureClass;
typedef struct _GalaGesturePrivate GalaGesturePrivate;
typedef enum  {
	GALA_GESTURE_DIRECTION_UNKNOWN = 0,
	GALA_GESTURE_DIRECTION_UP = 1,
	GALA_GESTURE_DIRECTION_DOWN = 2,
	GALA_GESTURE_DIRECTION_LEFT = 3,
	GALA_GESTURE_DIRECTION_RIGHT = 4,
	GALA_GESTURE_DIRECTION_IN = 5,
	GALA_GESTURE_DIRECTION_OUT = 6
} GalaGestureDirection;

#define GALA_TYPE_GESTURE_DIRECTION (gala_gesture_direction_get_type ())

#define GALA_TYPE_GESTURE_SETTINGS (gala_gesture_settings_get_type ())
#define GALA_GESTURE_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_GESTURE_SETTINGS, GalaGestureSettings))
#define GALA_GESTURE_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_GESTURE_SETTINGS, GalaGestureSettingsClass))
#define GALA_IS_GESTURE_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_GESTURE_SETTINGS))
#define GALA_IS_GESTURE_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_GESTURE_SETTINGS))
#define GALA_GESTURE_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_GESTURE_SETTINGS, GalaGestureSettingsClass))

typedef struct _GalaGestureSettings GalaGestureSettings;
typedef struct _GalaGestureSettingsClass GalaGestureSettingsClass;
typedef struct _Block10Data Block10Data;
typedef void (*GalaGestureTrackerOnUpdate) (gdouble percentage, gpointer user_data);
typedef void (*GalaGestureTrackerOnEnd) (gdouble percentage, gboolean cancel_action, gint calculated_duration, gpointer user_data);
typedef void (*GalaGestureTrackerOnBegin) (gdouble percentage, gpointer user_data);
typedef enum  {
	GALA_INPUT_AREA_NONE,
	GALA_INPUT_AREA_FULLSCREEN,
	GALA_INPUT_AREA_DEFAULT
} GalaInputArea;

#define GALA_TYPE_INPUT_AREA (gala_input_area_get_type ())
typedef struct _Block11Data Block11Data;
typedef struct _Block12Data Block12Data;
#define _clutter_grab_unref0(var) ((var == NULL) ? NULL : (var = (clutter_grab_unref (var), NULL)))
typedef struct _Block13Data Block13Data;
typedef struct _Block14Data Block14Data;
typedef struct _Block15Data Block15Data;
typedef struct _Block16Data Block16Data;
typedef struct _Block17Data Block17Data;

#define GALA_WINDOW_LISTENER_TYPE_WINDOW_GEOMETRY (gala_window_listener_window_geometry_get_type ())
typedef struct _GalaWindowListenerWindowGeometry GalaWindowListenerWindowGeometry;

#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_window_listener_window_geometry_free0(var) ((var == NULL) ? NULL : (var = (gala_window_listener_window_geometry_free (var), NULL)))
typedef struct _Block18Data Block18Data;
typedef struct _Block19Data Block19Data;
typedef struct _Block20Data Block20Data;
typedef struct _Block21Data Block21Data;
typedef struct _Block22Data Block22Data;
typedef struct _Block23Data Block23Data;
typedef struct _Block24Data Block24Data;
typedef struct _Block25Data Block25Data;
typedef struct _Block26Data Block26Data;
typedef struct _Block27Data Block27Data;
typedef struct _Block28Data Block28Data;
typedef struct _Block29Data Block29Data;
typedef struct _Block30Data Block30Data;
typedef struct _Block31Data Block31Data;

#define GALA_TYPE_SAFE_WINDOW_CLONE (gala_safe_window_clone_get_type ())
#define GALA_SAFE_WINDOW_CLONE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GALA_TYPE_SAFE_WINDOW_CLONE, GalaSafeWindowClone))
#define GALA_SAFE_WINDOW_CLONE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GALA_TYPE_SAFE_WINDOW_CLONE, GalaSafeWindowCloneClass))
#define GALA_IS_SAFE_WINDOW_CLONE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GALA_TYPE_SAFE_WINDOW_CLONE))
#define GALA_IS_SAFE_WINDOW_CLONE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GALA_TYPE_SAFE_WINDOW_CLONE))
#define GALA_SAFE_WINDOW_CLONE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GALA_TYPE_SAFE_WINDOW_CLONE, GalaSafeWindowCloneClass))

typedef struct _GalaSafeWindowClone GalaSafeWindowClone;
typedef struct _GalaSafeWindowCloneClass GalaSafeWindowCloneClass;
typedef struct _Block32Data Block32Data;

#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 _Block33Data Block33Data;
typedef struct _Block34Data Block34Data;

#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 _g_date_time_unref0(var) ((var == NULL) ? NULL : (var = (g_date_time_unref (var), NULL)))

#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;
typedef struct _GalaWindowManagerGalaScreenshotCurrentWindowData GalaWindowManagerGalaScreenshotCurrentWindowData;
typedef struct _GalaWindowManagerGalaScreenshotAreaData GalaWindowManagerGalaScreenshotAreaData;
typedef struct _GalaWindowManagerGalaScreenshotScreenData GalaWindowManagerGalaScreenshotScreenData;

struct _GalaDaemonIface {
	GTypeInterface parent_iface;
	void (*show_window_menu) (GalaDaemon* self, GalaWindowFlags flags, gint x, gint y, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*show_window_menu_finish) (GalaDaemon* self, GAsyncResult* _res_, GError** error);
	void (*show_desktop_menu) (GalaDaemon* self, gint x, gint y, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*show_desktop_menu_finish) (GalaDaemon* self, GAsyncResult* _res_, GError** error);
};

struct _GalaDaemonShowWindowMenuReadyData {
	GDBusMethodInvocation* _invocation_;
	GalaWindowFlags flags;
	gint x;
	gint y;
};

struct _GalaDaemonShowDesktopMenuReadyData {
	GDBusMethodInvocation* _invocation_;
	gint x;
	gint y;
};

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;
	GalaActivatableComponent* _workspace_view;
	gboolean _enable_animations;
	GalaScreenShield* _screen_shield;
	GalaPointerLocator* _pointer_locator;
	GalaSystemBackground* system_background;
	MetaPluginInfo info;
	GalaWindowSwitcher* winswitcher;
	GalaActivatableComponent* window_overview;
	GalaScreenSaverManager* _screensaver;
	GalaHotCornerManager* hot_corner_manager;
	GalaWindowTracker* _window_tracker;
	GalaZoom* zoom;
	GalaAccentColorManager* accent_color_manager;
	ClutterActor* tile_preview;
	MetaWindow* moving;
	GalaDaemon* daemon_proxy;
	GalaNotificationStack* notification_stack;
	GeeLinkedList* modal_stack;
	GeeHashSet* minimizing;
	GeeHashSet* maximizing;
	GeeHashSet* unmaximizing;
	GeeHashSet* mapping;
	GeeHashSet* destroying;
	GeeHashSet* unminimizing;
	GHashTable* ws_assoc;
	MetaSizeChange* which_change;
	MetaRectangle old_rect_size_change;
	GSettings* animations_settings;
	GSettings* behavior_settings;
	GalaGestureTracker* gesture_tracker;
	gboolean animating_switch_workspace;
	gboolean switch_workspace_with_gesture;
	GList* windows;
	GList* parents;
	GList* tmp_actors;
};

struct _Block9Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	MetaDisplay* display;
	GalaPluginManager* plugin_manager;
};

struct _GalaGesture {
	GTypeInstance parent_instance;
	volatile int ref_count;
	GalaGesturePrivate * priv;
	GdkEventType type;
	GalaGestureDirection direction;
	gint fingers;
	GdkInputSource performed_on_device_type;
};

struct _GalaGestureClass {
	GTypeClass parent_class;
	void (*finalize) (GalaGesture *self);
};

struct _Block10Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	gfloat nudge_gap;
	gfloat dest;
};

struct _Block11Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	guint fade_out_duration;
	gdouble* op_keyframes;
	gint op_keyframes_length1;
	gint _op_keyframes_size_;
	GValue* opacity;
	gint opacity_length1;
	gint _opacity_size_;
	MetaWindow* bottom_window;
};

struct _Block12Data {
	int _ref_count_;
	Block11Data * _data11_;
	ClutterActor* actor;
};

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

struct _Block14Data {
	int _ref_count_;
	Block13Data * _data13_;
	gulong minimize_handler_id;
};

struct _Block15Data {
	int _ref_count_;
	Block13Data * _data13_;
	gulong minimize_handler_id;
};

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

struct _Block17Data {
	int _ref_count_;
	Block16Data * _data16_;
	ClutterActor* old_actor;
	gulong maximize_old_handler_id;
	gulong handler_id;
};

struct _GalaWindowListenerWindowGeometry {
	MetaRectangle inner;
	MetaRectangle outer;
};

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

struct _Block19Data {
	int _ref_count_;
	Block18Data * _data18_;
	gulong unminimize_handler_id;
};

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

struct _Block21Data {
	int _ref_count_;
	Block20Data * _data20_;
	gulong map_handler_id;
};

struct _Block22Data {
	int _ref_count_;
	Block20Data * _data20_;
	gulong map_handler_id;
};

struct _Block23Data {
	int _ref_count_;
	Block20Data * _data20_;
	gulong map_handler_id;
};

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

struct _Block25Data {
	int _ref_count_;
	Block24Data * _data24_;
	gulong destroy_handler_id;
};

struct _Block26Data {
	int _ref_count_;
	Block24Data * _data24_;
	gulong destroy_handler_id;
};

struct _Block27Data {
	int _ref_count_;
	Block24Data * _data24_;
	gulong destroy_handler_id;
};

struct _Block28Data {
	int _ref_count_;
	Block24Data * _data24_;
	gulong destroy_handler_id;
};

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

struct _Block30Data {
	int _ref_count_;
	Block29Data * _data29_;
	ClutterActor* old_actor;
	gulong unmaximize_old_handler_id;
	gulong handler_id;
};

struct _Block31Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	ClutterActor* in_group;
	ClutterActor* out_group;
	ClutterActor* wallpaper;
	ClutterClone* wallpaper_clone;
	gfloat x2;
	ClutterAnimationMode animation_mode;
	MetaMotionDirection direction;
};

struct _Block32Data {
	int _ref_count_;
	Block31Data * _data31_;
	gboolean cancel_action;
};

struct _Block33Data {
	int _ref_count_;
	GalaWindowManagerGala* self;
	GalaAccessDialog* dialog;
};

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

struct _GalaWindowManagerGalaScreenshotCurrentWindowData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	gboolean clipboard;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* filename;
	gchar* _tmp3_;
	gboolean success;
	gchar* filename_used;
	gchar* _tmp4_;
	GalaScreenshotManager* screenshot_manager;
	GalaScreenshotManager* _tmp5_;
	gboolean _tmp6_;
	gchar* _tmp7_;
	GError* _inner_error0_;
};

struct _GalaWindowManagerGalaScreenshotAreaData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	gboolean clipboard;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* filename;
	gchar* _tmp3_;
	gboolean success;
	gchar* filename_used;
	gchar* _tmp4_;
	GalaScreenshotManager* screenshot_manager;
	GalaScreenshotManager* _tmp5_;
	gint x;
	gint y;
	gint w;
	gint h;
	GalaScreenshotManager* _tmp6_;
	gint _tmp7_;
	gint _tmp8_;
	gint _tmp9_;
	gint _tmp10_;
	GalaScreenshotManager* _tmp11_;
	const gchar* _tmp12_;
	gboolean _tmp13_;
	gchar* _tmp14_;
	GError* _inner_error0_;
};

struct _GalaWindowManagerGalaScreenshotScreenData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GTask* _async_result;
	GalaWindowManagerGala* self;
	gboolean clipboard;
	gchar* _tmp0_;
	gchar* _tmp1_;
	gchar* _tmp2_;
	gchar* filename;
	gchar* _tmp3_;
	gboolean success;
	gchar* filename_used;
	gchar* _tmp4_;
	GalaScreenshotManager* screenshot_manager;
	GalaScreenshotManager* _tmp5_;
	gboolean _tmp6_;
	gchar* _tmp7_;
	GError* _inner_error0_;
};

static gint GalaWindowManagerGala_private_offset;
static gpointer gala_window_manager_gala_parent_class = NULL;
VALA_EXTERN GeeSet* gala_close_dialog_open_dialogs;
static GalaWindowManagerIface * gala_window_manager_gala_gala_window_manager_parent_iface = NULL;

VALA_EXTERN GType gala_daemon_proxy_get_type (void) G_GNUC_CONST ;
VALA_EXTERN guint gala_daemon_register_object (void* object,
                                   GDBusConnection* connection,
                                   const gchar* path,
                                   GError** error);
VALA_EXTERN GType gala_daemon_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDaemon, g_object_unref)
VALA_EXTERN void gala_daemon_show_window_menu (GalaDaemon* self,
                                   GalaWindowFlags flags,
                                   gint x,
                                   gint y,
                                   GAsyncReadyCallback _callback_,
                                   gpointer _user_data_);
VALA_EXTERN void gala_daemon_show_window_menu_finish (GalaDaemon* self,
                                          GAsyncResult* _res_,
                                          GError** error);
VALA_EXTERN void gala_daemon_show_desktop_menu (GalaDaemon* self,
                                    gint x,
                                    gint y,
                                    GAsyncReadyCallback _callback_,
                                    gpointer _user_data_);
VALA_EXTERN void gala_daemon_show_desktop_menu_finish (GalaDaemon* self,
                                           GAsyncResult* _res_,
                                           GError** error);
static GType gala_daemon_get_type_once (void);
static void gala_daemon_proxy_g_signal (GDBusProxy* proxy,
                                 const gchar* sender_name,
                                 const gchar* signal_name,
                                 GVariant* parameters);
static void _vala_g_async_ready_callback (GObject *source_object,
                                   GAsyncResult *res,
                                   void *user_data);
static void gala_daemon_proxy_show_window_menu_async (GalaDaemon* self,
                                               GalaWindowFlags flags,
                                               gint x,
                                               gint y,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_);
static void gala_daemon_proxy_show_window_menu_finish (GalaDaemon* self,
                                                GAsyncResult* _res_,
                                                GError** error);
static void gala_daemon_proxy_show_desktop_menu_async (GalaDaemon* self,
                                                gint x,
                                                gint y,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
static void gala_daemon_proxy_show_desktop_menu_finish (GalaDaemon* self,
                                                 GAsyncResult* _res_,
                                                 GError** error);
static void gala_daemon_proxy_gala_daemon_interface_init (GalaDaemonIface* iface);
static void _dbus_gala_daemon_show_window_menu (GalaDaemon* self,
                                         GVariant* _parameters_,
                                         GDBusMethodInvocation* invocation);
static void _dbus_gala_daemon_show_window_menu_ready (GObject * source_object,
                                               GAsyncResult * _res_,
                                               gpointer _user_data_);
static void _dbus_gala_daemon_show_desktop_menu (GalaDaemon* self,
                                          GVariant* _parameters_,
                                          GDBusMethodInvocation* invocation);
static void _dbus_gala_daemon_show_desktop_menu_ready (GObject * source_object,
                                                GAsyncResult * _res_,
                                                gpointer _user_data_);
static void gala_daemon_dbus_interface_method_call (GDBusConnection* connection,
                                             const gchar* sender,
                                             const gchar* object_path,
                                             const gchar* interface_name,
                                             const gchar* method_name,
                                             GVariant* parameters,
                                             GDBusMethodInvocation* invocation,
                                             gpointer user_data);
static GVariant* gala_daemon_dbus_interface_get_property (GDBusConnection* connection,
                                                   const gchar* sender,
                                                   const gchar* object_path,
                                                   const gchar* interface_name,
                                                   const gchar* property_name,
                                                   GError** error,
                                                   gpointer user_data);
static gboolean gala_daemon_dbus_interface_set_property (GDBusConnection* connection,
                                                  const gchar* sender,
                                                  const gchar* object_path,
                                                  const gchar* interface_name,
                                                  const gchar* property_name,
                                                  GVariant* value,
                                                  GError** error,
                                                  gpointer user_data);
static void _gala_daemon_unregister_object (gpointer user_data);
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_screen_shield_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaScreenShield, g_object_unref)
VALA_EXTERN GType gala_pointer_locator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaPointerLocator, g_object_unref)
VALA_EXTERN GType gala_system_background_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaSystemBackground, g_object_unref)
VALA_EXTERN GType gala_window_switcher_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowSwitcher, g_object_unref)
VALA_EXTERN GType gala_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_window_tracker_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowTracker, g_object_unref)
VALA_EXTERN GType gala_zoom_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaZoom, g_object_unref)
VALA_EXTERN GType gala_accent_color_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaAccentColorManager, 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_gesture_tracker_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaGestureTracker, g_object_unref)
static void _g_object_unref0_ (gpointer var);
static inline void _g_list_free__g_object_unref0_ (GList* self);
static void gala_window_manager_gala_real_start (MetaPlugin* base);
static gboolean gala_window_manager_gala_show_stage (GalaWindowManagerGala* self);
static void gala_window_manager_gala_daemon_appeared (GalaWindowManagerGala* self);
static void _gala_window_manager_gala_daemon_appeared_gbus_name_appeared_callback (GDBusConnection* connection,
                                                                            const gchar* name,
                                                                            const gchar* name_owner,
                                                                            gpointer self);
static void gala_window_manager_gala_lost_daemon (GalaWindowManagerGala* self);
static void _gala_window_manager_gala_lost_daemon_gbus_name_vanished_callback (GDBusConnection* connection,
                                                                        const gchar* name,
                                                                        gpointer self);
VALA_EXTERN void gala_access_dialog_watch_portal (void);
static void __lambda142_ (GalaWindowManagerGala* self);
VALA_EXTERN void gala_system_background_refresh (void);
static void ___lambda142__meta_display_gl_video_memory_purged (MetaDisplay* _sender,
                                                        gpointer self);
static void ___lambda138_ (GalaWindowManagerGala* self,
                    GObject* obj,
                    GAsyncResult* res);
static void ____lambda138__gasync_ready_callback (GObject* source_object,
                                           GAsyncResult* res,
                                           gpointer self);
VALA_EXTERN GType gala_plugin_manager_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaPluginManager, g_object_unref)
static Block9Data* block9_data_ref (Block9Data* _data9_);
static void block9_data_unref (void * _userdata_);
VALA_EXTERN GalaScreenShield* gala_screen_shield_new (GalaWindowManager* wm);
VALA_EXTERN GalaScreenShield* gala_screen_shield_construct (GType object_type,
                                                GalaWindowManager* wm);
static void gala_window_manager_gala_set_screen_shield (GalaWindowManagerGala* self,
                                                 GalaScreenShield* value);
VALA_EXTERN GalaScreenShield* gala_window_manager_gala_get_screen_shield (GalaWindowManagerGala* self);
VALA_EXTERN GalaScreenSaverManager* gala_screen_saver_manager_new (GalaScreenShield* shield);
VALA_EXTERN GalaScreenSaverManager* gala_screen_saver_manager_construct (GType object_type,
                                                             GalaScreenShield* shield);
static void gala_window_manager_gala_set_screensaver (GalaWindowManagerGala* self,
                                               GalaScreenSaverManager* value);
VALA_EXTERN void gala_dbus_init (GalaWindowManager* _wm);
VALA_EXTERN gpointer gala_dbus_accelerator_ref (gpointer instance);
VALA_EXTERN void gala_dbus_accelerator_unref (gpointer instance);
VALA_EXTERN GParamSpec* gala_param_spec_dbus_accelerator (const gchar* name,
                                              const gchar* nick,
                                              const gchar* blurb,
                                              GType object_type,
                                              GParamFlags flags);
VALA_EXTERN void gala_value_set_dbus_accelerator (GValue* value,
                                      gpointer v_object);
VALA_EXTERN void gala_value_take_dbus_accelerator (GValue* value,
                                       gpointer v_object);
VALA_EXTERN gpointer gala_value_get_dbus_accelerator (const GValue* value);
VALA_EXTERN GType gala_dbus_accelerator_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDBusAccelerator, gala_dbus_accelerator_unref)
VALA_EXTERN guint gala_dbus_accelerator_register_object (void* object,
                                             GDBusConnection* connection,
                                             const gchar* path,
                                             GError** error);
VALA_EXTERN GalaDBusAccelerator* gala_dbus_accelerator_init (GalaWindowManager* wm);
VALA_EXTERN void gala_media_feedback_init (void);
VALA_EXTERN void gala_window_listener_init (MetaDisplay* display);
VALA_EXTERN void gala_keyboard_manager_init (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 GalaWindowTracker* gala_window_manager_gala_get_window_tracker (GalaWindowManagerGala* self);
VALA_EXTERN void gala_window_tracker_init (GalaWindowTracker* self,
                               MetaDisplay* display);
VALA_EXTERN GalaNotificationStack* gala_notification_stack_new (MetaDisplay* display);
VALA_EXTERN GalaNotificationStack* gala_notification_stack_construct (GType object_type,
                                                          MetaDisplay* display);
VALA_EXTERN GalaScreenSaverManager* gala_window_manager_gala_get_screensaver (GalaWindowManagerGala* self);
static void 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);
static void _vala_ClutterColor_free (ClutterColor* self);
static gboolean __lambda47_ (GalaWindowManagerGala* self);
VALA_EXTERN void gala_workspace_manager_init (GalaWindowManager* wm);
static gboolean ___lambda47__gsource_func (gpointer self);
VALA_EXTERN GalaSystemBackground* gala_system_background_new (MetaDisplay* display);
VALA_EXTERN GalaSystemBackground* gala_system_background_construct (GType object_type,
                                                        MetaDisplay* display);
VALA_EXTERN MetaBackgroundActor* gala_system_background_get_background_actor (GalaSystemBackground* self);
VALA_EXTERN GalaBackgroundContainer* gala_background_container_new (MetaDisplay* display);
VALA_EXTERN GalaBackgroundContainer* gala_background_container_construct (GType object_type,
                                                              MetaDisplay* display);
VALA_EXTERN GType gala_background_container_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaBackgroundContainer, g_object_unref)
static void gala_window_manager_gala_on_show_background_menu (GalaWindowManagerGala* self,
                                                       gint x,
                                                       gint y);
static void _gala_window_manager_gala_on_show_background_menu_gala_background_container_show_background_menu (GalaBackgroundContainer* _sender,
                                                                                                       gint x,
                                                                                                       gint y,
                                                                                                       gpointer self);
VALA_EXTERN GalaPointerLocator* gala_pointer_locator_new (GalaWindowManager* wm);
VALA_EXTERN GalaPointerLocator* gala_pointer_locator_construct (GType object_type,
                                                    GalaWindowManager* wm);
static void gala_window_manager_gala_set_pointer_locator (GalaWindowManagerGala* self,
                                                   GalaPointerLocator* value);
VALA_EXTERN GalaPointerLocator* gala_window_manager_gala_get_pointer_locator (GalaWindowManagerGala* self);
VALA_EXTERN GalaDwellClickTimer* gala_dwell_click_timer_new (GalaWindowManager* wm);
VALA_EXTERN GalaDwellClickTimer* gala_dwell_click_timer_construct (GType object_type,
                                                       GalaWindowManager* wm);
VALA_EXTERN GType gala_dwell_click_timer_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaDwellClickTimer, g_object_unref)
static void gala_window_manager_gala_handle_switch_to_workspace_end (MetaDisplay* display,
                                                              MetaWindow* window,
                                                              ClutterKeyEvent* event,
                                                              MetaKeyBinding* binding,
                                                              GalaWindowManagerGala* self);
static void gala_window_manager_gala_handle_move_to_workspace_end (MetaDisplay* display,
                                                            MetaWindow* window,
                                                            ClutterKeyEvent* event,
                                                            MetaKeyBinding* binding,
                                                            GalaWindowManagerGala* self);
static void gala_window_manager_gala_handle_cycle_workspaces (MetaDisplay* display,
                                                       MetaWindow* window,
                                                       ClutterKeyEvent* event,
                                                       MetaKeyBinding* binding,
                                                       GalaWindowManagerGala* self);
static void gala_window_manager_gala_handle_applications_menu (MetaDisplay* display,
                                                        MetaWindow* window,
                                                        ClutterKeyEvent* event,
                                                        MetaKeyBinding* binding,
                                                        GalaWindowManagerGala* self);
static void gala_window_manager_gala_handle_screenshot (MetaDisplay* display,
                                                 MetaWindow* window,
                                                 ClutterKeyEvent* event,
                                                 MetaKeyBinding* binding,
                                                 GalaWindowManagerGala* self);
static void __lambda74_ (GalaWindowManagerGala* self);
static void gala_window_manager_gala_launch_action (GalaWindowManagerGala* self,
                                             const gchar* action_key);
static void ___lambda74__meta_display_overlay_key (MetaDisplay* _sender,
                                            gpointer self);
static void __lambda75_ (GalaWindowManagerGala* self);
static void ___lambda75__meta_key_handler_func (MetaDisplay* display,
                                         MetaWindow* window,
                                         ClutterKeyEvent* event,
                                         MetaKeyBinding* binding,
                                         gpointer self);
static void __lambda76_ (GalaWindowManagerGala* self);
static void ___lambda76__meta_key_handler_func (MetaDisplay* display,
                                         MetaWindow* window,
                                         ClutterKeyEvent* event,
                                         MetaKeyBinding* binding,
                                         gpointer self);
static void __lambda77_ (GalaWindowManagerGala* self);
static void ___lambda77__meta_key_handler_func (MetaDisplay* display,
                                         MetaWindow* window,
                                         ClutterKeyEvent* event,
                                         MetaKeyBinding* binding,
                                         gpointer self);
static void gala_window_manager_gala_handle_switch_to_workspace (MetaDisplay* display,
                                                          MetaWindow* window,
                                                          ClutterKeyEvent* event,
                                                          MetaKeyBinding* binding,
                                                          GalaWindowManagerGala* self);
static void __lambda127_ (GalaWindowManagerGala* self);
static void ___lambda127__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda128_ (GalaWindowManagerGala* self);
static void ___lambda128__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void gala_window_manager_gala_handle_move_to_workspace (MetaDisplay* display,
                                                        MetaWindow* window,
                                                        ClutterKeyEvent* event,
                                                        MetaKeyBinding* binding,
                                                        GalaWindowManagerGala* self);
static void __lambda129_ (GalaWindowManagerGala* self);
static void ___lambda129__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda130_ (GalaWindowManagerGala* self);
static void ___lambda130__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
VALA_EXTERN void gala_internal_utils_reload_shadow (void);
static void _gala_internal_utils_reload_shadow_g_settings_changed (GSettings* _sender,
                                                            const gchar* key,
                                                            gpointer self);
static void gala_window_manager_gala_on_monitors_changed (GalaWindowManagerGala* self);
static void _gala_window_manager_gala_on_monitors_changed_meta_monitor_manager_monitors_changed (MetaMonitorManager* _sender,
                                                                                          gpointer self);
VALA_EXTERN GalaHotCornerManager* gala_hot_corner_manager_new (GalaWindowManager* wm,
                                                   GSettings* behavior_settings);
VALA_EXTERN GalaHotCornerManager* gala_hot_corner_manager_construct (GType object_type,
                                                         GalaWindowManager* wm,
                                                         GSettings* behavior_settings);
static void _gala_window_manager_gala_update_input_area_gala_hot_corner_manager_on_configured (GalaHotCornerManager* _sender,
                                                                                        gpointer self);
VALA_EXTERN void gala_hot_corner_manager_configure (GalaHotCornerManager* self);
VALA_EXTERN GalaZoom* gala_zoom_new (GalaWindowManager* wm);
VALA_EXTERN GalaZoom* gala_zoom_construct (GType object_type,
                               GalaWindowManager* wm);
VALA_EXTERN GalaAccentColorManager* gala_accent_color_manager_new (void);
VALA_EXTERN GalaAccentColorManager* gala_accent_color_manager_construct (GType object_type);
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_gala_plugin_manager_regions_changed (GalaPluginManager* _sender,
                                                                                      gpointer self);
VALA_EXTERN const gchar* gala_plugin_manager_get_workspace_view_provider (GalaPluginManager* self);
VALA_EXTERN GalaPlugin* gala_plugin_manager_get_plugin (GalaPluginManager* self,
                                            const gchar* id);
VALA_EXTERN GalaMultitaskingView* gala_multitasking_view_new (GalaWindowManager* wm);
VALA_EXTERN GalaMultitaskingView* gala_multitasking_view_construct (GType object_type,
                                                        GalaWindowManager* wm);
VALA_EXTERN GType gala_multitasking_view_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaMultitaskingView, g_object_unref)
static void __lambda131_ (GalaWindowManagerGala* self);
static void ___lambda131__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
VALA_EXTERN const gchar* gala_plugin_manager_get_window_switcher_provider (GalaPluginManager* self);
VALA_EXTERN GalaWindowSwitcher* gala_window_switcher_new (GalaWindowManager* wm);
VALA_EXTERN GalaWindowSwitcher* gala_window_switcher_construct (GType object_type,
                                                    GalaWindowManager* wm);
VALA_EXTERN void gala_window_switcher_handle_switch_windows (MetaDisplay* display,
                                                 MetaWindow* window,
                                                 ClutterKeyEvent* event,
                                                 MetaKeyBinding* binding,
                                                 GalaWindowSwitcher* self);
VALA_EXTERN const gchar* gala_plugin_manager_get_window_overview_provider (GalaPluginManager* self);
VALA_EXTERN GalaWindowOverview* gala_window_overview_new (GalaWindowManager* wm);
VALA_EXTERN GalaWindowOverview* gala_window_overview_construct (GType object_type,
                                                    GalaWindowManager* wm);
VALA_EXTERN GType gala_window_overview_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaWindowOverview, g_object_unref)
static void __lambda135_ (GalaWindowManagerGala* self);
static void ___lambda135__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static void __lambda136_ (GalaWindowManagerGala* self);
static void _g_free0_ (gpointer var);
static void _g_variant_unref0_ (gpointer var);
static GVariant* _variant_new5 (gboolean value);
static void ___lambda136__meta_key_handler_func (MetaDisplay* display,
                                          MetaWindow* window,
                                          ClutterKeyEvent* event,
                                          MetaKeyBinding* binding,
                                          gpointer self);
static gboolean __lambda137_ (Block9Data* _data9_);
VALA_EXTERN void gala_plugin_manager_load_waiting_plugins (GalaPluginManager* self);
static gboolean ___lambda137__gsource_func (gpointer self);
static void __lambda64_ (GalaWindowManagerGala* self,
                  GObject* obj,
                  GAsyncResult* res);
static void ___lambda64__gasync_ready_callback (GObject* source_object,
                                         GAsyncResult* res,
                                         gpointer self);
VALA_EXTERN void gala_screen_shield_expand_to_screen_size (GalaScreenShield* self);
static void gala_window_manager_gala_screenshot_screen (GalaWindowManagerGala* self,
                                                 gboolean clipboard,
                                                 GAsyncReadyCallback _callback_,
                                                 gpointer _user_data_);
static void gala_window_manager_gala_screenshot_screen_finish (GalaWindowManagerGala* self,
                                                        GAsyncResult* _res_);
static void gala_window_manager_gala_screenshot_area (GalaWindowManagerGala* self,
                                               gboolean clipboard,
                                               GAsyncReadyCallback _callback_,
                                               gpointer _user_data_);
static void gala_window_manager_gala_screenshot_area_finish (GalaWindowManagerGala* self,
                                                      GAsyncResult* _res_);
static void gala_window_manager_gala_screenshot_current_window (GalaWindowManagerGala* self,
                                                         gboolean clipboard,
                                                         GAsyncReadyCallback _callback_,
                                                         gpointer _user_data_);
static void gala_window_manager_gala_screenshot_current_window_finish (GalaWindowManagerGala* self,
                                                                GAsyncResult* _res_);
VALA_EXTERN gpointer gala_gesture_ref (gpointer instance);
VALA_EXTERN void gala_gesture_unref (gpointer instance);
VALA_EXTERN GParamSpec* gala_param_spec_gesture (const gchar* name,
                                     const gchar* nick,
                                     const gchar* blurb,
                                     GType object_type,
                                     GParamFlags flags);
VALA_EXTERN void gala_value_set_gesture (GValue* value,
                             gpointer v_object);
VALA_EXTERN void gala_value_take_gesture (GValue* value,
                              gpointer v_object);
VALA_EXTERN gpointer gala_value_get_gesture (const GValue* value);
VALA_EXTERN GType gala_gesture_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaGesture, gala_gesture_unref)
static void gala_window_manager_gala_on_gesture_detected (GalaWindowManagerGala* self,
                                                   GalaGesture* gesture);
VALA_EXTERN GType gala_gesture_direction_get_type (void) G_GNUC_CONST ;
VALA_EXTERN gchar* gala_gesture_settings_get_string (const gchar* setting_id);
VALA_EXTERN GType gala_gesture_settings_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaGestureSettings, g_object_unref)
VALA_EXTERN GalaGestureSettings* gala_gesture_tracker_get_settings (GalaGestureTracker* self);
VALA_EXTERN MetaMotionDirection* gala_gesture_settings_get_natural_scroll_direction (GalaGestureSettings* self,
                                                                         GalaGesture* gesture);
static void gala_window_manager_gala_real_switch_to_next_workspace (GalaWindowManager* base,
                                                             MetaMotionDirection direction);
VALA_EXTERN void gala_multitasking_view_play_nudge_animation (GalaMultitaskingView* self,
                                                  MetaMotionDirection direction);
static void gala_window_manager_gala_play_nudge_animation (GalaWindowManagerGala* self,
                                                    MetaMotionDirection direction);
static Block10Data* block10_data_ref (Block10Data* _data10_);
static void block10_data_unref (void * _userdata_);
VALA_EXTERN gint gala_internal_utils_get_ui_scaling_factor (void);
VALA_EXTERN void gala_internal_utils_get_workspaces_geometry (MetaDisplay* display,
                                                  MetaRectangle* result);
static void __lambda124_ (Block10Data* _data10_,
                   gdouble percentage);
VALA_EXTERN gfloat gala_gesture_tracker_animation_value (gfloat initial_value,
                                             gfloat target_value,
                                             gdouble percentage,
                                             gboolean rounded);
static void ___lambda124__gala_gesture_tracker_on_update (gdouble percentage,
                                                   gpointer self);
static void __lambda125_ (GalaWindowManagerGala* self,
                   gdouble percentage,
                   gboolean cancel_action);
static void ___lambda125__gala_gesture_tracker_on_end (gdouble percentage,
                                                gboolean cancel_action,
                                                gint calculated_duration,
                                                gpointer self);
static void ___lambda126_ (GalaWindowManagerGala* self);
static void ____lambda126__clutter_timeline_completed (ClutterTimeline* _sender,
                                                gpointer self);
static void _vala_GValue_array_free (GValue * array,
                              gssize array_length);
VALA_EXTERN void gala_gesture_tracker_connect_handlers (GalaGestureTracker* self,
                                            GalaGestureTrackerOnBegin on_begin_handler,
                                            gpointer on_begin_handler_target,
                                            GDestroyNotify on_begin_handler_target_destroy_notify,
                                            GalaGestureTrackerOnUpdate on_update_handler,
                                            gpointer on_update_handler_target,
                                            GDestroyNotify on_update_handler_target_destroy_notify,
                                            GalaGestureTrackerOnEnd on_end_handler,
                                            gpointer on_end_handler_target,
                                            GDestroyNotify on_end_handler_target_destroy_notify);
VALA_EXTERN gboolean gala_screen_saver_manager_get_active (GalaScreenSaverManager* self,
                                               GError** error);
VALA_EXTERN GType gala_input_area_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void gala_internal_utils_set_input_area (MetaDisplay* display,
                                         GalaInputArea area);
static void gala_window_manager_gala_show_bottom_stack_window (GalaWindowManagerGala* self,
                                                        MetaWindow* bottom_window);
static Block11Data* block11_data_ref (Block11Data* _data11_);
static void block11_data_unref (void * _userdata_);
static void gala_window_manager_gala_animate_bottom_window_scale (GalaWindowManagerGala* self,
                                                           MetaWindowActor* actor);
static void __lambda143_ (Block11Data* _data11_,
                   MetaWindow* window);
static Block12Data* block12_data_ref (Block12Data* _data12_);
static void block12_data_unref (void * _userdata_);
VALA_EXTERN gboolean gala_internal_utils_get_window_is_normal (MetaWindow* window);
static gboolean ___lambda144_ (Block12Data* _data12_);
static gboolean ____lambda144__gsource_func (gpointer self);
static gboolean ___lambda145_ (Block12Data* _data12_);
static gboolean ____lambda145__gsource_func (gpointer self);
static void ___lambda143__gfunc (gconstpointer data,
                          gpointer self);
static void gala_window_manager_gala_real_move_window (GalaWindowManager* base,
                                                MetaWindow* window,
                                                MetaMotionDirection direction);
static GalaModalProxy* gala_window_manager_gala_real_push_modal (GalaWindowManager* base,
                                                          ClutterActor* actor);
static void gala_window_manager_gala_real_pop_modal (GalaWindowManager* base,
                                              GalaModalProxy* proxy);
static gboolean gala_window_manager_gala_real_is_modal (GalaWindowManager* base);
static gboolean gala_window_manager_gala_real_modal_proxy_valid (GalaWindowManager* base,
                                                          GalaModalProxy* proxy);
VALA_EXTERN void gala_window_manager_gala_get_current_cursor_position (GalaWindowManagerGala* self,
                                                           gint* x,
                                                           gint* y);
static void gala_window_manager_gala_dim_parent_window (GalaWindowManagerGala* self,
                                                 MetaWindow* window,
                                                 gboolean dim);
static void gala_window_manager_gala_real_perform_action (GalaWindowManager* base,
                                                   GalaActionType type);
static GVariant* _variant_new6 (gboolean value);
static void gala_window_manager_gala_real_show_window_menu (MetaPlugin* base,
                                                     MetaWindow* window,
                                                     MetaWindowMenuType menu,
                                                     gint x,
                                                     gint y);
static void ___lambda146_ (GalaWindowManagerGala* self,
                    GObject* obj,
                    GAsyncResult* res);
static void ____lambda146__gasync_ready_callback (GObject* source_object,
                                           GAsyncResult* res,
                                           gpointer self);
static void gala_window_manager_gala_real_show_tile_preview (MetaPlugin* base,
                                                      MetaWindow* window,
                                                      MetaRectangle* tile_rect,
                                                      gint tile_monitor_number);
VALA_EXTERN void gala_internal_utils_get_theme_accent_color (GdkRGBA* result);
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,
                                                              MetaRectangle* rect);
static void gala_window_manager_gala_handle_fullscreen_window (GalaWindowManagerGala* self,
                                                        MetaWindow* window,
                                                        MetaSizeChange which_change);
VALA_EXTERN void gala_internal_utils_insert_workspace_with_window (gint index,
                                                       MetaWindow* new_window);
static void gala_window_manager_gala_real_size_change (MetaPlugin* base,
                                                MetaWindowActor* actor,
                                                MetaSizeChange which_change_local,
                                                MetaRectangle* old_frame_rect,
                                                MetaRectangle* old_buffer_rect);
static MetaSizeChange* _meta_size_change_dup (MetaSizeChange* self);
static void gala_window_manager_gala_real_size_changed (MetaPlugin* base,
                                                 MetaWindowActor* actor);
static void gala_window_manager_gala_maximize (GalaWindowManagerGala* self,
                                        MetaWindowActor* actor,
                                        gint ex,
                                        gint ey,
                                        gint ew,
                                        gint eh);
static void gala_window_manager_gala_unmaximize (GalaWindowManagerGala* self,
                                          MetaWindowActor* actor,
                                          gint ex,
                                          gint ey,
                                          gint ew,
                                          gint eh);
static void gala_window_manager_gala_real_minimize (MetaPlugin* base,
                                             MetaWindowActor* actor);
static Block13Data* block13_data_ref (Block13Data* _data13_);
static void block13_data_unref (void * _userdata_);
static Block14Data* block14_data_ref (Block14Data* _data14_);
static void block14_data_unref (void * _userdata_);
static void ___lambda152_ (Block14Data* _data14_);
static void ____lambda152__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block15Data* block15_data_ref (Block15Data* _data15_);
static void block15_data_unref (void * _userdata_);
static void ___lambda153_ (Block15Data* _data15_);
static void ____lambda153__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block16Data* block16_data_ref (Block16Data* _data16_);
static void block16_data_unref (void * _userdata_);
static void gala_window_manager_gala_move_window_to_next_ws (GalaWindowManagerGala* self,
                                                      MetaWindow* window);
static Block17Data* block17_data_ref (Block17Data* _data17_);
static void block17_data_unref (void * _userdata_);
VALA_EXTERN GType gala_window_listener_window_geometry_get_type (void) G_GNUC_CONST ;
VALA_EXTERN GalaWindowListenerWindowGeometry* gala_window_listener_window_geometry_dup (const GalaWindowListenerWindowGeometry* self);
VALA_EXTERN void gala_window_listener_window_geometry_free (GalaWindowListenerWindowGeometry* self);
VALA_EXTERN 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 GalaWindowListenerWindowGeometry* gala_window_listener_get_unmaximized_state_geometry (GalaWindowListener* self,
                                                                                       MetaWindow* window);
static gboolean ____lambda147_ (Block17Data* _data17_);
static gboolean _____lambda147__gsource_func (gpointer self);
static void ___lambda148_ (Block17Data* _data17_);
static void ____lambda148__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static void ___lambda149_ (Block17Data* _data17_);
static void ____lambda149__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static void gala_window_manager_gala_real_unminimize (MetaPlugin* base,
                                               MetaWindowActor* actor);
static Block18Data* block18_data_ref (Block18Data* _data18_);
static void block18_data_unref (void * _userdata_);
static Block19Data* block19_data_ref (Block19Data* _data19_);
static void block19_data_unref (void * _userdata_);
static void ___lambda154_ (Block19Data* _data19_);
static void ____lambda154__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static void gala_window_manager_gala_real_map (MetaPlugin* base,
                                        MetaWindowActor* actor);
static Block20Data* block20_data_ref (Block20Data* _data20_);
static void block20_data_unref (void * _userdata_);
static Block21Data* block21_data_ref (Block21Data* _data21_);
static void block21_data_unref (void * _userdata_);
static void ___lambda155_ (Block21Data* _data21_);
static void ____lambda155__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block22Data* block22_data_ref (Block22Data* _data22_);
static void block22_data_unref (void * _userdata_);
static void ___lambda156_ (Block22Data* _data22_);
static void ____lambda156__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block23Data* block23_data_ref (Block23Data* _data23_);
static void block23_data_unref (void * _userdata_);
static void ___lambda157_ (Block23Data* _data23_);
static void ____lambda157__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
VALA_EXTERN void gala_notification_stack_show_notification (GalaNotificationStack* self,
                                                MetaWindowActor* notification,
                                                gboolean animate);
static void gala_window_manager_gala_real_destroy (MetaPlugin* base,
                                            MetaWindowActor* actor);
static Block24Data* block24_data_ref (Block24Data* _data24_);
static void block24_data_unref (void * _userdata_);
static Block25Data* block25_data_ref (Block25Data* _data25_);
static void block25_data_unref (void * _userdata_);
static void ___lambda158_ (Block25Data* _data25_);
static void ____lambda158__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block26Data* block26_data_ref (Block26Data* _data26_);
static void block26_data_unref (void * _userdata_);
static void ___lambda159_ (Block26Data* _data26_);
static void ____lambda159__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static Block27Data* block27_data_ref (Block27Data* _data27_);
static void block27_data_unref (void * _userdata_);
static void ___lambda160_ (Block27Data* _data27_);
static void ____lambda160__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
VALA_EXTERN void gala_notification_stack_destroy_notification (GalaNotificationStack* self,
                                                   MetaWindowActor* notification,
                                                   gboolean animate);
static Block28Data* block28_data_ref (Block28Data* _data28_);
static void block28_data_unref (void * _userdata_);
static void ____lambda161_ (Block28Data* _data28_);
static void _____lambda161__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                          gpointer self);
static Block29Data* block29_data_ref (Block29Data* _data29_);
static void block29_data_unref (void * _userdata_);
static void gala_window_manager_gala_move_window_to_old_ws (GalaWindowManagerGala* self,
                                                     MetaWindow* window);
static Block30Data* block30_data_ref (Block30Data* _data30_);
static void block30_data_unref (void * _userdata_);
static void ___lambda150_ (Block30Data* _data30_);
static void ____lambda150__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static void ___lambda151_ (Block30Data* _data30_);
static void ____lambda151__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                         gpointer self);
static gboolean gala_window_manager_gala_end_animation (GalaWindowManagerGala* self,
                                                 GeeHashSet** list,
                                                 MetaWindowActor* actor);
static void gala_window_manager_gala_real_kill_window_effects (MetaPlugin* base,
                                                        MetaWindowActor* actor);
static void gala_window_manager_gala_real_switch_workspace (MetaPlugin* base,
                                                     gint from,
                                                     gint to,
                                                     MetaMotionDirection direction);
static Block31Data* block31_data_ref (Block31Data* _data31_);
static void block31_data_unref (void * _userdata_);
VALA_EXTERN gboolean gala_internal_utils_workspaces_only_on_primary (void);
static void gala_window_manager_gala_clutter_actor_reparent (ClutterActor* actor,
                                                      ClutterActor* new_parent);
static void gala_window_manager_gala_reparent_notification_window (ClutterActor* actor,
                                                            ClutterActor* new_parent);
VALA_EXTERN GType gala_safe_window_clone_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaSafeWindowClone, g_object_unref)
VALA_EXTERN GalaSafeWindowClone* gala_safe_window_clone_new (MetaWindow* window,
                                                 gboolean destroy_on_unmanaged);
VALA_EXTERN GalaSafeWindowClone* gala_safe_window_clone_construct (GType object_type,
                                                       MetaWindow* window,
                                                       gboolean destroy_on_unmanaged);
static void __lambda162_ (Block31Data* _data31_,
                   gdouble percentage);
static void ___lambda162__gala_gesture_tracker_on_update (gdouble percentage,
                                                   gpointer self);
static void __lambda163_ (Block31Data* _data31_,
                   gdouble percentage,
                   gboolean cancel_action,
                   gint duration);
static Block32Data* block32_data_ref (Block32Data* _data32_);
static void block32_data_unref (void * _userdata_);
static void gala_window_manager_gala_switch_workspace_animation_finished (GalaWindowManagerGala* self,
                                                                   MetaMotionDirection animation_direction,
                                                                   gboolean cancel_action);
static void ___lambda164_ (Block32Data* _data32_);
static void ____lambda164__clutter_timeline_completed (ClutterTimeline* _sender,
                                                gpointer self);
static void ___lambda163__gala_gesture_tracker_on_end (gdouble percentage,
                                                gboolean cancel_action,
                                                gint calculated_duration,
                                                gpointer self);
static void gala_window_manager_gala_end_switch_workspace (GalaWindowManagerGala* self);
static void gala_window_manager_gala_real_kill_switch_workspace (MetaPlugin* base);
static void gala_window_manager_gala_real_locate_pointer (MetaPlugin* base);
VALA_EXTERN void gala_pointer_locator_show_ripple (GalaPointerLocator* self);
static gboolean gala_window_manager_gala_real_keybinding_filter (MetaPlugin* base,
                                                          MetaKeyBinding* binding);
static 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 Block33Data* block33_data_ref (Block33Data* _data33_);
static void block33_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 __lambda165_ (Block33Data* _data33_);
static gboolean __lambda166_ (Block33Data* _data33_);
VALA_EXTERN void gala_access_dialog_close (GalaAccessDialog* self);
static gboolean ___lambda166__gsource_func (gpointer self);
static void ___lambda165__gala_access_dialog_show (GalaAccessDialog* _sender,
                                            gpointer self);
static void __lambda167_ (GalaWindowManagerGala* self,
                   guint res);
static void ___lambda167__gala_access_dialog_response (GalaAccessDialog* _sender,
                                                guint response,
                                                gpointer self);
static MetaCloseDialog* gala_window_manager_gala_real_create_close_dialog (MetaPlugin* base,
                                                                    MetaWindow* window);
static Block34Data* block34_data_ref (Block34Data* _data34_);
static void block34_data_unref (void * _userdata_);
VALA_EXTERN GType gala_close_dialog_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GalaCloseDialog, g_object_unref)
static gboolean __lambda168_ (Block34Data* _data34_,
                       GalaCloseDialog* d);
static gboolean ___lambda168__gee_predicate (gconstpointer g,
                                      gpointer self);
VALA_EXTERN GalaCloseDialog* gala_close_dialog_new (MetaWindow* window);
VALA_EXTERN GalaCloseDialog* gala_close_dialog_construct (GType object_type,
                                              MetaWindow* window);
static MetaPluginInfo* gala_window_manager_gala_real_plugin_info (MetaPlugin* base);
static gchar* gala_window_manager_gala_generate_screenshot_filename (GalaWindowManagerGala* self);
static void gala_window_manager_gala_screenshot_current_window_data_free (gpointer _data);
static gboolean gala_window_manager_gala_screenshot_current_window_co (GalaWindowManagerGalaScreenshotCurrentWindowData* _data_);
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 GalaScreenshotManager* gala_screenshot_manager_init (GalaWindowManager* wm);
VALA_EXTERN void gala_screenshot_manager_screenshot_window (GalaScreenshotManager* self,
                                                gboolean include_frame,
                                                gboolean include_cursor,
                                                gboolean flash,
                                                const gchar* filename,
                                                GAsyncReadyCallback _callback_,
                                                gpointer _user_data_);
VALA_EXTERN void gala_screenshot_manager_screenshot_window_finish (GalaScreenshotManager* self,
                                                       GAsyncResult* _res_,
                                                       gboolean* success,
                                                       gchar** filename_used,
                                                       GError** error);
static void gala_window_manager_gala_screenshot_current_window_ready (GObject* source_object,
                                                               GAsyncResult* _res_,
                                                               gpointer _user_data_);
static void gala_window_manager_gala_screenshot_area_data_free (gpointer _data);
static gboolean gala_window_manager_gala_screenshot_area_co (GalaWindowManagerGalaScreenshotAreaData* _data_);
VALA_EXTERN void gala_screenshot_manager_select_area (GalaScreenshotManager* self,
                                          GAsyncReadyCallback _callback_,
                                          gpointer _user_data_);
VALA_EXTERN void gala_screenshot_manager_select_area_finish (GalaScreenshotManager* self,
                                                 GAsyncResult* _res_,
                                                 gint* x,
                                                 gint* y,
                                                 gint* width,
                                                 gint* height,
                                                 GError** error);
static void gala_window_manager_gala_screenshot_area_ready (GObject* source_object,
                                                     GAsyncResult* _res_,
                                                     gpointer _user_data_);
VALA_EXTERN void gala_screenshot_manager_screenshot_area (GalaScreenshotManager* self,
                                              gint x,
                                              gint y,
                                              gint width,
                                              gint height,
                                              gboolean flash,
                                              const gchar* filename,
                                              GAsyncReadyCallback _callback_,
                                              gpointer _user_data_);
VALA_EXTERN void gala_screenshot_manager_screenshot_area_finish (GalaScreenshotManager* self,
                                                     GAsyncResult* _res_,
                                                     gboolean* success,
                                                     gchar** filename_used,
                                                     GError** error);
static void gala_window_manager_gala_screenshot_screen_data_free (gpointer _data);
static gboolean gala_window_manager_gala_screenshot_screen_co (GalaWindowManagerGalaScreenshotScreenData* _data_);
VALA_EXTERN void gala_screenshot_manager_screenshot (GalaScreenshotManager* self,
                                         gboolean include_cursor,
                                         gboolean flash,
                                         const gchar* filename,
                                         GAsyncReadyCallback _callback_,
                                         gpointer _user_data_);
VALA_EXTERN void gala_screenshot_manager_screenshot_finish (GalaScreenshotManager* self,
                                                GAsyncResult* _res_,
                                                gboolean* success,
                                                gchar** filename_used,
                                                GError** error);
static void gala_window_manager_gala_screenshot_screen_ready (GObject* source_object,
                                                       GAsyncResult* _res_,
                                                       gpointer _user_data_);
VALA_EXTERN GalaWindowManagerGala* gala_window_manager_gala_new (void);
VALA_EXTERN GalaWindowManagerGala* gala_window_manager_gala_construct (GType object_type);
static GObject * gala_window_manager_gala_constructor (GType type,
                                                guint n_construct_properties,
                                                GObjectConstructParam * construct_properties);
VALA_EXTERN GalaGestureTracker* gala_gesture_tracker_new (gint min_animation_duration,
                                              gint max_animation_duration);
VALA_EXTERN GalaGestureTracker* gala_gesture_tracker_construct (GType object_type,
                                                    gint min_animation_duration,
                                                    gint max_animation_duration);
VALA_EXTERN void gala_gesture_tracker_enable_touchpad (GalaGestureTracker* self);
static void _gala_window_manager_gala_on_gesture_detected_gala_gesture_tracker_on_gesture_detected (GalaGestureTracker* _sender,
                                                                                             GalaGesture* gesture,
                                                                                             gpointer self);
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);
Window clutter_x11_get_stage_window (ClutterActor* stage);
static inline gpointer _vala_memdup2 (gconstpointer mem,
                        gsize byte_size);

static const GDBusArgInfo _gala_daemon_dbus_arg_info_show_window_menu_flags = {-1, "flags", "u", NULL};
static const GDBusArgInfo _gala_daemon_dbus_arg_info_show_window_menu_x = {-1, "x", "i", NULL};
static const GDBusArgInfo _gala_daemon_dbus_arg_info_show_window_menu_y = {-1, "y", "i", NULL};
static const GDBusArgInfo * const _gala_daemon_dbus_arg_info_show_window_menu_in[] = {&_gala_daemon_dbus_arg_info_show_window_menu_flags, &_gala_daemon_dbus_arg_info_show_window_menu_x, &_gala_daemon_dbus_arg_info_show_window_menu_y, NULL};
static const GDBusArgInfo * const _gala_daemon_dbus_arg_info_show_window_menu_out[] = {NULL};
static const GDBusMethodInfo _gala_daemon_dbus_method_info_show_window_menu = {-1, "ShowWindowMenu", (GDBusArgInfo **) (&_gala_daemon_dbus_arg_info_show_window_menu_in), (GDBusArgInfo **) (&_gala_daemon_dbus_arg_info_show_window_menu_out), NULL};
static const GDBusArgInfo _gala_daemon_dbus_arg_info_show_desktop_menu_x = {-1, "x", "i", NULL};
static const GDBusArgInfo _gala_daemon_dbus_arg_info_show_desktop_menu_y = {-1, "y", "i", NULL};
static const GDBusArgInfo * const _gala_daemon_dbus_arg_info_show_desktop_menu_in[] = {&_gala_daemon_dbus_arg_info_show_desktop_menu_x, &_gala_daemon_dbus_arg_info_show_desktop_menu_y, NULL};
static const GDBusArgInfo * const _gala_daemon_dbus_arg_info_show_desktop_menu_out[] = {NULL};
static const GDBusMethodInfo _gala_daemon_dbus_method_info_show_desktop_menu = {-1, "ShowDesktopMenu", (GDBusArgInfo **) (&_gala_daemon_dbus_arg_info_show_desktop_menu_in), (GDBusArgInfo **) (&_gala_daemon_dbus_arg_info_show_desktop_menu_out), NULL};
static const GDBusMethodInfo * const _gala_daemon_dbus_method_info[] = {&_gala_daemon_dbus_method_info_show_window_menu, &_gala_daemon_dbus_method_info_show_desktop_menu, NULL};
static const GDBusSignalInfo * const _gala_daemon_dbus_signal_info[] = {NULL};
static const GDBusPropertyInfo * const _gala_daemon_dbus_property_info[] = {NULL};
static const GDBusInterfaceInfo _gala_daemon_dbus_interface_info = {-1, "org.pantheon.gala.daemon", (GDBusMethodInfo **) (&_gala_daemon_dbus_method_info), (GDBusSignalInfo **) (&_gala_daemon_dbus_signal_info), (GDBusPropertyInfo **) (&_gala_daemon_dbus_property_info), NULL};
static const GDBusInterfaceVTable _gala_daemon_dbus_interface_vtable = {gala_daemon_dbus_interface_method_call, gala_daemon_dbus_interface_get_property, gala_daemon_dbus_interface_set_property};

void
gala_daemon_show_window_menu (GalaDaemon* self,
                              GalaWindowFlags flags,
                              gint x,
                              gint y,
                              GAsyncReadyCallback _callback_,
                              gpointer _user_data_)
{
	GalaDaemonIface* _iface_;
	_iface_ = GALA_DAEMON_GET_INTERFACE (self);
	if (_iface_->show_window_menu) {
		_iface_->show_window_menu (self, flags, x, y, _callback_, _user_data_);
	}
}

void
gala_daemon_show_window_menu_finish (GalaDaemon* self,
                                     GAsyncResult* _res_,
                                     GError** error)
{
	GalaDaemonIface* _iface_;
	_iface_ = GALA_DAEMON_GET_INTERFACE (self);
	if (_iface_->show_window_menu_finish) {
		_iface_->show_window_menu_finish (self, _res_, error);
	}
}

void
gala_daemon_show_desktop_menu (GalaDaemon* self,
                               gint x,
                               gint y,
                               GAsyncReadyCallback _callback_,
                               gpointer _user_data_)
{
	GalaDaemonIface* _iface_;
	_iface_ = GALA_DAEMON_GET_INTERFACE (self);
	if (_iface_->show_desktop_menu) {
		_iface_->show_desktop_menu (self, x, y, _callback_, _user_data_);
	}
}

void
gala_daemon_show_desktop_menu_finish (GalaDaemon* self,
                                      GAsyncResult* _res_,
                                      GError** error)
{
	GalaDaemonIface* _iface_;
	_iface_ = GALA_DAEMON_GET_INTERFACE (self);
	if (_iface_->show_desktop_menu_finish) {
		_iface_->show_desktop_menu_finish (self, _res_, error);
	}
}

static void
gala_daemon_default_init (GalaDaemonIface * iface,
                          gpointer iface_data)
{
}

static GType
gala_daemon_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (GalaDaemonIface), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) gala_daemon_default_init, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
	GType gala_daemon_type_id;
	gala_daemon_type_id = g_type_register_static (G_TYPE_INTERFACE, "GalaDaemon", &g_define_type_info, 0);
	g_type_interface_add_prerequisite (gala_daemon_type_id, G_TYPE_OBJECT);
	g_type_set_qdata (gala_daemon_type_id, g_quark_from_static_string ("vala-dbus-proxy-type"), (void*) gala_daemon_proxy_get_type);
	g_type_set_qdata (gala_daemon_type_id, g_quark_from_static_string ("vala-dbus-interface-name"), "org.pantheon.gala.daemon");
	g_type_set_qdata (gala_daemon_type_id, g_quark_from_static_string ("vala-dbus-interface-info"), (void*) (&_gala_daemon_dbus_interface_info));
	g_type_set_qdata (gala_daemon_type_id, g_quark_from_static_string ("vala-dbus-register-object"), (void*) gala_daemon_register_object);
	return gala_daemon_type_id;
}

GType
gala_daemon_get_type (void)
{
	static volatile gsize gala_daemon_type_id__once = 0;
	if (g_once_init_enter (&gala_daemon_type_id__once)) {
		GType gala_daemon_type_id;
		gala_daemon_type_id = gala_daemon_get_type_once ();
		g_once_init_leave (&gala_daemon_type_id__once, gala_daemon_type_id);
	}
	return gala_daemon_type_id__once;
}

G_DEFINE_TYPE_EXTENDED (GalaDaemonProxy, gala_daemon_proxy, G_TYPE_DBUS_PROXY, 0, G_IMPLEMENT_INTERFACE (GALA_TYPE_DAEMON, gala_daemon_proxy_gala_daemon_interface_init) )
static void
gala_daemon_proxy_class_init (GalaDaemonProxyClass* klass)
{
	G_DBUS_PROXY_CLASS (klass)->g_signal = gala_daemon_proxy_g_signal;
}

static void
gala_daemon_proxy_g_signal (GDBusProxy* proxy,
                            const gchar* sender_name,
                            const gchar* signal_name,
                            GVariant* parameters)
{
}

static void
gala_daemon_proxy_init (GalaDaemonProxy* self)
{
	g_dbus_proxy_set_interface_info (G_DBUS_PROXY (self), (GDBusInterfaceInfo *) (&_gala_daemon_dbus_interface_info));
}

static void
_vala_g_async_ready_callback (GObject *source_object,
                              GAsyncResult *res,
                              void *user_data)
{
	g_task_return_pointer (user_data, g_object_ref (res), g_object_unref);
	g_object_unref (user_data);
}

static void
gala_daemon_proxy_show_window_menu_async (GalaDaemon* self,
                                          GalaWindowFlags flags,
                                          gint x,
                                          gint y,
                                          GAsyncReadyCallback _callback_,
                                          gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.gala.daemon", "ShowWindowMenu");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_uint32 (flags));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (x));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (y));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
gala_daemon_proxy_show_window_menu_finish (GalaDaemon* self,
                                           GAsyncResult* _res_,
                                           GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
gala_daemon_proxy_show_desktop_menu_async (GalaDaemon* self,
                                           gint x,
                                           gint y,
                                           GAsyncReadyCallback _callback_,
                                           gpointer _user_data_)
{
	GDBusMessage *_message;
	GVariant *_arguments;
	GVariantBuilder _arguments_builder;
	_message = g_dbus_message_new_method_call (g_dbus_proxy_get_name ((GDBusProxy *) self), g_dbus_proxy_get_object_path ((GDBusProxy *) self), "org.pantheon.gala.daemon", "ShowDesktopMenu");
	g_variant_builder_init (&_arguments_builder, G_VARIANT_TYPE_TUPLE);
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (x));
	g_variant_builder_add_value (&_arguments_builder, g_variant_new_int32 (y));
	_arguments = g_variant_builder_end (&_arguments_builder);
	g_dbus_message_set_body (_message, _arguments);
	if (_callback_ != NULL) {
		g_dbus_connection_send_message_with_reply (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, g_dbus_proxy_get_default_timeout ((GDBusProxy *) self), NULL, NULL, _vala_g_async_ready_callback, g_task_new ((GObject *) self, NULL, _callback_, _user_data_));
	} else {
		g_dbus_message_set_flags (_message, G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED);
		g_dbus_connection_send_message (g_dbus_proxy_get_connection ((GDBusProxy *) self), _message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	}
	g_object_unref (_message);
}

static void
gala_daemon_proxy_show_desktop_menu_finish (GalaDaemon* self,
                                            GAsyncResult* _res_,
                                            GError** error)
{
	GAsyncResult *_inner_res;
	GDBusMessage *_reply_message;
	_inner_res = g_task_propagate_pointer ((GTask *) _res_, NULL);
	_reply_message = g_dbus_connection_send_message_with_reply_finish (g_dbus_proxy_get_connection ((GDBusProxy *) self), _inner_res, error);
	g_object_unref (_inner_res);
	if (!_reply_message) {
		return;
	}
	if (g_dbus_message_to_gerror (_reply_message, error)) {
		g_object_unref (_reply_message);
		return;
	}
	g_object_unref (_reply_message);
}

static void
gala_daemon_proxy_gala_daemon_interface_init (GalaDaemonIface* iface)
{
	iface->show_window_menu = gala_daemon_proxy_show_window_menu_async;
	iface->show_window_menu_finish = gala_daemon_proxy_show_window_menu_finish;
	iface->show_desktop_menu = gala_daemon_proxy_show_desktop_menu_async;
	iface->show_desktop_menu_finish = gala_daemon_proxy_show_desktop_menu_finish;
}

static void
_dbus_gala_daemon_show_window_menu (GalaDaemon* self,
                                    GVariant* _parameters_,
                                    GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	GalaDaemonShowWindowMenuReadyData* _ready_data;
	GVariant* _tmp142_;
	GVariant* _tmp143_;
	GVariant* _tmp144_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (GalaDaemonShowWindowMenuReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp142_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->flags = g_variant_get_uint32 (_tmp142_);
	g_variant_unref (_tmp142_);
	_tmp143_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->x = g_variant_get_int32 (_tmp143_);
	g_variant_unref (_tmp143_);
	_tmp144_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->y = g_variant_get_int32 (_tmp144_);
	g_variant_unref (_tmp144_);
	gala_daemon_show_window_menu (self, _ready_data->flags, _ready_data->x, _ready_data->y, (GAsyncReadyCallback) _dbus_gala_daemon_show_window_menu_ready, _ready_data);
}

static void
_dbus_gala_daemon_show_window_menu_ready (GObject * source_object,
                                          GAsyncResult * _res_,
                                          gpointer _user_data_)
{
	GalaDaemonShowWindowMenuReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	gala_daemon_show_window_menu_finish ((GalaDaemon*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	g_slice_free (GalaDaemonShowWindowMenuReadyData, _ready_data);
}

static void
_dbus_gala_daemon_show_desktop_menu (GalaDaemon* self,
                                     GVariant* _parameters_,
                                     GDBusMethodInvocation* invocation)
{
	GVariantIter _arguments_iter;
	GalaDaemonShowDesktopMenuReadyData* _ready_data;
	GVariant* _tmp145_;
	GVariant* _tmp146_;
	g_variant_iter_init (&_arguments_iter, _parameters_);
	_ready_data = g_slice_new0 (GalaDaemonShowDesktopMenuReadyData);
	_ready_data->_invocation_ = invocation;
	_tmp145_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->x = g_variant_get_int32 (_tmp145_);
	g_variant_unref (_tmp145_);
	_tmp146_ = g_variant_iter_next_value (&_arguments_iter);
	_ready_data->y = g_variant_get_int32 (_tmp146_);
	g_variant_unref (_tmp146_);
	gala_daemon_show_desktop_menu (self, _ready_data->x, _ready_data->y, (GAsyncReadyCallback) _dbus_gala_daemon_show_desktop_menu_ready, _ready_data);
}

static void
_dbus_gala_daemon_show_desktop_menu_ready (GObject * source_object,
                                           GAsyncResult * _res_,
                                           gpointer _user_data_)
{
	GalaDaemonShowDesktopMenuReadyData* _ready_data;
	GDBusMethodInvocation* invocation;
	GError* error = NULL;
	GDBusMessage* _reply_message = NULL;
	GVariant* _reply;
	GVariantBuilder _reply_builder;
	_ready_data = _user_data_;
	invocation = _ready_data->_invocation_;
	gala_daemon_show_desktop_menu_finish ((GalaDaemon*) source_object, _res_, &error);
	if (error) {
		g_dbus_method_invocation_take_error (invocation, error);
		goto _error;
	}
	_reply_message = g_dbus_message_new_method_reply (g_dbus_method_invocation_get_message (invocation));
	g_variant_builder_init (&_reply_builder, G_VARIANT_TYPE_TUPLE);
	_reply = g_variant_builder_end (&_reply_builder);
	g_dbus_message_set_body (_reply_message, _reply);
	g_dbus_connection_send_message (g_dbus_method_invocation_get_connection (invocation), _reply_message, G_DBUS_SEND_MESSAGE_FLAGS_NONE, NULL, NULL);
	g_object_unref (invocation);
	g_object_unref (_reply_message);
	_error:
	g_slice_free (GalaDaemonShowDesktopMenuReadyData, _ready_data);
}

static void
gala_daemon_dbus_interface_method_call (GDBusConnection* connection,
                                        const gchar* sender,
                                        const gchar* object_path,
                                        const gchar* interface_name,
                                        const gchar* method_name,
                                        GVariant* parameters,
                                        GDBusMethodInvocation* invocation,
                                        gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	if (strcmp (method_name, "ShowWindowMenu") == 0) {
		_dbus_gala_daemon_show_window_menu (object, parameters, invocation);
	} else if (strcmp (method_name, "ShowDesktopMenu") == 0) {
		_dbus_gala_daemon_show_desktop_menu (object, parameters, invocation);
	} else {
		g_object_unref (invocation);
	}
}

static GVariant*
gala_daemon_dbus_interface_get_property (GDBusConnection* connection,
                                         const gchar* sender,
                                         const gchar* object_path,
                                         const gchar* interface_name,
                                         const gchar* property_name,
                                         GError** error,
                                         gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return NULL;
}

static gboolean
gala_daemon_dbus_interface_set_property (GDBusConnection* connection,
                                         const gchar* sender,
                                         const gchar* object_path,
                                         const gchar* interface_name,
                                         const gchar* property_name,
                                         GVariant* value,
                                         GError** error,
                                         gpointer user_data)
{
	gpointer* data;
	gpointer object;
	data = user_data;
	object = data[0];
	return FALSE;
}

guint
gala_daemon_register_object (gpointer object,
                             GDBusConnection* connection,
                             const gchar* path,
                             GError** error)
{
	guint result;
	gpointer *data;
	data = g_new (gpointer, 3);
	data[0] = g_object_ref (object);
	data[1] = g_object_ref (connection);
	data[2] = g_strdup (path);
	result = g_dbus_connection_register_object (connection, path, (GDBusInterfaceInfo *) (&_gala_daemon_dbus_interface_info), &_gala_daemon_dbus_interface_vtable, data, _gala_daemon_unregister_object, error);
	if (!result) {
		return 0;
	}
	return result;
}

static void
_gala_daemon_unregister_object (gpointer user_data)
{
	gpointer* data;
	data = user_data;
	g_object_unref (data[0]);
	g_object_unref (data[1]);
	g_free (data[2]);
	g_free (data);
}

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

static void
_g_object_unref0_ (gpointer var)
{
	(var == NULL) ? NULL : (var = (g_object_unref (var), NULL));
}

static inline void
_g_list_free__g_object_unref0_ (GList* self)
{
	g_list_free_full (self, (GDestroyNotify) _g_object_unref0_);
}

static void
_gala_window_manager_gala_daemon_appeared_gbus_name_appeared_callback (GDBusConnection* connection,
                                                                       const gchar* name,
                                                                       const gchar* name_owner,
                                                                       gpointer self)
{
	gala_window_manager_gala_daemon_appeared ((GalaWindowManagerGala*) self);
}

static void
_gala_window_manager_gala_lost_daemon_gbus_name_vanished_callback (GDBusConnection* connection,
                                                                   const gchar* name,
                                                                   gpointer self)
{
	gala_window_manager_gala_lost_daemon ((GalaWindowManagerGala*) self);
}

static void
__lambda142_ (GalaWindowManagerGala* self)
{
	meta_background_refresh_all ();
	gala_system_background_refresh ();
}

static void
___lambda142__meta_display_gl_video_memory_purged (MetaDisplay* _sender,
                                                   gpointer self)
{
	__lambda142_ ((GalaWindowManagerGala*) self);
}

static void
gala_window_manager_gala_real_start (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	gala_window_manager_gala_show_stage (self);
	g_bus_watch_name_with_closures (G_BUS_TYPE_SESSION, GALA_DAEMON_DBUS_NAME, G_BUS_NAME_WATCHER_FLAGS_NONE, (GClosure*) ((_gala_window_manager_gala_daemon_appeared_gbus_name_appeared_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _gala_window_manager_gala_daemon_appeared_gbus_name_appeared_callback, g_object_ref (self), (GClosureNotify) g_object_unref)), (GClosure*) ((_gala_window_manager_gala_lost_daemon_gbus_name_vanished_callback == NULL) ? NULL : g_cclosure_new ((GCallback) _gala_window_manager_gala_lost_daemon_gbus_name_vanished_callback, g_object_ref (self), (GClosureNotify) g_object_unref)));
	gala_access_dialog_watch_portal ();
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	g_signal_connect_object (display, "gl-video-memory-purged", (GCallback) ___lambda142__meta_display_gl_video_memory_purged, self, 0);
}

static void
gala_window_manager_gala_lost_daemon (GalaWindowManagerGala* self)
{
	g_return_if_fail (self != NULL);
	_g_object_unref0 (self->priv->daemon_proxy);
	self->priv->daemon_proxy = NULL;
}

static void
___lambda138_ (GalaWindowManagerGala* self,
               GObject* obj,
               GAsyncResult* res)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (res != NULL);
	{
		GalaDaemon* _tmp0_ = NULL;
		GalaDaemon* _tmp1_;
		GalaDaemon* _tmp2_;
		GalaDaemon* _tmp3_;
		_tmp1_ = g_async_result_get_source_object (res);
		_tmp2_ = (GalaDaemon*) g_async_initable_new_finish ((GAsyncInitable *) _tmp1_, res, &_inner_error0_);
		g_object_unref (_tmp1_);
		_tmp0_ = (GalaDaemon*) _tmp2_;
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
		_tmp3_ = _tmp0_;
		_tmp0_ = NULL;
		_g_object_unref0 (self->priv->daemon_proxy);
		self->priv->daemon_proxy = _tmp3_;
		_g_object_unref0 (_tmp0_);
	}
	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:162: Failed to get Menu proxy: %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 void
____lambda138__gasync_ready_callback (GObject* source_object,
                                      GAsyncResult* res,
                                      gpointer self)
{
	___lambda138_ ((GalaWindowManagerGala*) self, source_object, res);
	g_object_unref (self);
}

static void
gala_window_manager_gala_daemon_appeared (GalaWindowManagerGala* self)
{
	GalaDaemon* _tmp0_;
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->daemon_proxy;
	if (_tmp0_ == NULL) {
		g_async_initable_new_async (GALA_TYPE_DAEMON_PROXY, 0, NULL, ____lambda138__gasync_ready_callback, g_object_ref (self), "g-flags", 0, "g-name", GALA_DAEMON_DBUS_NAME, "g-bus-type", G_BUS_TYPE_SESSION, "g-object-path", GALA_DAEMON_DBUS_OBJECT_PATH, "g-interface-name", "org.pantheon.gala.daemon", NULL);
	}
}

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 (_data9_->plugin_manager);
		_g_object_unref0 (self);
		g_slice_free (Block9Data, _data9_);
	}
}

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 ClutterColor*
_vala_clutter_color_from_string (const gchar* str)
{
	ClutterColor* color = NULL;
	ClutterColor* _tmp0_;
	ClutterColor* result;
	g_return_val_if_fail (str != NULL, NULL);
	_tmp0_ = clutter_color_alloc ();
	color = _tmp0_;
	clutter_color_from_string (color, str);
	result = color;
	return result;
}

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

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

static gboolean
___lambda47__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda47_ ((GalaWindowManagerGala*) self);
	return result;
}

static void
_gala_window_manager_gala_on_show_background_menu_gala_background_container_show_background_menu (GalaBackgroundContainer* _sender,
                                                                                                  gint x,
                                                                                                  gint y,
                                                                                                  gpointer self)
{
	gala_window_manager_gala_on_show_background_menu ((GalaWindowManagerGala*) self, x, y);
}

static void
__lambda74_ (GalaWindowManagerGala* self)
{
	gala_window_manager_gala_launch_action (self, "overlay-action");
}

static void
___lambda74__meta_display_overlay_key (MetaDisplay* _sender,
                                       gpointer self)
{
	__lambda74_ ((GalaWindowManagerGala*) self);
}

static void
__lambda75_ (GalaWindowManagerGala* self)
{
	gala_window_manager_gala_launch_action (self, "toggle-recording-action");
}

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

static void
__lambda76_ (GalaWindowManagerGala* self)
{
}

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

static void
__lambda77_ (GalaWindowManagerGala* self)
{
}

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

static void
__lambda127_ (GalaWindowManagerGala* self)
{
}

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

static void
__lambda128_ (GalaWindowManagerGala* self)
{
}

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

static void
__lambda129_ (GalaWindowManagerGala* self)
{
}

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

static void
__lambda130_ (GalaWindowManagerGala* self)
{
}

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

static void
_gala_internal_utils_reload_shadow_g_settings_changed (GSettings* _sender,
                                                       const gchar* key,
                                                       gpointer self)
{
	gala_internal_utils_reload_shadow ();
}

static void
_gala_window_manager_gala_on_monitors_changed_meta_monitor_manager_monitors_changed (MetaMonitorManager* _sender,
                                                                                     gpointer self)
{
	gala_window_manager_gala_on_monitors_changed ((GalaWindowManagerGala*) self);
}

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

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

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

static void
__lambda131_ (GalaWindowManagerGala* self)
{
	GalaActivatableComponent* _tmp0_;
	GalaActivatableComponent* _tmp1_;
	_tmp0_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
	_tmp1_ = _tmp0_;
	if (gala_activatable_component_is_opened (_tmp1_)) {
		GalaActivatableComponent* _tmp2_;
		GalaActivatableComponent* _tmp3_;
		_tmp2_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
		_tmp3_ = _tmp2_;
		gala_activatable_component_close (_tmp3_, NULL);
	} else {
		GalaActivatableComponent* _tmp4_;
		GalaActivatableComponent* _tmp5_;
		_tmp4_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
		_tmp5_ = _tmp4_;
		gala_activatable_component_open (_tmp5_, NULL);
	}
}

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

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

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

static void
_g_free0_ (gpointer var)
{
	var = (g_free (var), NULL);
}

static void
_g_variant_unref0_ (gpointer var)
{
	(var == NULL) ? NULL : (var = (g_variant_unref (var), NULL));
}

static GVariant*
_variant_new5 (gboolean value)
{
	return g_variant_ref_sink (g_variant_new_boolean (value));
}

static void
__lambda136_ (GalaWindowManagerGala* self)
{
	GalaActivatableComponent* _tmp0_;
	_tmp0_ = self->priv->window_overview;
	if (gala_activatable_component_is_opened (_tmp0_)) {
		GalaActivatableComponent* _tmp1_;
		_tmp1_ = self->priv->window_overview;
		gala_activatable_component_close (_tmp1_, NULL);
	} else {
		GHashTable* hints = NULL;
		GHashFunc _tmp2_;
		GEqualFunc _tmp3_;
		GHashTable* _tmp4_;
		GHashTable* _tmp5_;
		gchar* _tmp6_;
		GVariant* _tmp7_;
		GalaActivatableComponent* _tmp8_;
		GHashTable* _tmp9_;
		_tmp2_ = g_str_hash;
		_tmp3_ = g_str_equal;
		_tmp4_ = g_hash_table_new_full (_tmp2_, _tmp3_, _g_free0_, _g_variant_unref0_);
		hints = _tmp4_;
		_tmp5_ = hints;
		_tmp6_ = g_strdup ("all-windows");
		_tmp7_ = _variant_new5 (TRUE);
		g_hash_table_insert (_tmp5_, _tmp6_, _tmp7_);
		_tmp8_ = self->priv->window_overview;
		_tmp9_ = hints;
		gala_activatable_component_open (_tmp8_, _tmp9_);
		_g_hash_table_unref0 (hints);
	}
}

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

static gboolean
__lambda137_ (Block9Data* _data9_)
{
	GalaWindowManagerGala* self;
	MetaDisplay* _tmp0_;
	MetaContext* _tmp1_;
	GalaPluginManager* _tmp2_;
	gboolean result;
	self = _data9_->self;
	sd_notify ((int) TRUE, "READY=1");
	_tmp0_ = _data9_->display;
	_tmp1_ = meta_display_get_context (_tmp0_);
	meta_context_notify_ready (_tmp1_);
	_tmp2_ = _data9_->plugin_manager;
	gala_plugin_manager_load_waiting_plugins (_tmp2_);
	result = G_SOURCE_REMOVE;
	return result;
}

static gboolean
___lambda137__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda137_ (self);
	return result;
}

static gboolean
gala_window_manager_gala_show_stage (GalaWindowManagerGala* self)
{
	Block9Data* _data9_;
	MetaDisplay* _tmp0_;
	GalaScreenShield* _tmp1_;
	GalaScreenShield* _tmp2_;
	GalaScreenShield* _tmp3_;
	GalaScreenSaverManager* _tmp4_;
	GalaScreenSaverManager* _tmp5_;
	MetaDisplay* _tmp6_;
	MetaDisplay* _tmp7_;
	GalaWindowTracker* _tmp8_;
	GalaWindowTracker* _tmp9_;
	GalaWindowTracker* _tmp10_;
	MetaDisplay* _tmp11_;
	MetaDisplay* _tmp12_;
	GalaNotificationStack* _tmp13_;
	GalaScreenSaverManager* _tmp14_;
	MetaDisplay* _tmp15_;
	ClutterActor* _tmp16_;
	GSettings* background_settings = NULL;
	GSettings* _tmp17_;
	gchar* color = NULL;
	GSettings* _tmp18_;
	gchar* _tmp19_;
	ClutterStage* _tmp20_;
	ClutterStage* _tmp21_;
	const gchar* _tmp22_;
	ClutterColor* _tmp23_;
	ClutterColor* _tmp24_;
	ClutterColor _tmp25_;
	MetaDisplay* _tmp26_;
	GalaSystemBackground* _tmp27_;
	GalaSystemBackground* _tmp28_;
	MetaBackgroundActor* _tmp29_;
	MetaBackgroundActor* _tmp30_;
	ClutterStage* _tmp31_;
	ClutterStage* _tmp32_;
	ClutterBindConstraint* _tmp33_;
	ClutterBindConstraint* _tmp34_;
	ClutterStage* _tmp35_;
	ClutterStage* _tmp36_;
	GalaSystemBackground* _tmp37_;
	MetaBackgroundActor* _tmp38_;
	MetaBackgroundActor* _tmp39_;
	ClutterActor* _tmp40_;
	ClutterActor* _tmp41_;
	ClutterActor* _tmp42_;
	ClutterActor* _tmp43_;
	ClutterStage* _tmp44_;
	ClutterStage* _tmp45_;
	ClutterActor* _tmp46_;
	ClutterActor* _tmp47_;
	MetaDisplay* _tmp48_;
	ClutterActor* _tmp49_;
	ClutterStage* _tmp50_;
	ClutterStage* _tmp51_;
	ClutterActor* _tmp52_;
	ClutterActor* _tmp53_;
	ClutterActor* _tmp54_;
	ClutterActor* _tmp55_;
	ClutterActor* _tmp56_;
	ClutterActor* _tmp57_;
	MetaDisplay* _tmp58_;
	GalaBackgroundContainer* _tmp59_;
	GalaBackgroundContainer* _tmp60_;
	MetaBackgroundGroup* _tmp61_;
	MetaBackgroundGroup* _tmp62_;
	ClutterActor* _tmp63_;
	ClutterActor* _tmp64_;
	MetaBackgroundGroup* _tmp65_;
	MetaBackgroundGroup* _tmp66_;
	ClutterActor* _tmp67_;
	ClutterActor* _tmp68_;
	MetaBackgroundGroup* _tmp69_;
	MetaBackgroundGroup* _tmp70_;
	MetaDisplay* _tmp71_;
	ClutterActor* _tmp72_;
	GalaPointerLocator* _tmp73_;
	GalaPointerLocator* _tmp74_;
	ClutterActor* _tmp75_;
	ClutterActor* _tmp76_;
	GalaPointerLocator* _tmp77_;
	ClutterActor* _tmp78_;
	ClutterActor* _tmp79_;
	GalaDwellClickTimer* _tmp80_;
	GalaDwellClickTimer* _tmp81_;
	ClutterActor* _tmp82_;
	ClutterActor* _tmp83_;
	GalaScreenShield* _tmp84_;
	ClutterStage* _tmp85_;
	ClutterStage* _tmp86_;
	ClutterActor* _tmp87_;
	ClutterActor* _tmp88_;
	ClutterActor* _tmp89_;
	ClutterActor* _tmp90_;
	ClutterActor* _tmp91_;
	ClutterActor* _tmp92_;
	GSettings* keybinding_settings = NULL;
	GSettings* _tmp93_;
	MetaDisplay* _tmp94_;
	GSettings* _tmp95_;
	MetaDisplay* _tmp96_;
	GSettings* _tmp97_;
	MetaDisplay* _tmp98_;
	GSettings* _tmp99_;
	MetaDisplay* _tmp100_;
	GSettings* _tmp101_;
	MetaDisplay* _tmp102_;
	GSettings* _tmp103_;
	MetaDisplay* _tmp104_;
	GSettings* _tmp105_;
	MetaDisplay* _tmp106_;
	GSettings* _tmp107_;
	MetaDisplay* _tmp108_;
	GSettings* _tmp109_;
	MetaDisplay* _tmp110_;
	GSettings* _tmp111_;
	MetaDisplay* _tmp112_;
	GSettings* _tmp113_;
	MetaDisplay* _tmp114_;
	GSettings* _tmp115_;
	MetaDisplay* _tmp116_;
	GSettings* _tmp117_;
	MetaDisplay* _tmp118_;
	GSettings* _tmp119_;
	MetaDisplay* _tmp120_;
	GSettings* shadow_settings = NULL;
	GSettings* _tmp121_;
	GSettings* _tmp122_;
	MetaMonitorManager* _tmp123_;
	GSettings* _tmp124_;
	GalaHotCornerManager* _tmp125_;
	GalaHotCornerManager* _tmp126_;
	GalaHotCornerManager* _tmp127_;
	GalaZoom* _tmp128_;
	GalaAccentColorManager* _tmp129_;
	GalaPluginManager* _tmp130_;
	GalaPluginManager* _tmp131_;
	GalaPluginManager* _tmp132_;
	GalaPluginManager* _tmp133_;
	gboolean _tmp134_ = FALSE;
	GalaPluginManager* _tmp135_;
	const gchar* _tmp136_;
	const gchar* _tmp137_;
	GalaPluginManager* _tmp151_;
	const gchar* _tmp152_;
	const gchar* _tmp153_;
	gboolean _tmp162_ = FALSE;
	GalaPluginManager* _tmp163_;
	const gchar* _tmp164_;
	const gchar* _tmp165_;
	MetaDisplay* _tmp177_;
	GSettings* _tmp178_;
	MetaDisplay* _tmp179_;
	GSettings* _tmp180_;
	ClutterStage* _tmp181_;
	ClutterStage* _tmp182_;
	gboolean result;
	g_return_val_if_fail (self != NULL, FALSE);
	_data9_ = g_slice_new0 (Block9Data);
	_data9_->_ref_count_ = 1;
	_data9_->self = g_object_ref (self);
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	_data9_->display = _tmp0_;
	_tmp1_ = gala_screen_shield_new ((GalaWindowManager*) self);
	g_object_ref_sink (_tmp1_);
	_tmp2_ = _tmp1_;
	gala_window_manager_gala_set_screen_shield (self, _tmp2_);
	_g_object_unref0 (_tmp2_);
	_tmp3_ = self->priv->_screen_shield;
	_tmp4_ = gala_screen_saver_manager_new (_tmp3_);
	_tmp5_ = _tmp4_;
	gala_window_manager_gala_set_screensaver (self, _tmp5_);
	_g_object_unref0 (_tmp5_);
	gala_dbus_init ((GalaWindowManager*) self);
	gala_dbus_accelerator_init ((GalaWindowManager*) self);
	gala_media_feedback_init ();
	_tmp6_ = _data9_->display;
	gala_window_listener_init (_tmp6_);
	_tmp7_ = _data9_->display;
	gala_keyboard_manager_init (_tmp7_);
	_tmp8_ = gala_window_tracker_new ();
	_tmp9_ = _tmp8_;
	gala_window_manager_gala_set_window_tracker (self, _tmp9_);
	_g_object_unref0 (_tmp9_);
	_tmp10_ = self->priv->_window_tracker;
	_tmp11_ = _data9_->display;
	gala_window_tracker_init (_tmp10_, _tmp11_);
	_tmp12_ = _data9_->display;
	_tmp13_ = gala_notification_stack_new (_tmp12_);
	_g_object_unref0 (self->priv->notification_stack);
	self->priv->notification_stack = _tmp13_;
	_tmp14_ = self->priv->_screensaver;
	g_signal_connect_object (_tmp14_, "active-changed", (GCallback) _gala_window_manager_gala_update_input_area_gala_screen_saver_manager_active_changed, self, 0);
	_tmp15_ = _data9_->display;
	_tmp16_ = meta_get_stage_for_display (_tmp15_);
	gala_window_manager_set_stage ((GalaWindowManager*) self, G_TYPE_CHECK_INSTANCE_TYPE (_tmp16_, clutter_stage_get_type ()) ? ((ClutterStage*) _tmp16_) : NULL);
	_tmp17_ = g_settings_new ("org.gnome.desktop.background");
	background_settings = _tmp17_;
	_tmp18_ = background_settings;
	_tmp19_ = g_settings_get_string (_tmp18_, "primary-color");
	color = _tmp19_;
	_tmp20_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp21_ = _tmp20_;
	_tmp22_ = color;
	_tmp23_ = _vala_clutter_color_from_string (_tmp22_);
	_tmp24_ = _tmp23_;
	_tmp25_ = *_tmp24_;
	clutter_actor_set_background_color ((ClutterActor*) _tmp21_, &_tmp25_);
	__vala_ClutterColor_free0 (_tmp24_);
	meta_later_add (META_LATER_BEFORE_REDRAW, ___lambda47__gsource_func, g_object_ref (self), g_object_unref);
	_tmp26_ = _data9_->display;
	_tmp27_ = gala_system_background_new (_tmp26_);
	_g_object_unref0 (self->priv->system_background);
	self->priv->system_background = _tmp27_;
	_tmp28_ = self->priv->system_background;
	_tmp29_ = gala_system_background_get_background_actor (_tmp28_);
	_tmp30_ = _tmp29_;
	_tmp31_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp32_ = _tmp31_;
	_tmp33_ = (ClutterBindConstraint*) clutter_bind_constraint_new ((ClutterActor*) _tmp32_, CLUTTER_BIND_ALL, (gfloat) 0);
	g_object_ref_sink (_tmp33_);
	_tmp34_ = _tmp33_;
	clutter_actor_add_constraint ((ClutterActor*) _tmp30_, (ClutterConstraint*) _tmp34_);
	_g_object_unref0 (_tmp34_);
	_tmp35_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp36_ = _tmp35_;
	_tmp37_ = self->priv->system_background;
	_tmp38_ = gala_system_background_get_background_actor (_tmp37_);
	_tmp39_ = _tmp38_;
	clutter_actor_insert_child_below ((ClutterActor*) _tmp36_, (ClutterActor*) _tmp39_, NULL);
	_tmp40_ = clutter_actor_new ();
	g_object_ref_sink (_tmp40_);
	_tmp41_ = _tmp40_;
	gala_window_manager_set_ui_group ((GalaWindowManager*) self, _tmp41_);
	_g_object_unref0 (_tmp41_);
	_tmp42_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp43_ = _tmp42_;
	clutter_actor_set_reactive (_tmp43_, TRUE);
	_tmp44_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp45_ = _tmp44_;
	_tmp46_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp47_ = _tmp46_;
	clutter_actor_add_child ((ClutterActor*) _tmp45_, _tmp47_);
	_tmp48_ = _data9_->display;
	_tmp49_ = meta_get_window_group_for_display (_tmp48_);
	gala_window_manager_set_window_group ((GalaWindowManager*) self, _tmp49_);
	_tmp50_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp51_ = _tmp50_;
	_tmp52_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp53_ = _tmp52_;
	clutter_actor_remove_child ((ClutterActor*) _tmp51_, _tmp53_);
	_tmp54_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp55_ = _tmp54_;
	_tmp56_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp57_ = _tmp56_;
	clutter_actor_add_child (_tmp55_, _tmp57_);
	_tmp58_ = _data9_->display;
	_tmp59_ = gala_background_container_new (_tmp58_);
	g_object_ref_sink (_tmp59_);
	_tmp60_ = _tmp59_;
	gala_window_manager_set_background_group ((GalaWindowManager*) self, (MetaBackgroundGroup*) _tmp60_);
	_g_object_unref0 (_tmp60_);
	_tmp61_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
	_tmp62_ = _tmp61_;
	g_signal_connect_object (G_TYPE_CHECK_INSTANCE_CAST (_tmp62_, GALA_TYPE_BACKGROUND_CONTAINER, GalaBackgroundContainer), "show-background-menu", (GCallback) _gala_window_manager_gala_on_show_background_menu_gala_background_container_show_background_menu, self, 0);
	_tmp63_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp64_ = _tmp63_;
	_tmp65_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
	_tmp66_ = _tmp65_;
	clutter_actor_add_child (_tmp64_, (ClutterActor*) _tmp66_);
	_tmp67_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp68_ = _tmp67_;
	_tmp69_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
	_tmp70_ = _tmp69_;
	clutter_actor_set_child_below_sibling (_tmp68_, (ClutterActor*) _tmp70_, NULL);
	_tmp71_ = _data9_->display;
	_tmp72_ = meta_get_top_window_group_for_display (_tmp71_);
	gala_window_manager_set_top_window_group ((GalaWindowManager*) self, _tmp72_);
	_tmp73_ = gala_pointer_locator_new ((GalaWindowManager*) self);
	g_object_ref_sink (_tmp73_);
	_tmp74_ = _tmp73_;
	gala_window_manager_gala_set_pointer_locator (self, _tmp74_);
	_g_object_unref0 (_tmp74_);
	_tmp75_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp76_ = _tmp75_;
	_tmp77_ = self->priv->_pointer_locator;
	clutter_actor_add_child (_tmp76_, (ClutterActor*) _tmp77_);
	_tmp78_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp79_ = _tmp78_;
	_tmp80_ = gala_dwell_click_timer_new ((GalaWindowManager*) self);
	g_object_ref_sink (_tmp80_);
	_tmp81_ = _tmp80_;
	clutter_actor_add_child (_tmp79_, (ClutterActor*) _tmp81_);
	_g_object_unref0 (_tmp81_);
	_tmp82_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp83_ = _tmp82_;
	_tmp84_ = self->priv->_screen_shield;
	clutter_actor_add_child (_tmp83_, (ClutterActor*) _tmp84_);
	_tmp85_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp86_ = _tmp85_;
	_tmp87_ = gala_window_manager_get_top_window_group ((GalaWindowManager*) self);
	_tmp88_ = _tmp87_;
	clutter_actor_remove_child ((ClutterActor*) _tmp86_, _tmp88_);
	_tmp89_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp90_ = _tmp89_;
	_tmp91_ = gala_window_manager_get_top_window_group ((GalaWindowManager*) self);
	_tmp92_ = _tmp91_;
	clutter_actor_add_child (_tmp90_, _tmp92_);
	_tmp93_ = g_settings_new (SCHEMA ".keybindings");
	keybinding_settings = _tmp93_;
	_tmp94_ = _data9_->display;
	_tmp95_ = keybinding_settings;
	meta_display_add_keybinding (_tmp94_, "switch-to-workspace-first", _tmp95_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_switch_to_workspace_end, g_object_ref (self), g_object_unref);
	_tmp96_ = _data9_->display;
	_tmp97_ = keybinding_settings;
	meta_display_add_keybinding (_tmp96_, "switch-to-workspace-last", _tmp97_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_switch_to_workspace_end, g_object_ref (self), g_object_unref);
	_tmp98_ = _data9_->display;
	_tmp99_ = keybinding_settings;
	meta_display_add_keybinding (_tmp98_, "move-to-workspace-first", _tmp99_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_move_to_workspace_end, g_object_ref (self), g_object_unref);
	_tmp100_ = _data9_->display;
	_tmp101_ = keybinding_settings;
	meta_display_add_keybinding (_tmp100_, "move-to-workspace-last", _tmp101_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_move_to_workspace_end, g_object_ref (self), g_object_unref);
	_tmp102_ = _data9_->display;
	_tmp103_ = keybinding_settings;
	meta_display_add_keybinding (_tmp102_, "cycle-workspaces-next", _tmp103_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_cycle_workspaces, g_object_ref (self), g_object_unref);
	_tmp104_ = _data9_->display;
	_tmp105_ = keybinding_settings;
	meta_display_add_keybinding (_tmp104_, "cycle-workspaces-previous", _tmp105_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_cycle_workspaces, g_object_ref (self), g_object_unref);
	_tmp106_ = _data9_->display;
	_tmp107_ = keybinding_settings;
	meta_display_add_keybinding (_tmp106_, "panel-main-menu", _tmp107_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_applications_menu, g_object_ref (self), g_object_unref);
	_tmp108_ = _data9_->display;
	_tmp109_ = keybinding_settings;
	meta_display_add_keybinding (_tmp108_, "screenshot", _tmp109_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_screenshot, g_object_ref (self), g_object_unref);
	_tmp110_ = _data9_->display;
	_tmp111_ = keybinding_settings;
	meta_display_add_keybinding (_tmp110_, "window-screenshot", _tmp111_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_screenshot, g_object_ref (self), g_object_unref);
	_tmp112_ = _data9_->display;
	_tmp113_ = keybinding_settings;
	meta_display_add_keybinding (_tmp112_, "area-screenshot", _tmp113_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_screenshot, g_object_ref (self), g_object_unref);
	_tmp114_ = _data9_->display;
	_tmp115_ = keybinding_settings;
	meta_display_add_keybinding (_tmp114_, "screenshot-clip", _tmp115_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_screenshot, g_object_ref (self), g_object_unref);
	_tmp116_ = _data9_->display;
	_tmp117_ = keybinding_settings;
	meta_display_add_keybinding (_tmp116_, "window-screenshot-clip", _tmp117_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_screenshot, g_object_ref (self), g_object_unref);
	_tmp118_ = _data9_->display;
	_tmp119_ = keybinding_settings;
	meta_display_add_keybinding (_tmp118_, "area-screenshot-clip", _tmp119_, 0, (MetaKeyHandlerFunc) gala_window_manager_gala_handle_screenshot, g_object_ref (self), g_object_unref);
	_tmp120_ = _data9_->display;
	g_signal_connect_object (_tmp120_, "overlay-key", (GCallback) ___lambda74__meta_display_overlay_key, self, 0);
	meta_keybindings_set_custom_handler ("toggle-recording", ___lambda75__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-up", ___lambda76__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-down", ___lambda77__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-left", (MetaKeyHandlerFunc) gala_window_manager_gala_handle_switch_to_workspace, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-to-workspace-right", (MetaKeyHandlerFunc) gala_window_manager_gala_handle_switch_to_workspace, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-up", ___lambda127__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-down", ___lambda128__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-left", (MetaKeyHandlerFunc) gala_window_manager_gala_handle_move_to_workspace, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("move-to-workspace-right", (MetaKeyHandlerFunc) gala_window_manager_gala_handle_move_to_workspace, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-group", ___lambda129__meta_key_handler_func, g_object_ref (self), g_object_unref);
	meta_keybindings_set_custom_handler ("switch-group-backward", ___lambda130__meta_key_handler_func, g_object_ref (self), g_object_unref);
	gala_internal_utils_reload_shadow ();
	_tmp121_ = g_settings_new (SCHEMA ".shadows");
	shadow_settings = _tmp121_;
	_tmp122_ = shadow_settings;
	g_signal_connect (_tmp122_, "changed", (GCallback) _gala_internal_utils_reload_shadow_g_settings_changed, NULL);
	_tmp123_ = meta_monitor_manager_get ();
	g_signal_connect_object (_tmp123_, "monitors-changed", (GCallback) _gala_window_manager_gala_on_monitors_changed_meta_monitor_manager_monitors_changed, self, 0);
	_tmp124_ = self->priv->behavior_settings;
	_tmp125_ = gala_hot_corner_manager_new ((GalaWindowManager*) self, _tmp124_);
	_g_object_unref0 (self->priv->hot_corner_manager);
	self->priv->hot_corner_manager = _tmp125_;
	_tmp126_ = self->priv->hot_corner_manager;
	g_signal_connect_object (_tmp126_, "on-configured", (GCallback) _gala_window_manager_gala_update_input_area_gala_hot_corner_manager_on_configured, self, 0);
	_tmp127_ = self->priv->hot_corner_manager;
	gala_hot_corner_manager_configure (_tmp127_);
	_tmp128_ = gala_zoom_new ((GalaWindowManager*) self);
	_g_object_unref0 (self->priv->zoom);
	self->priv->zoom = _tmp128_;
	_tmp129_ = gala_accent_color_manager_new ();
	_g_object_unref0 (self->priv->accent_color_manager);
	self->priv->accent_color_manager = _tmp129_;
	_tmp130_ = gala_plugin_manager_get_default ();
	_tmp131_ = _g_object_ref0 (_tmp130_);
	_data9_->plugin_manager = _tmp131_;
	_tmp132_ = _data9_->plugin_manager;
	gala_plugin_manager_initialize (_tmp132_, (GalaWindowManager*) self);
	_tmp133_ = _data9_->plugin_manager;
	g_signal_connect_object (_tmp133_, "regions-changed", (GCallback) _gala_window_manager_gala_update_input_area_gala_plugin_manager_regions_changed, self, 0);
	_tmp135_ = _data9_->plugin_manager;
	_tmp136_ = gala_plugin_manager_get_workspace_view_provider (_tmp135_);
	_tmp137_ = _tmp136_;
	if (_tmp137_ == NULL) {
		_tmp134_ = TRUE;
	} else {
		GalaPluginManager* _tmp138_;
		GalaPluginManager* _tmp139_;
		const gchar* _tmp140_;
		const gchar* _tmp141_;
		GalaPlugin* _tmp142_;
		GalaActivatableComponent* _tmp143_;
		GalaActivatableComponent* _tmp144_;
		_tmp138_ = _data9_->plugin_manager;
		_tmp139_ = _data9_->plugin_manager;
		_tmp140_ = gala_plugin_manager_get_workspace_view_provider (_tmp139_);
		_tmp141_ = _tmp140_;
		_tmp142_ = gala_plugin_manager_get_plugin (_tmp138_, _tmp141_);
		_tmp143_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp142_, GALA_TYPE_ACTIVATABLE_COMPONENT) ? ((GalaActivatableComponent*) _tmp142_) : NULL;
		if (_tmp143_ == NULL) {
			_g_object_unref0 (_tmp142_);
		}
		_tmp144_ = _tmp143_;
		gala_window_manager_set_workspace_view ((GalaWindowManager*) self, _tmp144_);
		_tmp134_ = _tmp144_ == NULL;
		_g_object_unref0 (_tmp144_);
	}
	if (_tmp134_) {
		GalaMultitaskingView* _tmp145_;
		GalaMultitaskingView* _tmp146_;
		ClutterActor* _tmp147_;
		ClutterActor* _tmp148_;
		GalaActivatableComponent* _tmp149_;
		GalaActivatableComponent* _tmp150_;
		_tmp145_ = gala_multitasking_view_new ((GalaWindowManager*) self);
		g_object_ref_sink (_tmp145_);
		_tmp146_ = _tmp145_;
		gala_window_manager_set_workspace_view ((GalaWindowManager*) self, (GalaActivatableComponent*) _tmp146_);
		_g_object_unref0 (_tmp146_);
		_tmp147_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
		_tmp148_ = _tmp147_;
		_tmp149_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
		_tmp150_ = _tmp149_;
		clutter_actor_add_child (_tmp148_, G_TYPE_CHECK_INSTANCE_CAST (_tmp150_, clutter_actor_get_type (), ClutterActor));
	}
	meta_keybindings_set_custom_handler ("show-desktop", ___lambda131__meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp151_ = _data9_->plugin_manager;
	_tmp152_ = gala_plugin_manager_get_window_switcher_provider (_tmp151_);
	_tmp153_ = _tmp152_;
	if (_tmp153_ == NULL) {
		GalaWindowSwitcher* _tmp154_;
		ClutterActor* _tmp155_;
		ClutterActor* _tmp156_;
		GalaWindowSwitcher* _tmp157_;
		GalaWindowSwitcher* _tmp158_;
		GalaWindowSwitcher* _tmp159_;
		GalaWindowSwitcher* _tmp160_;
		GalaWindowSwitcher* _tmp161_;
		_tmp154_ = gala_window_switcher_new ((GalaWindowManager*) self);
		g_object_ref_sink (_tmp154_);
		_g_object_unref0 (self->priv->winswitcher);
		self->priv->winswitcher = _tmp154_;
		_tmp155_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
		_tmp156_ = _tmp155_;
		_tmp157_ = self->priv->winswitcher;
		clutter_actor_add_child (_tmp156_, (ClutterActor*) _tmp157_);
		_tmp158_ = self->priv->winswitcher;
		meta_keybindings_set_custom_handler ("switch-applications", (MetaKeyHandlerFunc) gala_window_switcher_handle_switch_windows, g_object_ref (_tmp158_), g_object_unref);
		_tmp159_ = self->priv->winswitcher;
		meta_keybindings_set_custom_handler ("switch-applications-backward", (MetaKeyHandlerFunc) gala_window_switcher_handle_switch_windows, g_object_ref (_tmp159_), g_object_unref);
		_tmp160_ = self->priv->winswitcher;
		meta_keybindings_set_custom_handler ("switch-windows", (MetaKeyHandlerFunc) gala_window_switcher_handle_switch_windows, g_object_ref (_tmp160_), g_object_unref);
		_tmp161_ = self->priv->winswitcher;
		meta_keybindings_set_custom_handler ("switch-windows-backward", (MetaKeyHandlerFunc) gala_window_switcher_handle_switch_windows, g_object_ref (_tmp161_), g_object_unref);
	}
	_tmp163_ = _data9_->plugin_manager;
	_tmp164_ = gala_plugin_manager_get_window_overview_provider (_tmp163_);
	_tmp165_ = _tmp164_;
	if (_tmp165_ == NULL) {
		_tmp162_ = TRUE;
	} else {
		GalaPluginManager* _tmp166_;
		GalaPluginManager* _tmp167_;
		const gchar* _tmp168_;
		const gchar* _tmp169_;
		GalaPlugin* _tmp170_;
		GalaActivatableComponent* _tmp171_;
		GalaActivatableComponent* _tmp172_;
		_tmp166_ = _data9_->plugin_manager;
		_tmp167_ = _data9_->plugin_manager;
		_tmp168_ = gala_plugin_manager_get_window_overview_provider (_tmp167_);
		_tmp169_ = _tmp168_;
		_tmp170_ = gala_plugin_manager_get_plugin (_tmp166_, _tmp169_);
		_tmp171_ = G_TYPE_CHECK_INSTANCE_TYPE (_tmp170_, GALA_TYPE_ACTIVATABLE_COMPONENT) ? ((GalaActivatableComponent*) _tmp170_) : NULL;
		if (_tmp171_ == NULL) {
			_g_object_unref0 (_tmp170_);
		}
		_g_object_unref0 (self->priv->window_overview);
		self->priv->window_overview = _tmp171_;
		_tmp172_ = self->priv->window_overview;
		_tmp162_ = _tmp172_ == NULL;
	}
	if (_tmp162_) {
		GalaWindowOverview* _tmp173_;
		ClutterActor* _tmp174_;
		ClutterActor* _tmp175_;
		GalaActivatableComponent* _tmp176_;
		_tmp173_ = gala_window_overview_new ((GalaWindowManager*) self);
		g_object_ref_sink (_tmp173_);
		_g_object_unref0 (self->priv->window_overview);
		self->priv->window_overview = (GalaActivatableComponent*) _tmp173_;
		_tmp174_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
		_tmp175_ = _tmp174_;
		_tmp176_ = self->priv->window_overview;
		clutter_actor_add_child (_tmp175_, G_TYPE_CHECK_INSTANCE_CAST (_tmp176_, clutter_actor_get_type (), ClutterActor));
	}
	_tmp177_ = _data9_->display;
	_tmp178_ = keybinding_settings;
	meta_display_add_keybinding (_tmp177_, "expose-windows", _tmp178_, 0, ___lambda135__meta_key_handler_func, g_object_ref (self), g_object_unref);
	_tmp179_ = _data9_->display;
	_tmp180_ = keybinding_settings;
	meta_display_add_keybinding (_tmp179_, "expose-all-windows", _tmp180_, 0, ___lambda136__meta_key_handler_func, g_object_ref (self), g_object_unref);
	gala_window_manager_gala_update_input_area (self);
	_tmp181_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp182_ = _tmp181_;
	clutter_actor_show ((ClutterActor*) _tmp182_);
	g_idle_add_full (G_PRIORITY_DEFAULT_IDLE, ___lambda137__gsource_func, block9_data_ref (_data9_), block9_data_unref);
	result = FALSE;
	_g_object_unref0 (shadow_settings);
	_g_object_unref0 (keybinding_settings);
	_g_free0 (color);
	_g_object_unref0 (background_settings);
	block9_data_unref (_data9_);
	_data9_ = NULL;
	return result;
}

static void
gala_window_manager_gala_launch_action (GalaWindowManagerGala* self,
                                        const gchar* action_key)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (self != NULL);
	g_return_if_fail (action_key != NULL);
	{
		gchar* action = NULL;
		GSettings* _tmp0_;
		gchar* _tmp1_;
		gboolean _tmp2_ = FALSE;
		const gchar* _tmp3_;
		_tmp0_ = self->priv->behavior_settings;
		_tmp1_ = g_settings_get_string (_tmp0_, action_key);
		action = _tmp1_;
		_tmp3_ = action;
		if (_tmp3_ != NULL) {
			const gchar* _tmp4_;
			_tmp4_ = action;
			_tmp2_ = g_strcmp0 (_tmp4_, "") != 0;
		} else {
			_tmp2_ = FALSE;
		}
		if (_tmp2_) {
			const gchar* _tmp5_;
			_tmp5_ = action;
			g_spawn_command_line_async (_tmp5_, &_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* _tmp6_;
		const gchar* _tmp7_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp6_ = e;
		_tmp7_ = _tmp6_->message;
		g_warning ("WindowManager.vala:377: %s", _tmp7_);
		_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 void
__lambda64_ (GalaWindowManagerGala* self,
             GObject* obj,
             GAsyncResult* res)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (res != NULL);
	{
		gala_daemon_show_desktop_menu_finish (G_TYPE_CHECK_INSTANCE_CAST (obj, GALA_TYPE_DAEMON, GalaDaemon), res, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp0_;
		const gchar* _tmp1_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp0_ = e;
		_tmp1_ = _tmp0_->message;
		g_message ("WindowManager.vala:389: Error invoking MenuManager: %s", _tmp1_);
		_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 void
___lambda64__gasync_ready_callback (GObject* source_object,
                                    GAsyncResult* res,
                                    gpointer self)
{
	__lambda64_ ((GalaWindowManagerGala*) self, source_object, res);
	g_object_unref (self);
}

static void
gala_window_manager_gala_on_show_background_menu (GalaWindowManagerGala* self,
                                                  gint x,
                                                  gint y)
{
	GalaDaemon* _tmp0_;
	GalaDaemon* _tmp1_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->daemon_proxy;
	if (_tmp0_ == NULL) {
		return;
	}
	_tmp1_ = self->priv->daemon_proxy;
	gala_daemon_show_desktop_menu (_tmp1_, x, y, ___lambda64__gasync_ready_callback, g_object_ref (self));
}

static void
gala_window_manager_gala_on_monitors_changed (GalaWindowManagerGala* self)
{
	GalaScreenShield* _tmp0_;
	g_return_if_fail (self != NULL);
	_tmp0_ = self->priv->_screen_shield;
	gala_screen_shield_expand_to_screen_size (_tmp0_);
}

static void
gala_window_manager_gala_handle_cycle_workspaces (MetaDisplay* display,
                                                  MetaWindow* window,
                                                  ClutterKeyEvent* event,
                                                  MetaKeyBinding* binding,
                                                  GalaWindowManagerGala* self)
{
	gint _tmp0_ = 0;
	const gchar* _tmp1_;
	gint direction = 0;
	MetaWorkspaceManager* manager = NULL;
	MetaWorkspaceManager* _tmp2_;
	gint index = 0;
	MetaWorkspaceManager* _tmp3_;
	gint _tmp4_ = 0;
	gint dynamic_offset = 0;
	MetaWorkspaceManager* _tmp7_;
	MetaWorkspace* _tmp8_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (event != 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;
	index = meta_workspace_manager_get_active_workspace_index (_tmp3_) + direction;
	if (meta_prefs_get_dynamic_workspaces ()) {
		_tmp4_ = 1;
	} else {
		_tmp4_ = 0;
	}
	dynamic_offset = _tmp4_;
	if (index < 0) {
		MetaWorkspaceManager* _tmp5_;
		_tmp5_ = manager;
		index = (meta_workspace_manager_get_n_workspaces (_tmp5_) - 1) - dynamic_offset;
	} else {
		MetaWorkspaceManager* _tmp6_;
		_tmp6_ = manager;
		if (index > ((meta_workspace_manager_get_n_workspaces (_tmp6_) - 1) - dynamic_offset)) {
			index = 0;
		}
	}
	_tmp7_ = manager;
	_tmp8_ = meta_workspace_manager_get_workspace_by_index (_tmp7_, index);
	meta_workspace_activate (_tmp8_, meta_display_get_current_time (display));
}

static void
gala_window_manager_gala_handle_move_to_workspace (MetaDisplay* display,
                                                   MetaWindow* window,
                                                   ClutterKeyEvent* event,
                                                   MetaKeyBinding* binding,
                                                   GalaWindowManagerGala* self)
{
	MetaMotionDirection _tmp0_ = 0;
	const gchar* _tmp1_;
	MetaMotionDirection direction = 0;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (event != NULL);
	g_return_if_fail (binding != NULL);
	if (window == NULL) {
		return;
	}
	_tmp1_ = meta_key_binding_get_name (binding);
	if (g_strcmp0 (_tmp1_, "move-to-workspace-left") == 0) {
		_tmp0_ = META_MOTION_LEFT;
	} else {
		_tmp0_ = META_MOTION_RIGHT;
	}
	direction = _tmp0_;
	gala_window_manager_move_window ((GalaWindowManager*) self, window, direction);
}

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

static void
gala_window_manager_gala_handle_switch_to_workspace (MetaDisplay* display,
                                                     MetaWindow* window,
                                                     ClutterKeyEvent* event,
                                                     MetaKeyBinding* binding,
                                                     GalaWindowManagerGala* self)
{
	MetaMotionDirection _tmp0_ = 0;
	const gchar* _tmp1_;
	MetaMotionDirection direction = 0;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (event != NULL);
	g_return_if_fail (binding != NULL);
	_tmp1_ = meta_key_binding_get_name (binding);
	if (g_strcmp0 (_tmp1_, "switch-to-workspace-left") == 0) {
		_tmp0_ = META_MOTION_LEFT;
	} else {
		_tmp0_ = META_MOTION_RIGHT;
	}
	direction = _tmp0_;
	gala_window_manager_switch_to_next_workspace ((GalaWindowManager*) self, direction);
}

static void
gala_window_manager_gala_handle_switch_to_workspace_end (MetaDisplay* display,
                                                         MetaWindow* window,
                                                         ClutterKeyEvent* event,
                                                         MetaKeyBinding* binding,
                                                         GalaWindowManagerGala* self)
{
	MetaWorkspaceManager* manager = NULL;
	MetaWorkspaceManager* _tmp0_;
	gint _tmp1_ = 0;
	const gchar* _tmp2_;
	gint index = 0;
	MetaWorkspaceManager* _tmp6_;
	MetaWorkspace* _tmp7_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (event != 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_;
	_tmp6_ = manager;
	_tmp7_ = meta_workspace_manager_get_workspace_by_index (_tmp6_, index);
	meta_workspace_activate (_tmp7_, meta_display_get_current_time (display));
}

static void
gala_window_manager_gala_handle_applications_menu (MetaDisplay* display,
                                                   MetaWindow* window,
                                                   ClutterKeyEvent* event,
                                                   MetaKeyBinding* binding,
                                                   GalaWindowManagerGala* self)
{
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (event != NULL);
	g_return_if_fail (binding != NULL);
	gala_window_manager_gala_launch_action (self, "panel-main-menu-action");
}

static void
gala_window_manager_gala_handle_screenshot (MetaDisplay* display,
                                            MetaWindow* window,
                                            ClutterKeyEvent* event,
                                            MetaKeyBinding* binding,
                                            GalaWindowManagerGala* self)
{
	const gchar* _tmp0_;
	const gchar* _tmp1_;
	GQuark _tmp3_ = 0U;
	static GQuark _tmp2_label0 = 0;
	static GQuark _tmp2_label1 = 0;
	static GQuark _tmp2_label2 = 0;
	static GQuark _tmp2_label3 = 0;
	static GQuark _tmp2_label4 = 0;
	static GQuark _tmp2_label5 = 0;
	g_return_if_fail (self != NULL);
	g_return_if_fail (display != NULL);
	g_return_if_fail (event != NULL);
	g_return_if_fail (binding != NULL);
	_tmp0_ = meta_key_binding_get_name (binding);
	_tmp1_ = _tmp0_;
	_tmp3_ = (NULL == _tmp1_) ? 0 : g_quark_from_string (_tmp1_);
	if (_tmp3_ == ((0 != _tmp2_label0) ? _tmp2_label0 : (_tmp2_label0 = g_quark_from_static_string ("screenshot")))) {
		switch (0) {
			default:
			{
				gala_window_manager_gala_screenshot_screen (self, FALSE, NULL, NULL);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label1) ? _tmp2_label1 : (_tmp2_label1 = g_quark_from_static_string ("area-screenshot")))) {
		switch (0) {
			default:
			{
				gala_window_manager_gala_screenshot_area (self, FALSE, NULL, NULL);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label2) ? _tmp2_label2 : (_tmp2_label2 = g_quark_from_static_string ("window-screenshot")))) {
		switch (0) {
			default:
			{
				gala_window_manager_gala_screenshot_current_window (self, FALSE, NULL, NULL);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label3) ? _tmp2_label3 : (_tmp2_label3 = g_quark_from_static_string ("screenshot-clip")))) {
		switch (0) {
			default:
			{
				gala_window_manager_gala_screenshot_screen (self, TRUE, NULL, NULL);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label4) ? _tmp2_label4 : (_tmp2_label4 = g_quark_from_static_string ("area-screenshot-clip")))) {
		switch (0) {
			default:
			{
				gala_window_manager_gala_screenshot_area (self, TRUE, NULL, NULL);
				break;
			}
		}
	} else if (_tmp3_ == ((0 != _tmp2_label5) ? _tmp2_label5 : (_tmp2_label5 = g_quark_from_static_string ("window-screenshot-clip")))) {
		switch (0) {
			default:
			{
				gala_window_manager_gala_screenshot_current_window (self, TRUE, NULL, NULL);
				break;
			}
		}
	}
}

static void
gala_window_manager_gala_on_gesture_detected (GalaWindowManagerGala* self,
                                              GalaGesture* gesture)
{
	GalaActivatableComponent* _tmp0_;
	GalaActivatableComponent* _tmp1_;
	gboolean _tmp2_ = FALSE;
	gboolean can_handle_swipe = FALSE;
	gboolean _tmp4_ = FALSE;
	gboolean _tmp5_ = FALSE;
	gboolean fingers = FALSE;
	gboolean _tmp11_ = FALSE;
	g_return_if_fail (self != NULL);
	g_return_if_fail (gesture != NULL);
	_tmp0_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
	_tmp1_ = _tmp0_;
	if (gala_activatable_component_is_opened (_tmp1_)) {
		return;
	}
	if (gesture->type == GDK_TOUCHPAD_SWIPE) {
		gboolean _tmp3_ = FALSE;
		if (gesture->direction == GALA_GESTURE_DIRECTION_LEFT) {
			_tmp3_ = TRUE;
		} else {
			_tmp3_ = gesture->direction == GALA_GESTURE_DIRECTION_RIGHT;
		}
		_tmp2_ = _tmp3_;
	} else {
		_tmp2_ = FALSE;
	}
	can_handle_swipe = _tmp2_;
	if (gesture->fingers == 3) {
		gchar* _tmp6_;
		gchar* _tmp7_;
		_tmp6_ = gala_gesture_settings_get_string ("three-finger-swipe-horizontal");
		_tmp7_ = _tmp6_;
		_tmp5_ = g_strcmp0 (_tmp7_, "switch-to-workspace") == 0;
		_g_free0 (_tmp7_);
	} else {
		_tmp5_ = FALSE;
	}
	if (_tmp5_) {
		_tmp4_ = TRUE;
	} else {
		gboolean _tmp8_ = FALSE;
		if (gesture->fingers == 4) {
			gchar* _tmp9_;
			gchar* _tmp10_;
			_tmp9_ = gala_gesture_settings_get_string ("four-finger-swipe-horizontal");
			_tmp10_ = _tmp9_;
			_tmp8_ = g_strcmp0 (_tmp10_, "switch-to-workspace") == 0;
			_g_free0 (_tmp10_);
		} else {
			_tmp8_ = FALSE;
		}
		_tmp4_ = _tmp8_;
	}
	fingers = _tmp4_;
	if (can_handle_swipe) {
		_tmp11_ = fingers;
	} else {
		_tmp11_ = FALSE;
	}
	self->priv->switch_workspace_with_gesture = _tmp11_;
	if (self->priv->switch_workspace_with_gesture) {
		MetaMotionDirection* direction = NULL;
		GalaGestureTracker* _tmp12_;
		GalaGestureSettings* _tmp13_;
		GalaGestureSettings* _tmp14_;
		MetaMotionDirection* _tmp15_;
		MetaMotionDirection* _tmp16_;
		_tmp12_ = self->priv->gesture_tracker;
		_tmp13_ = gala_gesture_tracker_get_settings (_tmp12_);
		_tmp14_ = _tmp13_;
		_tmp15_ = gala_gesture_settings_get_natural_scroll_direction (_tmp14_, gesture);
		direction = _tmp15_;
		_tmp16_ = direction;
		gala_window_manager_switch_to_next_workspace ((GalaWindowManager*) self, *_tmp16_);
		_g_free0 (direction);
	}
}

/**
         * {@inheritDoc}
         */
static void
gala_window_manager_gala_real_switch_to_next_workspace (GalaWindowManager* base,
                                                        MetaMotionDirection direction)
{
	GalaWindowManagerGala * self;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp0_;
	MetaWorkspace* active_workspace = NULL;
	MetaDisplay* _tmp1_;
	MetaWorkspaceManager* _tmp2_;
	MetaWorkspace* _tmp3_;
	MetaWorkspace* _tmp4_;
	MetaWorkspace* neighbor = NULL;
	MetaWorkspace* _tmp5_;
	MetaWorkspace* _tmp6_;
	MetaWorkspace* _tmp7_;
	MetaWorkspace* _tmp8_;
	MetaWorkspace* _tmp9_;
	self = (GalaWindowManagerGala*) base;
	if (self->priv->animating_switch_workspace) {
		return;
	}
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	_tmp1_ = display;
	_tmp2_ = meta_display_get_workspace_manager (_tmp1_);
	_tmp3_ = meta_workspace_manager_get_active_workspace (_tmp2_);
	_tmp4_ = _g_object_ref0 (_tmp3_);
	active_workspace = _tmp4_;
	_tmp5_ = active_workspace;
	_tmp6_ = meta_workspace_get_neighbor (_tmp5_, direction);
	_tmp7_ = _g_object_ref0 (_tmp6_);
	neighbor = _tmp7_;
	_tmp8_ = neighbor;
	_tmp9_ = active_workspace;
	if (_tmp8_ != _tmp9_) {
		MetaWorkspace* _tmp10_;
		MetaDisplay* _tmp11_;
		_tmp10_ = neighbor;
		_tmp11_ = display;
		meta_workspace_activate (_tmp10_, meta_display_get_current_time (_tmp11_));
	} else {
		gboolean _tmp12_ = FALSE;
		GalaActivatableComponent* _tmp13_;
		GalaActivatableComponent* _tmp14_;
		_tmp13_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
		_tmp14_ = _tmp13_;
		if (gala_activatable_component_is_opened (_tmp14_)) {
			GalaActivatableComponent* _tmp15_;
			GalaActivatableComponent* _tmp16_;
			_tmp15_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
			_tmp16_ = _tmp15_;
			_tmp12_ = GALA_IS_MULTITASKING_VIEW (_tmp16_);
		} else {
			_tmp12_ = FALSE;
		}
		if (_tmp12_) {
			GalaActivatableComponent* _tmp17_;
			GalaActivatableComponent* _tmp18_;
			_tmp17_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
			_tmp18_ = _tmp17_;
			gala_multitasking_view_play_nudge_animation (G_TYPE_CHECK_INSTANCE_CAST (_tmp18_, GALA_TYPE_MULTITASKING_VIEW, GalaMultitaskingView), direction);
		} else {
			gala_window_manager_gala_play_nudge_animation (self, direction);
		}
	}
	_g_object_unref0 (neighbor);
	_g_object_unref0 (active_workspace);
}

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 void
__lambda124_ (Block10Data* _data10_,
              gdouble percentage)
{
	GalaWindowManagerGala* self;
	gfloat x = 0.0F;
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	self = _data10_->self;
	x = gala_gesture_tracker_animation_value (0.0f, _data10_->dest, percentage, TRUE);
	_tmp0_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp1_ = _tmp0_;
	clutter_actor_set_x (_tmp1_, CLAMP (x, -_data10_->nudge_gap, _data10_->nudge_gap));
}

static void
___lambda124__gala_gesture_tracker_on_update (gdouble percentage,
                                              gpointer self)
{
	__lambda124_ (self, percentage);
}

static void
__lambda125_ (GalaWindowManagerGala* self,
              gdouble percentage,
              gboolean cancel_action)
{
	ClutterPropertyTransition* nudge_gesture = NULL;
	ClutterPropertyTransition* _tmp0_ = NULL;
	ClutterActor* _tmp1_;
	ClutterActor* _tmp2_;
	gfloat _tmp3_;
	gfloat _tmp4_;
	GValue _tmp5_ = {0};
	GValue _tmp6_ = {0};
	ClutterActor* _tmp7_;
	ClutterActor* _tmp8_;
	_tmp0_ = (ClutterPropertyTransition*) clutter_property_transition_new ("x");
	clutter_timeline_set_duration ((ClutterTimeline*) _tmp0_, (guint) (GALA_ANIMATION_DURATION_NUDGE / 2));
	clutter_transition_set_remove_on_complete ((ClutterTransition*) _tmp0_, TRUE);
	clutter_timeline_set_progress_mode ((ClutterTimeline*) _tmp0_, CLUTTER_LINEAR);
	nudge_gesture = _tmp0_;
	_tmp1_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp2_ = _tmp1_;
	_tmp3_ = clutter_actor_get_x (_tmp2_);
	_tmp4_ = _tmp3_;
	g_value_init (&_tmp5_, G_TYPE_FLOAT);
	g_value_set_float (&_tmp5_, (gfloat) _tmp4_);
	clutter_transition_set_from_value ((ClutterTransition*) nudge_gesture, &_tmp5_);
	G_IS_VALUE (&_tmp5_) ? (g_value_unset (&_tmp5_), NULL) : NULL;
	g_value_init (&_tmp6_, G_TYPE_FLOAT);
	g_value_set_float (&_tmp6_, 0.0f);
	clutter_transition_set_to_value ((ClutterTransition*) nudge_gesture, &_tmp6_);
	G_IS_VALUE (&_tmp6_) ? (g_value_unset (&_tmp6_), NULL) : NULL;
	_tmp7_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
	_tmp8_ = _tmp7_;
	clutter_actor_add_transition (_tmp8_, "nudge", (ClutterTransition*) nudge_gesture);
	self->priv->switch_workspace_with_gesture = FALSE;
	self->priv->animating_switch_workspace = FALSE;
	_g_object_unref0 (nudge_gesture);
}

static void
___lambda125__gala_gesture_tracker_on_end (gdouble percentage,
                                           gboolean cancel_action,
                                           gint calculated_duration,
                                           gpointer self)
{
	__lambda125_ ((GalaWindowManagerGala*) self, percentage, cancel_action);
}

static void
___lambda126_ (GalaWindowManagerGala* self)
{
	self->priv->animating_switch_workspace = FALSE;
}

static void
____lambda126__clutter_timeline_completed (ClutterTimeline* _sender,
                                           gpointer self)
{
	___lambda126_ ((GalaWindowManagerGala*) self);
}

static void
_vala_GValue_array_free (GValue * array,
                         gssize array_length)
{
	if (array != NULL) {
		gssize i;
		for (i = 0; i < array_length; i = i + 1) {
			g_value_unset (&array[i]);
		}
	}
	g_free (array);
}

static void
gala_window_manager_gala_play_nudge_animation (GalaWindowManagerGala* self,
                                               MetaMotionDirection direction)
{
	Block10Data* _data10_;
	gboolean _tmp0_;
	gboolean _tmp1_;
	GalaGestureTrackerOnUpdate on_animation_update = NULL;
	gpointer on_animation_update_target;
	GDestroyNotify on_animation_update_target_destroy_notify;
	GalaGestureTrackerOnEnd on_animation_end = NULL;
	gpointer on_animation_end_target;
	GDestroyNotify on_animation_end_target_destroy_notify;
	g_return_if_fail (self != NULL);
	_data10_ = g_slice_new0 (Block10Data);
	_data10_->_ref_count_ = 1;
	_data10_->self = g_object_ref (self);
	_tmp0_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp1_ = _tmp0_;
	if (!_tmp1_) {
		block10_data_unref (_data10_);
		_data10_ = NULL;
		return;
	}
	self->priv->animating_switch_workspace = TRUE;
	_data10_->nudge_gap = GALA_WINDOW_MANAGER_GALA_NUDGE_GAP * gala_internal_utils_get_ui_scaling_factor ();
	_data10_->dest = (gfloat) 0;
	if (!self->priv->switch_workspace_with_gesture) {
		_data10_->dest = _data10_->nudge_gap;
	} else {
		MetaDisplay* display = NULL;
		MetaDisplay* _tmp2_;
		MetaRectangle workspaces_geometry = {0};
		MetaDisplay* _tmp3_;
		MetaRectangle _tmp4_ = {0};
		MetaRectangle _tmp5_;
		_tmp2_ = meta_plugin_get_display ((MetaPlugin*) self);
		display = _tmp2_;
		_tmp3_ = display;
		gala_internal_utils_get_workspaces_geometry (_tmp3_, &_tmp4_);
		workspaces_geometry = _tmp4_;
		_tmp5_ = workspaces_geometry;
		_data10_->dest = (gfloat) _tmp5_.width;
	}
	if (direction == META_MOTION_RIGHT) {
		_data10_->dest *= (gfloat) -1;
	}
	on_animation_update = ___lambda124__gala_gesture_tracker_on_update;
	on_animation_update_target = block10_data_ref (_data10_);
	on_animation_update_target_destroy_notify = block10_data_unref;
	on_animation_end = ___lambda125__gala_gesture_tracker_on_end;
	on_animation_end_target = g_object_ref (self);
	on_animation_end_target_destroy_notify = g_object_unref;
	if (!self->priv->switch_workspace_with_gesture) {
		gdouble* keyframes = NULL;
		gdouble* _tmp6_;
		gint keyframes_length1;
		gint _keyframes_size_;
		GValue* x = NULL;
		GValue _tmp7_ = {0};
		GValue* _tmp8_;
		gint x_length1;
		gint _x_size_;
		ClutterKeyframeTransition* nudge = NULL;
		ClutterKeyframeTransition* _tmp9_ = NULL;
		ClutterKeyframeTransition* _tmp10_;
		GValue _tmp11_ = {0};
		ClutterKeyframeTransition* _tmp12_;
		GValue _tmp13_ = {0};
		ClutterKeyframeTransition* _tmp14_;
		gdouble* _tmp15_;
		gint _tmp15__length1;
		ClutterKeyframeTransition* _tmp16_;
		GValue* _tmp17_;
		gint _tmp17__length1;
		ClutterKeyframeTransition* _tmp18_;
		ClutterActor* _tmp19_;
		ClutterActor* _tmp20_;
		ClutterKeyframeTransition* _tmp21_;
		_tmp6_ = g_new0 (gdouble, 1);
		_tmp6_[0] = 0.5;
		keyframes = _tmp6_;
		keyframes_length1 = 1;
		_keyframes_size_ = keyframes_length1;
		g_value_init (&_tmp7_, G_TYPE_FLOAT);
		g_value_set_float (&_tmp7_, _data10_->dest);
		_tmp8_ = g_new0 (GValue, 1);
		_tmp8_[0] = _tmp7_;
		x = _tmp8_;
		x_length1 = 1;
		_x_size_ = x_length1;
		_tmp9_ = (ClutterKeyframeTransition*) clutter_keyframe_transition_new ("translation-x");
		clutter_timeline_set_duration ((ClutterTimeline*) _tmp9_, (guint) GALA_ANIMATION_DURATION_NUDGE);
		clutter_transition_set_remove_on_complete ((ClutterTransition*) _tmp9_, TRUE);
		clutter_timeline_set_progress_mode ((ClutterTimeline*) _tmp9_, CLUTTER_EASE_IN_QUAD);
		nudge = _tmp9_;
		_tmp10_ = nudge;
		g_value_init (&_tmp11_, G_TYPE_FLOAT);
		g_value_set_float (&_tmp11_, 0.0f);
		clutter_transition_set_from_value ((ClutterTransition*) _tmp10_, &_tmp11_);
		G_IS_VALUE (&_tmp11_) ? (g_value_unset (&_tmp11_), NULL) : NULL;
		_tmp12_ = nudge;
		g_value_init (&_tmp13_, G_TYPE_FLOAT);
		g_value_set_float (&_tmp13_, 0.0f);
		clutter_transition_set_to_value ((ClutterTransition*) _tmp12_, &_tmp13_);
		G_IS_VALUE (&_tmp13_) ? (g_value_unset (&_tmp13_), NULL) : NULL;
		_tmp14_ = nudge;
		_tmp15_ = keyframes;
		_tmp15__length1 = keyframes_length1;
		clutter_keyframe_transition_set_key_frames (_tmp14_, (guint) _tmp15__length1, _tmp15_);
		_tmp16_ = nudge;
		_tmp17_ = x;
		_tmp17__length1 = x_length1;
		clutter_keyframe_transition_set_values (_tmp16_, (guint) _tmp17__length1, _tmp17_);
		_tmp18_ = nudge;
		g_signal_connect_object ((ClutterTimeline*) _tmp18_, "completed", (GCallback) ____lambda126__clutter_timeline_completed, self, 0);
		_tmp19_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
		_tmp20_ = _tmp19_;
		_tmp21_ = nudge;
		clutter_actor_add_transition (_tmp20_, "nudge", (ClutterTransition*) _tmp21_);
		_g_object_unref0 (nudge);
		x = (_vala_GValue_array_free (x, x_length1), NULL);
		keyframes = (g_free (keyframes), NULL);
	} else {
		GalaGestureTracker* _tmp22_;
		GalaGestureTrackerOnUpdate _tmp23_;
		gpointer _tmp23__target;
		GDestroyNotify _tmp23__target_destroy_notify;
		GalaGestureTrackerOnEnd _tmp24_;
		gpointer _tmp24__target;
		GDestroyNotify _tmp24__target_destroy_notify;
		_tmp22_ = self->priv->gesture_tracker;
		_tmp23_ = on_animation_update;
		_tmp23__target = on_animation_update_target;
		_tmp23__target_destroy_notify = on_animation_update_target_destroy_notify;
		on_animation_update = NULL;
		on_animation_update_target = NULL;
		on_animation_update_target_destroy_notify = NULL;
		_tmp24_ = on_animation_end;
		_tmp24__target = on_animation_end_target;
		_tmp24__target_destroy_notify = on_animation_end_target_destroy_notify;
		on_animation_end = NULL;
		on_animation_end_target = NULL;
		on_animation_end_target_destroy_notify = NULL;
		gala_gesture_tracker_connect_handlers (_tmp22_, NULL, NULL, NULL, _tmp23_, _tmp23__target, _tmp23__target_destroy_notify, _tmp24_, _tmp24__target, _tmp24__target_destroy_notify);
	}
	(on_animation_end_target_destroy_notify == NULL) ? NULL : (on_animation_end_target_destroy_notify (on_animation_end_target), NULL);
	on_animation_end = NULL;
	on_animation_end_target = NULL;
	on_animation_end_target_destroy_notify = NULL;
	(on_animation_update_target_destroy_notify == NULL) ? NULL : (on_animation_update_target_destroy_notify (on_animation_update_target), NULL);
	on_animation_update = NULL;
	on_animation_update_target = NULL;
	on_animation_update_target_destroy_notify = NULL;
	block10_data_unref (_data10_);
	_data10_ = NULL;
}

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)) {
		MetaDisplay* _tmp5_;
		_tmp5_ = display;
		gala_internal_utils_set_input_area (_tmp5_, GALA_INPUT_AREA_FULLSCREEN);
	} else {
		MetaDisplay* _tmp6_;
		_tmp6_ = display;
		gala_internal_utils_set_input_area (_tmp6_, GALA_INPUT_AREA_DEFAULT);
	}
}

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;
		_data11_->opacity = (_vala_GValue_array_free (_data11_->opacity, _data11_->opacity_length1), NULL);
		_data11_->op_keyframes = (g_free (_data11_->op_keyframes), NULL);
		_g_object_unref0 (_data11_->bottom_window);
		_g_object_unref0 (self);
		g_slice_free (Block11Data, _data11_);
	}
}

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

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

static gboolean
___lambda144_ (Block12Data* _data12_)
{
	Block11Data* _data11_;
	GalaWindowManagerGala* self;
	ClutterActor* _tmp0_;
	GValue* _tmp1_;
	gint _tmp1__length1;
	GValue _tmp2_;
	gboolean result;
	_data11_ = _data12_->_data11_;
	self = _data11_->self;
	_tmp0_ = _data12_->actor;
	_tmp1_ = _data11_->opacity;
	_tmp1__length1 = _data11_->opacity_length1;
	_tmp2_ = _tmp1_[0];
	clutter_actor_set_opacity (_tmp0_, g_value_get_uint (&_tmp2_));
	result = FALSE;
	return result;
}

static gboolean
____lambda144__gsource_func (gpointer self)
{
	gboolean result;
	result = ___lambda144_ (self);
	return result;
}

static gboolean
___lambda145_ (Block12Data* _data12_)
{
	Block11Data* _data11_;
	GalaWindowManagerGala* self;
	ClutterActor* _tmp0_;
	gboolean result;
	_data11_ = _data12_->_data11_;
	self = _data11_->self;
	_tmp0_ = _data12_->actor;
	clutter_actor_set_opacity (_tmp0_, 255U);
	result = FALSE;
	return result;
}

static gboolean
____lambda145__gsource_func (gpointer self)
{
	gboolean result;
	result = ___lambda145_ (self);
	return result;
}

static void
__lambda143_ (Block11Data* _data11_,
              MetaWindow* window)
{
	GalaWindowManagerGala* self;
	Block12Data* _data12_;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	GObject* _tmp4_;
	ClutterActor* _tmp5_;
	gboolean _tmp6_;
	gboolean _tmp7_;
	self = _data11_->self;
	g_return_if_fail (window != NULL);
	_data12_ = g_slice_new0 (Block12Data);
	_data12_->_ref_count_ = 1;
	_data12_->_data11_ = block11_data_ref (_data11_);
	if (meta_window_get_xwindow (window) == meta_window_get_xwindow (_data11_->bottom_window)) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = !gala_internal_utils_get_window_is_normal (window);
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		gboolean _tmp2_;
		gboolean _tmp3_;
		g_object_get (window, "minimized", &_tmp2_, NULL);
		_tmp3_ = _tmp2_;
		_tmp0_ = _tmp3_;
	}
	if (_tmp0_) {
		block12_data_unref (_data12_);
		_data12_ = NULL;
		return;
	}
	_tmp4_ = meta_window_get_compositor_private (window);
	_tmp5_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, clutter_actor_get_type ()) ? ((ClutterActor*) _tmp4_) : NULL);
	_data12_->actor = _tmp5_;
	_tmp6_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp7_ = _tmp6_;
	if (_tmp7_) {
		ClutterKeyframeTransition* op_trans = NULL;
		ClutterKeyframeTransition* _tmp8_ = NULL;
		ClutterKeyframeTransition* _tmp9_;
		GValue _tmp10_ = {0};
		ClutterKeyframeTransition* _tmp11_;
		GValue _tmp12_ = {0};
		ClutterKeyframeTransition* _tmp13_;
		gdouble* _tmp14_;
		gint _tmp14__length1;
		ClutterKeyframeTransition* _tmp15_;
		GValue* _tmp16_;
		gint _tmp16__length1;
		ClutterActor* _tmp17_;
		ClutterKeyframeTransition* _tmp18_;
		_tmp8_ = (ClutterKeyframeTransition*) clutter_keyframe_transition_new ("opacity");
		clutter_timeline_set_duration ((ClutterTimeline*) _tmp8_, _data11_->fade_out_duration);
		clutter_transition_set_remove_on_complete ((ClutterTransition*) _tmp8_, TRUE);
		clutter_timeline_set_progress_mode ((ClutterTimeline*) _tmp8_, CLUTTER_EASE_IN_OUT_QUAD);
		op_trans = _tmp8_;
		_tmp9_ = op_trans;
		g_value_init (&_tmp10_, G_TYPE_FLOAT);
		g_value_set_float (&_tmp10_, 255.0f);
		clutter_transition_set_from_value ((ClutterTransition*) _tmp9_, &_tmp10_);
		G_IS_VALUE (&_tmp10_) ? (g_value_unset (&_tmp10_), NULL) : NULL;
		_tmp11_ = op_trans;
		g_value_init (&_tmp12_, G_TYPE_FLOAT);
		g_value_set_float (&_tmp12_, 255.0f);
		clutter_transition_set_to_value ((ClutterTransition*) _tmp11_, &_tmp12_);
		G_IS_VALUE (&_tmp12_) ? (g_value_unset (&_tmp12_), NULL) : NULL;
		_tmp13_ = op_trans;
		_tmp14_ = _data11_->op_keyframes;
		_tmp14__length1 = _data11_->op_keyframes_length1;
		clutter_keyframe_transition_set_key_frames (_tmp13_, (guint) _tmp14__length1, _tmp14_);
		_tmp15_ = op_trans;
		_tmp16_ = _data11_->opacity;
		_tmp16__length1 = _data11_->opacity_length1;
		clutter_keyframe_transition_set_values (_tmp15_, (guint) _tmp16__length1, _tmp16_);
		_tmp17_ = _data12_->actor;
		_tmp18_ = op_trans;
		clutter_actor_add_transition (_tmp17_, "opacity-hide", (ClutterTransition*) _tmp18_);
		_g_object_unref0 (op_trans);
	} else {
		gdouble* _tmp19_;
		gint _tmp19__length1;
		gdouble _tmp20_;
		gdouble* _tmp21_;
		gint _tmp21__length1;
		gdouble _tmp22_;
		_tmp19_ = _data11_->op_keyframes;
		_tmp19__length1 = _data11_->op_keyframes_length1;
		_tmp20_ = _tmp19_[0];
		g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) (_data11_->fade_out_duration * _tmp20_), ____lambda144__gsource_func, block12_data_ref (_data12_), block12_data_unref);
		_tmp21_ = _data11_->op_keyframes;
		_tmp21__length1 = _data11_->op_keyframes_length1;
		_tmp22_ = _tmp21_[1];
		g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) (_data11_->fade_out_duration * _tmp22_), ____lambda145__gsource_func, block12_data_ref (_data12_), block12_data_unref);
	}
	block12_data_unref (_data12_);
	_data12_ = NULL;
}

static void
___lambda143__gfunc (gconstpointer data,
                     gpointer self)
{
	__lambda143_ (self, (MetaWindow*) data);
}

static void
gala_window_manager_gala_show_bottom_stack_window (GalaWindowManagerGala* self,
                                                   MetaWindow* bottom_window)
{
	Block11Data* _data11_;
	MetaWindow* _tmp0_;
	MetaWorkspace* workspace = NULL;
	MetaWorkspace* _tmp1_;
	MetaWorkspace* _tmp2_;
	MetaWindowActor* bottom_actor = NULL;
	GObject* _tmp3_;
	MetaWindowActor* _tmp4_;
	gboolean _tmp5_;
	gboolean _tmp6_;
	gdouble* _tmp8_;
	GValue _tmp9_ = {0};
	GValue _tmp10_ = {0};
	GValue* _tmp11_;
	MetaWorkspace* _tmp12_;
	GList* _tmp13_;
	GList* _tmp14_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (bottom_window != NULL);
	_data11_ = g_slice_new0 (Block11Data);
	_data11_->_ref_count_ = 1;
	_data11_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (bottom_window);
	_g_object_unref0 (_data11_->bottom_window);
	_data11_->bottom_window = _tmp0_;
	_tmp1_ = meta_window_get_workspace (_data11_->bottom_window);
	workspace = _tmp1_;
	_tmp2_ = workspace;
	if (gala_utils_get_n_windows (_tmp2_) == ((guint) 0)) {
		block11_data_unref (_data11_);
		_data11_ = NULL;
		return;
	}
	_tmp3_ = meta_window_get_compositor_private (_data11_->bottom_window);
	_tmp4_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp3_, meta_window_actor_get_type ()) ? ((MetaWindowActor*) _tmp3_) : NULL);
	bottom_actor = _tmp4_;
	_tmp5_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp6_ = _tmp5_;
	if (_tmp6_) {
		MetaWindowActor* _tmp7_;
		_tmp7_ = bottom_actor;
		gala_window_manager_gala_animate_bottom_window_scale (self, _tmp7_);
	}
	_data11_->fade_out_duration = 900U;
	_tmp8_ = g_new0 (gdouble, 2);
	_tmp8_[0] = 0.1;
	_tmp8_[1] = 0.9;
	_data11_->op_keyframes = _tmp8_;
	_data11_->op_keyframes_length1 = 2;
	_data11_->_op_keyframes_size_ = _data11_->op_keyframes_length1;
	g_value_init (&_tmp9_, G_TYPE_UINT);
	g_value_set_uint (&_tmp9_, 20U);
	g_value_init (&_tmp10_, G_TYPE_UINT);
	g_value_set_uint (&_tmp10_, 20U);
	_tmp11_ = g_new0 (GValue, 2);
	_tmp11_[0] = _tmp9_;
	_tmp11_[1] = _tmp10_;
	_data11_->opacity = _tmp11_;
	_data11_->opacity_length1 = 2;
	_data11_->_opacity_size_ = _data11_->opacity_length1;
	_tmp12_ = workspace;
	_tmp13_ = meta_workspace_list_windows (_tmp12_);
	_tmp14_ = _tmp13_;
	g_list_foreach (_tmp14_, ___lambda143__gfunc, _data11_);
	(_tmp14_ == NULL) ? NULL : (_tmp14_ = (g_list_free (_tmp14_), NULL));
	_g_object_unref0 (bottom_actor);
	block11_data_unref (_data11_);
	_data11_ = NULL;
}

static void
gala_window_manager_gala_animate_bottom_window_scale (GalaWindowManagerGala* self,
                                                      MetaWindowActor* actor)
{
	static const gchar* PROPS[2] = {"scale-x", "scale-y"};
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	{
		const gchar** prop_collection = NULL;
		gint prop_collection_length1 = 0;
		gint _prop_collection_size_ = 0;
		gint prop_it = 0;
		prop_collection = PROPS;
		prop_collection_length1 = G_N_ELEMENTS (PROPS);
		for (prop_it = 0; prop_it < prop_collection_length1; prop_it = prop_it + 1) {
			gchar* _tmp0_;
			gchar* prop = NULL;
			_tmp0_ = g_strdup (prop_collection[prop_it]);
			prop = _tmp0_;
			{
				gdouble* scale_keyframes = NULL;
				gdouble* _tmp1_;
				gint scale_keyframes_length1;
				gint _scale_keyframes_size_;
				GValue* scale = NULL;
				GValue _tmp2_ = {0};
				GValue _tmp3_ = {0};
				GValue _tmp4_ = {0};
				GValue* _tmp5_;
				gint scale_length1;
				gint _scale_size_;
				ClutterKeyframeTransition* scale_trans = NULL;
				const gchar* _tmp6_;
				ClutterKeyframeTransition* _tmp7_ = NULL;
				ClutterKeyframeTransition* _tmp8_;
				GValue _tmp9_ = {0};
				ClutterKeyframeTransition* _tmp10_;
				GValue _tmp11_ = {0};
				ClutterKeyframeTransition* _tmp12_;
				gdouble* _tmp13_;
				gint _tmp13__length1;
				ClutterKeyframeTransition* _tmp14_;
				GValue* _tmp15_;
				gint _tmp15__length1;
				const gchar* _tmp16_;
				gchar* _tmp17_;
				gchar* _tmp18_;
				ClutterKeyframeTransition* _tmp19_;
				_tmp1_ = g_new0 (gdouble, 3);
				_tmp1_[0] = 0.2;
				_tmp1_[1] = 0.3;
				_tmp1_[2] = 0.8;
				scale_keyframes = _tmp1_;
				scale_keyframes_length1 = 3;
				_scale_keyframes_size_ = scale_keyframes_length1;
				g_value_init (&_tmp2_, G_TYPE_FLOAT);
				g_value_set_float (&_tmp2_, 1.0f);
				g_value_init (&_tmp3_, G_TYPE_FLOAT);
				g_value_set_float (&_tmp3_, 1.07f);
				g_value_init (&_tmp4_, G_TYPE_FLOAT);
				g_value_set_float (&_tmp4_, 1.07f);
				_tmp5_ = g_new0 (GValue, 3);
				_tmp5_[0] = _tmp2_;
				_tmp5_[1] = _tmp3_;
				_tmp5_[2] = _tmp4_;
				scale = _tmp5_;
				scale_length1 = 3;
				_scale_size_ = scale_length1;
				_tmp6_ = prop;
				_tmp7_ = (ClutterKeyframeTransition*) clutter_keyframe_transition_new (_tmp6_);
				clutter_timeline_set_duration ((ClutterTimeline*) _tmp7_, (guint) 500);
				clutter_transition_set_remove_on_complete ((ClutterTransition*) _tmp7_, TRUE);
				clutter_timeline_set_progress_mode ((ClutterTimeline*) _tmp7_, CLUTTER_EASE_IN_QUAD);
				scale_trans = _tmp7_;
				_tmp8_ = scale_trans;
				g_value_init (&_tmp9_, G_TYPE_FLOAT);
				g_value_set_float (&_tmp9_, 1.0f);
				clutter_transition_set_from_value ((ClutterTransition*) _tmp8_, &_tmp9_);
				G_IS_VALUE (&_tmp9_) ? (g_value_unset (&_tmp9_), NULL) : NULL;
				_tmp10_ = scale_trans;
				g_value_init (&_tmp11_, G_TYPE_FLOAT);
				g_value_set_float (&_tmp11_, 1.0f);
				clutter_transition_set_to_value ((ClutterTransition*) _tmp10_, &_tmp11_);
				G_IS_VALUE (&_tmp11_) ? (g_value_unset (&_tmp11_), NULL) : NULL;
				_tmp12_ = scale_trans;
				_tmp13_ = scale_keyframes;
				_tmp13__length1 = scale_keyframes_length1;
				clutter_keyframe_transition_set_key_frames (_tmp12_, (guint) _tmp13__length1, _tmp13_);
				_tmp14_ = scale_trans;
				_tmp15_ = scale;
				_tmp15__length1 = scale_length1;
				clutter_keyframe_transition_set_values (_tmp14_, (guint) _tmp15__length1, _tmp15_);
				_tmp16_ = prop;
				_tmp17_ = g_strdup_printf ("magnify-%s", _tmp16_);
				_tmp18_ = _tmp17_;
				_tmp19_ = scale_trans;
				clutter_actor_add_transition ((ClutterActor*) actor, _tmp18_, (ClutterTransition*) _tmp19_);
				_g_free0 (_tmp18_);
				_g_object_unref0 (scale_trans);
				scale = (_vala_GValue_array_free (scale, scale_length1), NULL);
				scale_keyframes = (g_free (scale_keyframes), NULL);
				_g_free0 (prop);
			}
		}
	}
}

/**
         * {@inheritDoc}
         */
static void
gala_window_manager_gala_real_move_window (GalaWindowManager* base,
                                           MetaWindow* window,
                                           MetaMotionDirection direction)
{
	GalaWindowManagerGala * self;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp0_;
	MetaWorkspaceManager* manager = NULL;
	MetaDisplay* _tmp1_;
	MetaWorkspaceManager* _tmp2_;
	MetaWorkspace* active = NULL;
	MetaWorkspaceManager* _tmp3_;
	MetaWorkspace* _tmp4_;
	MetaWorkspace* _tmp5_;
	MetaWorkspace* next = NULL;
	MetaWorkspace* _tmp6_;
	MetaWorkspace* _tmp7_;
	MetaWorkspace* _tmp8_;
	gboolean _tmp9_ = FALSE;
	gboolean _tmp10_ = FALSE;
	MetaWindow* _tmp17_;
	MetaWorkspace* _tmp19_;
	MetaDisplay* _tmp20_;
	self = (GalaWindowManagerGala*) base;
	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_);
	_tmp5_ = _g_object_ref0 (_tmp4_);
	active = _tmp5_;
	_tmp6_ = active;
	_tmp7_ = meta_workspace_get_neighbor (_tmp6_, direction);
	_tmp8_ = _g_object_ref0 (_tmp7_);
	next = _tmp8_;
	if (meta_prefs_get_dynamic_workspaces ()) {
		MetaWorkspace* _tmp11_;
		_tmp11_ = active;
		_tmp10_ = gala_utils_get_n_windows (_tmp11_) == ((guint) 1);
	} else {
		_tmp10_ = FALSE;
	}
	if (_tmp10_) {
		MetaWorkspace* _tmp12_;
		MetaWorkspaceManager* _tmp13_;
		gint _tmp14_;
		gint _tmp15_;
		_tmp12_ = next;
		_tmp13_ = manager;
		_tmp14_ = meta_workspace_manager_get_n_workspaces (_tmp13_);
		_tmp15_ = _tmp14_;
		_tmp9_ = meta_workspace_index (_tmp12_) == (_tmp15_ - 1);
	} else {
		_tmp9_ = FALSE;
	}
	if (_tmp9_) {
		MetaDisplay* _tmp16_;
		_tmp16_ = display;
		gala_utils_bell (_tmp16_);
		_g_object_unref0 (next);
		_g_object_unref0 (active);
		return;
	}
	_tmp17_ = _g_object_ref0 (window);
	_g_object_unref0 (self->priv->moving);
	self->priv->moving = _tmp17_;
	if (!meta_window_is_on_all_workspaces (window)) {
		MetaWorkspace* _tmp18_;
		_tmp18_ = next;
		meta_window_change_workspace (window, _tmp18_);
	}
	_tmp19_ = next;
	_tmp20_ = display;
	meta_workspace_activate_with_focus (_tmp19_, window, meta_display_get_current_time (_tmp20_));
	_g_object_unref0 (next);
	_g_object_unref0 (active);
}

/**
         * {@inheritDoc}
         */
static GalaModalProxy*
gala_window_manager_gala_real_push_modal (GalaWindowManager* base,
                                          ClutterActor* actor)
{
	GalaWindowManagerGala * self;
	GalaModalProxy* proxy = NULL;
	GalaModalProxy* _tmp0_;
	GeeLinkedList* _tmp1_;
	GalaModalProxy* _tmp2_;
	GeeLinkedList* _tmp3_;
	gint _tmp4_;
	gint _tmp5_;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp6_;
	GalaModalProxy* _tmp7_;
	ClutterStage* _tmp8_;
	ClutterStage* _tmp9_;
	ClutterGrab* _tmp10_;
	ClutterGrab* _tmp11_;
	GeeLinkedList* _tmp12_;
	gint _tmp13_;
	gint _tmp14_;
	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_);
	_tmp3_ = self->priv->modal_stack;
	_tmp4_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp3_);
	_tmp5_ = _tmp4_;
	if (_tmp5_ >= 2) {
		result = proxy;
		return result;
	}
	_tmp6_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp6_;
	gala_window_manager_gala_update_input_area (self);
	_tmp7_ = proxy;
	_tmp8_ = gala_window_manager_get_stage ((GalaWindowManager*) self);
	_tmp9_ = _tmp8_;
	_tmp10_ = clutter_stage_grab (_tmp9_, actor);
	_tmp11_ = _tmp10_;
	gala_modal_proxy_set_grab (_tmp7_, _tmp11_);
	_clutter_grab_unref0 (_tmp11_);
	_tmp12_ = self->priv->modal_stack;
	_tmp13_ = gee_abstract_collection_get_size ((GeeAbstractCollection*) _tmp12_);
	_tmp14_ = _tmp13_;
	if (_tmp14_ == 1) {
		MetaDisplay* _tmp15_;
		_tmp15_ = display;
		meta_disable_unredirect_for_display (_tmp15_);
	}
	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* _tmp3_;
	MetaDisplay* _tmp4_;
	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:745: Attempted to remove a modal proxy that was not" \
" in the stack");
		return;
	}
	_tmp1_ = gala_modal_proxy_get_grab (proxy);
	_tmp2_ = _tmp1_;
	clutter_grab_dismiss (_tmp2_);
	if (gala_window_manager_is_modal ((GalaWindowManager*) self)) {
		return;
	}
	gala_window_manager_gala_update_input_area (self);
	_tmp3_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp3_;
	_tmp4_ = display;
	meta_enable_unredirect_for_display (_tmp4_);
}

/**
         * {@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;
}

void
gala_window_manager_gala_get_current_cursor_position (GalaWindowManagerGala* self,
                                                      gint* x,
                                                      gint* y)
{
	gint _vala_x = 0;
	gint _vala_y = 0;
	GdkDisplay* _tmp0_;
	GdkSeat* _tmp1_;
	GdkDevice* _tmp2_;
	gint _tmp3_ = 0;
	gint _tmp4_ = 0;
	g_return_if_fail (self != NULL);
	_tmp0_ = gdk_display_get_default ();
	_tmp1_ = gdk_display_get_default_seat (_tmp0_);
	_tmp2_ = gdk_seat_get_pointer (_tmp1_);
	gdk_device_get_position (_tmp2_, NULL, &_tmp3_, &_tmp4_);
	_vala_x = _tmp3_;
	_vala_y = _tmp4_;
	if (x) {
		*x = _vala_x;
	}
	if (y) {
		*y = _vala_y;
	}
}

static void
gala_window_manager_gala_dim_parent_window (GalaWindowManagerGala* self,
                                            MetaWindow* window,
                                            gboolean dim)
{
	MetaWindow* ancestor = NULL;
	MetaWindow* _tmp0_;
	gboolean _tmp1_ = FALSE;
	MetaWindow* _tmp2_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (window != NULL);
	_tmp0_ = meta_window_find_root_ancestor (window);
	ancestor = _tmp0_;
	_tmp2_ = ancestor;
	if (_tmp2_ != NULL) {
		MetaWindow* _tmp3_;
		_tmp3_ = ancestor;
		_tmp1_ = _tmp3_ != window;
	} else {
		_tmp1_ = FALSE;
	}
	if (_tmp1_) {
		MetaWindowActor* win = NULL;
		MetaWindow* _tmp4_;
		GObject* _tmp5_;
		_tmp4_ = ancestor;
		_tmp5_ = meta_window_get_compositor_private (_tmp4_);
		win = G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, meta_window_actor_get_type (), MetaWindowActor);
		if (dim) {
			MetaWindowType _tmp6_;
			MetaWindowType _tmp7_;
			_tmp6_ = meta_window_get_window_type (window);
			_tmp7_ = _tmp6_;
			if (_tmp7_ == META_WINDOW_MODAL_DIALOG) {
				ClutterBrightnessContrastEffect* dark_effect = NULL;
				ClutterBrightnessContrastEffect* _tmp8_;
				ClutterBrightnessContrastEffect* _tmp9_;
				MetaWindowActor* _tmp10_;
				ClutterBrightnessContrastEffect* _tmp11_;
				_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_ = win;
				_tmp11_ = dark_effect;
				clutter_actor_add_effect_with_name ((ClutterActor*) _tmp10_, "dim-parent", (ClutterEffect*) _tmp11_);
				_g_object_unref0 (dark_effect);
			}
		} else {
			MetaWindowActor* _tmp12_;
			ClutterEffect* _tmp13_;
			_tmp12_ = win;
			_tmp13_ = clutter_actor_get_effect ((ClutterActor*) _tmp12_, "dim-parent");
			if (_tmp13_ != NULL) {
				MetaWindowActor* _tmp14_;
				_tmp14_ = win;
				clutter_actor_remove_effect_by_name ((ClutterActor*) _tmp14_, "dim-parent");
			}
		}
	}
}

/**
         * {@inheritDoc}
         */
static GVariant*
_variant_new6 (gboolean value)
{
	return g_variant_ref_sink (g_variant_new_boolean (value));
}

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_;
	MetaWindow* _tmp3_;
	GError* _inner_error0_ = NULL;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp0_;
	_tmp1_ = display;
	_tmp2_ = meta_display_get_focus_window (_tmp1_);
	_tmp3_ = _g_object_ref0 (_tmp2_);
	current = _tmp3_;
	switch (type) {
		case GALA_ACTION_TYPE_SHOW_WORKSPACE_VIEW:
		{
			GalaActivatableComponent* _tmp4_;
			GalaActivatableComponent* _tmp5_;
			GalaActivatableComponent* _tmp6_;
			GalaActivatableComponent* _tmp7_;
			_tmp4_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
			_tmp5_ = _tmp4_;
			if (_tmp5_ == NULL) {
				break;
			}
			_tmp6_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
			_tmp7_ = _tmp6_;
			if (gala_activatable_component_is_opened (_tmp7_)) {
				GalaActivatableComponent* _tmp8_;
				GalaActivatableComponent* _tmp9_;
				_tmp8_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
				_tmp9_ = _tmp8_;
				gala_activatable_component_close (_tmp9_, NULL);
			} else {
				GalaActivatableComponent* _tmp10_;
				GalaActivatableComponent* _tmp11_;
				_tmp10_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
				_tmp11_ = _tmp10_;
				gala_activatable_component_open (_tmp11_, NULL);
			}
			break;
		}
		case GALA_ACTION_TYPE_MAXIMIZE_CURRENT:
		{
			gboolean _tmp12_ = FALSE;
			MetaWindow* _tmp13_;
			MetaMaximizeFlags maximize_flags = 0U;
			MetaWindow* _tmp17_;
			gboolean _tmp18_ = FALSE;
			_tmp13_ = current;
			if (_tmp13_ == NULL) {
				_tmp12_ = TRUE;
			} else {
				MetaWindow* _tmp14_;
				MetaWindowType _tmp15_;
				MetaWindowType _tmp16_;
				_tmp14_ = current;
				_tmp15_ = meta_window_get_window_type (_tmp14_);
				_tmp16_ = _tmp15_;
				_tmp12_ = _tmp16_ != META_WINDOW_NORMAL;
			}
			if (_tmp12_) {
				break;
			}
			_tmp17_ = current;
			maximize_flags = meta_window_get_maximized (_tmp17_);
			if ((maximize_flags & META_MAXIMIZE_VERTICAL) == META_MAXIMIZE_VERTICAL) {
				_tmp18_ = TRUE;
			} else {
				_tmp18_ = (maximize_flags & META_MAXIMIZE_HORIZONTAL) == META_MAXIMIZE_HORIZONTAL;
			}
			if (_tmp18_) {
				MetaWindow* _tmp19_;
				_tmp19_ = current;
				meta_window_unmaximize (_tmp19_, META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
			} else {
				MetaWindow* _tmp20_;
				_tmp20_ = current;
				meta_window_maximize (_tmp20_, META_MAXIMIZE_HORIZONTAL | META_MAXIMIZE_VERTICAL);
			}
			break;
		}
		case GALA_ACTION_TYPE_HIDE_CURRENT:
		{
			gboolean _tmp21_ = FALSE;
			MetaWindow* _tmp22_;
			_tmp22_ = current;
			if (_tmp22_ != NULL) {
				MetaWindow* _tmp23_;
				MetaWindowType _tmp24_;
				MetaWindowType _tmp25_;
				_tmp23_ = current;
				_tmp24_ = meta_window_get_window_type (_tmp23_);
				_tmp25_ = _tmp24_;
				_tmp21_ = _tmp25_ == META_WINDOW_NORMAL;
			} else {
				_tmp21_ = FALSE;
			}
			if (_tmp21_) {
				MetaWindow* _tmp26_;
				_tmp26_ = current;
				meta_window_minimize (_tmp26_);
			}
			break;
		}
		case GALA_ACTION_TYPE_START_MOVE_CURRENT:
		{
			gboolean _tmp27_ = FALSE;
			MetaWindow* _tmp28_;
			_tmp28_ = current;
			if (_tmp28_ != NULL) {
				MetaWindow* _tmp29_;
				_tmp29_ = current;
				_tmp27_ = meta_window_allows_move (_tmp29_);
			} else {
				_tmp27_ = FALSE;
			}
			if (_tmp27_) {
				MetaWindow* _tmp30_;
				_tmp30_ = current;
				meta_window_begin_grab_op (_tmp30_, META_GRAB_OP_KEYBOARD_MOVING, TRUE, gtk_get_current_event_time ());
			}
			break;
		}
		case GALA_ACTION_TYPE_START_RESIZE_CURRENT:
		{
			gboolean _tmp31_ = FALSE;
			MetaWindow* _tmp32_;
			_tmp32_ = current;
			if (_tmp32_ != NULL) {
				MetaWindow* _tmp33_;
				_tmp33_ = current;
				_tmp31_ = meta_window_allows_resize (_tmp33_);
			} else {
				_tmp31_ = FALSE;
			}
			if (_tmp31_) {
				MetaWindow* _tmp34_;
				_tmp34_ = current;
				meta_window_begin_grab_op (_tmp34_, META_GRAB_OP_KEYBOARD_RESIZING_UNKNOWN, TRUE, gtk_get_current_event_time ());
			}
			break;
		}
		case GALA_ACTION_TYPE_TOGGLE_ALWAYS_ON_TOP_CURRENT:
		{
			MetaWindow* _tmp35_;
			MetaWindow* _tmp36_;
			_tmp35_ = current;
			if (_tmp35_ == NULL) {
				break;
			}
			_tmp36_ = current;
			if (meta_window_is_above (_tmp36_)) {
				MetaWindow* _tmp37_;
				_tmp37_ = current;
				meta_window_unmake_above (_tmp37_);
			} else {
				MetaWindow* _tmp38_;
				_tmp38_ = current;
				meta_window_make_above (_tmp38_);
			}
			break;
		}
		case GALA_ACTION_TYPE_TOGGLE_ALWAYS_ON_VISIBLE_WORKSPACE_CURRENT:
		{
			MetaWindow* _tmp39_;
			MetaWindow* _tmp40_;
			gboolean _tmp41_;
			gboolean _tmp42_;
			_tmp39_ = current;
			if (_tmp39_ == NULL) {
				break;
			}
			_tmp40_ = current;
			g_object_get (_tmp40_, "on-all-workspaces", &_tmp41_, NULL);
			_tmp42_ = _tmp41_;
			if (_tmp42_) {
				MetaWindow* _tmp43_;
				_tmp43_ = current;
				meta_window_unstick (_tmp43_);
			} else {
				MetaWindow* _tmp44_;
				_tmp44_ = current;
				meta_window_stick (_tmp44_);
			}
			break;
		}
		case GALA_ACTION_TYPE_MOVE_CURRENT_WORKSPACE_LEFT:
		{
			MetaWindow* _tmp45_;
			_tmp45_ = current;
			if (_tmp45_ != NULL) {
				MetaWorkspace* wp = NULL;
				MetaWindow* _tmp46_;
				MetaWorkspace* _tmp47_;
				MetaWorkspace* _tmp48_;
				MetaWorkspace* _tmp49_;
				MetaWorkspace* _tmp50_;
				_tmp46_ = current;
				_tmp47_ = meta_window_get_workspace (_tmp46_);
				_tmp48_ = meta_workspace_get_neighbor (_tmp47_, META_MOTION_LEFT);
				_tmp49_ = _g_object_ref0 (_tmp48_);
				wp = _tmp49_;
				_tmp50_ = wp;
				if (_tmp50_ != NULL) {
					MetaWindow* _tmp51_;
					MetaWorkspace* _tmp52_;
					_tmp51_ = current;
					_tmp52_ = wp;
					meta_window_change_workspace (_tmp51_, _tmp52_);
				}
				_g_object_unref0 (wp);
			}
			break;
		}
		case GALA_ACTION_TYPE_MOVE_CURRENT_WORKSPACE_RIGHT:
		{
			MetaWindow* _tmp53_;
			_tmp53_ = current;
			if (_tmp53_ != NULL) {
				MetaWorkspace* wp = NULL;
				MetaWindow* _tmp54_;
				MetaWorkspace* _tmp55_;
				MetaWorkspace* _tmp56_;
				MetaWorkspace* _tmp57_;
				MetaWorkspace* _tmp58_;
				_tmp54_ = current;
				_tmp55_ = meta_window_get_workspace (_tmp54_);
				_tmp56_ = meta_workspace_get_neighbor (_tmp55_, META_MOTION_RIGHT);
				_tmp57_ = _g_object_ref0 (_tmp56_);
				wp = _tmp57_;
				_tmp58_ = wp;
				if (_tmp58_ != NULL) {
					MetaWindow* _tmp59_;
					MetaWorkspace* _tmp60_;
					_tmp59_ = current;
					_tmp60_ = wp;
					meta_window_change_workspace (_tmp59_, _tmp60_);
				}
				_g_object_unref0 (wp);
			}
			break;
		}
		case GALA_ACTION_TYPE_CLOSE_CURRENT:
		{
			gboolean _tmp61_ = FALSE;
			MetaWindow* _tmp62_;
			_tmp62_ = current;
			if (_tmp62_ != NULL) {
				MetaWindow* _tmp63_;
				_tmp63_ = current;
				_tmp61_ = meta_window_can_close (_tmp63_);
			} else {
				_tmp61_ = FALSE;
			}
			if (_tmp61_) {
				MetaWindow* _tmp64_;
				_tmp64_ = current;
				meta_window_delete (_tmp64_, gtk_get_current_event_time ());
			}
			break;
		}
		case GALA_ACTION_TYPE_OPEN_LAUNCHER:
		{
			{
				GSettings* _tmp65_;
				gchar* _tmp66_;
				gchar* _tmp67_;
				_tmp65_ = self->priv->behavior_settings;
				_tmp66_ = g_settings_get_string (_tmp65_, "panel-main-menu-action");
				_tmp67_ = _tmp66_;
				g_spawn_command_line_async (_tmp67_, &_inner_error0_);
				_g_free0 (_tmp67_);
				if (G_UNLIKELY (_inner_error0_ != NULL)) {
					goto __catch0_g_error;
				}
			}
			goto __finally0;
			__catch0_g_error:
			{
				GError* e = NULL;
				GError* _tmp68_;
				const gchar* _tmp69_;
				e = _inner_error0_;
				_inner_error0_ = NULL;
				_tmp68_ = e;
				_tmp69_ = _tmp68_->message;
				g_warning ("WindowManager.vala:884: %s", _tmp69_);
				_g_error_free0 (e);
			}
			__finally0:
			if (G_UNLIKELY (_inner_error0_ != NULL)) {
				_g_object_unref0 (current);
				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;
			}
			break;
		}
		case GALA_ACTION_TYPE_WINDOW_OVERVIEW:
		{
			GalaActivatableComponent* _tmp70_;
			GalaActivatableComponent* _tmp71_;
			_tmp70_ = self->priv->window_overview;
			if (_tmp70_ == NULL) {
				break;
			}
			_tmp71_ = self->priv->window_overview;
			if (gala_activatable_component_is_opened (_tmp71_)) {
				GalaActivatableComponent* _tmp72_;
				_tmp72_ = self->priv->window_overview;
				gala_activatable_component_close (_tmp72_, NULL);
			} else {
				GalaActivatableComponent* _tmp73_;
				_tmp73_ = self->priv->window_overview;
				gala_activatable_component_open (_tmp73_, NULL);
			}
			break;
		}
		case GALA_ACTION_TYPE_WINDOW_OVERVIEW_ALL:
		{
			GalaActivatableComponent* _tmp74_;
			GalaActivatableComponent* _tmp75_;
			_tmp74_ = self->priv->window_overview;
			if (_tmp74_ == NULL) {
				break;
			}
			_tmp75_ = self->priv->window_overview;
			if (gala_activatable_component_is_opened (_tmp75_)) {
				GalaActivatableComponent* _tmp76_;
				_tmp76_ = self->priv->window_overview;
				gala_activatable_component_close (_tmp76_, NULL);
			} else {
				GHashTable* hints = NULL;
				GHashFunc _tmp77_;
				GEqualFunc _tmp78_;
				GHashTable* _tmp79_;
				GHashTable* _tmp80_;
				gchar* _tmp81_;
				GVariant* _tmp82_;
				GalaActivatableComponent* _tmp83_;
				GHashTable* _tmp84_;
				_tmp77_ = g_str_hash;
				_tmp78_ = g_str_equal;
				_tmp79_ = g_hash_table_new_full (_tmp77_, _tmp78_, _g_free0_, _g_variant_unref0_);
				hints = _tmp79_;
				_tmp80_ = hints;
				_tmp81_ = g_strdup ("all-windows");
				_tmp82_ = _variant_new6 (TRUE);
				g_hash_table_insert (_tmp80_, _tmp81_, _tmp82_);
				_tmp83_ = self->priv->window_overview;
				_tmp84_ = hints;
				gala_activatable_component_open (_tmp83_, _tmp84_);
				_g_hash_table_unref0 (hints);
			}
			break;
		}
		case GALA_ACTION_TYPE_SWITCH_TO_WORKSPACE_LAST:
		{
			MetaWorkspaceManager* manager = NULL;
			MetaDisplay* _tmp85_;
			MetaWorkspaceManager* _tmp86_;
			MetaWorkspace* workspace = NULL;
			MetaWorkspaceManager* _tmp87_;
			MetaWorkspaceManager* _tmp88_;
			MetaWorkspace* _tmp89_;
			MetaWorkspace* _tmp90_;
			MetaWorkspace* _tmp91_;
			MetaDisplay* _tmp92_;
			_tmp85_ = display;
			_tmp86_ = meta_display_get_workspace_manager (_tmp85_);
			manager = _tmp86_;
			_tmp87_ = manager;
			_tmp88_ = manager;
			_tmp89_ = meta_workspace_manager_get_workspace_by_index (_tmp87_, meta_workspace_manager_get_n_workspaces (_tmp88_) - 1);
			_tmp90_ = _g_object_ref0 (_tmp89_);
			workspace = _tmp90_;
			_tmp91_ = workspace;
			_tmp92_ = display;
			meta_workspace_activate (_tmp91_, meta_display_get_current_time (_tmp92_));
			_g_object_unref0 (workspace);
			break;
		}
		case GALA_ACTION_TYPE_SCREENSHOT_CURRENT:
		{
			gala_window_manager_gala_screenshot_current_window (self, FALSE, NULL, NULL);
			break;
		}
		default:
		{
			g_warning ("WindowManager.vala:917: Trying to run unknown action");
			break;
		}
	}
	_g_object_unref0 (current);
}

static void
___lambda146_ (GalaWindowManagerGala* self,
               GObject* obj,
               GAsyncResult* res)
{
	GError* _inner_error0_ = NULL;
	g_return_if_fail (res != NULL);
	{
		gala_daemon_show_window_menu_finish (G_TYPE_CHECK_INSTANCE_CAST (obj, GALA_TYPE_DAEMON, GalaDaemon), res, &_inner_error0_);
		if (G_UNLIKELY (_inner_error0_ != NULL)) {
			goto __catch0_g_error;
		}
	}
	goto __finally0;
	__catch0_g_error:
	{
		GError* e = NULL;
		GError* _tmp0_;
		const gchar* _tmp1_;
		e = _inner_error0_;
		_inner_error0_ = NULL;
		_tmp0_ = e;
		_tmp1_ = _tmp0_->message;
		g_message ("WindowManager.vala:964: Error invoking MenuManager: %s", _tmp1_);
		_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 void
____lambda146__gasync_ready_callback (GObject* source_object,
                                      GAsyncResult* res,
                                      gpointer self)
{
	___lambda146_ ((GalaWindowManagerGala*) self, source_object, res);
	g_object_unref (self);
}

static void
gala_window_manager_gala_real_show_window_menu (MetaPlugin* base,
                                                MetaWindow* window,
                                                MetaWindowMenuType menu,
                                                gint x,
                                                gint y)
{
	GalaWindowManagerGala * self;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (window != NULL);
	switch (menu) {
		case META_WINDOW_MENU_WM:
		{
			gboolean _tmp0_ = FALSE;
			GalaDaemon* _tmp1_;
			GalaWindowFlags flags = 0U;
			MetaMaximizeFlags maximize_flags = 0U;
			gboolean _tmp3_;
			gboolean _tmp4_;
			GalaDaemon* _tmp5_;
			_tmp1_ = self->priv->daemon_proxy;
			if (_tmp1_ == NULL) {
				_tmp0_ = TRUE;
			} else {
				_tmp0_ = meta_window_get_window_type (window) == META_WINDOW_NOTIFICATION;
			}
			if (_tmp0_) {
				return;
			}
			flags = GALA_WINDOW_FLAGS_NONE;
			if (meta_window_can_minimize (window)) {
				flags |= GALA_WINDOW_FLAGS_CAN_HIDE;
			}
			if (meta_window_can_maximize (window)) {
				flags |= GALA_WINDOW_FLAGS_CAN_MAXIMIZE;
			}
			maximize_flags = meta_window_get_maximized (window);
			if (maximize_flags > 0) {
				gboolean _tmp2_ = FALSE;
				flags |= GALA_WINDOW_FLAGS_IS_MAXIMIZED;
				if ((maximize_flags & META_MAXIMIZE_VERTICAL) == META_MAXIMIZE_VERTICAL) {
					_tmp2_ = !((maximize_flags & META_MAXIMIZE_HORIZONTAL) == META_MAXIMIZE_HORIZONTAL);
				} else {
					_tmp2_ = FALSE;
				}
				if (_tmp2_) {
					flags |= GALA_WINDOW_FLAGS_IS_TILED;
				}
			}
			if (meta_window_allows_move (window)) {
				flags |= GALA_WINDOW_FLAGS_ALLOWS_MOVE;
			}
			if (meta_window_allows_resize (window)) {
				flags |= GALA_WINDOW_FLAGS_ALLOWS_RESIZE;
			}
			if (meta_window_is_above (window)) {
				flags |= GALA_WINDOW_FLAGS_ALWAYS_ON_TOP;
			}
			g_object_get (window, "on-all-workspaces", &_tmp3_, NULL);
			_tmp4_ = _tmp3_;
			if (_tmp4_) {
				flags |= GALA_WINDOW_FLAGS_ON_ALL_WORKSPACES;
			}
			if (meta_window_can_close (window)) {
				flags |= GALA_WINDOW_FLAGS_CAN_CLOSE;
			}
			_tmp5_ = self->priv->daemon_proxy;
			gala_daemon_show_window_menu (_tmp5_, flags, x, y, ____lambda146__gasync_ready_callback, g_object_ref (self));
			break;
		}
		case META_WINDOW_MENU_APP:
		{
			break;
		}
		default:
		break;
	}
}

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

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,
                                                         MetaRectangle* rect)
{
	GalaWindowManagerGala * self;
	MetaRectangle _tmp0_;
	MetaRectangle _tmp1_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (window != NULL);
	g_return_if_fail (rect != NULL);
	_tmp0_ = *rect;
	_tmp1_ = *rect;
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->show_window_menu ((MetaPlugin*) self, window, menu, _tmp0_.x, _tmp1_.y);
}

static void
gala_window_manager_gala_handle_fullscreen_window (GalaWindowManagerGala* self,
                                                   MetaWindow* window,
                                                   MetaSizeChange which_change)
{
	gboolean _tmp0_ = FALSE;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp2_;
	guint32 time = 0U;
	MetaDisplay* _tmp3_;
	MetaWorkspace* win_ws = NULL;
	MetaWorkspace* _tmp4_;
	MetaWorkspaceManager* manager = NULL;
	MetaDisplay* _tmp5_;
	MetaWorkspaceManager* _tmp6_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (window != NULL);
	if (!meta_window_is_on_primary_monitor (window)) {
		_tmp0_ = TRUE;
	} else {
		GSettings* _tmp1_;
		_tmp1_ = self->priv->behavior_settings;
		_tmp0_ = !g_settings_get_boolean (_tmp1_, "move-fullscreened-workspace");
	}
	if (_tmp0_) {
		return;
	}
	if (!meta_prefs_get_dynamic_workspaces ()) {
		return;
	}
	_tmp2_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp2_;
	_tmp3_ = display;
	time = meta_display_get_current_time (_tmp3_);
	_tmp4_ = meta_window_get_workspace (window);
	win_ws = _tmp4_;
	_tmp5_ = display;
	_tmp6_ = meta_display_get_workspace_manager (_tmp5_);
	manager = _tmp6_;
	if (which_change == META_SIZE_CHANGE_FULLSCREEN) {
		MetaWorkspace* _tmp7_;
		gint old_ws_index = 0;
		MetaWorkspace* _tmp8_;
		gint new_ws_index = 0;
		MetaWorkspace* new_ws_obj = NULL;
		MetaWorkspaceManager* _tmp9_;
		MetaWorkspace* _tmp10_;
		MetaWorkspace* _tmp11_;
		MetaWorkspace* _tmp12_;
		MetaWorkspace* _tmp13_;
		GHashTable* _tmp14_;
		MetaWindow* _tmp15_;
		_tmp7_ = win_ws;
		if (gala_utils_get_n_windows (_tmp7_) <= ((guint) 1)) {
			return;
		}
		_tmp8_ = win_ws;
		old_ws_index = meta_workspace_index (_tmp8_);
		new_ws_index = old_ws_index + 1;
		gala_internal_utils_insert_workspace_with_window (new_ws_index, window);
		_tmp9_ = manager;
		_tmp10_ = meta_workspace_manager_get_workspace_by_index (_tmp9_, new_ws_index);
		_tmp11_ = _g_object_ref0 (_tmp10_);
		new_ws_obj = _tmp11_;
		_tmp12_ = new_ws_obj;
		meta_window_change_workspace (window, _tmp12_);
		_tmp13_ = new_ws_obj;
		meta_workspace_activate_with_focus (_tmp13_, window, time);
		_tmp14_ = self->priv->ws_assoc;
		_tmp15_ = _g_object_ref0 (window);
		g_hash_table_insert (_tmp14_, _tmp15_, (gpointer) ((gintptr) old_ws_index));
		_g_object_unref0 (new_ws_obj);
	} else {
		GHashTable* _tmp16_;
		_tmp16_ = self->priv->ws_assoc;
		if (g_hash_table_contains (_tmp16_, window)) {
			gint old_ws_index = 0;
			GHashTable* _tmp17_;
			gconstpointer _tmp18_;
			gint new_ws_index = 0;
			MetaWorkspace* _tmp19_;
			gboolean _tmp20_ = FALSE;
			GHashTable* _tmp27_;
			_tmp17_ = self->priv->ws_assoc;
			_tmp18_ = g_hash_table_lookup (_tmp17_, window);
			old_ws_index = (gint) ((gintptr) _tmp18_);
			_tmp19_ = win_ws;
			new_ws_index = meta_workspace_index (_tmp19_);
			if (new_ws_index != old_ws_index) {
				MetaWorkspaceManager* _tmp21_;
				_tmp21_ = manager;
				_tmp20_ = old_ws_index < meta_workspace_manager_get_n_workspaces (_tmp21_);
			} else {
				_tmp20_ = FALSE;
			}
			if (_tmp20_) {
				MetaWorkspace* old_ws_obj = NULL;
				MetaWorkspaceManager* _tmp22_;
				MetaWorkspace* _tmp23_;
				MetaWorkspace* _tmp24_;
				MetaWorkspace* _tmp25_;
				MetaWorkspace* _tmp26_;
				_tmp22_ = manager;
				_tmp23_ = meta_workspace_manager_get_workspace_by_index (_tmp22_, old_ws_index);
				_tmp24_ = _g_object_ref0 (_tmp23_);
				old_ws_obj = _tmp24_;
				_tmp25_ = old_ws_obj;
				meta_window_change_workspace (window, _tmp25_);
				_tmp26_ = old_ws_obj;
				meta_workspace_activate_with_focus (_tmp26_, window, time);
				_g_object_unref0 (old_ws_obj);
			}
			_tmp27_ = self->priv->ws_assoc;
			g_hash_table_remove (_tmp27_, window);
		}
	}
}

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

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

static void
gala_window_manager_gala_real_size_change (MetaPlugin* base,
                                           MetaWindowActor* actor,
                                           MetaSizeChange which_change_local,
                                           MetaRectangle* old_frame_rect,
                                           MetaRectangle* old_buffer_rect)
{
	GalaWindowManagerGala * self;
	MetaSizeChange* _tmp0_;
	MetaRectangle _tmp1_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	g_return_if_fail (old_frame_rect != NULL);
	g_return_if_fail (old_buffer_rect != NULL);
	_tmp0_ = __meta_size_change_dup0 (&which_change_local);
	_g_free0 (self->priv->which_change);
	self->priv->which_change = _tmp0_;
	_tmp1_ = *old_frame_rect;
	self->priv->old_rect_size_change = _tmp1_;
}

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

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

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

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

static void
block14_data_unref (void * _userdata_)
{
	Block14Data* _data14_;
	_data14_ = (Block14Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data14_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data14_->_data13_->self;
		block13_data_unref (_data14_->_data13_);
		_data14_->_data13_ = NULL;
		g_slice_free (Block14Data, _data14_);
	}
}

static void
___lambda152_ (Block14Data* _data14_)
{
	Block13Data* _data13_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data13_ = _data14_->_data13_;
	self = _data13_->self;
	g_signal_handler_disconnect ((GObject*) _data13_->actor, _data14_->minimize_handler_id);
	clutter_actor_set_pivot_point ((ClutterActor*) _data13_->actor, 0.0f, 0.0f);
	clutter_actor_set_scale ((ClutterActor*) _data13_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
	clutter_actor_set_opacity ((ClutterActor*) _data13_->actor, 255U);
	meta_plugin_minimize_completed ((MetaPlugin*) self, _data13_->actor);
	_tmp0_ = self->priv->minimizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data13_->actor);
}

static void
____lambda152__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda152_ (self);
}

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

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

static void
___lambda153_ (Block15Data* _data15_)
{
	Block13Data* _data13_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data13_ = _data15_->_data13_;
	self = _data13_->self;
	g_signal_handler_disconnect ((GObject*) _data13_->actor, _data15_->minimize_handler_id);
	clutter_actor_set_pivot_point ((ClutterActor*) _data13_->actor, 0.0f, 0.0f);
	clutter_actor_set_scale ((ClutterActor*) _data13_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
	clutter_actor_set_opacity ((ClutterActor*) _data13_->actor, 255U);
	meta_plugin_minimize_completed ((MetaPlugin*) self, _data13_->actor);
	_tmp0_ = self->priv->minimizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data13_->actor);
}

static void
____lambda153__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda153_ (self);
}

static void
gala_window_manager_gala_real_minimize (MetaPlugin* base,
                                        MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	Block13Data* _data13_;
	MetaWindowActor* _tmp0_;
	GalaAnimationDuration duration = 0;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_;
	gboolean _tmp4_;
	GeeHashSet* _tmp8_;
	gint width = 0;
	gint height = 0;
	MetaDisplay* _tmp9_;
	gint _tmp10_ = 0;
	gint _tmp11_ = 0;
	MetaRectangle icon = {0};
	MetaRectangle _tmp12_ = {0};
	MetaWindow* _tmp13_;
	MetaRectangle _tmp14_ = {0};
	gboolean _tmp15_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_data13_ = g_slice_new0 (Block13Data);
	_data13_->_ref_count_ = 1;
	_data13_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data13_->actor);
	_data13_->actor = _tmp0_;
	duration = GALA_ANIMATION_DURATION_HIDE;
	_tmp3_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp4_ = _tmp3_;
	if (!_tmp4_) {
		_tmp2_ = TRUE;
	} else {
		_tmp2_ = duration == 0;
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		MetaWindow* _tmp5_;
		MetaWindowType _tmp6_;
		MetaWindowType _tmp7_;
		_tmp5_ = meta_window_actor_get_meta_window (_data13_->actor);
		_tmp6_ = meta_window_get_window_type (_tmp5_);
		_tmp7_ = _tmp6_;
		_tmp1_ = _tmp7_ != META_WINDOW_NORMAL;
	}
	if (_tmp1_) {
		meta_plugin_minimize_completed ((MetaPlugin*) self, _data13_->actor);
		block13_data_unref (_data13_);
		_data13_ = NULL;
		return;
	}
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) self, _data13_->actor);
	_tmp8_ = self->priv->minimizing;
	gee_abstract_collection_add ((GeeAbstractCollection*) _tmp8_, _data13_->actor);
	_tmp9_ = meta_plugin_get_display ((MetaPlugin*) self);
	meta_display_get_size (_tmp9_, &_tmp10_, &_tmp11_);
	width = _tmp10_;
	height = _tmp11_;
	icon = _tmp12_;
	_tmp13_ = meta_window_actor_get_meta_window (_data13_->actor);
	_tmp15_ = meta_window_get_icon_geometry (_tmp13_, &_tmp14_);
	icon = _tmp14_;
	if (_tmp15_) {
		Block14Data* _data14_;
		gint ui_scale = 0;
		gfloat scale_x = 0.0F;
		MetaRectangle _tmp16_;
		gfloat _tmp17_;
		gfloat _tmp18_;
		gfloat scale_y = 0.0F;
		MetaRectangle _tmp19_;
		gfloat _tmp20_;
		gfloat _tmp21_;
		gfloat anchor_x = 0.0F;
		gfloat _tmp22_;
		gfloat _tmp23_;
		MetaRectangle _tmp24_;
		MetaRectangle _tmp25_;
		gfloat _tmp26_;
		gfloat _tmp27_;
		gfloat anchor_y = 0.0F;
		gfloat _tmp28_;
		gfloat _tmp29_;
		MetaRectangle _tmp30_;
		MetaRectangle _tmp31_;
		gfloat _tmp32_;
		gfloat _tmp33_;
		gulong _tmp34_;
		_data14_ = g_slice_new0 (Block14Data);
		_data14_->_ref_count_ = 1;
		_data14_->_data13_ = block13_data_ref (_data13_);
		ui_scale = gala_internal_utils_get_ui_scaling_factor ();
		icon.x = icon.x * ui_scale;
		icon.y = icon.y * ui_scale;
		icon.width = icon.width * ui_scale;
		icon.height = icon.height * ui_scale;
		_tmp16_ = icon;
		_tmp17_ = clutter_actor_get_width ((ClutterActor*) _data13_->actor);
		_tmp18_ = _tmp17_;
		scale_x = ((gfloat) _tmp16_.width) / _tmp18_;
		_tmp19_ = icon;
		_tmp20_ = clutter_actor_get_height ((ClutterActor*) _data13_->actor);
		_tmp21_ = _tmp20_;
		scale_y = ((gfloat) _tmp19_.height) / _tmp21_;
		_tmp22_ = clutter_actor_get_x ((ClutterActor*) _data13_->actor);
		_tmp23_ = _tmp22_;
		_tmp24_ = icon;
		_tmp25_ = icon;
		_tmp26_ = clutter_actor_get_width ((ClutterActor*) _data13_->actor);
		_tmp27_ = _tmp26_;
		anchor_x = ((gfloat) (_tmp23_ - _tmp24_.x)) / (_tmp25_.width - _tmp27_);
		_tmp28_ = clutter_actor_get_y ((ClutterActor*) _data13_->actor);
		_tmp29_ = _tmp28_;
		_tmp30_ = icon;
		_tmp31_ = icon;
		_tmp32_ = clutter_actor_get_height ((ClutterActor*) _data13_->actor);
		_tmp33_ = _tmp32_;
		anchor_y = ((gfloat) (_tmp29_ - _tmp30_.y)) / (_tmp31_.height - _tmp33_);
		clutter_actor_set_pivot_point ((ClutterActor*) _data13_->actor, anchor_x, anchor_y);
		clutter_actor_save_easing_state ((ClutterActor*) _data13_->actor);
		clutter_actor_set_easing_mode ((ClutterActor*) _data13_->actor, CLUTTER_EASE_IN_EXPO);
		clutter_actor_set_easing_duration ((ClutterActor*) _data13_->actor, (guint) duration);
		clutter_actor_set_scale ((ClutterActor*) _data13_->actor, (gdouble) scale_x, (gdouble) scale_y);
		clutter_actor_set_opacity ((ClutterActor*) _data13_->actor, 0U);
		clutter_actor_restore_easing_state ((ClutterActor*) _data13_->actor);
		_data14_->minimize_handler_id = 0UL;
		_tmp34_ = g_signal_connect_data ((ClutterActor*) _data13_->actor, "transitions-completed", (GCallback) ____lambda152__clutter_actor_transitions_completed, block14_data_ref (_data14_), (GClosureNotify) block14_data_unref, 0);
		_data14_->minimize_handler_id = _tmp34_;
		block14_data_unref (_data14_);
		_data14_ = NULL;
	} else {
		Block15Data* _data15_;
		gulong _tmp35_;
		_data15_ = g_slice_new0 (Block15Data);
		_data15_->_ref_count_ = 1;
		_data15_->_data13_ = block13_data_ref (_data13_);
		clutter_actor_set_pivot_point ((ClutterActor*) _data13_->actor, 0.5f, 1.0f);
		clutter_actor_save_easing_state ((ClutterActor*) _data13_->actor);
		clutter_actor_set_easing_mode ((ClutterActor*) _data13_->actor, CLUTTER_EASE_IN_EXPO);
		clutter_actor_set_easing_duration ((ClutterActor*) _data13_->actor, (guint) duration);
		clutter_actor_set_scale ((ClutterActor*) _data13_->actor, (gdouble) 0.0f, (gdouble) 0.0f);
		clutter_actor_set_opacity ((ClutterActor*) _data13_->actor, 0U);
		clutter_actor_restore_easing_state ((ClutterActor*) _data13_->actor);
		_data15_->minimize_handler_id = 0UL;
		_tmp35_ = g_signal_connect_data ((ClutterActor*) _data13_->actor, "transitions-completed", (GCallback) ____lambda153__clutter_actor_transitions_completed, block15_data_ref (_data15_), (GClosureNotify) block15_data_unref, 0);
		_data15_->minimize_handler_id = _tmp35_;
		block15_data_unref (_data15_);
		_data15_ = NULL;
	}
	block13_data_unref (_data13_);
	_data13_ = NULL;
}

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

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

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

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

static gboolean
____lambda147_ (Block17Data* _data17_)
{
	Block16Data* _data16_;
	GalaWindowManagerGala* self;
	gboolean result;
	_data16_ = _data17_->_data16_;
	self = _data16_->self;
	clutter_actor_set_opacity ((ClutterActor*) _data16_->actor, (guint) 255);
	result = FALSE;
	return result;
}

static gboolean
_____lambda147__gsource_func (gpointer self)
{
	gboolean result;
	result = ____lambda147_ (self);
	return result;
}

static void
___lambda148_ (Block17Data* _data17_)
{
	Block16Data* _data16_;
	GalaWindowManagerGala* self;
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	_data16_ = _data17_->_data16_;
	self = _data16_->self;
	_tmp0_ = _data17_->old_actor;
	g_signal_handler_disconnect ((GObject*) _tmp0_, _data17_->maximize_old_handler_id);
	_tmp1_ = _data17_->old_actor;
	clutter_actor_destroy (_tmp1_);
	clutter_actor_set_translation ((ClutterActor*) _data16_->actor, 0.0f, 0.0f, 0.0f);
}

static void
____lambda148__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda148_ (self);
}

static void
___lambda149_ (Block17Data* _data17_)
{
	Block16Data* _data16_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data16_ = _data17_->_data16_;
	self = _data16_->self;
	g_signal_handler_disconnect ((GObject*) _data16_->actor, _data17_->handler_id);
	_tmp0_ = self->priv->maximizing;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data16_->actor);
}

static void
____lambda149__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda149_ (self);
}

static void
gala_window_manager_gala_maximize (GalaWindowManagerGala* self,
                                   MetaWindowActor* actor,
                                   gint ex,
                                   gint ey,
                                   gint ew,
                                   gint eh)
{
	Block16Data* _data16_;
	MetaWindowActor* _tmp0_;
	GalaAnimationDuration duration = 0;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_;
	gboolean _tmp3_;
	MetaWindow* window = NULL;
	MetaWindow* _tmp4_;
	MetaWindow* _tmp5_;
	gboolean _tmp6_ = FALSE;
	MetaWindow* _tmp7_;
	gboolean _tmp8_;
	gboolean _tmp9_;
	MetaWindow* _tmp12_;
	MetaWindowType _tmp13_;
	MetaWindowType _tmp14_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data16_ = g_slice_new0 (Block16Data);
	_data16_->_ref_count_ = 1;
	_data16_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data16_->actor);
	_data16_->actor = _tmp0_;
	duration = GALA_ANIMATION_DURATION_SNAP;
	_tmp2_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp3_ = _tmp2_;
	if (!_tmp3_) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = duration == 0;
	}
	if (_tmp1_) {
		block16_data_unref (_data16_);
		_data16_ = NULL;
		return;
	}
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) self, _data16_->actor);
	_tmp4_ = meta_window_actor_get_meta_window (_data16_->actor);
	_tmp5_ = _g_object_ref0 (_tmp4_);
	window = _tmp5_;
	_tmp7_ = window;
	g_object_get (_tmp7_, "maximized-horizontally", &_tmp8_, NULL);
	_tmp9_ = _tmp8_;
	if (_tmp9_) {
		GSettings* _tmp10_;
		_tmp10_ = self->priv->behavior_settings;
		_tmp6_ = g_settings_get_boolean (_tmp10_, "move-maximized-workspace");
	} else {
		_tmp6_ = FALSE;
	}
	if (_tmp6_) {
		MetaWindow* _tmp11_;
		_tmp11_ = window;
		gala_window_manager_gala_move_window_to_next_ws (self, _tmp11_);
	}
	_tmp12_ = window;
	_tmp13_ = meta_window_get_window_type (_tmp12_);
	_tmp14_ = _tmp13_;
	if (_tmp14_ == META_WINDOW_NORMAL) {
		Block17Data* _data17_;
		MetaRectangle fallback = {0};
		gfloat _tmp15_;
		gfloat _tmp16_;
		gfloat _tmp17_;
		gfloat _tmp18_;
		gfloat _tmp19_;
		gfloat _tmp20_;
		gfloat _tmp21_;
		gfloat _tmp22_;
		MetaRectangle _tmp23_ = {0};
		GalaWindowListenerWindowGeometry* window_geometry = NULL;
		GalaWindowListener* _tmp24_;
		MetaWindow* _tmp25_;
		GalaWindowListenerWindowGeometry* _tmp26_;
		MetaRectangle _tmp27_ = {0};
		GalaWindowListenerWindowGeometry* _tmp28_;
		MetaRectangle old_inner_rect = {0};
		MetaRectangle _tmp32_ = {0};
		GalaWindowListenerWindowGeometry* _tmp33_;
		MetaRectangle old_outer_rect = {0};
		MetaRectangle _tmp37_;
		MetaRectangle _tmp38_;
		ClutterActor* _tmp39_;
		ClutterActor* _tmp40_;
		GeeHashSet* _tmp41_;
		ClutterActor* _tmp42_;
		MetaRectangle _tmp43_;
		MetaRectangle _tmp44_;
		ClutterActor* _tmp45_;
		ClutterActor* _tmp46_;
		ClutterActor* _tmp47_;
		static const gint FLASH_PREVENT_TIMEOUT = 80;
		gint delay = 0;
		gdouble scale_x = 0.0;
		MetaRectangle _tmp48_;
		gdouble scale_y = 0.0;
		MetaRectangle _tmp49_;
		ClutterActor* _tmp50_;
		ClutterActor* _tmp51_;
		ClutterActor* _tmp52_;
		ClutterActor* _tmp53_;
		ClutterActor* _tmp54_;
		ClutterActor* _tmp55_;
		ClutterActor* _tmp56_;
		ClutterActor* _tmp57_;
		ClutterActor* _tmp58_;
		ClutterActor* _tmp59_;
		ClutterActor* _tmp60_;
		gulong _tmp61_;
		ClutterActor* _tmp62_;
		MetaRectangle _tmp63_;
		MetaRectangle _tmp64_;
		gulong _tmp65_;
		_data17_ = g_slice_new0 (Block17Data);
		_data17_->_ref_count_ = 1;
		_data17_->_data16_ = block16_data_ref (_data16_);
		_tmp15_ = clutter_actor_get_x ((ClutterActor*) _data16_->actor);
		_tmp16_ = _tmp15_;
		_tmp17_ = clutter_actor_get_y ((ClutterActor*) _data16_->actor);
		_tmp18_ = _tmp17_;
		_tmp19_ = clutter_actor_get_width ((ClutterActor*) _data16_->actor);
		_tmp20_ = _tmp19_;
		_tmp21_ = clutter_actor_get_height ((ClutterActor*) _data16_->actor);
		_tmp22_ = _tmp21_;
		_tmp23_.x = (gint) _tmp16_;
		_tmp23_.y = (gint) _tmp18_;
		_tmp23_.width = (gint) _tmp20_;
		_tmp23_.height = (gint) _tmp22_;
		fallback = _tmp23_;
		_tmp24_ = gala_window_listener_get_default ();
		_tmp25_ = window;
		_tmp26_ = gala_window_listener_get_unmaximized_state_geometry (_tmp24_, _tmp25_);
		window_geometry = _tmp26_;
		_tmp28_ = window_geometry;
		if (_tmp28_ != NULL) {
			GalaWindowListenerWindowGeometry* _tmp29_;
			MetaRectangle _tmp30_;
			_tmp29_ = window_geometry;
			_tmp30_ = (*_tmp29_).inner;
			_tmp27_ = _tmp30_;
		} else {
			MetaRectangle _tmp31_;
			_tmp31_ = fallback;
			_tmp27_ = _tmp31_;
		}
		old_inner_rect = _tmp27_;
		_tmp33_ = window_geometry;
		if (_tmp33_ != NULL) {
			GalaWindowListenerWindowGeometry* _tmp34_;
			MetaRectangle _tmp35_;
			_tmp34_ = window_geometry;
			_tmp35_ = (*_tmp34_).outer;
			_tmp32_ = _tmp35_;
		} else {
			MetaRectangle _tmp36_;
			_tmp36_ = fallback;
			_tmp32_ = _tmp36_;
		}
		old_outer_rect = _tmp32_;
		_tmp37_ = old_inner_rect;
		_tmp38_ = old_outer_rect;
		_tmp39_ = gala_utils_get_window_actor_snapshot (_data16_->actor, &_tmp37_, &_tmp38_);
		_data17_->old_actor = _tmp39_;
		_tmp40_ = _data17_->old_actor;
		if (_tmp40_ == NULL) {
			_gala_window_listener_window_geometry_free0 (window_geometry);
			block17_data_unref (_data17_);
			_data17_ = NULL;
			_g_object_unref0 (window);
			block16_data_unref (_data16_);
			_data16_ = NULL;
			return;
		}
		_tmp41_ = self->priv->maximizing;
		gee_abstract_collection_add ((GeeAbstractCollection*) _tmp41_, _data16_->actor);
		_tmp42_ = _data17_->old_actor;
		_tmp43_ = old_inner_rect;
		_tmp44_ = old_inner_rect;
		clutter_actor_set_position (_tmp42_, (gfloat) _tmp43_.x, (gfloat) _tmp44_.y);
		_tmp45_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
		_tmp46_ = _tmp45_;
		_tmp47_ = _data17_->old_actor;
		clutter_actor_add_child (_tmp46_, _tmp47_);
		delay = 0;
		if (FLASH_PREVENT_TIMEOUT <= ((gint) (duration / 3))) {
			clutter_actor_set_opacity ((ClutterActor*) _data16_->actor, (guint) 0);
			delay = FLASH_PREVENT_TIMEOUT;
			g_timeout_add_full (G_PRIORITY_DEFAULT, (guint) FLASH_PREVENT_TIMEOUT, _____lambda147__gsource_func, block17_data_ref (_data17_), block17_data_unref);
		}
		_tmp48_ = old_inner_rect;
		scale_x = ((gdouble) ew) / _tmp48_.width;
		_tmp49_ = old_inner_rect;
		scale_y = ((gdouble) eh) / _tmp49_.height;
		_tmp50_ = _data17_->old_actor;
		clutter_actor_save_easing_state (_tmp50_);
		_tmp51_ = _data17_->old_actor;
		clutter_actor_set_easing_mode (_tmp51_, CLUTTER_EASE_IN_OUT_QUAD);
		_tmp52_ = _data17_->old_actor;
		clutter_actor_set_easing_duration (_tmp52_, (guint) duration);
		_tmp53_ = _data17_->old_actor;
		clutter_actor_set_position (_tmp53_, (gfloat) ex, (gfloat) ey);
		_tmp54_ = _data17_->old_actor;
		clutter_actor_set_scale (_tmp54_, scale_x, scale_y);
		_tmp55_ = _data17_->old_actor;
		clutter_actor_save_easing_state (_tmp55_);
		_tmp56_ = _data17_->old_actor;
		clutter_actor_set_easing_delay (_tmp56_, (guint) delay);
		_tmp57_ = _data17_->old_actor;
		clutter_actor_set_easing_duration (_tmp57_, (guint) (duration - delay));
		_tmp58_ = _data17_->old_actor;
		clutter_actor_set_opacity (_tmp58_, (guint) 0);
		_tmp59_ = _data17_->old_actor;
		clutter_actor_restore_easing_state (_tmp59_);
		_data17_->maximize_old_handler_id = 0UL;
		_tmp60_ = _data17_->old_actor;
		_tmp61_ = g_signal_connect_data (_tmp60_, "transitions-completed", (GCallback) ____lambda148__clutter_actor_transitions_completed, block17_data_ref (_data17_), (GClosureNotify) block17_data_unref, 0);
		_data17_->maximize_old_handler_id = _tmp61_;
		_tmp62_ = _data17_->old_actor;
		clutter_actor_restore_easing_state (_tmp62_);
		clutter_actor_set_pivot_point ((ClutterActor*) _data16_->actor, 0.0f, 0.0f);
		_tmp63_ = old_inner_rect;
		_tmp64_ = old_inner_rect;
		clutter_actor_set_translation ((ClutterActor*) _data16_->actor, (gfloat) (_tmp63_.x - ex), (gfloat) (_tmp64_.y - ey), 0.0f);
		clutter_actor_set_scale ((ClutterActor*) _data16_->actor, 1.0f / scale_x, 1.0f / scale_y);
		clutter_actor_save_easing_state ((ClutterActor*) _data16_->actor);
		clutter_actor_set_easing_mode ((ClutterActor*) _data16_->actor, CLUTTER_EASE_IN_OUT_QUAD);
		clutter_actor_set_easing_duration ((ClutterActor*) _data16_->actor, (guint) duration);
		clutter_actor_set_scale ((ClutterActor*) _data16_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
		clutter_actor_set_translation ((ClutterActor*) _data16_->actor, 0.0f, 0.0f, 0.0f);
		clutter_actor_restore_easing_state ((ClutterActor*) _data16_->actor);
		_data17_->handler_id = 0UL;
		_tmp65_ = g_signal_connect_data ((ClutterActor*) _data16_->actor, "transitions-completed", (GCallback) ____lambda149__clutter_actor_transitions_completed, block17_data_ref (_data17_), (GClosureNotify) block17_data_unref, 0);
		_data17_->handler_id = _tmp65_;
		_gala_window_listener_window_geometry_free0 (window_geometry);
		block17_data_unref (_data17_);
		_data17_ = NULL;
	}
	_g_object_unref0 (window);
	block16_data_unref (_data16_);
	_data16_ = NULL;
}

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

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

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

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

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

static void
____lambda154__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda154_ (self);
}

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

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

static void
block20_data_unref (void * _userdata_)
{
	Block20Data* _data20_;
	_data20_ = (Block20Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data20_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data20_->self;
		_g_object_unref0 (_data20_->window);
		_g_object_unref0 (_data20_->actor);
		_g_object_unref0 (self);
		g_slice_free (Block20Data, _data20_);
	}
}

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

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

static void
___lambda155_ (Block21Data* _data21_)
{
	Block20Data* _data20_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	MetaWindow* _tmp1_;
	_data20_ = _data21_->_data20_;
	self = _data20_->self;
	g_signal_handler_disconnect ((GObject*) _data20_->actor, _data21_->map_handler_id);
	_tmp0_ = self->priv->mapping;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data20_->actor);
	meta_plugin_map_completed ((MetaPlugin*) self, _data20_->actor);
	_tmp1_ = _data20_->window;
	if (meta_window_get_layer (_tmp1_) == META_LAYER_BOTTOM) {
		MetaWindow* _tmp2_;
		_tmp2_ = _data20_->window;
		gala_window_manager_gala_show_bottom_stack_window (self, _tmp2_);
	}
}

static void
____lambda155__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda155_ (self);
}

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

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

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

static void
____lambda156__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda156_ (self);
}

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

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

static void
___lambda157_ (Block23Data* _data23_)
{
	Block20Data* _data20_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	MetaWindow* _tmp1_;
	_data20_ = _data23_->_data20_;
	self = _data20_->self;
	g_signal_handler_disconnect ((GObject*) _data20_->actor, _data23_->map_handler_id);
	_tmp0_ = self->priv->mapping;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data20_->actor);
	meta_plugin_map_completed ((MetaPlugin*) self, _data20_->actor);
	_tmp1_ = _data20_->window;
	if (meta_window_get_layer (_tmp1_) == META_LAYER_BOTTOM) {
		MetaWindow* _tmp2_;
		_tmp2_ = _data20_->window;
		gala_window_manager_gala_show_bottom_stack_window (self, _tmp2_);
	}
}

static void
____lambda157__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda157_ (self);
}

static void
gala_window_manager_gala_real_map (MetaPlugin* base,
                                   MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	Block20Data* _data20_;
	MetaWindowActor* _tmp0_;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_;
	gboolean _tmp5_;
	MetaWindow* _tmp13_;
	MetaWindowType _tmp14_;
	MetaWindowType _tmp15_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_data20_ = g_slice_new0 (Block20Data);
	_data20_->_ref_count_ = 1;
	_data20_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data20_->actor);
	_data20_->actor = _tmp0_;
	_tmp1_ = meta_window_actor_get_meta_window (_data20_->actor);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	_data20_->window = _tmp2_;
	_tmp4_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp5_ = _tmp4_;
	if (!_tmp5_) {
		MetaWindow* _tmp6_;
		MetaWindowType _tmp7_;
		MetaWindowType _tmp8_;
		_tmp6_ = _data20_->window;
		_tmp7_ = meta_window_get_window_type (_tmp6_);
		_tmp8_ = _tmp7_;
		_tmp3_ = _tmp8_ != META_WINDOW_NOTIFICATION;
	} else {
		_tmp3_ = FALSE;
	}
	if (_tmp3_) {
		gboolean _tmp9_ = FALSE;
		MetaWindow* _tmp10_;
		clutter_actor_show ((ClutterActor*) _data20_->actor);
		meta_plugin_map_completed ((MetaPlugin*) self, _data20_->actor);
		_tmp10_ = _data20_->window;
		if (gala_internal_utils_get_window_is_normal (_tmp10_)) {
			MetaWindow* _tmp11_;
			_tmp11_ = _data20_->window;
			_tmp9_ = meta_window_get_layer (_tmp11_) == META_LAYER_BOTTOM;
		} else {
			_tmp9_ = FALSE;
		}
		if (_tmp9_) {
			MetaWindow* _tmp12_;
			_tmp12_ = _data20_->window;
			gala_window_manager_gala_show_bottom_stack_window (self, _tmp12_);
		}
		block20_data_unref (_data20_);
		_data20_ = NULL;
		return;
	}
	clutter_actor_remove_all_transitions ((ClutterActor*) _data20_->actor);
	clutter_actor_show ((ClutterActor*) _data20_->actor);
	_tmp13_ = _data20_->window;
	_tmp14_ = meta_window_get_window_type (_tmp13_);
	_tmp15_ = _tmp14_;
	switch (_tmp15_) {
		case META_WINDOW_NORMAL:
		{
			Block21Data* _data21_;
			GalaAnimationDuration duration = 0;
			GeeHashSet* _tmp16_;
			gboolean _tmp17_ = FALSE;
			MetaWindow* _tmp18_;
			gboolean _tmp19_;
			gboolean _tmp20_;
			gulong _tmp28_;
			_data21_ = g_slice_new0 (Block21Data);
			_data21_->_ref_count_ = 1;
			_data21_->_data20_ = block20_data_ref (_data20_);
			duration = GALA_ANIMATION_DURATION_HIDE;
			if (duration == 0) {
				meta_plugin_map_completed ((MetaPlugin*) self, _data20_->actor);
				block21_data_unref (_data21_);
				_data21_ = NULL;
				block20_data_unref (_data20_);
				_data20_ = NULL;
				return;
			}
			_tmp16_ = self->priv->mapping;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp16_, _data20_->actor);
			_tmp18_ = _data20_->window;
			g_object_get (_tmp18_, "maximized-vertically", &_tmp19_, NULL);
			_tmp20_ = _tmp19_;
			if (_tmp20_) {
				_tmp17_ = TRUE;
			} else {
				MetaWindow* _tmp21_;
				gboolean _tmp22_;
				gboolean _tmp23_;
				_tmp21_ = _data20_->window;
				g_object_get (_tmp21_, "maximized-horizontally", &_tmp22_, NULL);
				_tmp23_ = _tmp22_;
				_tmp17_ = _tmp23_;
			}
			if (_tmp17_) {
				MetaRectangle outer_rect = {0};
				MetaWindow* _tmp24_;
				MetaRectangle _tmp25_ = {0};
				MetaRectangle _tmp26_;
				MetaRectangle _tmp27_;
				_tmp24_ = _data20_->window;
				meta_window_get_frame_rect (_tmp24_, &_tmp25_);
				outer_rect = _tmp25_;
				_tmp26_ = outer_rect;
				_tmp27_ = outer_rect;
				clutter_actor_set_position ((ClutterActor*) _data20_->actor, (gfloat) _tmp26_.x, (gfloat) _tmp27_.y);
			}
			clutter_actor_set_pivot_point ((ClutterActor*) _data20_->actor, 0.5f, 1.0f);
			clutter_actor_set_scale ((ClutterActor*) _data20_->actor, (gdouble) 0.01f, (gdouble) 0.1f);
			clutter_actor_set_opacity ((ClutterActor*) _data20_->actor, (guint) 0);
			clutter_actor_save_easing_state ((ClutterActor*) _data20_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data20_->actor, CLUTTER_EASE_OUT_EXPO);
			clutter_actor_set_easing_duration ((ClutterActor*) _data20_->actor, (guint) duration);
			clutter_actor_set_scale ((ClutterActor*) _data20_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
			clutter_actor_set_opacity ((ClutterActor*) _data20_->actor, 255U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data20_->actor);
			_data21_->map_handler_id = 0UL;
			_tmp28_ = g_signal_connect_data ((ClutterActor*) _data20_->actor, "transitions-completed", (GCallback) ____lambda155__clutter_actor_transitions_completed, block21_data_ref (_data21_), (GClosureNotify) block21_data_unref, 0);
			_data21_->map_handler_id = _tmp28_;
			block21_data_unref (_data21_);
			_data21_ = NULL;
			break;
		}
		case META_WINDOW_MENU:
		case META_WINDOW_DROPDOWN_MENU:
		case META_WINDOW_POPUP_MENU:
		{
			Block22Data* _data22_;
			GalaAnimationDuration duration = 0;
			GeeHashSet* _tmp29_;
			gulong _tmp30_;
			_data22_ = g_slice_new0 (Block22Data);
			_data22_->_ref_count_ = 1;
			_data22_->_data20_ = block20_data_ref (_data20_);
			duration = GALA_ANIMATION_DURATION_MENU_MAP;
			if (duration == 0) {
				meta_plugin_map_completed ((MetaPlugin*) self, _data20_->actor);
				block22_data_unref (_data22_);
				_data22_ = NULL;
				block20_data_unref (_data20_);
				_data20_ = NULL;
				return;
			}
			_tmp29_ = self->priv->mapping;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp29_, _data20_->actor);
			clutter_actor_set_pivot_point ((ClutterActor*) _data20_->actor, 0.5f, 0.5f);
			clutter_actor_set_pivot_point_z ((ClutterActor*) _data20_->actor, 0.2f);
			clutter_actor_set_scale ((ClutterActor*) _data20_->actor, (gdouble) 0.9f, (gdouble) 0.9f);
			clutter_actor_set_opacity ((ClutterActor*) _data20_->actor, (guint) 0);
			clutter_actor_save_easing_state ((ClutterActor*) _data20_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data20_->actor, CLUTTER_EASE_OUT_QUAD);
			clutter_actor_set_easing_duration ((ClutterActor*) _data20_->actor, (guint) duration);
			clutter_actor_set_scale ((ClutterActor*) _data20_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
			clutter_actor_set_opacity ((ClutterActor*) _data20_->actor, 255U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data20_->actor);
			_data22_->map_handler_id = 0UL;
			_tmp30_ = g_signal_connect_data ((ClutterActor*) _data20_->actor, "transitions-completed", (GCallback) ____lambda156__clutter_actor_transitions_completed, block22_data_ref (_data22_), (GClosureNotify) block22_data_unref, 0);
			_data22_->map_handler_id = _tmp30_;
			block22_data_unref (_data22_);
			_data22_ = NULL;
			break;
		}
		case META_WINDOW_MODAL_DIALOG:
		case META_WINDOW_DIALOG:
		{
			Block23Data* _data23_;
			GeeHashSet* _tmp31_;
			gulong _tmp32_;
			MetaWindow* _tmp33_;
			_data23_ = g_slice_new0 (Block23Data);
			_data23_->_ref_count_ = 1;
			_data23_->_data20_ = block20_data_ref (_data20_);
			_tmp31_ = self->priv->mapping;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp31_, _data20_->actor);
			clutter_actor_set_pivot_point ((ClutterActor*) _data20_->actor, 0.5f, 0.5f);
			clutter_actor_set_scale ((ClutterActor*) _data20_->actor, (gdouble) 1.05f, (gdouble) 1.05f);
			clutter_actor_set_opacity ((ClutterActor*) _data20_->actor, (guint) 0);
			clutter_actor_save_easing_state ((ClutterActor*) _data20_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data20_->actor, CLUTTER_EASE_OUT_QUAD);
			clutter_actor_set_easing_duration ((ClutterActor*) _data20_->actor, (guint) 200);
			clutter_actor_set_scale ((ClutterActor*) _data20_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
			clutter_actor_set_opacity ((ClutterActor*) _data20_->actor, 255U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data20_->actor);
			_data23_->map_handler_id = 0UL;
			_tmp32_ = g_signal_connect_data ((ClutterActor*) _data20_->actor, "transitions-completed", (GCallback) ____lambda157__clutter_actor_transitions_completed, block23_data_ref (_data23_), (GClosureNotify) block23_data_unref, 0);
			_data23_->map_handler_id = _tmp32_;
			_tmp33_ = _data20_->window;
			gala_window_manager_gala_dim_parent_window (self, _tmp33_, TRUE);
			block23_data_unref (_data23_);
			_data23_ = NULL;
			break;
		}
		case META_WINDOW_NOTIFICATION:
		{
			GalaNotificationStack* _tmp34_;
			gboolean _tmp35_;
			gboolean _tmp36_;
			_tmp34_ = self->priv->notification_stack;
			_tmp35_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
			_tmp36_ = _tmp35_;
			gala_notification_stack_show_notification (_tmp34_, _data20_->actor, _tmp36_);
			meta_plugin_map_completed ((MetaPlugin*) self, _data20_->actor);
			break;
		}
		default:
		{
			meta_plugin_map_completed ((MetaPlugin*) self, _data20_->actor);
			break;
		}
	}
	block20_data_unref (_data20_);
	_data20_ = NULL;
}

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

static void
block24_data_unref (void * _userdata_)
{
	Block24Data* _data24_;
	_data24_ = (Block24Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data24_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data24_->self;
		_g_object_unref0 (_data24_->window);
		_g_object_unref0 (_data24_->actor);
		_g_object_unref0 (self);
		g_slice_free (Block24Data, _data24_);
	}
}

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

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

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

static void
____lambda158__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda158_ (self);
}

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

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

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

static void
____lambda159__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda159_ (self);
}

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

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

static void
___lambda160_ (Block27Data* _data27_)
{
	Block24Data* _data24_;
	GalaWindowManagerGala* self;
	GeeHashSet* _tmp0_;
	_data24_ = _data27_->_data24_;
	self = _data24_->self;
	g_signal_handler_disconnect ((GObject*) _data24_->actor, _data27_->destroy_handler_id);
	_tmp0_ = self->priv->destroying;
	gee_abstract_collection_remove ((GeeAbstractCollection*) _tmp0_, _data24_->actor);
	meta_plugin_destroy_completed ((MetaPlugin*) self, _data24_->actor);
}

static void
____lambda160__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda160_ (self);
}

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

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

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

static void
_____lambda161__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                     gpointer self)
{
	____lambda161_ (self);
}

static void
gala_window_manager_gala_real_destroy (MetaPlugin* base,
                                       MetaWindowActor* actor)
{
	GalaWindowManagerGala * self;
	Block24Data* _data24_;
	MetaWindowActor* _tmp0_;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	GHashTable* _tmp3_;
	MetaWindow* _tmp4_;
	gboolean _tmp5_ = FALSE;
	gboolean _tmp6_;
	gboolean _tmp7_;
	MetaWindow* _tmp15_;
	MetaWindowType _tmp16_;
	MetaWindowType _tmp17_;
	self = (GalaWindowManagerGala*) base;
	g_return_if_fail (actor != NULL);
	_data24_ = g_slice_new0 (Block24Data);
	_data24_->_ref_count_ = 1;
	_data24_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data24_->actor);
	_data24_->actor = _tmp0_;
	_tmp1_ = meta_window_actor_get_meta_window (_data24_->actor);
	_tmp2_ = _g_object_ref0 (_tmp1_);
	_data24_->window = _tmp2_;
	_tmp3_ = self->priv->ws_assoc;
	_tmp4_ = _data24_->window;
	g_hash_table_remove (_tmp3_, _tmp4_);
	_tmp6_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp7_ = _tmp6_;
	if (!_tmp7_) {
		MetaWindow* _tmp8_;
		MetaWindowType _tmp9_;
		MetaWindowType _tmp10_;
		_tmp8_ = _data24_->window;
		_tmp9_ = meta_window_get_window_type (_tmp8_);
		_tmp10_ = _tmp9_;
		_tmp5_ = _tmp10_ != META_WINDOW_NOTIFICATION;
	} else {
		_tmp5_ = FALSE;
	}
	if (_tmp5_) {
		MetaWindow* _tmp11_;
		MetaWindowType _tmp12_;
		MetaWindowType _tmp13_;
		meta_plugin_destroy_completed ((MetaPlugin*) self, _data24_->actor);
		_tmp11_ = _data24_->window;
		_tmp12_ = meta_window_get_window_type (_tmp11_);
		_tmp13_ = _tmp12_;
		if (_tmp13_ == META_WINDOW_NORMAL) {
			MetaWindow* _tmp14_;
			_tmp14_ = _data24_->window;
			gala_utils_clear_window_cache (_tmp14_);
		}
		block24_data_unref (_data24_);
		_data24_ = NULL;
		return;
	}
	clutter_actor_remove_all_transitions ((ClutterActor*) _data24_->actor);
	_tmp15_ = _data24_->window;
	_tmp16_ = meta_window_get_window_type (_tmp15_);
	_tmp17_ = _tmp16_;
	switch (_tmp17_) {
		case META_WINDOW_NORMAL:
		{
			Block25Data* _data25_;
			GalaAnimationDuration duration = 0;
			GeeHashSet* _tmp18_;
			gulong _tmp19_;
			_data25_ = g_slice_new0 (Block25Data);
			_data25_->_ref_count_ = 1;
			_data25_->_data24_ = block24_data_ref (_data24_);
			duration = GALA_ANIMATION_DURATION_CLOSE;
			if (duration == 0) {
				meta_plugin_destroy_completed ((MetaPlugin*) self, _data24_->actor);
				block25_data_unref (_data25_);
				_data25_ = NULL;
				block24_data_unref (_data24_);
				_data24_ = NULL;
				return;
			}
			_tmp18_ = self->priv->destroying;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp18_, _data24_->actor);
			clutter_actor_set_pivot_point ((ClutterActor*) _data24_->actor, 0.5f, 0.5f);
			clutter_actor_show ((ClutterActor*) _data24_->actor);
			clutter_actor_save_easing_state ((ClutterActor*) _data24_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data24_->actor, CLUTTER_LINEAR);
			clutter_actor_set_easing_duration ((ClutterActor*) _data24_->actor, (guint) duration);
			clutter_actor_set_scale ((ClutterActor*) _data24_->actor, (gdouble) 0.8f, (gdouble) 0.8f);
			clutter_actor_set_opacity ((ClutterActor*) _data24_->actor, 0U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data24_->actor);
			_data25_->destroy_handler_id = 0UL;
			_tmp19_ = g_signal_connect_data ((ClutterActor*) _data24_->actor, "transitions-completed", (GCallback) ____lambda158__clutter_actor_transitions_completed, block25_data_ref (_data25_), (GClosureNotify) block25_data_unref, 0);
			_data25_->destroy_handler_id = _tmp19_;
			block25_data_unref (_data25_);
			_data25_ = NULL;
			break;
		}
		case META_WINDOW_MODAL_DIALOG:
		case META_WINDOW_DIALOG:
		{
			Block26Data* _data26_;
			GeeHashSet* _tmp20_;
			gulong _tmp21_;
			MetaWindow* _tmp22_;
			_data26_ = g_slice_new0 (Block26Data);
			_data26_->_ref_count_ = 1;
			_data26_->_data24_ = block24_data_ref (_data24_);
			_tmp20_ = self->priv->destroying;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp20_, _data24_->actor);
			clutter_actor_set_pivot_point ((ClutterActor*) _data24_->actor, 0.5f, 0.5f);
			clutter_actor_save_easing_state ((ClutterActor*) _data24_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data24_->actor, CLUTTER_EASE_OUT_QUAD);
			clutter_actor_set_easing_duration ((ClutterActor*) _data24_->actor, (guint) 150);
			clutter_actor_set_scale ((ClutterActor*) _data24_->actor, (gdouble) 1.05f, (gdouble) 1.05f);
			clutter_actor_set_opacity ((ClutterActor*) _data24_->actor, 0U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data24_->actor);
			_data26_->destroy_handler_id = 0UL;
			_tmp21_ = g_signal_connect_data ((ClutterActor*) _data24_->actor, "transitions-completed", (GCallback) ____lambda159__clutter_actor_transitions_completed, block26_data_ref (_data26_), (GClosureNotify) block26_data_unref, 0);
			_data26_->destroy_handler_id = _tmp21_;
			_tmp22_ = _data24_->window;
			gala_window_manager_gala_dim_parent_window (self, _tmp22_, FALSE);
			block26_data_unref (_data26_);
			_data26_ = NULL;
			break;
		}
		case META_WINDOW_MENU:
		case META_WINDOW_DROPDOWN_MENU:
		case META_WINDOW_POPUP_MENU:
		{
			Block27Data* _data27_;
			GalaAnimationDuration duration = 0;
			GeeHashSet* _tmp23_;
			gulong _tmp24_;
			_data27_ = g_slice_new0 (Block27Data);
			_data27_->_ref_count_ = 1;
			_data27_->_data24_ = block24_data_ref (_data24_);
			duration = GALA_ANIMATION_DURATION_MENU_MAP;
			if (duration == 0) {
				meta_plugin_destroy_completed ((MetaPlugin*) self, _data24_->actor);
				block27_data_unref (_data27_);
				_data27_ = NULL;
				block24_data_unref (_data24_);
				_data24_ = NULL;
				return;
			}
			_tmp23_ = self->priv->destroying;
			gee_abstract_collection_add ((GeeAbstractCollection*) _tmp23_, _data24_->actor);
			clutter_actor_save_easing_state ((ClutterActor*) _data24_->actor);
			clutter_actor_set_easing_mode ((ClutterActor*) _data24_->actor, CLUTTER_EASE_OUT_QUAD);
			clutter_actor_set_easing_duration ((ClutterActor*) _data24_->actor, (guint) duration);
			clutter_actor_set_scale ((ClutterActor*) _data24_->actor, (gdouble) 0.8f, (gdouble) 0.8f);
			clutter_actor_set_opacity ((ClutterActor*) _data24_->actor, 0U);
			clutter_actor_restore_easing_state ((ClutterActor*) _data24_->actor);
			_data27_->destroy_handler_id = 0UL;
			_tmp24_ = g_signal_connect_data ((ClutterActor*) _data24_->actor, "transitions-completed", (GCallback) ____lambda160__clutter_actor_transitions_completed, block27_data_ref (_data27_), (GClosureNotify) block27_data_unref, 0);
			_data27_->destroy_handler_id = _tmp24_;
			block27_data_unref (_data27_);
			_data27_ = NULL;
			break;
		}
		case META_WINDOW_NOTIFICATION:
		{
			gboolean _tmp25_;
			gboolean _tmp26_;
			GalaNotificationStack* _tmp28_;
			gboolean _tmp29_;
			gboolean _tmp30_;
			gboolean _tmp31_;
			gboolean _tmp32_;
			_tmp25_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
			_tmp26_ = _tmp25_;
			if (_tmp26_) {
				GeeHashSet* _tmp27_;
				_tmp27_ = self->priv->destroying;
				gee_abstract_collection_add ((GeeAbstractCollection*) _tmp27_, _data24_->actor);
			}
			_tmp28_ = self->priv->notification_stack;
			_tmp29_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
			_tmp30_ = _tmp29_;
			gala_notification_stack_destroy_notification (_tmp28_, _data24_->actor, _tmp30_);
			_tmp31_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
			_tmp32_ = _tmp31_;
			if (_tmp32_) {
				Block28Data* _data28_;
				gulong _tmp33_;
				_data28_ = g_slice_new0 (Block28Data);
				_data28_->_ref_count_ = 1;
				_data28_->_data24_ = block24_data_ref (_data24_);
				_data28_->destroy_handler_id = 0UL;
				_tmp33_ = g_signal_connect_data ((ClutterActor*) _data24_->actor, "transitions-completed", (GCallback) _____lambda161__clutter_actor_transitions_completed, block28_data_ref (_data28_), (GClosureNotify) block28_data_unref, 0);
				_data28_->destroy_handler_id = _tmp33_;
				block28_data_unref (_data28_);
				_data28_ = NULL;
			} else {
				meta_plugin_destroy_completed ((MetaPlugin*) self, _data24_->actor);
			}
			break;
		}
		default:
		{
			meta_plugin_destroy_completed ((MetaPlugin*) self, _data24_->actor);
			break;
		}
	}
	block24_data_unref (_data24_);
	_data24_ = NULL;
}

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

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

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

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

static void
___lambda150_ (Block30Data* _data30_)
{
	Block29Data* _data29_;
	GalaWindowManagerGala* self;
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	_data29_ = _data30_->_data29_;
	self = _data29_->self;
	_tmp0_ = _data30_->old_actor;
	g_signal_handler_disconnect ((GObject*) _tmp0_, _data30_->unmaximize_old_handler_id);
	_tmp1_ = _data30_->old_actor;
	clutter_actor_destroy (_tmp1_);
}

static void
____lambda150__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda150_ (self);
}

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

static void
____lambda151__clutter_actor_transitions_completed (ClutterActor* _sender,
                                                    gpointer self)
{
	___lambda151_ (self);
}

static void
gala_window_manager_gala_unmaximize (GalaWindowManagerGala* self,
                                     MetaWindowActor* actor,
                                     gint ex,
                                     gint ey,
                                     gint ew,
                                     gint eh)
{
	Block29Data* _data29_;
	MetaWindowActor* _tmp0_;
	GalaAnimationDuration duration = 0;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_;
	gboolean _tmp3_;
	MetaWindow* window = NULL;
	MetaWindow* _tmp4_;
	MetaWindow* _tmp5_;
	GSettings* _tmp6_;
	MetaWindow* _tmp8_;
	MetaWindowType _tmp9_;
	MetaWindowType _tmp10_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (actor != NULL);
	_data29_ = g_slice_new0 (Block29Data);
	_data29_->_ref_count_ = 1;
	_data29_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (actor);
	_g_object_unref0 (_data29_->actor);
	_data29_->actor = _tmp0_;
	duration = GALA_ANIMATION_DURATION_SNAP;
	_tmp2_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp3_ = _tmp2_;
	if (!_tmp3_) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = duration == 0;
	}
	if (_tmp1_) {
		block29_data_unref (_data29_);
		_data29_ = NULL;
		return;
	}
	G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) self, _data29_->actor);
	_tmp4_ = meta_window_actor_get_meta_window (_data29_->actor);
	_tmp5_ = _g_object_ref0 (_tmp4_);
	window = _tmp5_;
	_tmp6_ = self->priv->behavior_settings;
	if (g_settings_get_boolean (_tmp6_, "move-maximized-workspace")) {
		MetaWindow* _tmp7_;
		_tmp7_ = window;
		gala_window_manager_gala_move_window_to_old_ws (self, _tmp7_);
	}
	_tmp8_ = window;
	_tmp9_ = meta_window_get_window_type (_tmp8_);
	_tmp10_ = _tmp9_;
	if (_tmp10_ == META_WINDOW_NORMAL) {
		Block30Data* _data30_;
		gfloat offset_x = 0.0F;
		gfloat offset_y = 0.0F;
		gfloat offset_width = 0.0F;
		gfloat offset_height = 0.0F;
		GalaWindowListenerWindowGeometry* unmaximized_window_geometry = NULL;
		GalaWindowListener* _tmp11_;
		MetaWindow* _tmp12_;
		GalaWindowListenerWindowGeometry* _tmp13_;
		GalaWindowListenerWindowGeometry* _tmp14_;
		MetaRectangle old_rect = {0};
		gfloat _tmp31_;
		gfloat _tmp32_;
		gfloat _tmp33_;
		gfloat _tmp34_;
		gfloat _tmp35_;
		gfloat _tmp36_;
		gfloat _tmp37_;
		gfloat _tmp38_;
		MetaRectangle _tmp39_ = {0};
		MetaRectangle _tmp40_;
		MetaRectangle _tmp41_;
		ClutterActor* _tmp42_;
		ClutterActor* _tmp43_;
		GeeHashSet* _tmp44_;
		ClutterActor* _tmp45_;
		MetaRectangle _tmp46_;
		MetaRectangle _tmp47_;
		ClutterActor* _tmp48_;
		ClutterActor* _tmp49_;
		ClutterActor* _tmp50_;
		gfloat scale_x = 0.0F;
		MetaRectangle _tmp51_;
		gfloat scale_y = 0.0F;
		MetaRectangle _tmp52_;
		ClutterActor* _tmp53_;
		ClutterActor* _tmp54_;
		ClutterActor* _tmp55_;
		ClutterActor* _tmp56_;
		ClutterActor* _tmp57_;
		ClutterActor* _tmp58_;
		ClutterActor* _tmp59_;
		ClutterActor* _tmp60_;
		gulong _tmp61_;
		gfloat maximized_x = 0.0F;
		gfloat _tmp62_;
		gfloat _tmp63_;
		gfloat maximized_y = 0.0F;
		gfloat _tmp64_;
		gfloat _tmp65_;
		gulong _tmp66_;
		_data30_ = g_slice_new0 (Block30Data);
		_data30_->_ref_count_ = 1;
		_data30_->_data29_ = block29_data_ref (_data29_);
		_tmp11_ = gala_window_listener_get_default ();
		_tmp12_ = window;
		_tmp13_ = gala_window_listener_get_unmaximized_state_geometry (_tmp11_, _tmp12_);
		unmaximized_window_geometry = _tmp13_;
		_tmp14_ = unmaximized_window_geometry;
		if (_tmp14_ != NULL) {
			GalaWindowListenerWindowGeometry* _tmp15_;
			MetaRectangle _tmp16_;
			GalaWindowListenerWindowGeometry* _tmp17_;
			MetaRectangle _tmp18_;
			GalaWindowListenerWindowGeometry* _tmp19_;
			MetaRectangle _tmp20_;
			GalaWindowListenerWindowGeometry* _tmp21_;
			MetaRectangle _tmp22_;
			GalaWindowListenerWindowGeometry* _tmp23_;
			MetaRectangle _tmp24_;
			GalaWindowListenerWindowGeometry* _tmp25_;
			MetaRectangle _tmp26_;
			GalaWindowListenerWindowGeometry* _tmp27_;
			MetaRectangle _tmp28_;
			GalaWindowListenerWindowGeometry* _tmp29_;
			MetaRectangle _tmp30_;
			_tmp15_ = unmaximized_window_geometry;
			_tmp16_ = (*_tmp15_).outer;
			_tmp17_ = unmaximized_window_geometry;
			_tmp18_ = (*_tmp17_).inner;
			offset_x = (gfloat) (_tmp16_.x - _tmp18_.x);
			_tmp19_ = unmaximized_window_geometry;
			_tmp20_ = (*_tmp19_).outer;
			_tmp21_ = unmaximized_window_geometry;
			_tmp22_ = (*_tmp21_).inner;
			offset_y = (gfloat) (_tmp20_.y - _tmp22_.y);
			_tmp23_ = unmaximized_window_geometry;
			_tmp24_ = (*_tmp23_).outer;
			_tmp25_ = unmaximized_window_geometry;
			_tmp26_ = (*_tmp25_).inner;
			offset_width = (gfloat) (_tmp24_.width - _tmp26_.width);
			_tmp27_ = unmaximized_window_geometry;
			_tmp28_ = (*_tmp27_).outer;
			_tmp29_ = unmaximized_window_geometry;
			_tmp30_ = (*_tmp29_).inner;
			offset_height = (gfloat) (_tmp28_.height - _tmp30_.height);
		} else {
			offset_x = (gfloat) 0;
			offset_y = (gfloat) 0;
			offset_width = (gfloat) 0;
			offset_height = (gfloat) 0;
		}
		_tmp31_ = clutter_actor_get_x ((ClutterActor*) _data29_->actor);
		_tmp32_ = _tmp31_;
		_tmp33_ = clutter_actor_get_y ((ClutterActor*) _data29_->actor);
		_tmp34_ = _tmp33_;
		_tmp35_ = clutter_actor_get_width ((ClutterActor*) _data29_->actor);
		_tmp36_ = _tmp35_;
		_tmp37_ = clutter_actor_get_height ((ClutterActor*) _data29_->actor);
		_tmp38_ = _tmp37_;
		_tmp39_.x = (gint) _tmp32_;
		_tmp39_.y = (gint) _tmp34_;
		_tmp39_.width = (gint) _tmp36_;
		_tmp39_.height = (gint) _tmp38_;
		old_rect = _tmp39_;
		_tmp40_ = old_rect;
		_tmp41_ = old_rect;
		_tmp42_ = gala_utils_get_window_actor_snapshot (_data29_->actor, &_tmp40_, &_tmp41_);
		_data30_->old_actor = _tmp42_;
		_tmp43_ = _data30_->old_actor;
		if (_tmp43_ == NULL) {
			_gala_window_listener_window_geometry_free0 (unmaximized_window_geometry);
			block30_data_unref (_data30_);
			_data30_ = NULL;
			_g_object_unref0 (window);
			block29_data_unref (_data29_);
			_data29_ = NULL;
			return;
		}
		_tmp44_ = self->priv->unmaximizing;
		gee_abstract_collection_add ((GeeAbstractCollection*) _tmp44_, _data29_->actor);
		_tmp45_ = _data30_->old_actor;
		_tmp46_ = old_rect;
		_tmp47_ = old_rect;
		clutter_actor_set_position (_tmp45_, (gfloat) _tmp46_.x, (gfloat) _tmp47_.y);
		_tmp48_ = gala_window_manager_get_ui_group ((GalaWindowManager*) self);
		_tmp49_ = _tmp48_;
		_tmp50_ = _data30_->old_actor;
		clutter_actor_add_child (_tmp49_, _tmp50_);
		_tmp51_ = old_rect;
		scale_x = ((gfloat) ew) / _tmp51_.width;
		_tmp52_ = old_rect;
		scale_y = ((gfloat) eh) / _tmp52_.height;
		_tmp53_ = _data30_->old_actor;
		clutter_actor_save_easing_state (_tmp53_);
		_tmp54_ = _data30_->old_actor;
		clutter_actor_set_easing_mode (_tmp54_, CLUTTER_EASE_IN_OUT_QUAD);
		_tmp55_ = _data30_->old_actor;
		clutter_actor_set_easing_duration (_tmp55_, (guint) duration);
		_tmp56_ = _data30_->old_actor;
		clutter_actor_set_position (_tmp56_, (gfloat) ex, (gfloat) ey);
		_tmp57_ = _data30_->old_actor;
		clutter_actor_set_scale (_tmp57_, (gdouble) scale_x, (gdouble) scale_y);
		_tmp58_ = _data30_->old_actor;
		clutter_actor_set_opacity (_tmp58_, 0U);
		_tmp59_ = _data30_->old_actor;
		clutter_actor_restore_easing_state (_tmp59_);
		_data30_->unmaximize_old_handler_id = 0UL;
		_tmp60_ = _data30_->old_actor;
		_tmp61_ = g_signal_connect_data (_tmp60_, "transitions-completed", (GCallback) ____lambda150__clutter_actor_transitions_completed, block30_data_ref (_data30_), (GClosureNotify) block30_data_unref, 0);
		_data30_->unmaximize_old_handler_id = _tmp61_;
		_tmp62_ = clutter_actor_get_x ((ClutterActor*) _data29_->actor);
		_tmp63_ = _tmp62_;
		maximized_x = _tmp63_;
		_tmp64_ = clutter_actor_get_y ((ClutterActor*) _data29_->actor);
		_tmp65_ = _tmp64_;
		maximized_y = _tmp65_;
		clutter_actor_set_pivot_point ((ClutterActor*) _data29_->actor, 0.0f, 0.0f);
		clutter_actor_set_position ((ClutterActor*) _data29_->actor, (gfloat) ex, (gfloat) ey);
		clutter_actor_set_translation ((ClutterActor*) _data29_->actor, ((-ex) + (offset_x * ((1.0f / scale_x) - 1.0f))) + maximized_x, ((-ey) + (offset_y * ((1.0f / scale_y) - 1.0f))) + maximized_y, 0.0f);
		clutter_actor_set_scale ((ClutterActor*) _data29_->actor, (gdouble) (1.0f / scale_x), (gdouble) (1.0f / scale_y));
		clutter_actor_save_easing_state ((ClutterActor*) _data29_->actor);
		clutter_actor_set_easing_mode ((ClutterActor*) _data29_->actor, CLUTTER_EASE_IN_OUT_QUAD);
		clutter_actor_set_easing_duration ((ClutterActor*) _data29_->actor, (guint) duration);
		clutter_actor_set_scale ((ClutterActor*) _data29_->actor, (gdouble) 1.0f, (gdouble) 1.0f);
		clutter_actor_set_translation ((ClutterActor*) _data29_->actor, 0.0f, 0.0f, 0.0f);
		clutter_actor_restore_easing_state ((ClutterActor*) _data29_->actor);
		_data30_->handler_id = 0UL;
		_tmp66_ = g_signal_connect_data ((ClutterActor*) _data29_->actor, "transitions-completed", (GCallback) ____lambda151__clutter_actor_transitions_completed, block30_data_ref (_data30_), (GClosureNotify) block30_data_unref, 0);
		_data30_->handler_id = _tmp66_;
		_gala_window_listener_window_geometry_free0 (unmaximized_window_geometry);
		block30_data_unref (_data30_);
		_data30_ = NULL;
	}
	_g_object_unref0 (window);
	block29_data_unref (_data29_);
	_data29_ = NULL;
}

static void
gala_window_manager_gala_move_window_to_next_ws (GalaWindowManagerGala* self,
                                                 MetaWindow* window)
{
	MetaWorkspace* win_ws = NULL;
	MetaWorkspace* _tmp0_;
	MetaWorkspace* _tmp1_;
	gint old_ws_index = 0;
	MetaWorkspace* _tmp2_;
	gint new_ws_index = 0;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp3_;
	guint32 time = 0U;
	MetaDisplay* _tmp4_;
	MetaWorkspace* new_ws_obj = NULL;
	MetaDisplay* _tmp5_;
	MetaWorkspaceManager* _tmp6_;
	MetaWorkspace* _tmp7_;
	MetaWorkspace* _tmp8_;
	MetaWorkspace* _tmp9_;
	MetaWorkspace* _tmp10_;
	GHashTable* _tmp11_;
	MetaWindow* _tmp12_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (window != NULL);
	_tmp0_ = meta_window_get_workspace (window);
	win_ws = _tmp0_;
	_tmp1_ = win_ws;
	if (gala_utils_get_n_windows (_tmp1_) <= ((guint) 1)) {
		return;
	}
	if (!meta_window_is_on_primary_monitor (window)) {
		return;
	}
	_tmp2_ = win_ws;
	old_ws_index = meta_workspace_index (_tmp2_);
	new_ws_index = old_ws_index + 1;
	gala_internal_utils_insert_workspace_with_window (new_ws_index, window);
	_tmp3_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp3_;
	_tmp4_ = display;
	time = meta_display_get_current_time (_tmp4_);
	_tmp5_ = display;
	_tmp6_ = meta_display_get_workspace_manager (_tmp5_);
	_tmp7_ = meta_workspace_manager_get_workspace_by_index (_tmp6_, new_ws_index);
	_tmp8_ = _g_object_ref0 (_tmp7_);
	new_ws_obj = _tmp8_;
	_tmp9_ = new_ws_obj;
	meta_window_change_workspace (window, _tmp9_);
	_tmp10_ = new_ws_obj;
	meta_workspace_activate_with_focus (_tmp10_, window, time);
	_tmp11_ = self->priv->ws_assoc;
	_tmp12_ = _g_object_ref0 (window);
	g_hash_table_insert (_tmp11_, _tmp12_, (gpointer) ((gintptr) old_ws_index));
	_g_object_unref0 (new_ws_obj);
}

static void
gala_window_manager_gala_move_window_to_old_ws (GalaWindowManagerGala* self,
                                                MetaWindow* window)
{
	MetaWorkspace* win_ws = NULL;
	MetaWorkspace* _tmp0_;
	MetaWorkspace* _tmp1_;
	GHashTable* _tmp2_;
	gint old_ws_index = 0;
	GHashTable* _tmp3_;
	gconstpointer _tmp4_;
	gint new_ws_index = 0;
	MetaWorkspace* _tmp5_;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp6_;
	MetaWorkspaceManager* workspace_manager = NULL;
	MetaDisplay* _tmp7_;
	MetaWorkspaceManager* _tmp8_;
	gboolean _tmp9_ = FALSE;
	GHashTable* _tmp17_;
	g_return_if_fail (self != NULL);
	g_return_if_fail (window != NULL);
	_tmp0_ = meta_window_get_workspace (window);
	win_ws = _tmp0_;
	_tmp1_ = win_ws;
	if (gala_utils_get_n_windows (_tmp1_) > ((guint) 1)) {
		return;
	}
	_tmp2_ = self->priv->ws_assoc;
	if (!g_hash_table_contains (_tmp2_, window)) {
		return;
	}
	_tmp3_ = self->priv->ws_assoc;
	_tmp4_ = g_hash_table_lookup (_tmp3_, window);
	old_ws_index = (gint) ((gintptr) _tmp4_);
	_tmp5_ = win_ws;
	new_ws_index = meta_workspace_index (_tmp5_);
	_tmp6_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp6_;
	_tmp7_ = display;
	_tmp8_ = meta_display_get_workspace_manager (_tmp7_);
	workspace_manager = _tmp8_;
	if (new_ws_index != old_ws_index) {
		MetaWorkspaceManager* _tmp10_;
		_tmp10_ = workspace_manager;
		_tmp9_ = old_ws_index < meta_workspace_manager_get_n_workspaces (_tmp10_);
	} else {
		_tmp9_ = FALSE;
	}
	if (_tmp9_) {
		guint time = 0U;
		MetaDisplay* _tmp11_;
		MetaWorkspace* old_ws_obj = NULL;
		MetaWorkspaceManager* _tmp12_;
		MetaWorkspace* _tmp13_;
		MetaWorkspace* _tmp14_;
		MetaWorkspace* _tmp15_;
		MetaWorkspace* _tmp16_;
		_tmp11_ = display;
		time = (guint) meta_display_get_current_time (_tmp11_);
		_tmp12_ = workspace_manager;
		_tmp13_ = meta_workspace_manager_get_workspace_by_index (_tmp12_, old_ws_index);
		_tmp14_ = _g_object_ref0 (_tmp13_);
		old_ws_obj = _tmp14_;
		_tmp15_ = old_ws_obj;
		meta_window_change_workspace (window, _tmp15_);
		_tmp16_ = old_ws_obj;
		meta_workspace_activate_with_focus (_tmp16_, window, (guint32) time);
		_g_object_unref0 (old_ws_obj);
	}
	_tmp17_ = self->priv->ws_assoc;
	g_hash_table_remove (_tmp17_, window);
}

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

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

static Block31Data*
block31_data_ref (Block31Data* _data31_)
{
	g_atomic_int_inc (&_data31_->_ref_count_);
	return _data31_;
}

static void
block31_data_unref (void * _userdata_)
{
	Block31Data* _data31_;
	_data31_ = (Block31Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data31_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data31_->self;
		_g_object_unref0 (_data31_->wallpaper_clone);
		_g_object_unref0 (_data31_->wallpaper);
		_g_object_unref0 (_data31_->out_group);
		_g_object_unref0 (_data31_->in_group);
		_g_object_unref0 (self);
		g_slice_free (Block31Data, _data31_);
	}
}

static void
__lambda162_ (Block31Data* _data31_,
              gdouble percentage)
{
	GalaWindowManagerGala* self;
	gfloat x_out = 0.0F;
	gfloat x_in = 0.0F;
	ClutterActor* _tmp0_;
	ClutterActor* _tmp1_;
	ClutterActor* _tmp2_;
	ClutterClone* _tmp3_;
	self = _data31_->self;
	x_out = gala_gesture_tracker_animation_value (0.0f, _data31_->x2, percentage, TRUE);
	x_in = gala_gesture_tracker_animation_value (-_data31_->x2, 0.0f, percentage, TRUE);
	_tmp0_ = _data31_->out_group;
	clutter_actor_set_x (_tmp0_, x_out);
	_tmp1_ = _data31_->in_group;
	clutter_actor_set_x (_tmp1_, x_in);
	_tmp2_ = _data31_->wallpaper;
	clutter_actor_set_x (_tmp2_, x_out);
	_tmp3_ = _data31_->wallpaper_clone;
	clutter_actor_set_x ((ClutterActor*) _tmp3_, x_in);
}

static void
___lambda162__gala_gesture_tracker_on_update (gdouble percentage,
                                              gpointer self)
{
	__lambda162_ (self, percentage);
}

static Block32Data*
block32_data_ref (Block32Data* _data32_)
{
	g_atomic_int_inc (&_data32_->_ref_count_);
	return _data32_;
}

static void
block32_data_unref (void * _userdata_)
{
	Block32Data* _data32_;
	_data32_ = (Block32Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data32_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data32_->_data31_->self;
		block31_data_unref (_data32_->_data31_);
		_data32_->_data31_ = NULL;
		g_slice_free (Block32Data, _data32_);
	}
}

static void
___lambda164_ (Block32Data* _data32_)
{
	Block31Data* _data31_;
	GalaWindowManagerGala* self;
	_data31_ = _data32_->_data31_;
	self = _data31_->self;
	gala_window_manager_gala_switch_workspace_animation_finished (self, _data31_->direction, _data32_->cancel_action);
}

static void
____lambda164__clutter_timeline_completed (ClutterTimeline* _sender,
                                           gpointer self)
{
	___lambda164_ (self);
}

static void
__lambda163_ (Block31Data* _data31_,
              gdouble percentage,
              gboolean cancel_action,
              gint duration)
{
	GalaWindowManagerGala* self;
	Block32Data* _data32_;
	gboolean _tmp0_ = FALSE;
	ClutterActor* _tmp2_;
	ClutterActor* _tmp3_;
	ClutterActor* _tmp4_;
	ClutterActor* _tmp5_;
	ClutterActor* _tmp6_;
	ClutterActor* _tmp7_;
	ClutterClone* _tmp8_;
	ClutterClone* _tmp9_;
	ClutterClone* _tmp10_;
	ClutterActor* _tmp11_;
	ClutterActor* _tmp12_;
	ClutterActor* _tmp13_;
	gfloat _tmp14_ = 0.0F;
	ClutterActor* _tmp15_;
	ClutterActor* _tmp16_;
	gfloat _tmp17_ = 0.0F;
	ClutterActor* _tmp18_;
	ClutterActor* _tmp19_;
	gfloat _tmp20_ = 0.0F;
	ClutterActor* _tmp21_;
	ClutterActor* _tmp22_;
	gfloat _tmp23_ = 0.0F;
	ClutterClone* _tmp24_;
	ClutterClone* _tmp25_;
	ClutterTransition* transition = NULL;
	ClutterActor* _tmp26_;
	ClutterTransition* _tmp27_;
	ClutterTransition* _tmp28_;
	ClutterTransition* _tmp29_;
	self = _data31_->self;
	_data32_ = g_slice_new0 (Block32Data);
	_data32_->_ref_count_ = 1;
	_data32_->_data31_ = block31_data_ref (_data31_);
	_data32_->cancel_action = cancel_action;
	if (self->priv->switch_workspace_with_gesture) {
		gboolean _tmp1_ = FALSE;
		if (percentage == ((gdouble) 1)) {
			_tmp1_ = TRUE;
		} else {
			_tmp1_ = percentage == ((gdouble) 0);
		}
		_tmp0_ = _tmp1_;
	} else {
		_tmp0_ = FALSE;
	}
	if (_tmp0_) {
		gala_window_manager_gala_switch_workspace_animation_finished (self, _data31_->direction, _data32_->cancel_action);
		block32_data_unref (_data32_);
		_data32_ = NULL;
		return;
	}
	_tmp2_ = _data31_->out_group;
	clutter_actor_save_easing_state (_tmp2_);
	_tmp3_ = _data31_->out_group;
	clutter_actor_set_easing_mode (_tmp3_, _data31_->animation_mode);
	_tmp4_ = _data31_->out_group;
	clutter_actor_set_easing_duration (_tmp4_, (guint) duration);
	_tmp5_ = _data31_->in_group;
	clutter_actor_save_easing_state (_tmp5_);
	_tmp6_ = _data31_->in_group;
	clutter_actor_set_easing_mode (_tmp6_, _data31_->animation_mode);
	_tmp7_ = _data31_->in_group;
	clutter_actor_set_easing_duration (_tmp7_, (guint) duration);
	_tmp8_ = _data31_->wallpaper_clone;
	clutter_actor_save_easing_state ((ClutterActor*) _tmp8_);
	_tmp9_ = _data31_->wallpaper_clone;
	clutter_actor_set_easing_mode ((ClutterActor*) _tmp9_, _data31_->animation_mode);
	_tmp10_ = _data31_->wallpaper_clone;
	clutter_actor_set_easing_duration ((ClutterActor*) _tmp10_, (guint) duration);
	_tmp11_ = _data31_->wallpaper;
	clutter_actor_save_easing_state (_tmp11_);
	_tmp12_ = _data31_->wallpaper;
	clutter_actor_set_easing_mode (_tmp12_, _data31_->animation_mode);
	_tmp13_ = _data31_->wallpaper;
	clutter_actor_set_easing_duration (_tmp13_, (guint) duration);
	if (_data32_->cancel_action) {
		_tmp14_ = 0.0f;
	} else {
		_tmp14_ = _data31_->x2;
	}
	_tmp15_ = _data31_->out_group;
	clutter_actor_set_x (_tmp15_, _tmp14_);
	_tmp16_ = _data31_->out_group;
	clutter_actor_restore_easing_state (_tmp16_);
	if (_data32_->cancel_action) {
		_tmp17_ = -_data31_->x2;
	} else {
		_tmp17_ = 0.0f;
	}
	_tmp18_ = _data31_->in_group;
	clutter_actor_set_x (_tmp18_, _tmp17_);
	_tmp19_ = _data31_->in_group;
	clutter_actor_restore_easing_state (_tmp19_);
	if (_data32_->cancel_action) {
		_tmp20_ = 0.0f;
	} else {
		_tmp20_ = _data31_->x2;
	}
	_tmp21_ = _data31_->wallpaper;
	clutter_actor_set_x (_tmp21_, _tmp20_);
	_tmp22_ = _data31_->wallpaper;
	clutter_actor_restore_easing_state (_tmp22_);
	if (_data32_->cancel_action) {
		_tmp23_ = -_data31_->x2;
	} else {
		_tmp23_ = 0.0f;
	}
	_tmp24_ = _data31_->wallpaper_clone;
	clutter_actor_set_x ((ClutterActor*) _tmp24_, _tmp23_);
	_tmp25_ = _data31_->wallpaper_clone;
	clutter_actor_restore_easing_state ((ClutterActor*) _tmp25_);
	_tmp26_ = _data31_->in_group;
	_tmp27_ = clutter_actor_get_transition (_tmp26_, "x");
	_tmp28_ = _g_object_ref0 (_tmp27_);
	transition = _tmp28_;
	_tmp29_ = transition;
	if (_tmp29_ != NULL) {
		ClutterTransition* _tmp30_;
		_tmp30_ = transition;
		g_signal_connect_data ((ClutterTimeline*) _tmp30_, "completed", (GCallback) ____lambda164__clutter_timeline_completed, block32_data_ref (_data32_), (GClosureNotify) block32_data_unref, 0);
	} else {
		gala_window_manager_gala_switch_workspace_animation_finished (self, _data31_->direction, _data32_->cancel_action);
	}
	_g_object_unref0 (transition);
	block32_data_unref (_data32_);
	_data32_ = NULL;
}

static void
___lambda163__gala_gesture_tracker_on_end (gdouble percentage,
                                           gboolean cancel_action,
                                           gint calculated_duration,
                                           gpointer self)
{
	__lambda163_ (self, percentage, cancel_action, calculated_duration);
}

static void
gala_window_manager_gala_real_switch_workspace (MetaPlugin* base,
                                                gint from,
                                                gint to,
                                                MetaMotionDirection direction)
{
	GalaWindowManagerGala * self;
	Block31Data* _data31_;
	gboolean _tmp0_ = FALSE;
	gboolean _tmp1_ = FALSE;
	gboolean _tmp2_ = FALSE;
	gboolean _tmp3_ = FALSE;
	gboolean _tmp4_;
	gboolean _tmp5_;
	gfloat screen_width = 0.0F;
	gfloat screen_height = 0.0F;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp9_;
	gint primary = 0;
	MetaDisplay* _tmp10_;
	gboolean move_primary_only = FALSE;
	MetaRectangle monitor_geom = {0};
	MetaDisplay* _tmp11_;
	MetaRectangle _tmp12_ = {0};
	gfloat _tmp13_ = 0.0F;
	gfloat clone_offset_x = 0.0F;
	gfloat _tmp15_ = 0.0F;
	gfloat clone_offset_y = 0.0F;
	MetaDisplay* _tmp17_;
	gint _tmp18_ = 0;
	gint _tmp19_ = 0;
	MetaWorkspaceManager* manager = NULL;
	MetaDisplay* _tmp20_;
	MetaWorkspaceManager* _tmp21_;
	MetaWorkspace* workspace_from = NULL;
	MetaWorkspaceManager* _tmp22_;
	MetaWorkspace* _tmp23_;
	MetaWorkspace* workspace_to = NULL;
	MetaWorkspaceManager* _tmp24_;
	MetaWorkspace* _tmp25_;
	ClutterActor* main_container = NULL;
	ClutterActor* _tmp26_;
	ClutterClone* background_actor = NULL;
	GalaSystemBackground* _tmp27_;
	MetaBackgroundActor* _tmp28_;
	MetaBackgroundActor* _tmp29_;
	ClutterClone* _tmp30_;
	ClutterActor* static_windows = NULL;
	ClutterActor* _tmp31_;
	ClutterActor* _tmp32_;
	ClutterActor* _tmp33_;
	ClutterActor* _tmp34_;
	ClutterActor* _tmp35_;
	ClutterClone* _tmp36_;
	ClutterActor* _tmp37_;
	ClutterActor* _tmp38_;
	ClutterActor* _tmp39_;
	ClutterActor* _tmp40_;
	ClutterActor* _tmp41_;
	ClutterActor* _tmp42_;
	ClutterActor* _tmp43_;
	ClutterActor* _tmp44_;
	ClutterActor* _tmp45_;
	ClutterActor* _tmp46_;
	ClutterActor* _tmp58_;
	ClutterActor* _tmp59_;
	ClutterActor* _tmp60_;
	ClutterClone* _tmp61_;
	ClutterClone* _tmp62_;
	ClutterActor* _tmp63_;
	ClutterActor* _tmp64_;
	ClutterClone* _tmp65_;
	ClutterActor* _tmp66_;
	ClutterActor* _tmp67_;
	ClutterActor* _tmp68_;
	ClutterClone* _tmp69_;
	ClutterActor* _tmp70_;
	ClutterActor* _tmp71_;
	ClutterActor* _tmp72_;
	ClutterActor* _tmp73_;
	ClutterActor* _tmp74_;
	ClutterActor* _tmp75_;
	MetaWindow* _tmp76_;
	gboolean to_has_fullscreened = FALSE;
	gboolean from_has_fullscreened = FALSE;
	GList* docks = NULL;
	MetaDisplay* _tmp88_;
	GList* _tmp89_;
	GList* _tmp153_;
	ClutterActor* _tmp176_;
	gfloat _tmp177_ = 0.0F;
	ClutterActor* _tmp179_;
	gfloat _tmp180_ = 0.0F;
	ClutterActor* _tmp182_;
	gfloat _tmp183_ = 0.0F;
	ClutterActor* _tmp185_;
	gfloat _tmp186_ = 0.0F;
	ClutterActor* _tmp188_;
	gfloat _tmp189_ = 0.0F;
	ClutterActor* _tmp191_;
	ClutterActor* _tmp192_;
	ClutterActor* _tmp193_;
	ClutterActor* _tmp194_;
	gfloat _tmp195_;
	gfloat _tmp196_;
	ClutterActor* _tmp197_;
	ClutterClone* _tmp198_;
	ClutterClone* _tmp199_;
	ClutterClone* _tmp200_;
	gfloat _tmp201_;
	gfloat _tmp202_;
	ClutterActor* _tmp203_;
	ClutterClone* _tmp204_;
	ClutterActor* _tmp209_;
	ClutterActor* _tmp210_;
	gfloat _tmp211_ = 0.0F;
	ClutterActor* _tmp213_;
	ClutterActor* _tmp214_;
	gfloat _tmp215_ = 0.0F;
	ClutterActor* _tmp217_;
	ClutterActor* _tmp218_;
	GalaGestureTrackerOnUpdate on_animation_update = NULL;
	gpointer on_animation_update_target;
	GDestroyNotify on_animation_update_target_destroy_notify;
	GalaGestureTrackerOnEnd on_animation_end = NULL;
	gpointer on_animation_end_target;
	GDestroyNotify on_animation_end_target_destroy_notify;
	self = (GalaWindowManagerGala*) base;
	_data31_ = g_slice_new0 (Block31Data);
	_data31_->_ref_count_ = 1;
	_data31_->self = g_object_ref (self);
	_data31_->direction = direction;
	_tmp4_ = gala_window_manager_get_enable_animations ((GalaWindowManager*) self);
	_tmp5_ = _tmp4_;
	if (!_tmp5_) {
		_tmp3_ = TRUE;
	} else {
		_tmp3_ = GALA_ANIMATION_DURATION_WORKSPACE_SWITCH == 0;
	}
	if (_tmp3_) {
		_tmp2_ = TRUE;
	} else {
		gboolean _tmp6_ = FALSE;
		if (_data31_->direction != META_MOTION_LEFT) {
			_tmp6_ = _data31_->direction != META_MOTION_RIGHT;
		} else {
			_tmp6_ = FALSE;
		}
		_tmp2_ = _tmp6_;
	}
	if (_tmp2_) {
		_tmp1_ = TRUE;
	} else {
		_tmp1_ = self->priv->animating_switch_workspace;
	}
	if (_tmp1_) {
		_tmp0_ = TRUE;
	} else {
		GalaActivatableComponent* _tmp7_;
		GalaActivatableComponent* _tmp8_;
		_tmp7_ = gala_window_manager_get_workspace_view ((GalaWindowManager*) self);
		_tmp8_ = _tmp7_;
		_tmp0_ = gala_activatable_component_is_opened (_tmp8_);
	}
	if (_tmp0_) {
		self->priv->animating_switch_workspace = FALSE;
		meta_plugin_switch_workspace_completed ((MetaPlugin*) self);
		block31_data_unref (_data31_);
		_data31_ = NULL;
		return;
	}
	self->priv->animating_switch_workspace = TRUE;
	_tmp9_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp9_;
	_tmp10_ = display;
	primary = meta_display_get_primary_monitor (_tmp10_);
	move_primary_only = gala_internal_utils_workspaces_only_on_primary ();
	_tmp11_ = display;
	meta_display_get_monitor_geometry (_tmp11_, primary, &_tmp12_);
	monitor_geom = _tmp12_;
	if (move_primary_only) {
		MetaRectangle _tmp14_;
		_tmp14_ = monitor_geom;
		_tmp13_ = (gfloat) _tmp14_.x;
	} else {
		_tmp13_ = 0.0f;
	}
	clone_offset_x = _tmp13_;
	if (move_primary_only) {
		MetaRectangle _tmp16_;
		_tmp16_ = monitor_geom;
		_tmp15_ = (gfloat) _tmp16_.y;
	} else {
		_tmp15_ = 0.0f;
	}
	clone_offset_y = _tmp15_;
	_tmp17_ = display;
	meta_display_get_size (_tmp17_, &_tmp18_, &_tmp19_);
	screen_width = (gfloat) _tmp18_;
	screen_height = (gfloat) _tmp19_;
	_tmp20_ = display;
	_tmp21_ = meta_display_get_workspace_manager (_tmp20_);
	manager = _tmp21_;
	_tmp22_ = manager;
	_tmp23_ = meta_workspace_manager_get_workspace_by_index (_tmp22_, from);
	workspace_from = _tmp23_;
	_tmp24_ = manager;
	_tmp25_ = meta_workspace_manager_get_workspace_by_index (_tmp24_, to);
	workspace_to = _tmp25_;
	_tmp26_ = clutter_actor_new ();
	g_object_ref_sink (_tmp26_);
	main_container = _tmp26_;
	_tmp27_ = self->priv->system_background;
	_tmp28_ = gala_system_background_get_background_actor (_tmp27_);
	_tmp29_ = _tmp28_;
	_tmp30_ = (ClutterClone*) clutter_clone_new ((ClutterActor*) _tmp29_);
	g_object_ref_sink (_tmp30_);
	background_actor = _tmp30_;
	_tmp31_ = clutter_actor_new ();
	g_object_ref_sink (_tmp31_);
	static_windows = _tmp31_;
	_tmp32_ = clutter_actor_new ();
	g_object_ref_sink (_tmp32_);
	_data31_->in_group = _tmp32_;
	_tmp33_ = clutter_actor_new ();
	g_object_ref_sink (_tmp33_);
	_data31_->out_group = _tmp33_;
	(self->priv->windows == NULL) ? NULL : (self->priv->windows = (_g_list_free__g_object_unref0_ (self->priv->windows), NULL));
	self->priv->windows = NULL;
	(self->priv->parents == NULL) ? NULL : (self->priv->parents = (_g_list_free__g_object_unref0_ (self->priv->parents), NULL));
	self->priv->parents = NULL;
	(self->priv->tmp_actors == NULL) ? NULL : (self->priv->tmp_actors = (_g_list_free__g_object_unref0_ (self->priv->tmp_actors), NULL));
	self->priv->tmp_actors = NULL;
	_tmp34_ = main_container;
	_tmp35_ = _g_object_ref0 (_tmp34_);
	self->priv->tmp_actors = g_list_prepend (self->priv->tmp_actors, _tmp35_);
	_tmp36_ = background_actor;
	_tmp37_ = _g_object_ref0 ((ClutterActor*) _tmp36_);
	self->priv->tmp_actors = g_list_prepend (self->priv->tmp_actors, _tmp37_);
	_tmp38_ = _data31_->in_group;
	_tmp39_ = _g_object_ref0 (_tmp38_);
	self->priv->tmp_actors = g_list_prepend (self->priv->tmp_actors, _tmp39_);
	_tmp40_ = _data31_->out_group;
	_tmp41_ = _g_object_ref0 (_tmp40_);
	self->priv->tmp_actors = g_list_prepend (self->priv->tmp_actors, _tmp41_);
	_tmp42_ = static_windows;
	_tmp43_ = _g_object_ref0 (_tmp42_);
	self->priv->tmp_actors = g_list_prepend (self->priv->tmp_actors, _tmp43_);
	_tmp44_ = gala_window_manager_get_window_group ((GalaWindowManager*) self);
	_tmp45_ = _tmp44_;
	_tmp46_ = main_container;
	clutter_actor_add_child (_tmp45_, _tmp46_);
	if (move_primary_only) {
		ClutterActor* background = NULL;
		MetaBackgroundGroup* _tmp47_;
		MetaBackgroundGroup* _tmp48_;
		ClutterActor* _tmp49_;
		ClutterActor* _tmp50_;
		ClutterActor* _tmp51_;
		ClutterClone* _tmp52_;
		_tmp47_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
		_tmp48_ = _tmp47_;
		_tmp49_ = clutter_actor_get_child_at_index ((ClutterActor*) _tmp48_, primary);
		background = _tmp49_;
		_tmp50_ = background;
		clutter_actor_hide (_tmp50_);
		_tmp51_ = background;
		_tmp52_ = (ClutterClone*) clutter_clone_new (_tmp51_);
		g_object_ref_sink (_tmp52_);
		_g_object_unref0 (_data31_->wallpaper);
		_data31_->wallpaper = (ClutterActor*) _tmp52_;
	} else {
		MetaBackgroundGroup* _tmp53_;
		MetaBackgroundGroup* _tmp54_;
		MetaBackgroundGroup* _tmp55_;
		MetaBackgroundGroup* _tmp56_;
		ClutterClone* _tmp57_;
		_tmp53_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
		_tmp54_ = _tmp53_;
		clutter_actor_hide ((ClutterActor*) _tmp54_);
		_tmp55_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
		_tmp56_ = _tmp55_;
		_tmp57_ = (ClutterClone*) clutter_clone_new ((ClutterActor*) _tmp56_);
		g_object_ref_sink (_tmp57_);
		_g_object_unref0 (_data31_->wallpaper);
		_data31_->wallpaper = (ClutterActor*) _tmp57_;
	}
	_tmp58_ = _data31_->wallpaper;
	_tmp59_ = _g_object_ref0 (_tmp58_);
	self->priv->tmp_actors = g_list_prepend (self->priv->tmp_actors, _tmp59_);
	_tmp60_ = _data31_->wallpaper;
	_tmp61_ = (ClutterClone*) clutter_clone_new (_tmp60_);
	g_object_ref_sink (_tmp61_);
	_data31_->wallpaper_clone = _tmp61_;
	_tmp62_ = _data31_->wallpaper_clone;
	_tmp63_ = _g_object_ref0 ((ClutterActor*) _tmp62_);
	self->priv->tmp_actors = g_list_prepend (self->priv->tmp_actors, _tmp63_);
	_tmp64_ = main_container;
	_tmp65_ = background_actor;
	clutter_actor_add_child (_tmp64_, (ClutterActor*) _tmp65_);
	_tmp66_ = main_container;
	_tmp67_ = _data31_->wallpaper;
	clutter_actor_add_child (_tmp66_, _tmp67_);
	_tmp68_ = main_container;
	_tmp69_ = _data31_->wallpaper_clone;
	clutter_actor_add_child (_tmp68_, (ClutterActor*) _tmp69_);
	_tmp70_ = main_container;
	_tmp71_ = _data31_->out_group;
	clutter_actor_add_child (_tmp70_, _tmp71_);
	_tmp72_ = main_container;
	_tmp73_ = _data31_->in_group;
	clutter_actor_add_child (_tmp72_, _tmp73_);
	_tmp74_ = main_container;
	_tmp75_ = static_windows;
	clutter_actor_add_child (_tmp74_, _tmp75_);
	_tmp76_ = self->priv->moving;
	if (_tmp76_ != NULL) {
		MetaWindowActor* moving_actor = NULL;
		MetaWindow* _tmp77_;
		GObject* _tmp78_;
		MetaWindowActor* _tmp79_;
		MetaWindowActor* _tmp80_;
		ClutterActor* _tmp81_;
		MetaWindowActor* _tmp82_;
		ClutterActor* _tmp83_;
		ClutterActor* _tmp84_;
		MetaWindowActor* _tmp85_;
		MetaWindowActor* _tmp86_;
		ClutterActor* _tmp87_;
		_tmp77_ = self->priv->moving;
		_tmp78_ = meta_window_get_compositor_private (_tmp77_);
		_tmp79_ = _g_object_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp78_, meta_window_actor_get_type (), MetaWindowActor));
		moving_actor = _tmp79_;
		_tmp80_ = moving_actor;
		_tmp81_ = _g_object_ref0 ((ClutterActor*) _tmp80_);
		self->priv->windows = g_list_prepend (self->priv->windows, _tmp81_);
		_tmp82_ = moving_actor;
		_tmp83_ = clutter_actor_get_parent ((ClutterActor*) _tmp82_);
		_tmp84_ = _g_object_ref0 (_tmp83_);
		self->priv->parents = g_list_prepend (self->priv->parents, _tmp84_);
		_tmp85_ = moving_actor;
		clutter_actor_set_translation ((ClutterActor*) _tmp85_, -clone_offset_x, -clone_offset_y, (gfloat) 0);
		_tmp86_ = moving_actor;
		_tmp87_ = static_windows;
		gala_window_manager_gala_clutter_actor_reparent ((ClutterActor*) _tmp86_, _tmp87_);
		_g_object_unref0 (moving_actor);
	}
	to_has_fullscreened = FALSE;
	from_has_fullscreened = FALSE;
	docks = NULL;
	_tmp88_ = display;
	_tmp89_ = meta_get_window_actors (_tmp88_);
	{
		GList* actor_collection = NULL;
		GList* actor_it = NULL;
		actor_collection = _tmp89_;
		for (actor_it = actor_collection; actor_it != NULL; actor_it = actor_it->next) {
			MetaWindowActor* actor = NULL;
			actor = (MetaWindowActor*) actor_it->data;
			{
				MetaWindowActor* _tmp90_;
				MetaWindow* window = NULL;
				MetaWindowActor* _tmp91_;
				MetaWindow* _tmp92_;
				gboolean _tmp93_ = FALSE;
				gboolean _tmp94_ = FALSE;
				MetaWindow* _tmp95_;
				MetaWindow* _tmp102_;
				MetaWindow* _tmp125_;
				MetaWorkspace* _tmp126_;
				MetaWorkspace* _tmp127_;
				_tmp90_ = actor;
				if (meta_window_actor_is_destroyed (_tmp90_)) {
					continue;
				}
				_tmp91_ = actor;
				_tmp92_ = meta_window_actor_get_meta_window (_tmp91_);
				window = _tmp92_;
				_tmp95_ = window;
				if (!meta_window_showing_on_its_workspace (_tmp95_)) {
					_tmp94_ = TRUE;
				} else {
					gboolean _tmp96_ = FALSE;
					if (move_primary_only) {
						MetaWindow* _tmp97_;
						_tmp97_ = window;
						_tmp96_ = meta_window_get_monitor (_tmp97_) != primary;
					} else {
						_tmp96_ = FALSE;
					}
					_tmp94_ = _tmp96_;
				}
				if (_tmp94_) {
					_tmp93_ = TRUE;
				} else {
					gboolean _tmp98_ = FALSE;
					MetaWindow* _tmp99_;
					_tmp99_ = self->priv->moving;
					if (_tmp99_ != NULL) {
						MetaWindow* _tmp100_;
						MetaWindow* _tmp101_;
						_tmp100_ = window;
						_tmp101_ = self->priv->moving;
						_tmp98_ = _tmp100_ == _tmp101_;
					} else {
						_tmp98_ = FALSE;
					}
					_tmp93_ = _tmp98_;
				}
				if (_tmp93_) {
					continue;
				}
				_tmp102_ = window;
				if (meta_window_is_on_all_workspaces (_tmp102_)) {
					MetaWindow* _tmp103_;
					MetaWindowType _tmp104_;
					MetaWindowType _tmp105_;
					_tmp103_ = window;
					_tmp104_ = meta_window_get_window_type (_tmp103_);
					_tmp105_ = _tmp104_;
					if (_tmp105_ == META_WINDOW_DOCK) {
						MetaWindowActor* _tmp106_;
						MetaWindowActor* _tmp107_;
						_tmp106_ = actor;
						_tmp107_ = _g_object_ref0 (_tmp106_);
						docks = g_list_prepend (docks, _tmp107_);
					} else {
						MetaWindowActor* _tmp108_;
						ClutterActor* _tmp109_;
						MetaWindowActor* _tmp110_;
						ClutterActor* _tmp111_;
						ClutterActor* _tmp112_;
						MetaWindow* _tmp113_;
						MetaWindowType _tmp114_;
						MetaWindowType _tmp115_;
						_tmp108_ = actor;
						_tmp109_ = _g_object_ref0 ((ClutterActor*) _tmp108_);
						self->priv->windows = g_list_prepend (self->priv->windows, _tmp109_);
						_tmp110_ = actor;
						_tmp111_ = clutter_actor_get_parent ((ClutterActor*) _tmp110_);
						_tmp112_ = _g_object_ref0 (_tmp111_);
						self->priv->parents = g_list_prepend (self->priv->parents, _tmp112_);
						_tmp113_ = window;
						_tmp114_ = meta_window_get_window_type (_tmp113_);
						_tmp115_ = _tmp114_;
						if (_tmp115_ == META_WINDOW_NOTIFICATION) {
							MetaWindowActor* _tmp116_;
							ClutterActor* _tmp117_;
							_tmp116_ = actor;
							_tmp117_ = static_windows;
							gala_window_manager_gala_reparent_notification_window ((ClutterActor*) _tmp116_, _tmp117_);
						} else {
							MetaWindowActor* _tmp118_;
							ClutterActor* _tmp119_;
							MetaWindowActor* _tmp120_;
							MetaWindowActor* _tmp121_;
							MetaWindowActor* _tmp122_;
							MetaWindowActor* _tmp123_;
							MetaWindowActor* _tmp124_;
							_tmp118_ = actor;
							_tmp119_ = static_windows;
							gala_window_manager_gala_clutter_actor_reparent ((ClutterActor*) _tmp118_, _tmp119_);
							_tmp120_ = actor;
							clutter_actor_set_translation ((ClutterActor*) _tmp120_, -clone_offset_x, -clone_offset_y, (gfloat) 0);
							_tmp121_ = actor;
							clutter_actor_save_easing_state ((ClutterActor*) _tmp121_);
							_tmp122_ = actor;
							clutter_actor_set_easing_duration ((ClutterActor*) _tmp122_, (guint) 300);
							_tmp123_ = actor;
							clutter_actor_set_opacity ((ClutterActor*) _tmp123_, (guint) 0);
							_tmp124_ = actor;
							clutter_actor_restore_easing_state ((ClutterActor*) _tmp124_);
						}
					}
					continue;
				}
				_tmp125_ = window;
				_tmp126_ = meta_window_get_workspace (_tmp125_);
				_tmp127_ = workspace_from;
				if (_tmp126_ == _tmp127_) {
					MetaWindowActor* _tmp128_;
					ClutterActor* _tmp129_;
					MetaWindowActor* _tmp130_;
					ClutterActor* _tmp131_;
					ClutterActor* _tmp132_;
					MetaWindowActor* _tmp133_;
					MetaWindowActor* _tmp134_;
					ClutterActor* _tmp135_;
					MetaWindow* _tmp136_;
					gboolean _tmp137_;
					gboolean _tmp138_;
					_tmp128_ = actor;
					_tmp129_ = _g_object_ref0 ((ClutterActor*) _tmp128_);
					self->priv->windows = g_list_append (self->priv->windows, _tmp129_);
					_tmp130_ = actor;
					_tmp131_ = clutter_actor_get_parent ((ClutterActor*) _tmp130_);
					_tmp132_ = _g_object_ref0 (_tmp131_);
					self->priv->parents = g_list_append (self->priv->parents, _tmp132_);
					_tmp133_ = actor;
					clutter_actor_set_translation ((ClutterActor*) _tmp133_, -clone_offset_x, -clone_offset_y, (gfloat) 0);
					_tmp134_ = actor;
					_tmp135_ = _data31_->out_group;
					gala_window_manager_gala_clutter_actor_reparent ((ClutterActor*) _tmp134_, _tmp135_);
					_tmp136_ = window;
					g_object_get (_tmp136_, "fullscreen", &_tmp137_, NULL);
					_tmp138_ = _tmp137_;
					if (_tmp138_) {
						from_has_fullscreened = TRUE;
					}
				} else {
					MetaWindow* _tmp139_;
					MetaWorkspace* _tmp140_;
					MetaWorkspace* _tmp141_;
					_tmp139_ = window;
					_tmp140_ = meta_window_get_workspace (_tmp139_);
					_tmp141_ = workspace_to;
					if (_tmp140_ == _tmp141_) {
						MetaWindowActor* _tmp142_;
						ClutterActor* _tmp143_;
						MetaWindowActor* _tmp144_;
						ClutterActor* _tmp145_;
						ClutterActor* _tmp146_;
						MetaWindowActor* _tmp147_;
						MetaWindowActor* _tmp148_;
						ClutterActor* _tmp149_;
						MetaWindow* _tmp150_;
						gboolean _tmp151_;
						gboolean _tmp152_;
						_tmp142_ = actor;
						_tmp143_ = _g_object_ref0 ((ClutterActor*) _tmp142_);
						self->priv->windows = g_list_append (self->priv->windows, _tmp143_);
						_tmp144_ = actor;
						_tmp145_ = clutter_actor_get_parent ((ClutterActor*) _tmp144_);
						_tmp146_ = _g_object_ref0 (_tmp145_);
						self->priv->parents = g_list_append (self->priv->parents, _tmp146_);
						_tmp147_ = actor;
						clutter_actor_set_translation ((ClutterActor*) _tmp147_, -clone_offset_x, -clone_offset_y, (gfloat) 0);
						_tmp148_ = actor;
						_tmp149_ = _data31_->in_group;
						gala_window_manager_gala_clutter_actor_reparent ((ClutterActor*) _tmp148_, _tmp149_);
						_tmp150_ = window;
						g_object_get (_tmp150_, "fullscreen", &_tmp151_, NULL);
						_tmp152_ = _tmp151_;
						if (_tmp152_) {
							to_has_fullscreened = TRUE;
						}
					}
				}
			}
		}
	}
	_tmp153_ = docks;
	{
		GList* window_collection = NULL;
		GList* window_it = NULL;
		window_collection = _tmp153_;
		for (window_it = window_collection; window_it != NULL; window_it = window_it->next) {
			MetaWindowActor* _tmp154_;
			MetaWindowActor* window = NULL;
			_tmp154_ = _g_object_ref0 ((MetaWindowActor*) window_it->data);
			window = _tmp154_;
			{
				if (!to_has_fullscreened) {
					GalaSafeWindowClone* clone = NULL;
					MetaWindowActor* _tmp155_;
					MetaWindow* _tmp156_;
					MetaWindowActor* _tmp157_;
					gfloat _tmp158_;
					gfloat _tmp159_;
					MetaWindowActor* _tmp160_;
					gfloat _tmp161_;
					gfloat _tmp162_;
					GalaSafeWindowClone* _tmp163_ = NULL;
					ClutterActor* _tmp164_;
					GalaSafeWindowClone* _tmp165_;
					GalaSafeWindowClone* _tmp166_;
					ClutterActor* _tmp167_;
					_tmp155_ = window;
					_tmp156_ = meta_window_actor_get_meta_window (_tmp155_);
					_tmp157_ = window;
					_tmp158_ = clutter_actor_get_x ((ClutterActor*) _tmp157_);
					_tmp159_ = _tmp158_;
					_tmp160_ = window;
					_tmp161_ = clutter_actor_get_y ((ClutterActor*) _tmp160_);
					_tmp162_ = _tmp161_;
					_tmp163_ = gala_safe_window_clone_new (_tmp156_, FALSE);
					clutter_actor_set_x ((ClutterActor*) _tmp163_, _tmp159_ - clone_offset_x);
					clutter_actor_set_y ((ClutterActor*) _tmp163_, _tmp162_ - clone_offset_y);
					g_object_ref_sink (_tmp163_);
					clone = _tmp163_;
					_tmp164_ = _data31_->in_group;
					_tmp165_ = clone;
					clutter_actor_add_child (_tmp164_, (ClutterActor*) _tmp165_);
					_tmp166_ = clone;
					_tmp167_ = _g_object_ref0 ((ClutterActor*) _tmp166_);
					self->priv->tmp_actors = g_list_prepend (self->priv->tmp_actors, _tmp167_);
					_g_object_unref0 (clone);
				}
				if (!from_has_fullscreened) {
					MetaWindowActor* _tmp168_;
					ClutterActor* _tmp169_;
					MetaWindowActor* _tmp170_;
					ClutterActor* _tmp171_;
					ClutterActor* _tmp172_;
					MetaWindowActor* _tmp173_;
					MetaWindowActor* _tmp174_;
					ClutterActor* _tmp175_;
					_tmp168_ = window;
					_tmp169_ = _g_object_ref0 ((ClutterActor*) _tmp168_);
					self->priv->windows = g_list_prepend (self->priv->windows, _tmp169_);
					_tmp170_ = window;
					_tmp171_ = clutter_actor_get_parent ((ClutterActor*) _tmp170_);
					_tmp172_ = _g_object_ref0 (_tmp171_);
					self->priv->parents = g_list_prepend (self->priv->parents, _tmp172_);
					_tmp173_ = window;
					clutter_actor_set_translation ((ClutterActor*) _tmp173_, -clone_offset_x, -clone_offset_y, 0.0f);
					_tmp174_ = window;
					_tmp175_ = _data31_->out_group;
					gala_window_manager_gala_clutter_actor_reparent ((ClutterActor*) _tmp174_, _tmp175_);
				}
				_g_object_unref0 (window);
			}
		}
	}
	_tmp176_ = main_container;
	clutter_actor_set_clip_to_allocation (_tmp176_, TRUE);
	if (move_primary_only) {
		MetaRectangle _tmp178_;
		_tmp178_ = monitor_geom;
		_tmp177_ = (gfloat) _tmp178_.x;
	} else {
		_tmp177_ = 0.0f;
	}
	_tmp179_ = main_container;
	clutter_actor_set_x (_tmp179_, _tmp177_);
	if (move_primary_only) {
		MetaRectangle _tmp181_;
		_tmp181_ = monitor_geom;
		_tmp180_ = (gfloat) _tmp181_.y;
	} else {
		_tmp180_ = 0.0f;
	}
	_tmp182_ = main_container;
	clutter_actor_set_y (_tmp182_, _tmp180_);
	if (move_primary_only) {
		MetaRectangle _tmp184_;
		_tmp184_ = monitor_geom;
		_tmp183_ = (gfloat) _tmp184_.width;
	} else {
		_tmp183_ = screen_width;
	}
	_tmp185_ = main_container;
	clutter_actor_set_width (_tmp185_, _tmp183_);
	if (move_primary_only) {
		MetaRectangle _tmp187_;
		_tmp187_ = monitor_geom;
		_tmp186_ = (gfloat) _tmp187_.height;
	} else {
		_tmp186_ = screen_height;
	}
	_tmp188_ = main_container;
	clutter_actor_set_height (_tmp188_, _tmp186_);
	if (move_primary_only) {
		MetaRectangle _tmp190_;
		_tmp190_ = monitor_geom;
		_tmp189_ = (gfloat) _tmp190_.width;
	} else {
		_tmp189_ = screen_width;
	}
	_data31_->x2 = _tmp189_;
	_data31_->x2 += (gfloat) (GALA_WINDOW_MANAGER_GALA_WORKSPACE_GAP * gala_internal_utils_get_ui_scaling_factor ());
	if (_data31_->direction == META_MOTION_RIGHT) {
		_data31_->x2 = -_data31_->x2;
	}
	_tmp191_ = _data31_->out_group;
	clutter_actor_set_x (_tmp191_, 0.0f);
	_tmp192_ = _data31_->wallpaper;
	clutter_actor_set_x (_tmp192_, 0.0f);
	_tmp193_ = _data31_->wallpaper;
	_tmp194_ = _data31_->wallpaper;
	_tmp195_ = clutter_actor_get_y (_tmp194_);
	_tmp196_ = _tmp195_;
	clutter_actor_set_y (_tmp194_, _tmp196_ + clone_offset_y);
	_tmp197_ = _data31_->in_group;
	clutter_actor_set_x (_tmp197_, -_data31_->x2);
	_tmp198_ = _data31_->wallpaper_clone;
	clutter_actor_set_x ((ClutterActor*) _tmp198_, -_data31_->x2);
	_tmp199_ = _data31_->wallpaper_clone;
	_tmp200_ = _data31_->wallpaper_clone;
	_tmp201_ = clutter_actor_get_y ((ClutterActor*) _tmp200_);
	_tmp202_ = _tmp201_;
	clutter_actor_set_y ((ClutterActor*) _tmp200_, _tmp202_ + clone_offset_y);
	_tmp203_ = _data31_->wallpaper;
	clutter_actor_set_translation (_tmp203_, -clone_offset_x, 0.0f, 0.0f);
	_tmp204_ = _data31_->wallpaper_clone;
	clutter_actor_set_translation ((ClutterActor*) _tmp204_, -clone_offset_x, 0.0f, 0.0f);
	if (move_primary_only) {
		ClutterActor* _tmp205_;
		MetaRectangle _tmp206_;
		ClutterClone* _tmp207_;
		MetaRectangle _tmp208_;
		_tmp205_ = _data31_->wallpaper;
		_tmp206_ = monitor_geom;
		clutter_actor_set_y (_tmp205_, (gfloat) (-_tmp206_.y));
		_tmp207_ = _data31_->wallpaper_clone;
		_tmp208_ = monitor_geom;
		clutter_actor_set_y ((ClutterActor*) _tmp207_, (gfloat) (-_tmp208_.y));
	}
	_tmp209_ = _data31_->in_group;
	_tmp210_ = _data31_->out_group;
	clutter_actor_set_clip_to_allocation (_tmp210_, TRUE);
	clutter_actor_set_clip_to_allocation (_tmp209_, TRUE);
	if (move_primary_only) {
		MetaRectangle _tmp212_;
		_tmp212_ = monitor_geom;
		_tmp211_ = (gfloat) _tmp212_.width;
	} else {
		_tmp211_ = screen_width;
	}
	_tmp213_ = _data31_->in_group;
	_tmp214_ = _data31_->out_group;
	clutter_actor_set_width (_tmp214_, _tmp211_);
	clutter_actor_set_width (_tmp213_, _tmp211_);
	if (move_primary_only) {
		MetaRectangle _tmp216_;
		_tmp216_ = monitor_geom;
		_tmp215_ = (gfloat) _tmp216_.height;
	} else {
		_tmp215_ = screen_height;
	}
	_tmp217_ = _data31_->in_group;
	_tmp218_ = _data31_->out_group;
	clutter_actor_set_height (_tmp218_, _tmp215_);
	clutter_actor_set_height (_tmp217_, _tmp215_);
	_data31_->animation_mode = CLUTTER_EASE_OUT_CUBIC;
	on_animation_update = ___lambda162__gala_gesture_tracker_on_update;
	on_animation_update_target = block31_data_ref (_data31_);
	on_animation_update_target_destroy_notify = block31_data_unref;
	on_animation_end = ___lambda163__gala_gesture_tracker_on_end;
	on_animation_end_target = block31_data_ref (_data31_);
	on_animation_end_target_destroy_notify = block31_data_unref;
	if (!self->priv->switch_workspace_with_gesture) {
		GalaGestureTrackerOnEnd _tmp219_;
		gpointer _tmp219__target;
		_tmp219_ = on_animation_end;
		_tmp219__target = on_animation_end_target;
		_tmp219_ ((gdouble) 1, FALSE, (gint) GALA_ANIMATION_DURATION_WORKSPACE_SWITCH_MIN, _tmp219__target);
	} else {
		GalaGestureTracker* _tmp220_;
		GalaGestureTrackerOnUpdate _tmp221_;
		gpointer _tmp221__target;
		GDestroyNotify _tmp221__target_destroy_notify;
		GalaGestureTrackerOnEnd _tmp222_;
		gpointer _tmp222__target;
		GDestroyNotify _tmp222__target_destroy_notify;
		_tmp220_ = self->priv->gesture_tracker;
		_tmp221_ = on_animation_update;
		_tmp221__target = on_animation_update_target;
		_tmp221__target_destroy_notify = on_animation_update_target_destroy_notify;
		on_animation_update = NULL;
		on_animation_update_target = NULL;
		on_animation_update_target_destroy_notify = NULL;
		_tmp222_ = on_animation_end;
		_tmp222__target = on_animation_end_target;
		_tmp222__target_destroy_notify = on_animation_end_target_destroy_notify;
		on_animation_end = NULL;
		on_animation_end_target = NULL;
		on_animation_end_target_destroy_notify = NULL;
		gala_gesture_tracker_connect_handlers (_tmp220_, NULL, NULL, NULL, _tmp221_, _tmp221__target, _tmp221__target_destroy_notify, _tmp222_, _tmp222__target, _tmp222__target_destroy_notify);
	}
	(on_animation_end_target_destroy_notify == NULL) ? NULL : (on_animation_end_target_destroy_notify (on_animation_end_target), NULL);
	on_animation_end = NULL;
	on_animation_end_target = NULL;
	on_animation_end_target_destroy_notify = NULL;
	(on_animation_update_target_destroy_notify == NULL) ? NULL : (on_animation_update_target_destroy_notify (on_animation_update_target), NULL);
	on_animation_update = NULL;
	on_animation_update_target = NULL;
	on_animation_update_target_destroy_notify = NULL;
	(docks == NULL) ? NULL : (docks = (_g_list_free__g_object_unref0_ (docks), NULL));
	_g_object_unref0 (static_windows);
	_g_object_unref0 (background_actor);
	_g_object_unref0 (main_container);
	block31_data_unref (_data31_);
	_data31_ = NULL;
}

static void
gala_window_manager_gala_switch_workspace_animation_finished (GalaWindowManagerGala* self,
                                                              MetaMotionDirection animation_direction,
                                                              gboolean cancel_action)
{
	g_return_if_fail (self != NULL);
	gala_window_manager_gala_end_switch_workspace (self);
	self->priv->switch_workspace_with_gesture = FALSE;
	self->priv->animating_switch_workspace = cancel_action;
	if (cancel_action) {
		MetaMotionDirection _tmp0_ = 0;
		MetaMotionDirection cancel_direction = 0;
		MetaDisplay* display = NULL;
		MetaDisplay* _tmp1_;
		MetaWorkspace* active_workspace = NULL;
		MetaDisplay* _tmp2_;
		MetaWorkspaceManager* _tmp3_;
		MetaWorkspace* _tmp4_;
		MetaWorkspace* _tmp5_;
		MetaWorkspace* neighbor = NULL;
		MetaWorkspace* _tmp6_;
		MetaWorkspace* _tmp7_;
		MetaWorkspace* _tmp8_;
		MetaWorkspace* _tmp9_;
		MetaDisplay* _tmp10_;
		if (animation_direction == META_MOTION_LEFT) {
			_tmp0_ = META_MOTION_RIGHT;
		} else {
			_tmp0_ = META_MOTION_LEFT;
		}
		cancel_direction = _tmp0_;
		_tmp1_ = meta_plugin_get_display ((MetaPlugin*) self);
		display = _tmp1_;
		_tmp2_ = display;
		_tmp3_ = meta_display_get_workspace_manager (_tmp2_);
		_tmp4_ = meta_workspace_manager_get_active_workspace (_tmp3_);
		_tmp5_ = _g_object_ref0 (_tmp4_);
		active_workspace = _tmp5_;
		_tmp6_ = active_workspace;
		_tmp7_ = meta_workspace_get_neighbor (_tmp6_, cancel_direction);
		_tmp8_ = _g_object_ref0 (_tmp7_);
		neighbor = _tmp8_;
		_tmp9_ = neighbor;
		_tmp10_ = display;
		meta_workspace_activate (_tmp9_, meta_display_get_current_time (_tmp10_));
		_g_object_unref0 (neighbor);
		_g_object_unref0 (active_workspace);
	}
}

static void
gala_window_manager_gala_end_switch_workspace (GalaWindowManagerGala* self)
{
	gboolean _tmp0_ = FALSE;
	GList* _tmp1_;
	MetaDisplay* display = NULL;
	MetaDisplay* _tmp3_;
	MetaWorkspace* active_workspace = NULL;
	MetaDisplay* _tmp4_;
	MetaWorkspaceManager* _tmp5_;
	MetaWorkspace* _tmp6_;
	MetaWorkspace* _tmp7_;
	gint primary = 0;
	MetaDisplay* _tmp8_;
	gboolean move_primary_only = FALSE;
	GList* _tmp55_;
	g_return_if_fail (self != NULL);
	_tmp1_ = self->priv->windows;
	if (_tmp1_ == NULL) {
		_tmp0_ = TRUE;
	} else {
		GList* _tmp2_;
		_tmp2_ = self->priv->parents;
		_tmp0_ = _tmp2_ == NULL;
	}
	if (_tmp0_) {
		return;
	}
	_tmp3_ = meta_plugin_get_display ((MetaPlugin*) self);
	display = _tmp3_;
	_tmp4_ = display;
	_tmp5_ = meta_display_get_workspace_manager (_tmp4_);
	_tmp6_ = meta_workspace_manager_get_active_workspace (_tmp5_);
	_tmp7_ = _g_object_ref0 (_tmp6_);
	active_workspace = _tmp7_;
	_tmp8_ = display;
	primary = meta_display_get_primary_monitor (_tmp8_);
	move_primary_only = gala_internal_utils_workspaces_only_on_primary ();
	if (move_primary_only) {
		ClutterActor* background = NULL;
		MetaBackgroundGroup* _tmp9_;
		MetaBackgroundGroup* _tmp10_;
		ClutterActor* _tmp11_;
		ClutterActor* _tmp12_;
		_tmp9_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
		_tmp10_ = _tmp9_;
		_tmp11_ = clutter_actor_get_child_at_index ((ClutterActor*) _tmp10_, primary);
		background = _tmp11_;
		_tmp12_ = background;
		clutter_actor_show (_tmp12_);
	} else {
		MetaBackgroundGroup* _tmp13_;
		MetaBackgroundGroup* _tmp14_;
		_tmp13_ = gala_window_manager_get_background_group ((GalaWindowManager*) self);
		_tmp14_ = _tmp13_;
		clutter_actor_show ((ClutterActor*) _tmp14_);
	}
	{
		gint i = 0;
		i = 0;
		{
			gboolean _tmp15_ = FALSE;
			_tmp15_ = TRUE;
			while (TRUE) {
				GList* _tmp17_;
				ClutterActor* actor = NULL;
				GList* _tmp18_;
				gconstpointer _tmp19_;
				ClutterActor* _tmp20_;
				ClutterActor* _tmp21_;
				MetaWindowActor* window = NULL;
				ClutterActor* _tmp22_;
				MetaWindowActor* _tmp23_;
				MetaWindow* meta_window = NULL;
				MetaWindowActor* _tmp27_;
				MetaWindow* _tmp28_;
				MetaWindowActor* _tmp29_;
				MetaWindowActor* _tmp39_;
				gboolean _tmp40_ = FALSE;
				gboolean _tmp41_ = FALSE;
				MetaWindow* _tmp42_;
				ClutterActor* _tmp48_;
				guint _tmp49_;
				guint _tmp50_;
				if (!_tmp15_) {
					gint _tmp16_;
					_tmp16_ = i;
					i = _tmp16_ + 1;
				}
				_tmp15_ = FALSE;
				_tmp17_ = self->priv->windows;
				if (!(((guint) i) < g_list_length (_tmp17_))) {
					break;
				}
				_tmp18_ = self->priv->windows;
				_tmp19_ = g_list_nth_data (_tmp18_, (guint) i);
				_tmp20_ = _g_object_ref0 ((ClutterActor*) _tmp19_);
				actor = _tmp20_;
				_tmp21_ = actor;
				clutter_actor_set_translation (_tmp21_, 0.0f, 0.0f, 0.0f);
				_tmp22_ = actor;
				window = G_TYPE_CHECK_INSTANCE_TYPE (_tmp22_, meta_window_actor_get_type ()) ? ((MetaWindowActor*) _tmp22_) : NULL;
				_tmp23_ = window;
				if (_tmp23_ == NULL) {
					ClutterActor* _tmp24_;
					GList* _tmp25_;
					gconstpointer _tmp26_;
					_tmp24_ = actor;
					_tmp25_ = self->priv->parents;
					_tmp26_ = g_list_nth_data (_tmp25_, (guint) i);
					gala_window_manager_gala_clutter_actor_reparent (_tmp24_, (ClutterActor*) _tmp26_);
					_g_object_unref0 (actor);
					continue;
				}
				_tmp27_ = window;
				_tmp28_ = meta_window_actor_get_meta_window (_tmp27_);
				meta_window = _tmp28_;
				_tmp29_ = window;
				if (!meta_window_actor_is_destroyed (_tmp29_)) {
					gboolean _tmp30_ = FALSE;
					MetaWindow* _tmp31_;
					_tmp31_ = meta_window;
					if (_tmp31_ != NULL) {
						MetaWindow* _tmp32_;
						_tmp32_ = meta_window;
						_tmp30_ = meta_window_get_window_type (_tmp32_) == META_WINDOW_NOTIFICATION;
					} else {
						_tmp30_ = FALSE;
					}
					if (_tmp30_) {
						ClutterActor* _tmp33_;
						GList* _tmp34_;
						gconstpointer _tmp35_;
						_tmp33_ = actor;
						_tmp34_ = self->priv->parents;
						_tmp35_ = g_list_nth_data (_tmp34_, (guint) i);
						gala_window_manager_gala_reparent_notification_window (_tmp33_, (ClutterActor*) _tmp35_);
					} else {
						ClutterActor* _tmp36_;
						GList* _tmp37_;
						gconstpointer _tmp38_;
						_tmp36_ = actor;
						_tmp37_ = self->priv->parents;
						_tmp38_ = g_list_nth_data (_tmp37_, (guint) i);
						gala_window_manager_gala_clutter_actor_reparent (_tmp36_, (ClutterActor*) _tmp38_);
					}
				}
				_tmp39_ = window;
				G_TYPE_INSTANCE_GET_CLASS ((MetaPlugin*) self, meta_plugin_get_type (), MetaPluginClass)->kill_window_effects ((MetaPlugin*) self, _tmp39_);
				_tmp42_ = meta_window;
				if (_tmp42_ != NULL) {
					MetaWindow* _tmp43_;
					MetaWorkspace* _tmp44_;
					MetaWorkspace* _tmp45_;
					_tmp43_ = meta_window;
					_tmp44_ = meta_window_get_workspace (_tmp43_);
					_tmp45_ = active_workspace;
					_tmp41_ = _tmp44_ != _tmp45_;
				} else {
					_tmp41_ = FALSE;
				}
				if (_tmp41_) {
					MetaWindow* _tmp46_;
					_tmp46_ = meta_window;
					_tmp40_ = !meta_window_is_on_all_workspaces (_tmp46_);
				} else {
					_tmp40_ = FALSE;
				}
				if (_tmp40_) {
					MetaWindowActor* _tmp47_;
					_tmp47_ = window;
					clutter_actor_hide ((ClutterActor*) _tmp47_);
				}
				_tmp48_ = actor;
				_tmp49_ = clutter_actor_get_opacity (_tmp48_);
				_tmp50_ = _tmp49_;
				if (_tmp50_ < 255U) {
					ClutterActor* _tmp51_;
					ClutterActor* _tmp52_;
					ClutterActor* _tmp53_;
					ClutterActor* _tmp54_;
					_tmp51_ = actor;
					clutter_actor_save_easing_state (_tmp51_);
					_tmp52_ = actor;
					clutter_actor_set_easing_duration (_tmp52_, (guint) 300);
					_tmp53_ = actor;
					clutter_actor_set_opacity (_tmp53_, 255U);
					_tmp54_ = actor;
					clutter_actor_restore_easing_state (_tmp54_);
				}
				_g_object_unref0 (actor);
			}
		}
	}
	_tmp55_ = self->priv->tmp_actors;
	if (_tmp55_ != NULL) {
		GList* _tmp56_;
		_tmp56_ = self->priv->tmp_actors;
		{
			GList* actor_collection = NULL;
			GList* actor_it = NULL;
			actor_collection = _tmp56_;
			for (actor_it = actor_collection; actor_it != NULL; actor_it = actor_it->next) {
				ClutterActor* _tmp57_;
				ClutterActor* actor = NULL;
				_tmp57_ = _g_object_ref0 ((ClutterActor*) actor_it->data);
				actor = _tmp57_;
				{
					ClutterActor* _tmp58_;
					_tmp58_ = actor;
					clutter_actor_destroy (_tmp58_);
					_g_object_unref0 (actor);
				}
			}
		}
		(self->priv->tmp_actors == NULL) ? NULL : (self->priv->tmp_actors = (_g_list_free__g_object_unref0_ (self->priv->tmp_actors), NULL));
		self->priv->tmp_actors = NULL;
	}
	(self->priv->windows == NULL) ? NULL : (self->priv->windows = (_g_list_free__g_object_unref0_ (self->priv->windows), NULL));
	self->priv->windows = NULL;
	(self->priv->parents == NULL) ? NULL : (self->priv->parents = (_g_list_free__g_object_unref0_ (self->priv->parents), NULL));
	self->priv->parents = NULL;
	_g_object_unref0 (self->priv->moving);
	self->priv->moving = NULL;
	meta_plugin_switch_workspace_completed ((MetaPlugin*) self);
	_g_object_unref0 (active_workspace);
}

static void
gala_window_manager_gala_real_kill_switch_workspace (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	self = (GalaWindowManagerGala*) base;
	gala_window_manager_gala_end_switch_workspace (self);
}

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

static gboolean
gala_window_manager_gala_real_keybinding_filter (MetaPlugin* base,
                                                 MetaKeyBinding* binding)
{
	GalaWindowManagerGala * self;
	GalaModalProxy* modal_proxy = NULL;
	GeeLinkedList* _tmp0_;
	gpointer _tmp1_;
	GalaModalProxy* _tmp2_;
	GalaKeybindingFilter filter = NULL;
	GalaModalProxy* _tmp3_;
	gpointer _tmp4_ = NULL;
	GalaKeybindingFilter _tmp5_;
	gpointer filter_target;
	GalaKeybindingFilter _tmp6_;
	gpointer _tmp6__target;
	GalaKeybindingFilter _tmp7_;
	gpointer _tmp7__target;
	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_ = self->priv->modal_stack;
	_tmp1_ = gee_deque_peek_head ((GeeDeque*) _tmp0_);
	modal_proxy = (GalaModalProxy*) _tmp1_;
	_tmp2_ = modal_proxy;
	if (_tmp2_ == NULL) {
		result = FALSE;
		_g_object_unref0 (modal_proxy);
		return result;
	}
	_tmp3_ = modal_proxy;
	_tmp5_ = gala_modal_proxy_get_keybinding_filter (_tmp3_, &_tmp4_);
	filter = _tmp5_;
	filter_target = _tmp4_;
	_tmp6_ = filter;
	_tmp6__target = filter_target;
	if (_tmp6_ == NULL) {
		result = FALSE;
		_g_object_unref0 (modal_proxy);
		return result;
	}
	_tmp7_ = filter;
	_tmp7__target = filter_target;
	result = _tmp7_ (binding, _tmp7__target);
	_g_object_unref0 (modal_proxy);
	return result;
}

static Block33Data*
block33_data_ref (Block33Data* _data33_)
{
	g_atomic_int_inc (&_data33_->_ref_count_);
	return _data33_;
}

static void
block33_data_unref (void * _userdata_)
{
	Block33Data* _data33_;
	_data33_ = (Block33Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data33_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data33_->self;
		_g_object_unref0 (_data33_->dialog);
		_g_object_unref0 (self);
		g_slice_free (Block33Data, _data33_);
	}
}

static gboolean
__lambda166_ (Block33Data* _data33_)
{
	GalaWindowManagerGala* self;
	gboolean result;
	self = _data33_->self;
	gala_access_dialog_close (_data33_->dialog);
	result = G_SOURCE_REMOVE;
	return result;
}

static gboolean
___lambda166__gsource_func (gpointer self)
{
	gboolean result;
	result = __lambda166_ (self);
	return result;
}

static void
__lambda165_ (Block33Data* _data33_)
{
	GalaWindowManagerGala* self;
	self = _data33_->self;
	g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, (guint) 30, ___lambda166__gsource_func, block33_data_ref (_data33_), block33_data_unref);
}

static void
___lambda165__gala_access_dialog_show (GalaAccessDialog* _sender,
                                       gpointer self)
{
	__lambda165_ (self);
}

static void
__lambda167_ (GalaWindowManagerGala* self,
              guint res)
{
	meta_plugin_complete_display_change ((MetaPlugin*) self, res == ((guint) 0));
}

static void
___lambda167__gala_access_dialog_response (GalaAccessDialog* _sender,
                                           guint response,
                                           gpointer self)
{
	__lambda167_ ((GalaWindowManagerGala*) self, response);
}

static void
gala_window_manager_gala_real_confirm_display_change (MetaPlugin* base)
{
	GalaWindowManagerGala * self;
	Block33Data* _data33_;
	gchar* _tmp0_;
	gchar* _tmp1_;
	GalaAccessDialog* _tmp2_ = NULL;
	self = (GalaWindowManagerGala*) base;
	_data33_ = g_slice_new0 (Block33Data);
	_data33_->_ref_count_ = 1;
	_data33_->self = g_object_ref (self);
	_tmp0_ = g_strdup (_ ("Keep Settings"));
	_tmp1_ = g_strdup (_ ("Use Previous Settings"));
	_tmp2_ = gala_access_dialog_new (_ ("Keep new display settings?"), _ ("Changes will automatically revert after 30 seconds."), "preferences-desktop-display");
	gala_access_dialog_set_accept_label (_tmp2_, _tmp0_);
	_g_free0 (_tmp0_);
	gala_access_dialog_set_deny_label (_tmp2_, _tmp1_);
	_g_free0 (_tmp1_);
	_data33_->dialog = _tmp2_;
	g_signal_connect_data (_data33_->dialog, "show", (GCallback) ___lambda165__gala_access_dialog_show, block33_data_ref (_data33_), (GClosureNotify) block33_data_unref, 0);
	g_signal_connect_object (_data33_->dialog, "response", (GCallback) ___lambda167__gala_access_dialog_response, self, 0);
	g_signal_emit_by_name (_data33_->dialog, "show");
	block33_data_unref (_data33_);
	_data33_ = NULL;
}

static Block34Data*
block34_data_ref (Block34Data* _data34_)
{
	g_atomic_int_inc (&_data34_->_ref_count_);
	return _data34_;
}

static void
block34_data_unref (void * _userdata_)
{
	Block34Data* _data34_;
	_data34_ = (Block34Data*) _userdata_;
	if (g_atomic_int_dec_and_test (&_data34_->_ref_count_)) {
		GalaWindowManagerGala* self;
		self = _data34_->self;
		_g_object_unref0 (_data34_->window);
		_g_object_unref0 (self);
		g_slice_free (Block34Data, _data34_);
	}
}

static gboolean
__lambda168_ (Block34Data* _data34_,
              GalaCloseDialog* d)
{
	GalaWindowManagerGala* self;
	MetaWindow* _tmp0_;
	MetaWindow* _tmp1_;
	MetaWindow* _tmp2_;
	gboolean _tmp3_;
	gboolean result;
	self = _data34_->self;
	g_return_val_if_fail (d != NULL, FALSE);
	g_object_get ((MetaCloseDialog*) d, "window", &_tmp0_, NULL);
	_tmp1_ = _tmp0_;
	_tmp2_ = _tmp1_;
	_tmp3_ = _tmp2_ == _data34_->window;
	_g_object_unref0 (_tmp2_);
	result = _tmp3_;
	return result;
}

static gboolean
___lambda168__gee_predicate (gconstpointer g,
                             gpointer self)
{
	gboolean result;
	result = __lambda168_ (self, (GalaCloseDialog*) g);
	return result;
}

static MetaCloseDialog*
gala_window_manager_gala_real_create_close_dialog (MetaPlugin* base,
                                                   MetaWindow* window)
{
	GalaWindowManagerGala * self;
	Block34Data* _data34_;
	MetaWindow* _tmp0_;
	GalaCloseDialog* new_dialog = NULL;
	GeeSet* _tmp1_;
	gpointer _tmp2_;
	GalaCloseDialog* _tmp3_;
	GalaCloseDialog* dialog = NULL;
	GalaCloseDialog* _tmp5_;
	MetaCloseDialog* result;
	self = (GalaWindowManagerGala*) base;
	g_return_val_if_fail (window != NULL, NULL);
	_data34_ = g_slice_new0 (Block34Data);
	_data34_->_ref_count_ = 1;
	_data34_->self = g_object_ref (self);
	_tmp0_ = _g_object_ref0 (window);
	_g_object_unref0 (_data34_->window);
	_data34_->window = _tmp0_;
	_tmp1_ = gala_close_dialog_open_dialogs;
	_tmp2_ = gee_traversable_first_match ((GeeTraversable*) _tmp1_, ___lambda168__gee_predicate, block34_data_ref (_data34_), block34_data_unref);
	new_dialog = (GalaCloseDialog*) _tmp2_;
	_tmp3_ = new_dialog;
	if (_tmp3_ == NULL) {
		GalaCloseDialog* _tmp4_;
		_tmp4_ = gala_close_dialog_new (_data34_->window);
		_g_object_unref0 (new_dialog);
		new_dialog = _tmp4_;
	}
	_tmp5_ = new_dialog;
	dialog = _tmp5_;
	result = (MetaCloseDialog*) dialog;
	_g_object_unref0 (new_dialog);
	block34_data_unref (_data34_);
	_data34_ = NULL;
	return result;
}

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

static gchar*
gala_window_manager_gala_generate_screenshot_filename (GalaWindowManagerGala* self)
{
	gchar* date_time = NULL;
	GDateTime* _tmp0_;
	GDateTime* _tmp1_;
	gchar* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* result;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = g_date_time_new_now_local ();
	_tmp1_ = _tmp0_;
	_tmp2_ = g_date_time_format (_tmp1_, "%Y-%m-%d %H.%M.%S");
	_tmp3_ = _tmp2_;
	_g_date_time_unref0 (_tmp1_);
	date_time = _tmp3_;
	_tmp4_ = g_strdup_printf (_ ("Screenshot from %s"), date_time);
	result = _tmp4_;
	_g_free0 (date_time);
	return result;
}

static void
gala_window_manager_gala_screenshot_current_window_data_free (gpointer _data)
{
	GalaWindowManagerGalaScreenshotCurrentWindowData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaScreenshotCurrentWindowData, _data_);
}

static void
gala_window_manager_gala_screenshot_current_window (GalaWindowManagerGala* self,
                                                    gboolean clipboard,
                                                    GAsyncReadyCallback _callback_,
                                                    gpointer _user_data_)
{
	GalaWindowManagerGalaScreenshotCurrentWindowData* _data_;
	GalaWindowManagerGala* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaScreenshotCurrentWindowData);
	_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_screenshot_current_window_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_data_->clipboard = clipboard;
	gala_window_manager_gala_screenshot_current_window_co (_data_);
}

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

static void
gala_window_manager_gala_screenshot_current_window_ready (GObject* source_object,
                                                          GAsyncResult* _res_,
                                                          gpointer _user_data_)
{
	GalaWindowManagerGalaScreenshotCurrentWindowData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_screenshot_current_window_co (_data_);
}

static gboolean
gala_window_manager_gala_screenshot_current_window_co (GalaWindowManagerGalaScreenshotCurrentWindowData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	{
		if (_data_->clipboard) {
			_data_->_tmp1_ = g_strdup ("");
			_g_free0 (_data_->_tmp0_);
			_data_->_tmp0_ = _data_->_tmp1_;
		} else {
			_data_->_tmp2_ = gala_window_manager_gala_generate_screenshot_filename (_data_->self);
			_g_free0 (_data_->_tmp0_);
			_data_->_tmp0_ = _data_->_tmp2_;
		}
		_data_->_tmp3_ = g_strdup (_data_->_tmp0_);
		_data_->filename = _data_->_tmp3_;
		_data_->success = FALSE;
		_data_->_tmp4_ = g_strdup ("");
		_data_->filename_used = _data_->_tmp4_;
		_data_->_tmp5_ = gala_screenshot_manager_init ((GalaWindowManager*) _data_->self);
		_data_->screenshot_manager = _data_->_tmp5_;
		_data_->_tmp6_ = FALSE;
		_data_->_tmp7_ = NULL;
		_data_->_state_ = 1;
		gala_screenshot_manager_screenshot_window (_data_->screenshot_manager, TRUE, FALSE, TRUE, _data_->filename, gala_window_manager_gala_screenshot_current_window_ready, _data_);
		return FALSE;
		_state_1:
		gala_screenshot_manager_screenshot_window_finish (_data_->screenshot_manager, _data_->_res_, &_data_->_tmp6_, &_data_->_tmp7_, &_data_->_inner_error0_);
		_data_->success = _data_->_tmp6_;
		_g_free0 (_data_->filename_used);
		_data_->filename_used = _data_->_tmp7_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_free0 (_data_->filename_used);
			_g_free0 (_data_->filename);
			_g_free0 (_data_->_tmp0_);
			goto __catch0_g_error;
		}
		_g_free0 (_data_->filename_used);
		_g_free0 (_data_->filename);
		_g_free0 (_data_->_tmp0_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		g_clear_error (&_data_->_inner_error0_);
	}
	__finally0:
	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 void
gala_window_manager_gala_screenshot_area_data_free (gpointer _data)
{
	GalaWindowManagerGalaScreenshotAreaData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaScreenshotAreaData, _data_);
}

static void
gala_window_manager_gala_screenshot_area (GalaWindowManagerGala* self,
                                          gboolean clipboard,
                                          GAsyncReadyCallback _callback_,
                                          gpointer _user_data_)
{
	GalaWindowManagerGalaScreenshotAreaData* _data_;
	GalaWindowManagerGala* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaScreenshotAreaData);
	_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_screenshot_area_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_data_->clipboard = clipboard;
	gala_window_manager_gala_screenshot_area_co (_data_);
}

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

static void
gala_window_manager_gala_screenshot_area_ready (GObject* source_object,
                                                GAsyncResult* _res_,
                                                gpointer _user_data_)
{
	GalaWindowManagerGalaScreenshotAreaData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_screenshot_area_co (_data_);
}

static gboolean
gala_window_manager_gala_screenshot_area_co (GalaWindowManagerGalaScreenshotAreaData* _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:
	{
		if (_data_->clipboard) {
			_data_->_tmp1_ = g_strdup ("");
			_g_free0 (_data_->_tmp0_);
			_data_->_tmp0_ = _data_->_tmp1_;
		} else {
			_data_->_tmp2_ = gala_window_manager_gala_generate_screenshot_filename (_data_->self);
			_g_free0 (_data_->_tmp0_);
			_data_->_tmp0_ = _data_->_tmp2_;
		}
		_data_->_tmp3_ = g_strdup (_data_->_tmp0_);
		_data_->filename = _data_->_tmp3_;
		_data_->success = FALSE;
		_data_->_tmp4_ = g_strdup ("");
		_data_->filename_used = _data_->_tmp4_;
		_data_->_tmp5_ = gala_screenshot_manager_init ((GalaWindowManager*) _data_->self);
		_data_->screenshot_manager = _data_->_tmp5_;
		_data_->_tmp6_ = _data_->screenshot_manager;
		_data_->_tmp7_ = 0;
		_data_->_tmp8_ = 0;
		_data_->_tmp9_ = 0;
		_data_->_tmp10_ = 0;
		_data_->_state_ = 1;
		gala_screenshot_manager_select_area (_data_->_tmp6_, gala_window_manager_gala_screenshot_area_ready, _data_);
		return FALSE;
		_state_1:
		gala_screenshot_manager_select_area_finish (_data_->_tmp6_, _data_->_res_, &_data_->_tmp7_, &_data_->_tmp8_, &_data_->_tmp9_, &_data_->_tmp10_, &_data_->_inner_error0_);
		_data_->x = _data_->_tmp7_;
		_data_->y = _data_->_tmp8_;
		_data_->w = _data_->_tmp9_;
		_data_->h = _data_->_tmp10_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_free0 (_data_->filename_used);
			_g_free0 (_data_->filename);
			_g_free0 (_data_->_tmp0_);
			goto __catch0_g_error;
		}
		_data_->_tmp11_ = _data_->screenshot_manager;
		_data_->_tmp12_ = _data_->filename;
		_data_->_tmp13_ = FALSE;
		_data_->_tmp14_ = NULL;
		_data_->_state_ = 2;
		gala_screenshot_manager_screenshot_area (_data_->_tmp11_, _data_->x, _data_->y, _data_->w, _data_->h, TRUE, _data_->_tmp12_, gala_window_manager_gala_screenshot_area_ready, _data_);
		return FALSE;
		_state_2:
		gala_screenshot_manager_screenshot_area_finish (_data_->_tmp11_, _data_->_res_, &_data_->_tmp13_, &_data_->_tmp14_, &_data_->_inner_error0_);
		_data_->success = _data_->_tmp13_;
		_g_free0 (_data_->filename_used);
		_data_->filename_used = _data_->_tmp14_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_free0 (_data_->filename_used);
			_g_free0 (_data_->filename);
			_g_free0 (_data_->_tmp0_);
			goto __catch0_g_error;
		}
		_g_free0 (_data_->filename_used);
		_g_free0 (_data_->filename);
		_g_free0 (_data_->_tmp0_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		g_clear_error (&_data_->_inner_error0_);
	}
	__finally0:
	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 void
gala_window_manager_gala_screenshot_screen_data_free (gpointer _data)
{
	GalaWindowManagerGalaScreenshotScreenData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (GalaWindowManagerGalaScreenshotScreenData, _data_);
}

static void
gala_window_manager_gala_screenshot_screen (GalaWindowManagerGala* self,
                                            gboolean clipboard,
                                            GAsyncReadyCallback _callback_,
                                            gpointer _user_data_)
{
	GalaWindowManagerGalaScreenshotScreenData* _data_;
	GalaWindowManagerGala* _tmp0_;
	g_return_if_fail (self != NULL);
	_data_ = g_slice_new0 (GalaWindowManagerGalaScreenshotScreenData);
	_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_screenshot_screen_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_data_->clipboard = clipboard;
	gala_window_manager_gala_screenshot_screen_co (_data_);
}

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

static void
gala_window_manager_gala_screenshot_screen_ready (GObject* source_object,
                                                  GAsyncResult* _res_,
                                                  gpointer _user_data_)
{
	GalaWindowManagerGalaScreenshotScreenData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	gala_window_manager_gala_screenshot_screen_co (_data_);
}

static gboolean
gala_window_manager_gala_screenshot_screen_co (GalaWindowManagerGalaScreenshotScreenData* _data_)
{
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	{
		if (_data_->clipboard) {
			_data_->_tmp1_ = g_strdup ("");
			_g_free0 (_data_->_tmp0_);
			_data_->_tmp0_ = _data_->_tmp1_;
		} else {
			_data_->_tmp2_ = gala_window_manager_gala_generate_screenshot_filename (_data_->self);
			_g_free0 (_data_->_tmp0_);
			_data_->_tmp0_ = _data_->_tmp2_;
		}
		_data_->_tmp3_ = g_strdup (_data_->_tmp0_);
		_data_->filename = _data_->_tmp3_;
		_data_->success = FALSE;
		_data_->_tmp4_ = g_strdup ("");
		_data_->filename_used = _data_->_tmp4_;
		_data_->_tmp5_ = gala_screenshot_manager_init ((GalaWindowManager*) _data_->self);
		_data_->screenshot_manager = _data_->_tmp5_;
		_data_->_tmp6_ = FALSE;
		_data_->_tmp7_ = NULL;
		_data_->_state_ = 1;
		gala_screenshot_manager_screenshot (_data_->screenshot_manager, FALSE, TRUE, _data_->filename, gala_window_manager_gala_screenshot_screen_ready, _data_);
		return FALSE;
		_state_1:
		gala_screenshot_manager_screenshot_finish (_data_->screenshot_manager, _data_->_res_, &_data_->_tmp6_, &_data_->_tmp7_, &_data_->_inner_error0_);
		_data_->success = _data_->_tmp6_;
		_g_free0 (_data_->filename_used);
		_data_->filename_used = _data_->_tmp7_;
		if (G_UNLIKELY (_data_->_inner_error0_ != NULL)) {
			_g_free0 (_data_->filename_used);
			_g_free0 (_data_->filename);
			_g_free0 (_data_->_tmp0_);
			goto __catch0_g_error;
		}
		_g_free0 (_data_->filename_used);
		_g_free0 (_data_->filename);
		_g_free0 (_data_->_tmp0_);
	}
	goto __finally0;
	__catch0_g_error:
	{
		g_clear_error (&_data_->_inner_error0_);
	}
	__finally0:
	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;
}

/**
         * Notification windows are a special case where the transition state needs
         * to be preserved when reparenting the actor. Because Clutter doesn't allow specifying
         * remove_child flags we will save the elapsed time of required transitions and
         * then advance back to it when we're done reparenting.
         */
static void
gala_window_manager_gala_reparent_notification_window (ClutterActor* actor,
                                                       ClutterActor* new_parent)
{
	ClutterTransition* entry_transition = NULL;
	ClutterTransition* _tmp0_;
	ClutterTransition* position_transition = NULL;
	gconstpointer _tmp1_;
	guint elapsed_entry = 0U;
	guint elapsed_position = 0U;
	gboolean _tmp2_ = FALSE;
	ClutterTransition* _tmp3_;
	gboolean save_entry = FALSE;
	gboolean _tmp6_ = FALSE;
	ClutterTransition* _tmp7_;
	gboolean save_position = FALSE;
	g_return_if_fail (actor != NULL);
	g_return_if_fail (new_parent != NULL);
	_tmp0_ = clutter_actor_get_transition (actor, GALA_NOTIFICATION_STACK_TRANSITION_ENTRY_NAME);
	entry_transition = _tmp0_;
	_tmp1_ = g_object_get_data ((GObject*) actor, GALA_NOTIFICATION_STACK_TRANSITION_MOVE_STACK_ID);
	position_transition = (ClutterTransition*) _tmp1_;
	elapsed_entry = 0U;
	elapsed_position = 0U;
	_tmp3_ = entry_transition;
	if (_tmp3_ != NULL) {
		ClutterTransition* _tmp4_;
		_tmp4_ = entry_transition;
		_tmp2_ = clutter_timeline_is_playing ((ClutterTimeline*) _tmp4_);
	} else {
		_tmp2_ = FALSE;
	}
	save_entry = _tmp2_;
	if (save_entry) {
		ClutterTransition* _tmp5_;
		_tmp5_ = entry_transition;
		elapsed_entry = clutter_timeline_get_elapsed_time ((ClutterTimeline*) _tmp5_);
	}
	_tmp7_ = position_transition;
	if (_tmp7_ != NULL) {
		ClutterTransition* _tmp8_;
		_tmp8_ = position_transition;
		_tmp6_ = clutter_timeline_is_playing ((ClutterTimeline*) _tmp8_);
	} else {
		_tmp6_ = FALSE;
	}
	save_position = _tmp6_;
	if (save_position) {
		ClutterTransition* _tmp9_;
		_tmp9_ = position_transition;
		elapsed_position = clutter_timeline_get_elapsed_time ((ClutterTimeline*) _tmp9_);
	}
	gala_window_manager_gala_clutter_actor_reparent (actor, new_parent);
	if (save_entry) {
		ClutterTransition* _tmp10_;
		ClutterTransition* _tmp11_;
		_tmp10_ = entry_transition;
		clutter_timeline_advance ((ClutterTimeline*) _tmp10_, elapsed_entry);
		_tmp11_ = entry_transition;
		clutter_timeline_start ((ClutterTimeline*) _tmp11_);
	}
	if (save_position) {
		ClutterTransition* _tmp12_;
		ClutterTransition* _tmp13_;
		_tmp12_ = position_transition;
		clutter_timeline_advance ((ClutterTimeline*) _tmp12_, elapsed_position);
		_tmp13_ = position_transition;
		clutter_timeline_start ((ClutterTimeline*) _tmp13_);
	}
}

static void
gala_window_manager_gala_clutter_actor_reparent (ClutterActor* actor,
                                                 ClutterActor* new_parent)
{
	ClutterActor* _tmp0_;
	g_return_if_fail (actor != NULL);
	g_return_if_fail (new_parent != NULL);
	if (actor == new_parent) {
		return;
	}
	g_object_ref ((GObject*) actor);
	_tmp0_ = clutter_actor_get_parent (actor);
	clutter_actor_remove_child (_tmp0_, actor);
	clutter_actor_add_child (new_parent, actor);
	g_object_unref ((GObject*) actor);
}

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

static GalaActivatableComponent*
gala_window_manager_gala_real_get_workspace_view (GalaWindowManager* base)
{
	GalaActivatableComponent* result;
	GalaWindowManagerGala* self;
	GalaActivatableComponent* _tmp0_;
	self = (GalaWindowManagerGala*) base;
	_tmp0_ = self->priv->_workspace_view;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_real_set_workspace_view (GalaWindowManager* base,
                                                  GalaActivatableComponent* value)
{
	GalaWindowManagerGala* self;
	GalaActivatableComponent* old_value;
	self = (GalaWindowManagerGala*) base;
	old_value = gala_window_manager_gala_real_get_workspace_view (base);
	if (old_value != value) {
		GalaActivatableComponent* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_workspace_view);
		self->priv->_workspace_view = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WORKSPACE_VIEW_PROPERTY]);
	}
}

static gboolean
gala_window_manager_gala_real_get_enable_animations (GalaWindowManager* base)
{
	gboolean result;
	GalaWindowManagerGala* self;
	self = (GalaWindowManagerGala*) base;
	result = self->priv->_enable_animations;
	return result;
}

static void
gala_window_manager_gala_real_set_enable_animations (GalaWindowManager* base,
                                                     gboolean value)
{
	GalaWindowManagerGala* self;
	gboolean old_value;
	self = (GalaWindowManagerGala*) base;
	old_value = gala_window_manager_gala_real_get_enable_animations (base);
	if (old_value != value) {
		self->priv->_enable_animations = value;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_ENABLE_ANIMATIONS_PROPERTY]);
	}
}

GalaScreenShield*
gala_window_manager_gala_get_screen_shield (GalaWindowManagerGala* self)
{
	GalaScreenShield* result;
	GalaScreenShield* _tmp0_;
	g_return_val_if_fail (self != NULL, NULL);
	_tmp0_ = self->priv->_screen_shield;
	result = _tmp0_;
	return result;
}

static void
gala_window_manager_gala_set_screen_shield (GalaWindowManagerGala* self,
                                            GalaScreenShield* value)
{
	GalaScreenShield* old_value;
	g_return_if_fail (self != NULL);
	old_value = gala_window_manager_gala_get_screen_shield (self);
	if (old_value != value) {
		GalaScreenShield* _tmp0_;
		_tmp0_ = _g_object_ref0 (value);
		_g_object_unref0 (self->priv->_screen_shield);
		self->priv->_screen_shield = _tmp0_;
		g_object_notify_by_pspec ((GObject *) self, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_SCREEN_SHIELD_PROPERTY]);
	}
}

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

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

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 void
_gala_window_manager_gala_on_gesture_detected_gala_gesture_tracker_on_gesture_detected (GalaGestureTracker* _sender,
                                                                                        GalaGesture* gesture,
                                                                                        gpointer self)
{
	gala_window_manager_gala_on_gesture_detected ((GalaWindowManagerGala*) self, gesture);
}

static GObject *
gala_window_manager_gala_constructor (GType type,
                                      guint n_construct_properties,
                                      GObjectConstructParam * construct_properties)
{
	GObject * obj;
	GObjectClass * parent_class;
	GalaWindowManagerGala * self;
	GalaGestureTracker* _tmp0_;
	GalaGestureTracker* _tmp1_;
	GalaGestureTracker* _tmp2_;
	MetaPluginInfo _tmp3_ = {0};
	GSettings* _tmp4_;
	GSettings* _tmp5_;
	GSettings* _tmp6_;
	GSettings* _tmp7_;
	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_ = gala_gesture_tracker_new ((gint) GALA_ANIMATION_DURATION_WORKSPACE_SWITCH_MIN, (gint) GALA_ANIMATION_DURATION_WORKSPACE_SWITCH);
	_g_object_unref0 (self->priv->gesture_tracker);
	self->priv->gesture_tracker = _tmp0_;
	_tmp1_ = self->priv->gesture_tracker;
	gala_gesture_tracker_enable_touchpad (_tmp1_);
	_tmp2_ = self->priv->gesture_tracker;
	g_signal_connect_object (_tmp2_, "on-gesture-detected", (GCallback) _gala_window_manager_gala_on_gesture_detected_gala_gesture_tracker_on_gesture_detected, self, 0);
	memset (&_tmp3_, 0, sizeof (MetaPluginInfo));
	_tmp3_.name = "Gala";
	_tmp3_.version = VERSION;
	_tmp3_.author = "Gala Developers";
	_tmp3_.license = "GPLv3";
	_tmp3_.description = "A nice elementary window manager";
	self->priv->info = _tmp3_;
	_tmp4_ = g_settings_new (SCHEMA ".animations");
	_g_object_unref0 (self->priv->animations_settings);
	self->priv->animations_settings = _tmp4_;
	_tmp5_ = self->priv->animations_settings;
	g_settings_bind (_tmp5_, "enable-animations", (GObject*) self, "enable-animations", G_SETTINGS_BIND_GET);
	_tmp6_ = g_settings_new (SCHEMA ".behavior");
	_g_object_unref0 (self->priv->behavior_settings);
	self->priv->behavior_settings = _tmp6_;
	_tmp7_ = self->priv->animations_settings;
	gala_window_manager_set_enable_animations ((GalaWindowManager*) self, g_settings_get_boolean (_tmp7_, "enable-animations"));
	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*, MetaRectangle*, 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, MetaRectangle*)) gala_window_manager_gala_real_show_window_menu_for_rect;
	((MetaPluginClass *) klass)->size_change = (void (*) (MetaPlugin*, MetaWindowActor*, MetaSizeChange, MetaRectangle*, MetaRectangle*)) 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)->plugin_info = (MetaPluginInfo* (*) (MetaPlugin*)) gala_window_manager_gala_real_plugin_info;
	G_OBJECT_CLASS (klass)->get_property = _vala_gala_window_manager_gala_get_property;
	G_OBJECT_CLASS (klass)->set_property = _vala_gala_window_manager_gala_set_property;
	G_OBJECT_CLASS (klass)->constructor = gala_window_manager_gala_constructor;
	G_OBJECT_CLASS (klass)->finalize = gala_window_manager_gala_finalize;
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_UI_GROUP_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_UI_GROUP_PROPERTY] = g_param_spec_object ("ui-group", "ui-group", "ui-group", clutter_actor_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_STAGE_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_STAGE_PROPERTY] = g_param_spec_object ("stage", "stage", "stage", clutter_stage_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_WINDOW_GROUP_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WINDOW_GROUP_PROPERTY] = g_param_spec_object ("window-group", "window-group", "window-group", clutter_actor_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_TOP_WINDOW_GROUP_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_TOP_WINDOW_GROUP_PROPERTY] = g_param_spec_object ("top-window-group", "top-window-group", "top-window-group", clutter_actor_get_type (), G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * {@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));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_WORKSPACE_VIEW_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_WORKSPACE_VIEW_PROPERTY] = g_param_spec_object ("workspace-view", "workspace-view", "workspace-view", GALA_TYPE_ACTIVATABLE_COMPONENT, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	/**
	         * {@inheritDoc}
	         */
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_ENABLE_ANIMATIONS_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_ENABLE_ANIMATIONS_PROPERTY] = g_param_spec_boolean ("enable-animations", "enable-animations", "enable-animations", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_SCREEN_SHIELD_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_SCREEN_SHIELD_PROPERTY] = g_param_spec_object ("screen-shield", "screen-shield", "screen-shield", GALA_TYPE_SCREEN_SHIELD, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY, gala_window_manager_gala_properties[GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY] = g_param_spec_object ("pointer-locator", "pointer-locator", "pointer-locator", GALA_TYPE_POINTER_LOCATOR, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE));
	g_object_class_install_property (G_OBJECT_CLASS (klass), GALA_WINDOW_MANAGER_GALA_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->switch_to_next_workspace = (void (*) (GalaWindowManager*, MetaMotionDirection)) gala_window_manager_gala_real_switch_to_next_workspace;
	iface->move_window = (void (*) (GalaWindowManager*, MetaWindow*, MetaMotionDirection)) gala_window_manager_gala_real_move_window;
	iface->push_modal = (GalaModalProxy* (*) (GalaWindowManager*, ClutterActor*)) 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->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;
	iface->get_workspace_view = gala_window_manager_gala_real_get_workspace_view;
	iface->set_workspace_view = gala_window_manager_gala_real_set_workspace_view;
	iface->get_enable_animations = gala_window_manager_gala_real_get_enable_animations;
	iface->set_enable_animations = gala_window_manager_gala_real_set_enable_animations;
}

static void
gala_window_manager_gala_instance_init (GalaWindowManagerGala * self,
                                        gpointer klass)
{
	GeeLinkedList* _tmp0_;
	GeeHashSet* _tmp1_;
	GeeHashSet* _tmp2_;
	GeeHashSet* _tmp3_;
	GeeHashSet* _tmp4_;
	GeeHashSet* _tmp5_;
	GeeHashSet* _tmp6_;
	GHashFunc _tmp7_;
	GEqualFunc _tmp8_;
	GHashTable* _tmp9_;
	self->priv = gala_window_manager_gala_get_instance_private (self);
	self->priv->winswitcher = NULL;
	self->priv->window_overview = NULL;
	self->priv->hot_corner_manager = NULL;
	self->priv->zoom = NULL;
	self->priv->daemon_proxy = NULL;
	_tmp0_ = gee_linked_list_new (GALA_TYPE_MODAL_PROXY, (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL);
	self->priv->modal_stack = _tmp0_;
	_tmp1_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->minimizing = _tmp1_;
	_tmp2_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->maximizing = _tmp2_;
	_tmp3_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->unmaximizing = _tmp3_;
	_tmp4_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->mapping = _tmp4_;
	_tmp5_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->destroying = _tmp5_;
	_tmp6_ = gee_hash_set_new (meta_window_actor_get_type (), (GBoxedCopyFunc) g_object_ref, (GDestroyNotify) g_object_unref, NULL, NULL, NULL, NULL, NULL, NULL);
	self->priv->unminimizing = _tmp6_;
	_tmp7_ = g_direct_hash;
	_tmp8_ = g_direct_equal;
	_tmp9_ = g_hash_table_new_full (_tmp7_, _tmp8_, _g_object_unref0_, NULL);
	self->priv->ws_assoc = _tmp9_;
	self->priv->which_change = NULL;
	self->priv->animating_switch_workspace = FALSE;
	self->priv->switch_workspace_with_gesture = FALSE;
}

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->_workspace_view);
	_g_object_unref0 (self->priv->_screen_shield);
	_g_object_unref0 (self->priv->_pointer_locator);
	_g_object_unref0 (self->priv->system_background);
	_g_object_unref0 (self->priv->winswitcher);
	_g_object_unref0 (self->priv->window_overview);
	_g_object_unref0 (self->priv->_screensaver);
	_g_object_unref0 (self->priv->hot_corner_manager);
	_g_object_unref0 (self->priv->_window_tracker);
	_g_object_unref0 (self->priv->zoom);
	_g_object_unref0 (self->priv->accent_color_manager);
	_g_object_unref0 (self->priv->tile_preview);
	_g_object_unref0 (self->priv->moving);
	_g_object_unref0 (self->priv->daemon_proxy);
	_g_object_unref0 (self->priv->notification_stack);
	_g_object_unref0 (self->priv->modal_stack);
	_g_object_unref0 (self->priv->minimizing);
	_g_object_unref0 (self->priv->maximizing);
	_g_object_unref0 (self->priv->unmaximizing);
	_g_object_unref0 (self->priv->mapping);
	_g_object_unref0 (self->priv->destroying);
	_g_object_unref0 (self->priv->unminimizing);
	_g_hash_table_unref0 (self->priv->ws_assoc);
	_g_free0 (self->priv->which_change);
	_g_object_unref0 (self->priv->animations_settings);
	_g_object_unref0 (self->priv->behavior_settings);
	_g_object_unref0 (self->priv->gesture_tracker);
	(self->priv->windows == NULL) ? NULL : (self->priv->windows = (_g_list_free__g_object_unref0_ (self->priv->windows), NULL));
	(self->priv->parents == NULL) ? NULL : (self->priv->parents = (_g_list_free__g_object_unref0_ (self->priv->parents), NULL));
	(self->priv->tmp_actors == NULL) ? NULL : (self->priv->tmp_actors = (_g_list_free__g_object_unref0_ (self->priv->tmp_actors), NULL));
	G_OBJECT_CLASS (gala_window_manager_gala_parent_class)->finalize (obj);
}

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

GType
gala_window_manager_gala_get_type (void)
{
	static volatile 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_WORKSPACE_VIEW_PROPERTY:
		g_value_set_object (value, gala_window_manager_get_workspace_view ((GalaWindowManager*) self));
		break;
		case GALA_WINDOW_MANAGER_GALA_ENABLE_ANIMATIONS_PROPERTY:
		g_value_set_boolean (value, gala_window_manager_get_enable_animations ((GalaWindowManager*) self));
		break;
		case GALA_WINDOW_MANAGER_GALA_SCREEN_SHIELD_PROPERTY:
		g_value_set_object (value, gala_window_manager_gala_get_screen_shield (self));
		break;
		case GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY:
		g_value_set_object (value, gala_window_manager_gala_get_pointer_locator (self));
		break;
		case GALA_WINDOW_MANAGER_GALA_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_WORKSPACE_VIEW_PROPERTY:
		gala_window_manager_set_workspace_view ((GalaWindowManager*) self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_ENABLE_ANIMATIONS_PROPERTY:
		gala_window_manager_set_enable_animations ((GalaWindowManager*) self, g_value_get_boolean (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_SCREEN_SHIELD_PROPERTY:
		gala_window_manager_gala_set_screen_shield (self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_POINTER_LOCATOR_PROPERTY:
		gala_window_manager_gala_set_pointer_locator (self, g_value_get_object (value));
		break;
		case GALA_WINDOW_MANAGER_GALA_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 inline gpointer
_vala_memdup2 (gconstpointer mem,
               gsize byte_size)
{
	gpointer new_mem;
	if (mem && byte_size != 0) {
		new_mem = g_malloc (byte_size);
		memcpy (new_mem, mem, byte_size);
	} else {
		new_mem = NULL;
	}
	return new_mem;
}

