mutter/clutter
Emmanuele Bassi 67eeea6b62 actor: Maintain behaviour of old allocate() implementations
The usual way to implement a container actor is to override the
allocate() virtual function, chain up, and then allocate the actor's
children.

Clutter now has the ability to delegate layout management to
ClutterLayoutManager directly; in the allocation, this is done by
checking whether the actor has children, and then call
clutter_layout_manager_allocate() from within the default implementation
of the ClutterActor::allocate() vfunc. The same vfunc that everyone, has
been chaining up to.

Whoopsie.

Well, we can check if there's a layout manager, and if it's NULL, we
bail out. Except that there's a default layout manager, and it's the
fixed layout manager, so that classes like Group and Stage work by
default.

Double whoopsie.

The fix for this scenario is a bit nasty; we have to check if the actor
class has overridden the allocate() vfunc or not, before actually
looking at the layout manager. This means that classes that override the
allocate() vfunc are expected to do everything that ClutterActor's
default implementation does - which I think it's a fair requirement to
have.

For newly written code, though, it would probably be best if we just
provided a function that does the right thing by default, and that
you're supposed to be calling from within the allocate() vfunc
implementation, if you ever chose to override it. This new function,
clutter_actor_set_allocation(), should come with a warning the size of
Texas, to avoid people thinking it's a way to override the whole "call
allocate() on each child" mechanism. Plus, it should check if we're
inside an allocation sequence, and bail out if not.
2012-01-19 12:40:32 +00:00
..
cally cally: Use Actor.get_children() 2012-01-16 23:37:12 +00:00
cex100 docs: fix some headers paths 2011-11-10 19:05:39 +01:00
cogl Add missing include 2011-11-18 22:06:30 +01:00
deprecated actor: Deprecate show_all()/hide_all() 2012-01-17 16:21:54 +00:00
egl eglnative: fix building eglnative BE with evdev support 2011-12-08 16:13:37 +00:00
evdev build: make internal option_xkb_* symbols static 2011-12-08 16:13:38 +00:00
gdk backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
osx osx: Use Lucida Grande as the default font 2012-01-07 10:42:09 +00:00
tslib egl: First attempt at cleaning up the EGL native backend 2011-11-03 13:45:20 +00:00
wayland wayland: Attach cursor buffer to input device when it enters the surface 2012-01-10 17:30:57 +00:00
win32 Fix clutter-bakend-win32.c 2011-11-14 11:06:28 +00:00
x11 x11/texture-pixmap: Use ClutterActor.queue_redraw_with_clip() 2011-12-12 17:29:58 +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: Add TransformInfo 2012-01-16 23:35:17 +00:00
clutter-actor.c actor: Maintain behaviour of old allocate() implementations 2012-01-19 12:40:32 +00:00
clutter-actor.h actor: Maintain behaviour of old allocate() implementations 2012-01-19 12:40:32 +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: Remove ClutterBackend::redraw 2012-01-12 13:35:09 +00:00
clutter-backend.c backend: Remove ClutterBackend::redraw 2012-01-12 13:35:09 +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 Deprecate Container add() and remove() methods 2012-01-16 23:37:11 +00: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
clutter-box-layout.c actor: Remove automagic "expand" flag 2012-01-16 23:37:13 +00:00
clutter-box-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-cairo-texture.c cairo-texture: Skip ::draw emission for 0x0 surfaces 2011-11-18 17:23:56 +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: Use the new symbolic event propagation macros 2012-01-12 10:27:17 +00: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 effects: Use effect_queue_repaint instead of actor_queue_redraw 2011-11-28 18:30:18 +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
clutter-config.h.win32 clutter-config.h.win32: Add CLUTTER_INPUT_NULL 2011-11-14 13:33:04 +08: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 Deprecate the old raise/lower API 2012-01-16 23:37:13 +00:00
clutter-container.h Deprecate the old raise/lower API 2012-01-16 23:37:13 +00:00
clutter-debug.h debug: Simple whitespace cleanups 2011-11-18 17:54:19 +00:00
clutter-deform-effect.c deform-effect: Check against NULL pointers 2012-01-12 10:34:26 +00:00
clutter-deform-effect.h
clutter-deprecated.h Deprecate Container add() and remove() methods 2012-01-16 23:37:11 +00:00
clutter-desaturate-effect.c effects: Use effect_queue_repaint instead of actor_queue_redraw 2011-11-28 18:30:18 +00:00
clutter-desaturate-effect.h
clutter-device-manager-private.h input: adds internal _clutter_input_device_get_stage api 2011-12-08 16:13:37 +00:00
clutter-device-manager.c backend: Clean up the device manager creation 2011-11-10 14:55:03 +00:00
clutter-device-manager.h
clutter-drag-action.c drag-action: Use the new event propagation macros 2012-01-12 10:34:50 +00:00
clutter-drag-action.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-drop-action.c drop-action: Use the event propagation macros 2012-01-12 10:39:59 +00: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 actor: Add [xy]-align 2012-01-16 23:35:13 +00:00
clutter-event-private.h event: Add setters for ClutterEvent members 2011-02-28 14:16:23 +00:00
clutter-event-translator.c
clutter-event-translator.h
clutter-event.c Eliminate G_CONST_RETURN 2011-06-07 16:06:24 +01:00
clutter-event.h Add symbolic constants for event propagation 2012-01-03 12:05:10 +00: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 fixed-layout: Use the Actor iteration API 2012-01-16 23:37:10 +00:00
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 Deprecate Container add() and remove() methods 2012-01-16 23:37:11 +00:00
clutter-flow-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-gesture-action.c gesture-action: Protect against NULL pointers 2012-01-12 10:49:16 +00:00
clutter-gesture-action.h docs: Fix Clutter API reference 2011-06-13 15:36:07 +01:00
clutter-group.h Deprecate ClutterGroup 2012-01-16 23:35:16 +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 input: adds internal _clutter_input_device_get_stage api 2011-12-08 16:13:37 +00: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 clutter/clutter-keysyms-table.c: Fix function name 2011-10-12 17:25:37 +08: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 actor: Remove automagic "expand" flag 2012-01-16 23:37:13 +00:00
clutter-layout-manager.h actor: Remove automagic "expand" flag 2012-01-16 23:37:13 +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 Add diagnostic mode 2011-12-28 09:37:53 +00:00
clutter-main.h Deprecate some more old, useless API 2011-11-15 17:58:25 +00:00
clutter-marshal.list text: Implement ClutterTextBuffer 2012-01-17 14:29:44 +00:00
clutter-master-clock.c Store the master clock pointer in the main context 2011-11-14 17:16:27 +00: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 offscreen-effect: Track the size of the actor separately 2011-11-28 15:42:35 +00: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
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 Remove use of CoglVector3 2012-01-16 21:06:19 +00:00
clutter-path-constraint.c Remove private helper #define's 2011-03-03 11:47:49 +00:00
clutter-path-constraint.h
clutter-path.c path: Fix introspection annotations 2011-12-01 10:55:13 +00:00
clutter-path.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-private.h Remove use of CoglVector3 2012-01-16 21:06:19 +00:00
clutter-profile.c debug: Clean up profile/debug symbols 2011-11-18 17:44:42 +00:00
clutter-profile.h debug: Clean up profile/debug symbols 2011-11-18 17:44:42 +00:00
clutter-script-parser.c script: Fix a segfault 2012-01-17 14:29:45 +00:00
clutter-script-private.h script: Hide private symbols 2011-09-07 16:14:10 +01:00
clutter-script.c script: Don't skip introspection for connect_signals_full() 2011-11-25 10:54:54 +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
clutter-shader-effect.c Currently Clutter only prints out a warning message in case some shader effects fail to compile 2011-12-01 10:57:22 +00: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 stage-manager: Store the stage manager into the main context 2011-11-14 15:43:20 +00:00
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 stage: Use the Actor iteration API 2012-01-16 23:37:11 +00:00
clutter-stage.h Move Perspective and Fog definitions to clutter-types.h 2012-01-03 13:50:06 +00:00
clutter-state.c Fix compiler warnings 2012-01-16 23:49:49 +00: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 Fix compiler warnings 2012-01-16 23:49:49 +00:00
clutter-table-layout.h Move all enumerations to a separate file 2011-10-11 17:59:46 +01:00
clutter-text-buffer.c text-buffer: Fix the Since annotations 2012-01-17 14:29:45 +00:00
clutter-text-buffer.h text: Implement ClutterTextBuffer 2012-01-17 14:29:44 +00:00
clutter-text.c text: Fix the buffer length check on paint 2012-01-17 14:29:45 +00:00
clutter-text.h text: Implement ClutterTextBuffer 2012-01-17 14:29:44 +00:00
clutter-texture.c Do not use set_parent()/unparent() internally 2012-01-16 23:35:13 +00:00
clutter-texture.h texture: Remove CLUTTER_DISABLE_DEPRECATED 2011-11-02 13:00:46 +00:00
clutter-timeline.c Fix compiler warnings 2012-01-16 23:49:49 +00:00
clutter-timeline.h Move more typedefs into clutter-types.h 2011-10-11 17:59:50 +01:00
clutter-types.h actor: Adjust the preferred size too 2012-01-16 23:35:14 +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-version.h.win32.in Update clutter-version.h.win32.in 2011-11-07 12:12:53 +08:00
clutter.h Deprecate ClutterRectangle 2012-01-16 23:35:17 +00:00
clutter.pc.in build: Add infrastructure for inserting Requires.private into pkg-config files 2012-01-11 12:23:46 +00:00
clutter.symbols Add ClutterTextBuffer to the API reference 2012-01-17 14:29:45 +00:00
Makefile.am text: Implement ClutterTextBuffer 2012-01-17 14:29:44 +00:00