mutter/clutter/x11
Havoc Pennington 125bded814 Enforce invariants on mapped, realized, visibility states
Bug 1138 - No trackable "mapped" state

* Add a VISIBLE flag tracking application programmer's
  expected showing-state for the actor, allowing us to
  always ensure we keep what the app wants while tracking
  internal implementation state separately.

* Make MAPPED reflect whether the actor will be painted;
  add notification on a ClutterActor::mapped property.
  Keep MAPPED state updated as the actor is shown,
  ancestors are shown, actor is reparented, etc.

* Require a stage and realized parents to realize; this means
  at realization time the correct window system and GL resources
  are known. But unparented actors can no longer be realized.

* Allow children to be unrealized even if parent is realized.
  Otherwise in effect either all actors or no actors are realized,
  i.e. it becomes a stage-global flag.

* Allow clutter_actor_realize() to "fail" if not inside a toplevel

* Rework clutter_actor_unrealize() so internally we have
  a flavor that does not mess with visibility flag

* Add _clutter_actor_rerealize() to encapsulate a somewhat
  tricky operation we were doing in a couple of places

* Do not realize/unrealize children in ClutterGroup,
  ClutterActor already does it

* Do not realize impl by hand in clutter_stage_show(),
  since showing impl already does that

* Do not unrealize in various dispose() methods, since
  ClutterActor dispose implementation already does it
  and chaining up is mandatory

* ClutterTexture uses COGL while unrealizable (before it's
  added to a stage). Previously this breakage was affecting
  ClutterActor because we had to allow realize outside
  a stage. Move the breakage to ClutterTexture, by making
  ClutterTexture just use COGL while not realized.

* Unrealize before we set parent to NULL in clutter_actor_unparent().
  This means unrealize() implementations can get to the stage.
  Because actors need the stage in order to detach from stage.

* Update clutter-actor-invariants.txt to reflect latest changes

* Remove explicit hide/unrealize from ClutterActor::dispose since
  unparent already forces those
  Instead just assert that unparent() occurred and did the right thing.

* Check whether parent implements unrealize before chaining up
  Needed because ClutterGroup no longer has to implement unrealize.

* Perform unrealize in the default handler for the signal.
  This allows non-containers that have children to work properly,
  and allows containers to override how it's done.

* Add map/unmap virtual methods and set MAPPED flag on self and
  children in there. This allows subclasses to hook map/unmap.
  These are not signals, because notify::mapped is better for
  anything it's legitimate for a non-subclass to do.

Signed-off-by: Emmanuele Bassi <ebassi@linux.intel.com>
2009-04-24 15:27:19 +01:00
..
clutter-backend-x11-private.h 2008-01-31 Rob Bradford <rob@openedhand.com> 2008-01-31 11:24:11 +00:00
clutter-backend-x11.c Remove usage of the grave accent as quotation mark 2009-03-17 14:13:31 +00:00
clutter-backend-x11.h [x11] Add backend-specific get_current_event_time() 2009-02-18 10:07:12 +00:00
clutter-event-x11.c [x11] Only update cached last event time if we have a real timestamp. 2009-02-18 16:56:39 +00:00
clutter-stage-x11.c Enforce invariants on mapped, realized, visibility states 2009-04-24 15:27:19 +01:00
clutter-stage-x11.h [ClutterStageX11] Remove the handling_configure flag 2009-01-14 15:10:50 +00:00
clutter-x11-enum-types.c.in 2008-06-30 Emmanuele Bassi <ebassi@openedhand.com> 2008-06-30 15:03:42 +00:00
clutter-x11-enum-types.h.in 2008-06-30 Emmanuele Bassi <ebassi@openedhand.com> 2008-06-30 15:03:42 +00:00
clutter-x11-texture-pixmap.c [x11-texture-pixmap] Fixes a reported lockup due to an undesireable X server grab 2009-04-22 13:43:53 +01:00
clutter-x11-texture-pixmap.h 2008-10-30 Emmanuele Bassi <ebassi@linux.intel.com> 2008-10-30 17:04:34 +00:00
clutter-x11.h [x11] Add backend-specific get_current_event_time() 2009-02-18 10:07:12 +00:00
clutter-x11.pc.in Bug 1491 - Fix hardcoded lib path in .pc files 2009-03-09 10:45:09 +00:00
Makefile.am Use $(MAINTAINER_CFLAGS) in clutter/{x11,glx}/Makefile.am 2009-04-17 14:53:24 +01:00