e4ff24bcff
The mapping and unmapping of the X11 stage implementation is a bit bong. It's asynchronous, for starters, when it really can avoid it by tracking the state internally. The ordering of the map/unmap sequence is also broken with respect to the resizing. By tracking the state internally into StageX11 we can safely remove the MapNotify and UnmapNotify X event handling. In theory, we should use _NET_WM_STATE a lot more, and reuse the X11 state flags for fullscreening as well.
41 lines
1.8 KiB
C
41 lines
1.8 KiB
C
#ifndef __CLUTTER_STAGE_WINDOW_H__
|
|
#define __CLUTTER_STAGE_WINDOW_H__
|
|
|
|
#include <clutter/clutter-actor.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define CLUTTER_TYPE_STAGE_WINDOW (clutter_stage_window_get_type ())
|
|
#define CLUTTER_STAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_STAGE_WINDOW, ClutterStageWindow))
|
|
#define CLUTTER_IS_STAGE_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_STAGE_WINDOW))
|
|
#define CLUTTER_STAGE_WINDOW_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CLUTTER_TYPE_STAGE_WINDOW, ClutterStageWindowIface))
|
|
|
|
typedef struct _ClutterStageWindow ClutterStageWindow; /* dummy */
|
|
typedef struct _ClutterStageWindowIface ClutterStageWindowIface;
|
|
|
|
struct _ClutterStageWindowIface
|
|
{
|
|
GTypeInterface parent_iface;
|
|
|
|
ClutterActor *(* get_wrapper) (ClutterStageWindow *stage_window);
|
|
|
|
void (* set_title) (ClutterStageWindow *stage_window,
|
|
const gchar *title);
|
|
void (* set_fullscreen) (ClutterStageWindow *stage_window,
|
|
gboolean is_fullscreen);
|
|
void (* set_cursor_visible) (ClutterStageWindow *stage_window,
|
|
gboolean cursor_visible);
|
|
void (* set_user_resizable) (ClutterStageWindow *stage_window,
|
|
gboolean is_resizable);
|
|
|
|
void (* show) (ClutterStageWindow *stage_window,
|
|
gboolean do_raise);
|
|
void (* hide) (ClutterStageWindow *stage_window);
|
|
};
|
|
|
|
GType clutter_stage_window_get_type (void) G_GNUC_CONST;
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __CLUTTER_STAGE_WINDOW_H__ */
|