Emmanuele Bassi [Wed, 10 Oct 2007 16:00:41 +0000 (16:00 +0000)]
2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter-sections.txt: Add new API and rearrange the subsections.
Emmanuele Bassi [Wed, 10 Oct 2007 14:51:25 +0000 (14:51 +0000)]
2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Beautify the ClutterActor documentation.
Emmanuele Bassi [Wed, 10 Oct 2007 14:29:29 +0000 (14:29 +0000)]
2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c: Remove the ::event-after signal:
three event layers to connect to seems a bit overkill.
(clutter_actor_event): Return FALSE, not TRUE by default,
as g_signal_emit() will change the return value if no
handlers are connected
* clutter/clutter-stage.c: Emit ::notify when we change
the fullscreen property.
* clutter/clutter-script.c: Add more documentation for the
definition format and keywords.
(translate_property): Collapse the G_TYPE_ENUM and G_TYPE_FLAGS
cases into one, to simplify the code.
* tests/test-script.c: Test enumeration conversion by using
a value different from the default.
Matthew Allum [Wed, 10 Oct 2007 13:04:34 +0000 (13:04 +0000)]
2007-10-10 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
* clutter/clutter-actor.h:
* clutter/clutter-event.c:
* clutter/clutter-main.c:
* tests/test-events.c:
Add basic W3 DOM event 'capture' like functionality.
Emmanuele Bassi [Wed, 10 Oct 2007 13:01:09 +0000 (13:01 +0000)]
2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script-private.h:
* clutter/clutter-script.c: Parse flags like we parse enums.
Emmanuele Bassi [Wed, 10 Oct 2007 12:51:51 +0000 (12:51 +0000)]
2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/json/json-types.h:
* clutter/json/json-array.c:
* clutter/json/json-object.c: Resync with the upstream copy
of JSON-GLib; add json_object_remove_member() and
json_array_remove_element() and fix the g_hash_table_get_keys()
replacement for GLib 2.12.
* clutter/clutter-script.c: Clean up the complex properties
parsing code.
Emmanuele Bassi [Wed, 10 Oct 2007 10:44:45 +0000 (10:44 +0000)]
2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script.c (json_object_end): Add "type_func"
to the list of attributes we skip.
Emmanuele Bassi [Wed, 10 Oct 2007 10:42:19 +0000 (10:42 +0000)]
2007-10-10 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/json/json-parser.c: Use the commodity JsonNode API
and accept bare values as root nodes.
* clutter/clutter-script-private.h:
* clutter/clutter-script.c: Unreference the created objects
only if they are top-levels, like ClutterBehaviour and
ClutterTimelines. Actors have floating references, so we
just transfer ownership to their containers, and the stage
is owned by the backend. Add the "type_func" key to the
object definition, so the user can supply its own GType
function if the class name doesn't follow the GObject rules.
Document the ClutterScript public API.
Matthew Allum [Tue, 9 Oct 2007 23:45:49 +0000 (23:45 +0000)]
2007-10-10 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
* clutter/clutter-actor.h:
Add missing enter/leave event signals
* clutter/clutter-main.c: (clutter_do_event):
Set time in crossing events.
Protect against do_pick() failing.
Emmanuele Bassi [Tue, 9 Oct 2007 20:04:23 +0000 (20:04 +0000)]
2007-10-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script.c (resolve_alpha_func): Fix the
ClutterAlphaFunc resolution function.
Emmanuele Bassi [Tue, 9 Oct 2007 16:44:44 +0000 (16:44 +0000)]
2007-10-09 Emmanuele Bassi <ebassi@openedhand.com>
* tests/Makefile.am:
* tests/test-script.c:
* tests/test-script.json: Move part of the UI definition into
its own file and exercise clutter_script_load_from_file().
Emmanuele Bassi [Tue, 9 Oct 2007 16:21:04 +0000 (16:21 +0000)]
2007-10-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script.c (clutter_script_get_object): Construct
the requested object if it hasn't been already. This allows
referencing objects within the same snippet.
* tests/test-script.c: Declare a timeline and use it inside
multiple behaviours; apply multiple behaviours to various
actors, then retrieve the timeline to start it when the test
runs.
Emmanuele Bassi [Tue, 9 Oct 2007 15:11:01 +0000 (15:11 +0000)]
2007-10-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script-private.h:
* clutter/clutter-script.c: Allow applying behaviours directly
inside the UI definition data.
* tests/test-script.c: Test the "behaviours" member.
Robert Bradford [Tue, 9 Oct 2007 13:56:29 +0000 (13:56 +0000)]
2007-10-09 Rob Bradford <rob@openedhand.com>
* clutter/eglnative/clutter-backend-egl.c:
(clutter_backend_egl_dispose):
Call eglTerminate() on the display when the backend is disposed of.
* clutter/eglnative/clutter-stage-egl.c:
(clutter_stage_egl_realize):
Don't use the createNativeWindow() call, it's not generic EGL.
Emmanuele Bassi [Tue, 9 Oct 2007 13:29:03 +0000 (13:29 +0000)]
2007-10-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script-private.h:
* clutter/clutter-script.h:
* clutter/clutter-script.c: Add licensing information to
the newly added files.
* clutter/clutter-script.c: Support creating behaviours with
ClutterScript. ClutterAlpha objects are implicit, but
timelines can be both explicit objects using their id or
implicit objects. Make the property resolution and translation
more robust. Support the pixbuf property.
* tests/test-script.c: Test the newly added features.
* docs/reference/clutter-docs.sgml:
* docs/reference/clutter-sections.txt: Add ClutterScript.
Emmanuele Bassi [Tue, 9 Oct 2007 13:24:52 +0000 (13:24 +0000)]
2007-10-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-fixed.h: Add deprecation guards around
CLUTTER_FIXED_INT().
Emmanuele Bassi [Tue, 9 Oct 2007 12:10:11 +0000 (12:10 +0000)]
Fix typo in GLib version check
Emmanuele Bassi [Mon, 8 Oct 2007 16:48:22 +0000 (16:48 +0000)]
2007-10-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script.c: Parse ClutterMargin and ClutterPadding
properties from arrays or integers (assume pixels).
Emmanuele Bassi [Mon, 8 Oct 2007 16:25:10 +0000 (16:25 +0000)]
2007-10-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script-private.h:
* clutter/clutter-script.c: Allow defining childrens for every
container actor inside the UI definition files.
Matthew Allum [Mon, 8 Oct 2007 16:18:33 +0000 (16:18 +0000)]
2007-10-08 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
* clutter/clutter-actor.h:
* clutter/clutter-private.h:
* clutter/clutter-main.c:
Add a hash to global clutter context mapping all parented actor
id's to actors.
Add clutter_get_actor_by_id() call.
Convert picking machinery to use above.
(performance/simpler composite actor creation)
* clutter/clutter-stage.c: (clutter_stage_fullscreen),
(clutter_stage_unfullscreen), (clutter_stage_event):
Only set the fullscreen property on stage state fullscreen event(#545)
Experimental as could be painful to implement on non X backends.
Emmanuele Bassi [Mon, 8 Oct 2007 15:18:31 +0000 (15:18 +0000)]
2007-10-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-script.c (json_parse_end):
* clutter/json/json-object.c (json_object_get_members): Replace
the GLib 2.14 API with the equivalent code for GLib < 2.14.
* configure.ac: Revert the dependency bump.
Emmanuele Bassi [Mon, 8 Oct 2007 15:04:13 +0000 (15:04 +0000)]
Fix includes in ClutterScript
Emmanuele Bassi [Mon, 8 Oct 2007 15:03:22 +0000 (15:03 +0000)]
2007-10-08 Emmanuele Bassi <ebassi@openedhand.com>
Initial implementation of the UI definition files. (#424)
* clutter/json/Makefile.am:
* clutter/json/*.[ch]: In-tree copy of JSON-GLib, a GLib-based
JSON parser/generator library. We use it in-tree because we might
need to change the API. Ideally, we'd depend on it.
* clutter/clutter.h:
* clutter/clutter-script-private.h:
* clutter/clutter-script.[ch]: ClutterScript, the scenegraph
generator class. It parses JSON streams in form of buffers and
files and builds the scene.
* clutter/clutter-debug.h:
* clutter/clutter-main.c: Add a "script" debug flag
* clutter/Makefile.am: Build glue.
* tests/Makefile.am:
* tests/test-script.c: Add a test case for the ClutterScript.
* configure.ac: Depend on GLib 2.14, so we can use the
g_hash_table_get_key() and g_hash_table_get_values() functions
for the time being; we can probably reimplement those, but we
are going to need 2.14 anyway if we are going to implement a
list model using GSequence.
Emmanuele Bassi [Mon, 8 Oct 2007 14:51:26 +0000 (14:51 +0000)]
2007-10-03 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-behave.c: Use the right return type for the
event callbacks.
Emmanuele Bassi [Mon, 8 Oct 2007 14:51:14 +0000 (14:51 +0000)]
2007-10-03 Emmanuele Bassi <ebassi@openedhand.com>
* tests/test-behave.c: Use the right return type for the
event callbacks.
Matthew Allum [Wed, 3 Oct 2007 09:28:16 +0000 (09:28 +0000)]
2007-10-03 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
* clutter/clutter-event.c:
* clutter/clutter-event.h:
* clutter/clutter-main.c:
* clutter/clutter-private.h:
* clutter/eglnative/clutter-event-egl.c:
* clutter/eglx/clutter-event-egl.c:
* clutter/glx/clutter-event-glx.c:
* clutter/sdl/clutter-event-sdl.c:
Remove seperate double/triple click events and replace with
a click_count member.
Move calculating click counts from backend to do_event()
Initial implementation of ENTER/LEAVE events.
* tests/test-events.c:
Add code to test above.
* tests/test-behave.c:
Sync with newer API.
* clutter/clutter-score.c:
Silence a warning.
Emmanuele Bassi [Tue, 2 Oct 2007 14:53:32 +0000 (14:53 +0000)]
2007-10-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-fixed.h: Add CLUTTER_FIXED_TO_INT() and
deprecate CLUTTER_FIXED_INT(), for symmetry with
CLUTTER_FIXED_FROM_INT().
* clutter/clutter-alpha.c:
* clutter/clutter-behaviour-depth.c:
* clutter/clutter-behaviour-ellipse.c:
* clutter/clutter-behaviour-path.c:
* clutter/clutter-fixed.h: Use CLUTTER_FIXED_TO_INT().
Emmanuele Bassi [Tue, 2 Oct 2007 14:45:40 +0000 (14:45 +0000)]
2007-10-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.c (clutter_actor_get_size): Implement
get_size() as a wrapper around clutter_actor_query_coords()
instead of calling g_object_get() twice.
(clutter_actor_init): Initialise the box in one call.
Emmanuele Bassi [Tue, 2 Oct 2007 14:03:36 +0000 (14:03 +0000)]
2007-10-01 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-actor.[ch]: Remove the ::event-after signal
class handler, as it's not meant to be overridden by sub-classes.
(clutter_actor_class_init):
Make every event-related signal return a boolean: return TRUE
in a signal handler to block the emission. The value is accumulated
automatically by the signal API.
(clutter_actor_event): If ::event returns TRUE, skip to emitting
::event-after. Return the value accumulated by the signal emission
chain.
* clutter/clutter-private.h: Rename _clutter_boolean_accumlator().
* clutter/clutter-main.c (clutter_do_event): If clutter_actor_event()
returns TRUE then stop the event emission chain from child to parent.
* clutter/clutter-stage.c (clutter_stage_event): Behave like
clutter_actor_event().
(clutter_stage_get_key_focus),
(clutter_stage_set_key_focus): Avoid a nasty circular reference
issue: if the actor passed to set_key_focus is NULL then the stage
has the key focus.
* tests/test-events.c: Update the events test with the API
changes.
Tomas Frydrych [Mon, 1 Oct 2007 15:26:09 +0000 (15:26 +0000)]
2007-10-01 Tomas Frydrych <tf@openedhand.com>
* clutter/clutter-actor.c:
(clutter_actor_set_scale_with_gravityx):
Use CLUTTER_QMUL for better precission (#532, patch by Gwenole
Beauchesne).
* clutter/clutter-color.c:
(clutter_color_to_hlsx):
Added missing CLUTTER_INT_TO_FIXED conversion (#544, patch by Neil
Roberts).
Neil J. Patel [Mon, 1 Oct 2007 13:44:33 +0000 (13:44 +0000)]
2007-10-01 Neil J. Patel <njp@o-hand.com>
Patch by: Tommi Komulainen <tommi.komulainen@iki.fi>
* clutter/clutter-entry.c: (clutter_entry_delete_text):
Fix characters vs. bytes inconsistency (#520).
Matthew Allum [Sun, 30 Sep 2007 22:27:52 +0000 (22:27 +0000)]
2007-09-30 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-event.h:
Removed unused POINTER_ENTER and POINTER_LEAVE states. (#546)
* clutter/clutter-stage.c: (clutter_stage_fullscreen),
(clutter_stage_unfullscreen):
Only Change fullscreen prop if the backend implements fullscreen
methods. (#545)
Øyvind Kolås [Fri, 28 Sep 2007 14:52:54 +0000 (14:52 +0000)]
2007-09-28 Øyvind Kolås <pippin@openedhand.com>
* clutter/clutter-container.[ch]: added
clutter_container_find_child_by_name.
Øyvind Kolås [Fri, 28 Sep 2007 11:03:21 +0000 (11:03 +0000)]
2007-09-28 Øyvind Kolås <pippin@openedhand.com>
* clutter/glx/clutter-stage-glx.c: (clutter_stage_glx_realize):
removed unused variable perspective.
* tests/test-events.c: (main): added CLUTTER_STAGE() cast.
* tests/test-threads.c: include unistd.h for sleep().
Øyvind Kolås [Fri, 28 Sep 2007 10:54:42 +0000 (10:54 +0000)]
* clutter/clutter-label.c: (clutter_label_ensure_layout): avoid
calling pango_layout_set_text|markup before we've got any text.
Matthew Allum [Thu, 27 Sep 2007 22:30:58 +0000 (22:30 +0000)]
2007-09-27 Matthew Allum <mallum@openedhand.com>
* tests/test-scale.c:
Fix out of about array addressing (#522, Tommi Komulainen)
Matthew Allum [Thu, 27 Sep 2007 22:20:30 +0000 (22:20 +0000)]
2007-09-27 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-clone-texture.c:
* clutter/clutter-rectangle.c:
Include config.h in all c files (#524, Tommi Komulainen)
Matthew Allum [Thu, 27 Sep 2007 22:15:25 +0000 (22:15 +0000)]
2007-09-27 Matthew Allum <mallum@openedhand.com>
Merge from stable.
* clutter/clutter-behaviour-path.c: (path_alpha_to_position)
Fix uninitialized variable (#480, Gwenole Beauchesne)
Matthew Allum [Thu, 27 Sep 2007 21:38:38 +0000 (21:38 +0000)]
2007-09-27 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-event.c:
* clutter/clutter-event.h:
* clutter/clutter-main.c:
Further event tweaks;
- Ref the event actor source
- Protect against off stage events (button releases)
- Move more into ClutterEventAny
- Add a click count to button event (as yet unused)
- Minor cleanups
* clutter/clutter-actor.c:
Make scale x/y a property.
* clutter/clutter-private.h:
Remove _clutter_actor_apply_modelview*
* clutter/eglx/clutter-backend-egl.c:
Warning cleanup
* clutter/eglx/clutter-stage-egl.c:
* clutter/glx/clutter-stage-glx.c:
* clutter/sdl/clutter-stage-sdl.c:
Avoid setting viewport directly, but set sync flag.
* clutter/pango/pangoclutter-render.c: (draw_glyph):
Minor cleanups.
* clutter/Makefile.am:
* tests/Makefile.am:
* tests/test-score.c
* clutter/clutter.h:
* clutter/clutter-score.h:
* clutter/clutter-score.c:
Add very initial (broken) ClutterScore implementation.
Ross Burton [Tue, 25 Sep 2007 13:22:24 +0000 (13:22 +0000)]
2007-09-25 Ross Burton <ross@openedhand.com>
Merge from stable.
* clutter/clutter-group.c:
Optimise sort_z_order.
Emmanuele Bassi [Mon, 17 Sep 2007 11:34:03 +0000 (11:34 +0000)]
2007-09-17 Emmanuele Bassi <ebassi@openedhand.com>
Merge from stable
* clutter/eglnative/clutter-event-egl.c:
Flag every device click after the first as motion events
instead of button presses. (#505, Shreyas Srinivasan)
Matthew Allum [Mon, 10 Sep 2007 09:16:33 +0000 (09:16 +0000)]
2007-09-10 Matthew Allum <mallum@openedhand.com>
Port from stable branch.
* clutter/eglnative/clutter-event-egl.c: (clutter_event_dispatch):
Only declare tsevent if we have tslib (#498, Robert Bragg)
Emmanuele Bassi [Thu, 6 Sep 2007 10:37:24 +0000 (10:37 +0000)]
2007-09-06 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-stage.c: Remove stray include <gdk-pixbuf-xlib.h>
in ClutterStage: the code requesting it was moved in the backends.
Emmanuele Bassi [Fri, 31 Aug 2007 11:58:20 +0000 (11:58 +0000)]
Fix the ClutterRectangle border drawing
Apply a patch from Neil Roberts (bug 488) for fixing the drawing of the
rectangle border, by not overdrawing the rectangle on the border and by
doing the correct check on the border colour.
Matthew Allum [Wed, 29 Aug 2007 22:32:47 +0000 (22:32 +0000)]
2007-08-29 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-effect.c: (clutter_effect_template_set_property):
Add missing break statement. Whoops.
Matthew Allum [Wed, 29 Aug 2007 19:11:18 +0000 (19:11 +0000)]
2007-08-29 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-main.c: (_clutter_do_pick):
Call glFinish before reading pixels
* clutter/eglx/clutter-stage-egl.c: (clutter_stage_egl_realize):
Add missing read surface in making context current.
Above fixes via Kate Alhola.
* clutter/glx/clutter-glx.h:
Add missing filter funcs so there actually exported
Matthew Allum [Fri, 24 Aug 2007 15:12:52 +0000 (15:12 +0000)]
2007-08-24 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
* clutter/clutter-event.h:
* clutter/clutter-main.c:
* clutter/clutter-stage.c:
* clutter/clutter-stage.h:
* clutter/glx/clutter-backend-glx.c:
* clutter/glx/clutter-backend-glx.h:
* clutter/glx/clutter-event-glx.c:
* clutter/glx/clutter-stage-glx.c:
* clutter/glx/clutter-stage-glx.h:
Add initial support for stage state events.
Fix fullscreening for an already mapped stage.
* tests/test-events.c:
Print out info from the above. Blue button now toggles
fullscreen.
* clutter/clutter-effect.c:
* clutter/clutter-effect.h:
Add a setting for templates to ref or clone underlying
timelines. (As to improve sync issues like those in foofone)
* tests/test-timeline.c:
Also add completed signals.
* clutter/cogl/gles/cogl.c: (cogl_texture_image_2d):
* configure.ac:
Forward port from stable branch. RGB Image fixes gles
and check for lower case libgles_cm.
Tomas Frydrych [Fri, 24 Aug 2007 06:19:06 +0000 (06:19 +0000)]
Fixed rotation around x axis (bug 486).
* clutter/clutter-actor.c:
(_clutter_actor_apply_modelview_transform):
Emmanuele Bassi [Thu, 23 Aug 2007 12:47:25 +0000 (12:47 +0000)]
2007-08-23 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-private.h:
* clutter/clutter-event.c: Revert the event queue ordering
commit.
* clutter/eglx/clutter-event-egl.c:
* clutter/glx/clutter-event-glx.c:
* clutter/sdl/clutter-event-sdl.c: Update backends.
Tomas Frydrych [Wed, 22 Aug 2007 10:33:26 +0000 (10:33 +0000)]
Fixed CCW rotation in rotate behaviour (bug 483); fixed overall path length calculation for angles > 360 in rotate and ellipse.
Emmanuele Bassi [Wed, 22 Aug 2007 10:12:20 +0000 (10:12 +0000)]
Update ChangeLog for SVN users
Emmanuele Bassi [Wed, 22 Aug 2007 10:12:15 +0000 (10:12 +0000)]
Remove the threads locking in the dispatchers destruction notification
The GLib main loop allows destroying sources while still in the dispatcher
function, so whether the Clutter threading lock is being held or not is
actually unpredictable by the library. This might be fixed in GLib, so we
just do what GTK+ does for the time being and wait.
See bug: http://bugzilla.gnome.org/show_bug.cgi?id=459555
Emmanuele Bassi [Tue, 21 Aug 2007 15:48:57 +0000 (15:48 +0000)]
Update ChangeLog for SVN users
Emmanuele Bassi [Tue, 21 Aug 2007 15:48:51 +0000 (15:48 +0000)]
Return event coordinates for 3BUTTON_PRESS events
The switch() in clutter_event_get_coords() wasn't returning the coordinates
for the 3 button press events, thus those events never reached the actors.
Emmanuele Bassi [Tue, 21 Aug 2007 15:48:44 +0000 (15:48 +0000)]
Correctly initialise the multiple clicks variables
Emmanuele Bassi [Tue, 21 Aug 2007 15:48:37 +0000 (15:48 +0000)]
Check for pending events from the tail of the events queue
When checking for pending events we need to look from the tail of the
list backwards.
Emmanuele Bassi [Tue, 21 Aug 2007 15:48:30 +0000 (15:48 +0000)]
Fix previous ChangeLog message
Emmanuele Bassi [Tue, 21 Aug 2007 15:48:24 +0000 (15:48 +0000)]
Update ChangeLog for SVN users
Emmanuele Bassi [Tue, 21 Aug 2007 15:48:13 +0000 (15:48 +0000)]
Preserve ordering when placing synthetic events in the queue
When we are in the the event translation function sometimes we need to
synthesise events: the double and triple click events are synthetic events
placed on the queue after a sequence of events has been received, for
instance.
Until now, the events were placed on the queue after the translation from
the native events was successful. This led to a loss of ordering because
we put the synthesised event on the queue before the last event that
triggered it.
This patch puts the events on the queue before translating them, with a
"pending" flag set; if the translation sequence is completed then the flag
is removed - otherwise the event is removed from the queue altogether. The
queue manipulation functions have been modified to ignore the "pending"
flag when looking for events.
This patch also adds a private structure overlayed on the ClutterEvent
struct so that we can extend the events with private data without exposing
it in the public API.
Emmanuele Bassi [Tue, 21 Aug 2007 15:48:03 +0000 (15:48 +0000)]
Update ChangeLog for SVN users
Emmanuele Bassi [Tue, 21 Aug 2007 15:47:51 +0000 (15:47 +0000)]
Document ClutterStage properties
Add missing documentation for the ClutterStage properties and enable the
properties and signals in the gtk-doc API reference.
Tomas Frydrych [Tue, 21 Aug 2007 09:25:09 +0000 (09:25 +0000)]
Fixes for 64-bit platforms; use of SSE builtin when available (patches by Gwenole Beauchesne).
Emmanuele Bassi [Mon, 20 Aug 2007 20:16:15 +0000 (20:16 +0000)]
2007-08-20 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/Makefile.am:
* clutter/clutter-enum-types.h.in:
* clutter/clutter-enum-types.c.in: Use template files for
glib-mkenums; this makes the Makefile template a bit more
clean and the enum types generation more customisable (e.g.
when GLib 2.14 has been released, we can use g_once_init_enter()
and g_once_init_leave() to have thread-safe GType functions
for the enum types as well).
Emmanuele Bassi [Mon, 20 Aug 2007 11:54:28 +0000 (11:54 +0000)]
Relax the CLUTTER_CHECK_VERSION() macro check
The macro should check for a micro version greater or equal to the specified
micro version parameter. Fixes bug 477, patch by Neil Roberts.
Emmanuele Bassi [Mon, 20 Aug 2007 11:22:11 +0000 (11:22 +0000)]
Fix compiler warnings in test-timeline
Emmanuele Bassi [Mon, 20 Aug 2007 09:17:23 +0000 (09:17 +0000)]
Make gtk-doc produce the ClutterTimeline signals
Emmanuele Bassi [Sun, 19 Aug 2007 19:09:26 +0000 (19:09 +0000)]
Update ChangeLog for SVN users
Emmanuele Bassi [Sun, 19 Aug 2007 19:09:20 +0000 (19:09 +0000)]
Various fixes to ClutterTimeline
Emit the ClutterTimeline::new-frame signal only if we arrive there with an
active timeout source. Also, make sure to take a reference on the timeout
when emitting signals.
If the timeline is advancing of zero frames, bump it up to one frame. (bug
471, Rob Bradford)
If the user called clutter_timeline_pause() while in the ::new-frame handler
the timeout is removed and the timeline is reset, while the correct behaviour
should be to simply return. (#371, Johan Bilien)
If we skipped the last frames and we ended up over the frame number, emit
the ::new-frame signal with the last frame before emitting the ::completed
signal.
Remove the call to clutter_timeline_stop() when reaching the end of the
timeline: it was used just to remove the timeout source and it emitted the
::paused signal, which doesn't make any sense. Also rewind the timeline
after emitting the ::completed signal, so that calling get_current_frame()
in the ::completed signal handlers still work.
Emmanuele Bassi [Sun, 19 Aug 2007 17:06:54 +0000 (17:06 +0000)]
No need to unref the ClutterAlpha in the effect closure
The ownership of the ClutterAlpha object is transferred to the ClutterBehaviour
used by the effect; we just need to unref the behaviour to make the alpha
object disappear.
Emmanuele Bassi [Sun, 19 Aug 2007 17:06:41 +0000 (17:06 +0000)]
Protect the version components
Emmanuele Bassi [Sun, 19 Aug 2007 17:06:37 +0000 (17:06 +0000)]
Replace the note in clutter_do_event()
Use an EVENT note and not a SCHEDULER one.
Emmanuele Bassi [Sun, 19 Aug 2007 17:06:22 +0000 (17:06 +0000)]
Use g_list_insert_sorted() instead of our custom function
The clutter_timeout_pool_insert_sorted() function caused an inversion of
the timeout sources in the pool; this led to a wrong behaviour in the
execution of the timeout functions. See bug 471.
This patch drops clutter_timeout_pool_insert_sorted() in favour of the
standard g_list_insert_sorted(), which produces identical behaviours with
and without the pool.
A new test, written by Rob Bradford, has been added to the regression test
suite in order to identify sorting issues with the timeout pools.
Matthew Allum [Sun, 19 Aug 2007 00:03:01 +0000 (00:03 +0000)]
2007-08-19 Matthew Allum <mallum@openedhand.com>
* clutter/eglx/clutter-event-egl.c: (clutter_event_dispatch):
Fix clutter_thread typo (Kate Alhola)
Emmanuele Bassi [Sat, 18 Aug 2007 12:39:40 +0000 (12:39 +0000)]
Update ChangeLog for SVN users
Emmanuele Bassi [Sat, 18 Aug 2007 12:39:36 +0000 (12:39 +0000)]
Fix clutter_behaviour_rotate_get_center()
Apply a patch from Neil Roberts (bug 468) that makes the get_center() method
of ClutterBehaviourRotate return the correct tuple of coordinates.
Also, fix some coding style issues and make sure to freeze and thaw the
GObject notification queue when emitting the notify signal on multiple
properties in one method.
Emmanuele Bassi [Sat, 18 Aug 2007 12:39:30 +0000 (12:39 +0000)]
Update the Since version in the API that has been backported
Some of the API landed in trunk has been backported to the stable branch
after testing. This patch updates the Since: tag in the API reference to
reflect the time when the API was first added to a release.
Emmanuele Bassi [Wed, 15 Aug 2007 19:50:36 +0000 (19:50 +0000)]
Update ChangeLog for SVN users
Emmanuele Bassi [Wed, 15 Aug 2007 19:50:31 +0000 (19:50 +0000)]
Add checks on the reactive accessors
Check for the parameter in the various "reactive" flag accessors.
Emmanuele Bassi [Wed, 15 Aug 2007 19:50:24 +0000 (19:50 +0000)]
Update ChangeLogs for SVN users
Emmanuele Bassi [Wed, 15 Aug 2007 19:50:16 +0000 (19:50 +0000)]
Add clutter_effect_depth(), simple wrapper around the depth behaviour
This patch adds a new effect function, wrapping ClutterBehaviourDepth into
clutter_effect_depth().
Emmanuele Bassi [Wed, 15 Aug 2007 13:29:43 +0000 (13:29 +0000)]
Fix for the smoothstep alpha function
When computing the increasing smoothstep alpha value use the right type
for the results, to avoid overflowing the [0, 0xffff] range of the alpha
value.
Also use the right format when printing out the opacity and alpha values
in the opacity behaviour.
Emmanuele Bassi [Tue, 14 Aug 2007 08:01:43 +0000 (08:01 +0000)]
Update ChangeLog for SVN users
Emmanuele Bassi [Tue, 14 Aug 2007 08:01:33 +0000 (08:01 +0000)]
Rename ClutterContainer raise() and lower() methods to avoid clashes
Language bindings will have problems with raise() and lower() bein in both
ClutterContainer and ClutterActor; hence, this patch renames
clutter_container_raise() and clutter_container_lower() to
clutter_container_raise_child() and clutter_container_lower_child(),
respectively.
Matthew Allum [Mon, 13 Aug 2007 20:48:01 +0000 (20:48 +0000)]
2007-08-13 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-actor.c:
* clutter/clutter-actor.h:
* clutter/clutter-event.c:
* clutter/clutter-event.h:
* clutter/clutter-main.c:
* clutter/clutter-main.h:
* clutter/clutter-private.h:
* clutter/clutter-stage.c:
* clutter/clutter-stage.h:
* clutter/clutter-types.h:
Initial implementation of actors emmitting event signals (423);
- Actors set_reactive() to receive mouse events.
(call clutter_enable_motion_events() for per action motion events)
- clutter_stage_set_key_focus () to direct key events.
- Events bubble up to parents (ending at stage)
(original source identified by clutter_event_get_source())
TODO:
- enter/leave notifys for actors.
- stage specific events - fullscreen
- grabs
* tests/test-events.c:
Extend a little to use new API
* clutter/cogl/gl/cogl.c:
* clutter/glx/clutter-backend-glx.c:
Move get_proc_address into cogl and out of backend.
(shaders will need it)
* clutter/clutter-group.c: (clutter_group_real_lower):
Fix a minor compile warning.
* TODO:
Sync up.
Emmanuele Bassi [Mon, 13 Aug 2007 17:01:35 +0000 (17:01 +0000)]
Update ChangeLogs for SVN users
Emmanuele Bassi [Mon, 13 Aug 2007 17:01:30 +0000 (17:01 +0000)]
Implement ::raise(), ::lower() and ::sort_depth_order() in ClutterBox
Provide the implementations of the newly added ClutterContainer virtual
functions inside ClutterBox.
Emmanuele Bassi [Mon, 13 Aug 2007 17:01:25 +0000 (17:01 +0000)]
Use the sibling to reinsert the actor at the right position
Fix a bug where we used the actor to reposition itself in the group. This
was probably masked by the sort_depth_order() call.
Emmanuele Bassi [Mon, 13 Aug 2007 17:01:12 +0000 (17:01 +0000)]
Add more checks to ClutterContainer::raise() and ::lower()
Check that the actors passed are actually children of the container,
as the implementations assume this.
Emmanuele Bassi [Mon, 13 Aug 2007 17:01:07 +0000 (17:01 +0000)]
Make ClutterActor use ClutterContainer methods
Every direct reference to ClutterGroup has been removed, in favour of
ClutterContainer - which is the official way of creating container
actors as of 0.4.
Emmanuele Bassi [Mon, 13 Aug 2007 17:00:58 +0000 (17:00 +0000)]
Move depth ordering methods from ClutterGroup to ClutterContainer
Since ClutterActor directly calls ClutterGroup methods we need ClutterContainer
to provide them, so that every container actor behaves the same way.
This patch makes ::raise, ::lower and ::sort_depth_order virtual functions
of the ClutterContainer interface, implemented by ClutterGroup.
The documentation has been added and deprecation warnings have been added
as well.
Emmanuele Bassi [Mon, 13 Aug 2007 17:00:52 +0000 (17:00 +0000)]
Use clutter_container_find_child_by_id() when picking
ClutterStage now uses the newly added clutter_container_find_child_by_id()
function to find the right child in the scenegraph, using the picking id.
This fixes the test-boxes test case.
Emmanuele Bassi [Mon, 13 Aug 2007 17:00:47 +0000 (17:00 +0000)]
Implement ClutterContainer::find_child_by_id() in ClutterBox
Iterate (recursively) on the children of a box to find the one with the
given unique id.
Emmanuele Bassi [Mon, 13 Aug 2007 17:00:37 +0000 (17:00 +0000)]
Make ::find_child_by_id() a method of ClutterContainer
Finding a child by its ID is a method that should be used by every container
and not only by ClutterGroup. This is needed to actually fix the picking in
ClutterStage.
Matthew Allum [Sun, 12 Aug 2007 21:30:14 +0000 (21:30 +0000)]
2007-08-12 Matthew Allum <mallum@openedhand.com>
* clutter/clutter-texture.c: (texture_upload_data):
Align texture data correctly for edge tiles.
(#422 - Neil Roberts)
Emmanuele Bassi [Sun, 12 Aug 2007 13:19:31 +0000 (13:19 +0000)]
2007-08-12 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-timeout-pool.c: Fix removing and adding timeouts
to the timeout pool during a dispatch of a timeout source already
inside the pool. (#456, based on a patch by Neil Roberts)
(clutter_timeout_dispatch), (clutter_timeout_pool_dispatch): Hold
the main Clutter lock in the pool dispatch function, instead of
the per-timeout dispatch; this guarantees that the ref+unref of
the single timeouts are done under the main lock.
Emmanuele Bassi [Sun, 12 Aug 2007 12:41:05 +0000 (12:41 +0000)]
Update ChangeLog
Matthew Allum [Sat, 11 Aug 2007 19:28:05 +0000 (19:28 +0000)]
2007-08-11 Matthew Allum <mallum@openedhand.com>
Ported from 0.4 branch.
* clutter/clutter-texture.c:
Fix typo in clutter_texture_get_pixbuf (#458, #442?, Neil Roberts).
Use take_object when getting pixbuf prop to avoid ref leak
Emmanuele Bassi [Thu, 9 Aug 2007 13:24:42 +0000 (13:24 +0000)]
2007-08-09 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-box.c: Rename a variable to fix a compiler
warning.
Emmanuele Bassi [Wed, 8 Aug 2007 23:23:18 +0000 (23:23 +0000)]
2007-08-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-behaviour-ellipse:
(clutter_behaviour_ellipse_get_tiltx): Remove useless
"Return" in the API documentation.
Emmanuele Bassi [Wed, 8 Aug 2007 21:36:16 +0000 (21:36 +0000)]
2007-08-08 Emmanuele Bassi <ebassi@openedhand.com>
* clutter/clutter-timeout-pool.c: Fix sorting of the pool
when inserting and removing timeout sources. (#449, Neil
Roberts)