mutter/clutter
Emmanuele Bassi 26f4467392 Try to mop up the default stage mess
The default stage was a neat concept when we started Clutter out,
somewhere in the Jurassic era; a singleton instance that gets created at
initialization time, and remains the same for the entire duration of the
process.

Worked well enough when Clutter was a small library meant to be used to
write fullscreen media browsers, but since the introduction of multiple
stages, and Clutter being used to create all sorts of applications, the
default stage is just a vestigial remainder of that past, like an
appendix; something that complicates the layout of the code and
introduces weird behaviour, so that you notice its existence only when
something goes wrong.

Some platforms we do support, though, only have one framebuffer, so it
makes sense for them to have only one stage.

At this point, the only sane thing to do is to go through the same code
paths on all platforms, and that code path is the stage instance
creation and initialization — i.e. clutter_stage_new() (or
g_object_new() with CLUTTER_TYPE_STAGE).

For platforms that support multiple stages, nothing has changed: the stage
created by clutter_stage_get_default() will be set as the default one;
if nobody calls it, the default stage is never created, and it just
lives on as a meaningless check.

For platforms that only support one stage, clutter_stage_new() and
clutter_stage_get_default() will behave exactly the same the first time
they are called: both will create a stage, and set it as the default.
Calling clutter_stage_new() a second time is treated as a programmer
error, and will result in Clutter aborting. This is a behavioural change
because the existing behaviour or creating a new ClutterStage instance
with the same ClutterStageWindow private implementation is, simply put,
utterly braindamaged and I should have *never* had written it, and I
apologize for it. In my defence, I didn't know any better at the time.

