mirror of
https://github.com/brl/mutter.git
synced 2024-11-11 08:46:26 -05:00
9244f0f113
Add a paint function that checks all windows for repair and shape updates; this: - simplifies the logic for when a window needs to be repaired - avoids duplicate work when we get multiple damage effects - avoids the need to look ahead in the event queue Instead of relying on repair to implicitly resize the MutterWindow actor, set the size explicitly when the core code updates the geometry. (This is needed because we haven't repaired yet when we start an animation, and the animation may depend on the size to, e.g., rescale from the center.) Because the core geometry update happens before we start maximize/unmaximize effects we need to work around this by passing both the old and new geometry to the compositor. http://bugzilla.gnome.org/show_bug.cgi?id=587251
56 lines
1.4 KiB
C
56 lines
1.4 KiB
C
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
|
|
|
#ifndef META_COMPOSITOR_PRIVATE_H
|
|
#define META_COMPOSITOR_PRIVATE_H
|
|
|
|
#include <X11/extensions/Xfixes.h>
|
|
|
|
#include "compositor.h"
|
|
#include "display.h"
|
|
#include "mutter-plugin-manager.h"
|
|
#include <clutter/clutter.h>
|
|
|
|
typedef struct _MetaCompScreen MetaCompScreen;
|
|
|
|
struct _MetaCompositor
|
|
{
|
|
MetaDisplay *display;
|
|
|
|
Atom atom_x_root_pixmap;
|
|
Atom atom_x_set_root;
|
|
Atom atom_net_wm_window_opacity;
|
|
guint repaint_func_id;
|
|
|
|
ClutterActor *shadow_src;
|
|
|
|
gboolean show_redraw : 1;
|
|
gboolean debug : 1;
|
|
gboolean no_mipmaps : 1;
|
|
};
|
|
|
|
struct _MetaCompScreen
|
|
{
|
|
MetaScreen *screen;
|
|
|
|
ClutterActor *stage, *window_group, *overlay_group;
|
|
ClutterActor *hidden_group;
|
|
GList *windows;
|
|
GHashTable *windows_by_xid;
|
|
MetaWindow *focus_window;
|
|
Window output;
|
|
|
|
/* Before we create the output window */
|
|
XserverRegion pending_input_region;
|
|
|
|
gint switch_workspace_in_progress;
|
|
|
|
MutterPluginManager *plugin_mgr;
|
|
};
|
|
|
|
void mutter_switch_workspace_completed (MetaScreen *screen);
|
|
void mutter_set_stage_input_region (MetaScreen *screen,
|
|
XserverRegion region);
|
|
void mutter_empty_stage_input_region (MetaScreen *screen);
|
|
|
|
#endif /* META_COMPOSITOR_PRIVATE_H */
|