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 backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
cogl stage-window: Add :backend and :wrapper properties 2011-11-10 14:55:03 +00:00
deprecated actor: Deprecate [sg]et_geometry() 2011-11-08 14:46:55 +00:00
egl backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
evdev backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
gdk backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
osx osx: Clean up the backend implementation 2011-11-10 14:55:04 +00:00
tslib egl: First attempt at cleaning up the EGL native backend 2011-11-03 13:45:20 +00:00
wayland wayland/backend: Remove create_stage() 2011-11-10 14:55:04 +00:00
win32 backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
x11 backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
clutter-action.c
clutter-action.h ClutterActor: Add clutter_actor_has_actions 2011-09-29 19:34:32 +02:00
clutter-actor-box.c
clutter-actor-meta-private.h ClutterActor: Add clutter_actor_has_effects 2011-09-29 19:34:24 +02:00
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 actor: documents _get/apply_relative_transform_matrix 2011-06-17 18:38:29 +01:00
clutter-actor.c actor: Deprecate [sg]et_geometry() 2011-11-08 14:46:55 +00:00
clutter-actor.h actor: Deprecate [sg]et_geometry() 2011-11-08 14:46:55 +00:00
clutter-align-constraint.c align-constraint: Add CLUTTER_ALIGN_BOTH 2011-10-15 18:36:27 +01:00
clutter-align-constraint.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-alpha.c docs: Fixes for cross-references 2011-09-12 13:12:14 +01:00
clutter-alpha.h Fix duplicate typedef of ClutterAlpha 2011-10-11 23:02:17 +01:00
clutter-animatable.c docs: Fixes for cross-references 2011-09-12 13:12:14 +01:00
clutter-animatable.h animatable: Remove CLUTTER_DISABLE_DEPRECATED 2011-11-02 13:00:46 +00:00
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 script: Hide private symbols 2011-09-07 16:14:10 +01:00
clutter-animator.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-backend-private.h backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
clutter-backend.c Try to mop up the default stage mess 2011-11-10 15:37:51 +00:00
clutter-backend.h Clean up the windowing system defines 2011-11-03 13:45:20 +00:00
clutter-bezier.c debug: Clean up debugging notes 2011-10-17 10:24:25 +01:00
clutter-bezier.h
clutter-bin-layout.c layout-managers: Take into account the allocations's origin 2011-08-29 22:43:42 +01:00
clutter-bin-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-bind-constraint.c docs: Inline test-constraints.c inside BindConstraint's description 2011-09-02 15:48:27 +01:00
clutter-bind-constraint.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-binding-pool.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-binding-pool.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-blur-effect.c blur: don't accumulate texture padding twice 2011-10-19 15:27:03 +01:00
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 Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-box.c docs: Fix clutter_box_packv() link 2011-09-12 12:36:31 +01:00
clutter-box.h
clutter-cairo-texture.c cairo-texture: Use an internal function for create_region() 2011-11-02 13:00:46 +00:00
clutter-cairo-texture.h cairo-texture: Remove CLUTTER_DISABLE_DEPRECATED 2011-11-02 13:00:46 +00:00
clutter-child-meta.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-child-meta.h docs: Fixes for cross-references 2011-09-12 13:12:14 +01:00
clutter-click-action.c click-action: Add support for long press detection 2011-06-09 15:12:41 +01:00
clutter-click-action.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-clone.c Avoid the shadowing of 'clone' 2011-10-19 15:23:55 +01:00
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 color: Validate hex formats 2011-11-10 14:13:45 +00:00
clutter-color.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-colorize-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
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 build: Generate an instealled config header 2011-01-19 14:33:27 +00:00
clutter-constraint.c constraint: Queue a relayout on :enabled changes 2011-03-01 19:04:31 +00:00
clutter-constraint.h ClutterActor: Add clutter_actor_has_contraints 2011-09-29 19:34:31 +02:00
clutter-container.c introspection: add missing introspection data from Vala bindings 2011-07-29 13:06:51 +01:00
clutter-container.h Merge remote-tracking branch 'nobled/wayland-fixes2' 2011-02-11 16:45:45 +00:00
clutter-debug.h debug: Clean up debugging notes 2011-10-17 10:24:25 +01:00
clutter-deform-effect.c debug: Move paint-deform-tiles to CLUTTER_PAINT 2011-10-13 11:38:27 +01:00
clutter-deform-effect.h
clutter-deprecated.h stage: Move the deprecated macros to a separate header 2011-11-03 15:13:54 +00:00
clutter-desaturate-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-desaturate-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-device-manager-private.h Clean up grab implementation 2011-10-11 17:15:34 +01:00
clutter-device-manager.c backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
clutter-device-manager.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-drag-action.c docs: Include test-drag as the DragAction example 2011-09-02 14:53:56 +01:00
clutter-drag-action.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-drop-action.c docs: Inline test-drop.c into DropAction's description 2011-09-02 15:22:08 +01:00
clutter-drop-action.h docs: Document ClutterDropAction 2011-06-20 15:25:54 +01:00
clutter-effect-private.h effect: Rename RunFlags to PaintFlags 2011-06-13 16:00:45 +01:00
clutter-effect.c docs: Fixes for cross-references 2011-09-12 13:12:14 +01:00
clutter-effect.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-enum-types.c.in
clutter-enum-types.h.in
clutter-enums.h align-constraint: Add CLUTTER_ALIGN_BOTH 2011-10-15 18:36:27 +01:00
clutter-event-private.h event: Add setters for ClutterEvent members 2011-02-28 14:16:23 +00:00
clutter-event-translator.c event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-event-translator.h event/x11: Rework the way we translate X11 events 2011-01-21 10:25:43 +00:00
clutter-event.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-event.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-feature.c
clutter-feature.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-fixed-layout.c
clutter-fixed-layout.h
clutter-flatten-effect.c clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-flatten-effect.h clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-flow-layout.c clutter-flow-layout: fix non-0,0 offset allocation 2011-09-05 12:21:18 -04:00
clutter-flow-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-gesture-action.c docs: Fixes for cross-references 2011-09-12 13:12:14 +01:00
clutter-gesture-action.h docs: Fix Clutter API reference 2011-06-13 15:36:07 +01:00
clutter-group.c docs: Fix a wrongly named argument 2011-11-03 15:16:02 +00:00
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: fix warning on bad pick 2011-05-26 08:48:13 -04:00
clutter-id-pool.h Privatize all ClutterIdPool functions 2011-02-18 15:53:27 +00:00
clutter-input-device.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-input-device.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-interval.c docs: Fixes for building the API reference 2011-07-26 13:44:12 +01:00
clutter-interval.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-keysyms-table.c Add clutter_unicode_to_keyval function 2011-10-07 12:11:20 +01:00
clutter-keysyms-update.pl Move clutter-keysyms-compat.h to the deprecated section 2011-11-03 14:42:39 +00:00
clutter-keysyms.h Move clutter-keysyms-compat.h to the deprecated section 2011-11-03 14:42:39 +00:00
clutter-layout-manager.c docs: Fixes for the API reference build 2011-11-03 16:05:36 +00:00
clutter-layout-manager.h Reduce the amount of g-ir-scanner warnings 2010-12-09 12:36:50 +00:00
clutter-layout-meta.c
clutter-layout-meta.h
clutter-list-model.c docs: Fixes for building the API reference 2011-07-26 13:44:12 +01:00
clutter-list-model.h
clutter-main.c main: Add a sync-to-vblank global flag 2011-11-10 14:55:02 +00:00
clutter-main.h main: Deprecate clutter_set_default_frame_rate() 2011-11-07 20:31:15 +00:00
clutter-marshal.list Add ClutterDropAction 2011-06-20 15:25:53 +01:00
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: mention the asynchronous behavior of set_playing() in the doc. 2011-07-04 15:58:08 +01:00
clutter-media.h
clutter-model-private.h
clutter-model.c Remove some compiler warnings 2011-10-11 23:42:23 +01:00
clutter-model.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-offscreen-effect-private.h offscreen-effect: Add public accessor for target size 2011-02-28 14:34:36 +00:00
clutter-offscreen-effect.c clutter-offscreen-effect: Apply matrix expansion to proj not mv 2011-09-22 12:28:59 +01:00
clutter-offscreen-effect.h offscreen-effect: Add public accessor for target size 2011-02-28 14:34:36 +00:00
clutter-page-turn-effect.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-page-turn-effect.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-paint-volume-private.h Optimize culling by doing culling in eye-coordinates 2011-03-07 13:26:20 +00:00
clutter-paint-volume.c paint-volume: Don't try to complete a completed volume 2011-09-30 17:05:15 +01:00
clutter-path-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-path-constraint.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-path.c Tag all deprecated symbols using CLUTTER_DEPRECATED 2011-10-14 11:34:38 +01:00
clutter-path.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-private.h main: Add a sync-to-vblank global flag 2011-11-10 14:55:02 +00:00
clutter-profile.c profile: Disable deprecation warnings 2011-10-31 10:39:46 +00:00
clutter-profile.h
clutter-rectangle.c clutter-actor: Add a 'has_overlaps' virtual 2011-05-13 01:46:32 +01:00
clutter-rectangle.h
clutter-script-parser.c Remove some compiler warnings 2011-10-11 23:42:23 +01:00
clutter-script-private.h script: Hide private symbols 2011-09-07 16:14:10 +01:00
clutter-script.c script: Hide private symbols 2011-09-07 16:14:10 +01:00
clutter-script.h Move more typedefs into clutter-types.h 2011-10-11 17:59:50 +01:00
clutter-scriptable.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-scriptable.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-settings-private.h Add more sections to the Clutter configuration file 2011-10-11 17:52:17 +01:00
clutter-settings.c Do not leak strings from GKeyFile 2011-10-11 22:45:14 +01:00
clutter-settings.h Appease the gods in introspection 2011-01-20 16:35:26 +00:00
clutter-shader-effect.c clutter-shader-effect: Add a get_static_shader_source virtual 2011-09-30 11:51:37 +01:00
clutter-shader-effect.h clutter-shader-effect: Add a get_static_shader_source virtual 2011-09-30 11:51:37 +01:00
clutter-shader-types.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-shader-types.h Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-snap-constraint.c snap-constraint: Fix allocation for CLUTTER_SNAP_EDGE_RIGHT 2011-07-18 13:43:29 +01:00
clutter-snap-constraint.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-stage-manager-private.h
clutter-stage-manager.c
clutter-stage-manager.h stage-manager: Remove CLUTTER_DISABLE_DEPRECATED 2011-11-02 13:00:46 +00:00
clutter-stage-private.h Remove internal usage of ClutterGeometry in StageWindow 2011-09-26 12:05:55 +01:00
clutter-stage-window.c stage-window: Add :backend and :wrapper properties 2011-11-10 14:55:03 +00:00
clutter-stage-window.h Remove the X11-specific bit in ClutterStageCogl 2011-11-03 13:45:19 +00:00
clutter-stage.c Try to mop up the default stage mess 2011-11-10 15:37:51 +00:00
clutter-stage.h stage: Move the deprecated macros to a separate header 2011-11-03 15:13:54 +00:00
clutter-state.c Mark clutter_state_set_key() source_state_name as nullable 2011-10-07 12:11:52 +01:00
clutter-state.h Move more typedefs into clutter-types.h 2011-10-11 17:59:50 +01:00
clutter-swipe-action.c swipe-action: Remove the required devices call 2011-06-10 15:15:15 +01:00
clutter-swipe-action.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-table-layout.c layout-managers: Take into account the allocations's origin 2011-08-29 22:43:42 +01:00
clutter-table-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-text.c text: Implement password hint 2011-09-19 20:26:37 +01:00
clutter-text.h clutter-text: new clutter_text_get_layout_offsets API 2011-06-13 16:15:22 +01:00
clutter-texture.c texture: Disable deprecation warnings 2011-10-12 12:36:41 +01:00
clutter-texture.h texture: Remove CLUTTER_DISABLE_DEPRECATED 2011-11-02 13:00:46 +00:00
clutter-timeline.c docs: Fix the ClutterTimeline:auto-reverse link 2011-09-02 15:49:05 +01:00
clutter-timeline.h Move more typedefs into clutter-types.h 2011-10-11 17:59:50 +01:00
clutter-types.h Remove CLUTTER_DISABLE_DEPRECATED guard 2011-11-03 15:32:04 +00:00
clutter-units.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-units.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-util.c Remove internal usage of ClutterGeometry in StageWindow 2011-09-26 12:05:55 +01:00
clutter-util.h utils: Remove CLUTTER_DISABLE_DEPRECATED 2011-11-02 13:00:47 +00:00
clutter-version.h.in Clean up the windowing system defines 2011-11-03 13:45:20 +00:00
clutter.h Remove CLUTTER_DISABLE_DEPRECATED guard 2011-11-03 15:32:04 +00:00
clutter.pc.in Implement multi-backend support 2011-11-03 13:45:19 +00:00
Makefile.am Add a CEx100-specific backend 2011-11-10 14:55:03 +00:00