2009-06-25 18:56:15 -04:00
|
|
|
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
|
|
|
|
|
|
#ifndef META_COMPOSITOR_PRIVATE_H
|
|
|
|
#define META_COMPOSITOR_PRIVATE_H
|
|
|
|
|
2009-06-26 15:33:20 -04:00
|
|
|
#include <X11/extensions/Xfixes.h>
|
|
|
|
|
2018-07-10 04:36:24 -04:00
|
|
|
#include "clutter/clutter.h"
|
|
|
|
#include "compositor/meta-plugin-manager.h"
|
|
|
|
#include "compositor/meta-window-actor-private.h"
|
|
|
|
#include "meta/compositor.h"
|
|
|
|
#include "meta/display.h"
|
2009-06-25 18:56:15 -04:00
|
|
|
|
|
|
|
struct _MetaCompositor
|
|
|
|
{
|
|
|
|
MetaDisplay *display;
|
|
|
|
|
2014-04-18 14:21:20 -04:00
|
|
|
guint pre_paint_func_id;
|
|
|
|
guint post_paint_func_id;
|
2019-04-29 16:02:18 -04:00
|
|
|
|
|
|
|
guint stage_presented_id;
|
|
|
|
guint stage_after_paint_id;
|
2009-06-25 18:56:15 -04:00
|
|
|
|
2012-11-12 14:09:38 -05:00
|
|
|
gint64 server_time_query_time;
|
|
|
|
gint64 server_time_offset;
|
|
|
|
|
|
|
|
guint server_time_is_monotonic_time : 1;
|
2009-06-26 15:33:20 -04:00
|
|
|
|
2014-10-06 10:46:26 -04:00
|
|
|
ClutterActor *stage, *window_group, *top_window_group, *feedback_group;
|
2009-06-26 15:33:20 -04:00
|
|
|
GList *windows;
|
|
|
|
Window output;
|
|
|
|
|
2016-05-20 13:22:23 -04:00
|
|
|
CoglContext *context;
|
2012-11-12 14:11:08 -05:00
|
|
|
|
2017-10-13 04:29:20 -04:00
|
|
|
MetaWindowActor *top_window_actor;
|
2019-06-28 13:33:40 -04:00
|
|
|
gulong top_window_actor_destroy_id;
|
2017-10-13 04:29:20 -04:00
|
|
|
|
2011-08-27 05:43:09 -04:00
|
|
|
/* Used for unredirecting fullscreen windows */
|
2013-12-06 17:10:44 -05:00
|
|
|
guint disable_unredirect_count;
|
|
|
|
MetaWindow *unredirected_window;
|
2014-01-22 09:16:56 -05:00
|
|
|
|
2009-06-26 15:33:20 -04:00
|
|
|
gint switch_workspace_in_progress;
|
|
|
|
|
2010-10-18 13:27:14 -04:00
|
|
|
MetaPluginManager *plugin_mgr;
|
2014-05-12 09:11:53 -04:00
|
|
|
|
|
|
|
gboolean frame_has_updated_xsurfaces;
|
2014-04-18 14:21:20 -04:00
|
|
|
gboolean have_x11_sync_object;
|
2009-06-26 15:33:20 -04:00
|
|
|
};
|
|
|
|
|
2012-11-12 14:11:08 -05:00
|
|
|
/* Wait 2ms after vblank before starting to draw next frame */
|
|
|
|
#define META_SYNC_DELAY 2
|
|
|
|
|
2014-03-18 17:31:22 -04:00
|
|
|
void meta_switch_workspace_completed (MetaCompositor *compositor);
|
2010-10-18 13:27:14 -04:00
|
|
|
|
2014-03-18 17:31:22 -04:00
|
|
|
gboolean meta_begin_modal_for_plugin (MetaCompositor *compositor,
|
2010-10-18 13:27:14 -04:00
|
|
|
MetaPlugin *plugin,
|
|
|
|
MetaModalOptions options,
|
|
|
|
guint32 timestamp);
|
2014-03-18 17:31:22 -04:00
|
|
|
void meta_end_modal_for_plugin (MetaCompositor *compositor,
|
2010-10-18 13:27:14 -04:00
|
|
|
MetaPlugin *plugin,
|
|
|
|
guint32 timestamp);
|
|
|
|
|
2012-11-12 14:09:38 -05:00
|
|
|
gint64 meta_compositor_monotonic_time_to_server_time (MetaDisplay *display,
|
|
|
|
gint64 monotonic_time);
|
|
|
|
|
2016-03-07 23:10:21 -05:00
|
|
|
void meta_compositor_flash_window (MetaCompositor *compositor,
|
|
|
|
MetaWindow *window);
|
|
|
|
|
2017-01-26 13:48:52 -05:00
|
|
|
MetaCloseDialog * meta_compositor_create_close_dialog (MetaCompositor *compositor,
|
|
|
|
MetaWindow *window);
|
|
|
|
|
2017-06-14 05:20:54 -04:00
|
|
|
MetaInhibitShortcutsDialog * meta_compositor_create_inhibit_shortcuts_dialog (MetaCompositor *compositor,
|
|
|
|
MetaWindow *window);
|
|
|
|
|
2019-02-20 05:07:22 -05:00
|
|
|
void meta_compositor_locate_pointer (MetaCompositor *compositor);
|
|
|
|
|
2009-06-25 18:56:15 -04:00
|
|
|
#endif /* META_COMPOSITOR_PRIVATE_H */
|