mutter/clutter
Robert Bragg 632412c9c8 actor: Check "paint" handlers in _get_paint_volume
Instead of waiting until clutter_actor_paint to check if there are any
handlers connected to the "paint" signal, we now do the check whenever
the paint-volume is requested in _actor_get_paint_volume_mutable().

Previously we checked in clutter_actor_paint(), but at that time we may
already be using a stage clip that could be derived from an invalid
paint-volume. We used to try and handle that by queuing a follow up,
unclipped, redraw but anyway there was an additional problem with the
previous approach because the checking wasn't enough to always catch
invalid volumes involved in culling (considering that containers may
derive their volume from children that haven't yet been painted)

By moving the check to _get_paint_volume time not only do we now
correctly check children in cases where a container derives its volume
from its children's volumes but we no longer need to queue follow up
redraws to cover up artefacts.

Since we now never queue follow up redraws, this in turn means we should
no longer clobber redraws queued with an explicit clip which was
something affecting gnome-shell since it connects a handler to the paint
signal of the stage.

http://bugzilla.clutter-project.org/show_bug.cgi?id=2388
2010-11-05 17:22:05 +00:00
..
cally Avoid mixing declarations and code 2010-10-25 13:18:25 +01:00
cogl matrix-stack: use GArray instead of GSList for stack 2010-11-04 18:35:16 +00:00
egl Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
fruity Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
glx Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
osx Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
wayland Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
win32 win32: Fix a couple of build warnings 2010-11-01 15:21:04 +00:00
x11 Merge branch 'private-cleanup' 2010-10-25 23:44:53 +01:00
clutter-action.c
clutter-action.h
clutter-actor-box.c Merge branch 'private-cleanup' 2010-10-25 23:44:53 +01:00
clutter-actor-meta-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-actor-meta.c Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-actor-meta.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-actor-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-actor.c actor: Check "paint" handlers in _get_paint_volume 2010-11-05 17:22:05 +00:00
clutter-actor.h docs: Fix the annotations of ActorClass 2010-10-04 11:26:46 +01:00
clutter-align-constraint.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-align-constraint.h Remove trailin enum commas, avoiding C++ warnings. 2010-09-13 15:45:55 +01:00
clutter-alpha.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-alpha.h
clutter-animatable.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-animatable.h animatable: Allow passing a NULL animation 2010-07-31 10:56:09 +01:00
clutter-animation.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-animation.h animation: Allow detaching an animation from an actor 2010-09-10 11:18:53 +01:00
clutter-animator.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-animator.h
clutter-backend-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-backend.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-backend.h Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-behaviour-depth.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-depth.h
clutter-behaviour-ellipse.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-behaviour-ellipse.h
clutter-behaviour-opacity.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-opacity.h
clutter-behaviour-path.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-path.h
clutter-behaviour-rotate.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-rotate.h
clutter-behaviour-scale.c Added documentation for alpha parameter in Behaviour constructors. 2010-09-09 16:34:21 +01:00
clutter-behaviour-scale.h
clutter-behaviour.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-behaviour.h
clutter-bezier.c
clutter-bezier.h
clutter-bin-layout.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-bin-layout.h [layout, docs] Clean up BinLayout documentation 2009-10-14 11:31:29 +01:00
clutter-bind-constraint.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-bind-constraint.h constraint: Re-implement using update_allocation() 2010-09-17 12:17:50 +01:00
clutter-binding-pool.c binding-pool: Use the correct marshaller 2010-10-25 00:39:13 +01:00
clutter-binding-pool.h
clutter-blur-effect.c blur-effect: fix paint volume padding 2010-09-29 15:12:57 +01:00
clutter-blur-effect.h
clutter-box-layout.c box-layout: Plug a memory leak 2010-10-08 13:29:49 +01:00
clutter-box-layout.h
clutter-box.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-box.h
clutter-cairo-texture.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-cairo-texture.h cairo-texture: Allow overriding the surface creation 2010-10-18 11:26:45 +01:00
clutter-child-meta.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-child-meta.h
clutter-click-action.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-click-action.h click-action: Add get_button() 2010-08-26 16:39:39 +01:00
clutter-clone.c clone: Remove checks in set_source_internal() 2010-11-01 12:16:53 +00:00
clutter-clone.h
clutter-color.c Use G_DEFINE_BOXED_TYPE for all boxed types 2010-10-18 11:26:45 +01:00
clutter-color.h color: Add Color.interpolate() method 2010-10-11 15:39:19 +01:00
clutter-colorize-effect.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-colorize-effect.h
clutter-constraint.c docs: Add sub-classing notes on ActorMeta and Constraint 2010-09-17 14:54:31 +01:00
clutter-constraint.h constraint: Add ::update_allocation() 2010-09-17 12:17:50 +01:00
clutter-container.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-container.h container: Add child_notify() wrapper 2010-09-30 14:58:23 +01:00
clutter-debug.h debug: Do not use '&' in the messages 2010-10-19 01:42:19 +01:00
clutter-deform-effect.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-deform-effect.h
clutter-deprecated.h Fix copy-and-paste errors in the deprecation macros 2009-07-21 09:22:38 +01:00
clutter-desaturate-effect.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-desaturate-effect.h
clutter-device-manager-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-device-manager.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-device-manager.h
clutter-drag-action.c Remove conditional wrappers for property installation/notification 2010-10-18 11:26:45 +01:00
clutter-drag-action.h drag-action: Added x-drag-threshold and y-drag-threshold properties 2010-09-07 10:40:49 +01:00
clutter-effect.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-effect.h effect: Fix up the class ABI 2010-10-04 11:30:32 +01:00
clutter-enum-types.c.in
clutter-enum-types.h.in
clutter-event.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-event.h Remove trailin enum commas, avoiding C++ warnings. 2010-09-13 15:45:55 +01:00
clutter-feature.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-feature.h
clutter-fixed-layout.c
clutter-fixed-layout.h [layout, docs] Document FixedLayout 2009-10-14 11:31:29 +01:00
clutter-fixed.c Add caller-allocates annotations 2010-09-08 17:04:21 +01:00
clutter-fixed.h
clutter-flow-layout.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-flow-layout.h
clutter-frame-source.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-frame-source.h
clutter-group.c paint volumes: another pass at the design 2010-09-29 15:12:57 +01:00
clutter-group.h
clutter-id-pool.c
clutter-id-pool.h
clutter-input-device.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-input-device.h device: Allow updating devices from embedding toolkits 2010-02-17 18:21:50 +00:00
clutter-interval.c interval: Remember to chain up to parent in finalize() 2010-10-25 00:31:36 +01:00
clutter-interval.h
clutter-keysyms-compat.h keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-keysyms-table.h
clutter-keysyms-update.pl keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-keysyms.h keysyms: Update the macros to CLUTTER_KEY_* 2010-09-10 17:54:52 +01:00
clutter-layout-manager.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-layout-manager.h
clutter-layout-meta.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-layout-meta.h
clutter-list-model.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-list-model.h
clutter-main.c Clean up clutter-private.h/4 2010-10-21 12:22:17 +01:00
clutter-main.h Initialize accessibility support on clutter_init 2010-07-05 16:45:43 +01:00
clutter-marshal.list binding-pool: Use the correct marshaller 2010-10-25 00:39:13 +01:00
clutter-master-clock.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-master-clock.h
clutter-media.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-media.h
clutter-model-private.h
clutter-model.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-model.h
clutter-offscreen-effect.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-offscreen-effect.h offscreen-effect: Rename create_target to create_buffer 2010-09-01 18:05:53 +01:00
clutter-page-turn-effect.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-page-turn-effect.h
clutter-paint-volume-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-paint-volume.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-path-constraint.c docs: Add PathConstraint 2010-10-25 16:09:40 +01:00
clutter-path-constraint.h docs: Add PathConstraint 2010-10-25 16:09:40 +01:00
clutter-path.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-path.h
clutter-private.h Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-profile.c profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01:00
clutter-profile.h profile: Update to uprof-0.3 dep for --enable-profile 2010-09-14 12:43:16 +01:00
clutter-rectangle.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-rectangle.h
clutter-score.c Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-score.h
clutter-script-parser.c script: Fix the memory management 2010-10-19 01:42:19 +01:00
clutter-script-private.h script: Fix the memory management 2010-10-19 01:42:19 +01:00
clutter-script.c script: Fix the memory management 2010-10-19 01:42:19 +01:00
clutter-script.h
clutter-scriptable.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-scriptable.h Remove the internal copy of JSON-GLib 2010-09-29 15:57:28 +01:00
clutter-settings.c Conditionally use g_object_notify_by_pspec 2010-08-10 17:12:06 +01:00
clutter-settings.h
clutter-shader-effect.c Remove unused variables 2010-10-19 01:42:19 +01:00
clutter-shader-effect.h
clutter-shader-types.c
clutter-shader-types.h
clutter-shader.c introspection: Add annotations 2010-09-03 12:14:50 +01:00
clutter-shader.h
clutter-stage-manager-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-stage-manager.c Clean up clutter-private.h/2 2010-10-21 11:30:19 +01:00
clutter-stage-manager.h
clutter-stage-private.h Add copyright notices 2010-10-21 13:13:00 +01:00
clutter-stage-window.c Use G_DEFINE_INTERFACE 2010-10-18 11:26:44 +01:00
clutter-stage-window.h Further annotation fixes 2010-09-08 16:41:47 +01:00
clutter-stage.c Don't leave stale invalidated queued redraws around 2010-11-03 15:43:55 +00:00
clutter-stage.h stage: Add the NO_CLEAR_ON_PAINT hint 2010-07-13 14:57:48 +01:00
clutter-state.c state: Correct the documentation 2010-10-25 17:21:20 +01:00
clutter-state.h Use G_DEFINE_BOXED_TYPE for all boxed types 2010-10-18 11:26:45 +01:00
clutter-table-layout.c Plug a memory leak in clutter-table-layout 2010-10-08 12:11:39 +01:00
clutter-table-layout.h table-layout: Invert row/column in arguments 2010-09-23 15:17:58 +01:00
clutter-text.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-text.h
clutter-texture.c texture: Warn when the file loaded from a ClutterScript can't be found 2010-11-01 11:43:35 +00:00
clutter-texture.h
clutter-timeline.c Move more classes to install_properties() 2010-10-18 11:26:45 +01:00
clutter-timeline.h
clutter-timeout-interval.c
clutter-timeout-interval.h
clutter-timeout-pool.c Remove unnecessary GLib version checks 2010-10-18 11:26:45 +01:00
clutter-timeout-pool.h docs: API reference fixes 2010-09-20 13:15:44 +01:00
clutter-types.h actor-box: Add setters for origin and size 2010-10-25 15:45:35 +01:00
clutter-units.c Clean up clutter-private.h/6 2010-10-21 12:22:17 +01:00
clutter-units.h
clutter-util.c paint_volume: Splits out clutter_paint_volume code 2010-09-29 15:13:00 +01:00
clutter-util.h
clutter-version.h.in
clutter.h Add ClutterPathConstraint 2010-10-25 15:46:04 +01:00
clutter.pc.in build: Start moving to a non-recursive layout 2010-09-29 14:40:15 +01:00
Makefile.am Merge branch 'private-cleanup' 2010-10-25 23:44:53 +01:00