2006-12-27 Bruno Boaventura <brunoboaventura@gmail.com>
Move "On Top" option in menu. Fix#382962.
* src/common.h, src/core.c: Remove META_MENU_OP_UNABOVE.
* src/menu.c: remove unabove menu item and put above item
next "Always on Visible Viewport".
* src/window.c: remove handles of META_MENU_OP_UNABOVE.
* src/compositor.c: Disabled bling for now; added function for
handling CirculateNotify XEvent; some commenting.
* src/compositor.h, src/c-window.c: fix function prototype visibility.
* clutter/clutter-label.c: Remove some gtk-isms; always take
a reference before calling g_object_notify(), as the object
might get disposed while calling the closures inside the
notify queue; notify the changes of the ellipsize property.
* clutter/clutter-color.h:
* clutter/clutter-color.c: Expose clutter_color_copy()
and clutter_color_free() for the python bindings, so that
they can manager the conversion automatically; use the
slice allocator when copying/freeing a ClutterColor.
Rework part of the show/hide machinery. Allow groups sub-classes
and composite actors to override show_all/hide_all in order to
decide which children they wish to show/hide. This means that
if an actor overrides the default show/hide virtual methods, it'll
have to chain up to the parent class show/hide. While we're at it,
provide the fully recursive clutter_actor_show_all() and
clutter_actor_hide_all() methods.
* clutter/clutter-behaviour-path.c: Add apidoc for the ClutterKnot
functions; add pathological equality case for clutter_knot_equal().
* clutter/clutter-event.h:
* clutter/clutter-feature.h:
* clutter/clutter-behaviour.c:
* clutter/clutter-behaviour-scale.c:Fix parameters name so that
gtk-doc doesn't complain.
* clutter/clutter-actor.c:
* clutter/clutter-event.c: Add apidoc
* clutter/clutter-actor.h:
* clutter/clutter-actor.c: Add a clutter_actor_show_all() and a
clutter_actor_hide_all() functions; provide a mechanism for
groups and composited actors to programmatically select what to
show/hide when clutter_actor_show_all() and clutter_actor_hide_all()
are called. If you are overriding the ClutterActor::show or
the ClutterActor::hide virtual methods you should chain up with
the parent class.
* clutter/clutter-group.c: Override show_all and hide_all and
recursively show/hide every child inside the group;
clutter_group_show_all() and clutter_group_hide_all() remain as non
recursive versions of clutter_actor_show_all() and
clutter_actor_hide_all() (maybe we should rename them in order
to avoid name clashes with the bindings).
* clutter/clutter-stage.c:
* clutter/clutter-texture.c: Chain up with parent class show
and hide vfuncs.
* clutter/clutter-clone-texture.h:
* clutter/clutter-clone-texture.c: Provide API for changing the
parent texture of a clone texture actor.
* examples/behave.c:
* examples/super-oh.c:
* examples/test.c: Use clutter_actor_show_all() instead of
clutter_group_show_all().
* clutter/clutter-behaviour.h: Add a function prototype
for the foreach function: we need something more specific
than GFunc; add clutter_behaviour_get_actors(), used to
get a list of the actors.
* clutter/clutter-behaviour.c: Add debugging notes; add
a warning for behaviour implementations missing the
alpha_notify vfunc; add api documentation
* clutter/clutter-behaviour-opacity.c:
* clutter/clutter-behaviour-path.c:
* clutter/clutter-behaviour-scale.c: Reimplement the
alpha_notify functions using the new foreach function
and, where possible, by directly iterating on the
actors: this shaves off the number of recalculations
of the property/alpha values, and the number of
functions.
2006-12-05 Christof Krüger <mail@pop2wap.net>
* src/window.c (update_move): Fix flickering about when dragging
maximised windows between xineramas. Closes#358715.
* clutter/clutter-color.h:
* clutter/clutter-color.c: Add clutter_color_parse(),
which parses a string containing a color definition as
understood by XParseColor() (or pango_color_parse()).
Avoid clutter segfaulting when used without invoking
clutter_init(). This is needed when using api documentation
tools and every other tool relying on the GObject
introspection API (esp. on a headless box). see the
note in clutter/clutter-feature.c:clutter_feature_init
for a full explanation.
* clutter/clutter-feature.c: Call clutter_feature_init()
when needed by one of the accessors of the features
structure.
* clutter/clutter-main.c:
* clutter/clutter-private.h: Remove clutter_feature_init()
public declaration: the features support check is done the
first time a feature is needed.
* clutter/clutter-main.c: Do not ever access the clutter
main context pointer directly; instead, obtain a pointer
to it via clutter_context_get_default(), which will always
return something valid.
* clutter/clutter-private.h: Add our own READABLE,
WRITABLE and READWRITE paramspec flags, declaring the
string components of the properties GParamSpec as static;
this should shave off some bytes in the memory footprint
and avoid relocations.
* clutter/clutter-actor.c:
* clutter/clutter-behaviour.c:
* clutter/clutter-behaviour-opacity.c:
* clutter/clutter-behaviour-path.c:
* clutter/clutter-behavuour-scale.c:
* clutter/clutter-clone-texture.c:
* clutter/clutter-label.c:
* clutter/clutter-rectangle.c:
* clutter/clutter-stage.c:
* clutter/clutter-texture.c:
* clutter/clutter-timeline.c: Use the CLUTTER_PARAM_*
macros we just added.
* clutter/clutter-behaviour-scale.c: Add properties for
the scale begin, scale end and gravity parameters.
* clutter/clutter-behaviour-path.h: Mark the ClutterKnot
memory management functions as public (for the bindings),
since we use the slice allocator for copying knots around;
add a clutter_knot_equal() function.
* clutter/clutter-behaviour-path.c:
(node_distance): Use clutter_knot_equal() as a fast path
to avoid the sqrt() in case the nodes we are using are
at the same position.
(path_total_length): Additional check on the existence
of the next node.
* examples/behave.c: Do not leak the ClutterBehaviour
objects around.
2006-12-03 Federico Mena Quintero <federico@novell.com>
Fix http://bugzilla.gnome.org/show_bug.cgi?id=381127:
* src/window.c (idle_calc_showing): Grab the server while the
windows are being shuffled. First show the windows to be shown,
and then hide the windows to be hidden, in order to minimize
the number of expose events.
* clutter/clutter-texture.h: Clean up.
* clutter/clutter-texture.c: Typo fix in the name
of ClutterTextureTileDimension.
* clutter/clutter-behaviour.c: Allow passing NULL
to clutter_behaviour_set_alpha() (as we pass NULL
in the finalize process).
* clutter/clutter-stage.h:
* clutter/clutter-stage.c:
(clutter_stage_swap_buffers): Remove, as the same is done
via clutter_redraw() and clutter_actor_queue_redraw().
(clutter_stage_unrealize), (clutter_stage_init),
(clutter_stage_set_xwindow_foreign): Do not call
XDestroyWindow() on the stage Window if we are using a
foreign Window, as we don't control its lifetime.
* Makefile.am: Remove the gtk directory from the SUBDIRS.
* clutter/clutter-stage.h:
* clutter/clutter-stage.c: Add clutter_stage_swap_buffers(),
which swaps the GL buffers. This fixes the redraw in the
GTK widget.