This is the first step towards the complete deprecation of
clutter_stage_get_default() and clutter_stage_is_default(), which will
come later.
2011-11-10 15:37:51 +00:00
..
cally cally: Use the proper role for password entries 2011-11-10 12:57:34 +00:00
cex100
cogl
deprecated
egl
evdev
gdk
osx osx: Clean up the backend implementation 2011-11-10 14:55:04 +00:00
tslib
wayland
win32
x11
clutter-action.c
clutter-action.h ClutterActor: Add clutter_actor_has_actions 2011-09-29 19:34:32 +02:00
clutter-actor-box.c Merge branch 'private-cleanup' 2010-10-25 23:44:53 +01:00
clutter-actor-meta-private.h
clutter-actor-meta.c clutter-actor-meta: Fix _clutter_meta_group_has_metas_no_internal 2011-10-01 12:40:11 +02:00
clutter-actor-meta.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-actor-private.h
clutter-actor.c actor: Deprecate [sg]et_geometry() 2011-11-08 14:46:55 +00:00
clutter-actor.h
clutter-align-constraint.c
clutter-align-constraint.h
clutter-alpha.c
clutter-alpha.h Fix duplicate typedef of ClutterAlpha 2011-10-11 23:02:17 +01:00
clutter-animatable.c
clutter-animatable.h
clutter-animation.c animation: Use the timeline's new-frame signal 2011-10-07 16:56:21 +01:00
clutter-animation.h
clutter-animator.c
clutter-animator.h
clutter-backend-private.h
clutter-backend.c Try to mop up the default stage mess 2011-11-10 15:37:51 +00:00
clutter-backend.h
clutter-bezier.c
clutter-bezier.h
clutter-bin-layout.c
clutter-bin-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-bind-constraint.c
clutter-bind-constraint.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-binding-pool.c
clutter-binding-pool.h
clutter-blur-effect.c
clutter-blur-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-box-layout.c box-layout: Plug memory leaks 2011-10-07 11:53:02 +01:00
clutter-box-layout.h
clutter-box.c
clutter-box.h
clutter-cairo-texture.c
clutter-cairo-texture.h
clutter-child-meta.c
clutter-child-meta.h
clutter-click-action.c click-action: Add support for long press detection 2011-06-09 15:12:41 +01:00
clutter-click-action.h
clutter-clone.c
clutter-clone.h Avoid the shadowing of 'clone' 2011-10-19 15:23:55 +01:00
clutter-color-static.h static-colors: Simplify the defines 2011-09-05 17:22:14 +01:00
clutter-color.c
clutter-color.h
clutter-colorize-effect.c
clutter-colorize-effect.h clutter-color-size-effect: Fix a minor typo in the docs 2011-02-16 14:11:59 +00:00
clutter-config.h.in
clutter-constraint.c
clutter-constraint.h
clutter-container.c
clutter-container.h
clutter-debug.h debug: Clean up debugging notes 2011-10-17 10:24:25 +01:00
clutter-deform-effect.c
clutter-deform-effect.h
clutter-deprecated.h
clutter-desaturate-effect.c
clutter-desaturate-effect.h
clutter-device-manager-private.h
clutter-device-manager.c
clutter-device-manager.h
clutter-drag-action.c
clutter-drag-action.h
clutter-drop-action.c
clutter-drop-action.h docs: Document ClutterDropAction 2011-06-20 15:25:54 +01:00
clutter-effect-private.h
clutter-effect.c
clutter-effect.h
clutter-enum-types.c.in
clutter-enum-types.h.in
clutter-enums.h
clutter-event-private.h
clutter-event-translator.c
clutter-event-translator.h
clutter-event.c
clutter-event.h
clutter-feature.c
clutter-feature.h
clutter-fixed-layout.c
clutter-fixed-layout.h
clutter-flatten-effect.c
clutter-flatten-effect.h
clutter-flow-layout.c
clutter-flow-layout.h
clutter-gesture-action.c
clutter-gesture-action.h docs: Fix Clutter API reference 2011-06-13 15:36:07 +01:00
clutter-group.c
clutter-group.h group: Move deprecated macro into its own header 2011-11-03 15:02:35 +00:00
clutter-id-pool.c
clutter-id-pool.h
clutter-input-device.c
clutter-input-device.h
clutter-interval.c
clutter-interval.h
clutter-keysyms-table.c
clutter-keysyms-update.pl
clutter-keysyms.h
clutter-layout-manager.c
clutter-layout-manager.h
clutter-layout-meta.c
clutter-layout-meta.h
clutter-list-model.c
clutter-list-model.h
clutter-main.c
clutter-main.h
clutter-marshal.list
clutter-master-clock.c Remove mentions of clutter_redraw() 2011-10-17 10:25:07 +01:00
clutter-master-clock.h
clutter-media.c
clutter-media.h Miscellaneous documentation fixes 2010-05-19 16:10:05 +01:00
clutter-model-private.h
clutter-model.c
clutter-model.h
clutter-offscreen-effect-private.h
clutter-offscreen-effect.c
clutter-offscreen-effect.h
clutter-page-turn-effect.c
clutter-page-turn-effect.h
clutter-paint-volume-private.h
clutter-paint-volume.c
clutter-path-constraint.c
clutter-path-constraint.h
clutter-path.c
clutter-path.h
clutter-private.h
clutter-profile.c
clutter-profile.h
clutter-rectangle.c
clutter-rectangle.h
clutter-script-parser.c
clutter-script-private.h
clutter-script.c
clutter-script.h Move more typedefs into clutter-types.h 2011-10-11 17:59:50 +01:00
clutter-scriptable.c
clutter-scriptable.h
clutter-settings-private.h
clutter-settings.c
clutter-settings.h
clutter-shader-effect.c
clutter-shader-effect.h
clutter-shader-types.c
clutter-shader-types.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-snap-constraint.c
clutter-snap-constraint.h
clutter-stage-manager-private.h
clutter-stage-manager.c
clutter-stage-manager.h
clutter-stage-private.h
clutter-stage-window.c
clutter-stage-window.h
clutter-stage.c
clutter-stage.h
clutter-state.c
clutter-state.h
clutter-swipe-action.c
clutter-swipe-action.h
clutter-table-layout.c
clutter-table-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-text.c
clutter-text.h
clutter-texture.c
clutter-texture.h
clutter-timeline.c
clutter-timeline.h
clutter-types.h
clutter-units.c
clutter-units.h
clutter-util.c
clutter-util.h
clutter-version.h.in
clutter.h Remove CLUTTER_DISABLE_DEPRECATED guard 2011-11-03 15:32:04 +00:00
clutter.pc.in
Makefile.am Add a CEx100-specific backend 2011-11-10 14:55:03 +00:00