commit d490477f4e689020a2228111b39f9adb796b53fe Author: Emmanuele Bassi Date: Tue Sep 15 12:46:44 2015 +0100 Release Clutter 1.24.0 NEWS | 41 +++++++++++++++++++++++++++++++++++++++++ configure.ac | 4 ++-- 2 files changed, 43 insertions(+), 2 deletions(-) commit 0e7b18832a6c694fd2443abeecf91fefc47ee76e Author: Lionel Landwerlin Date: Tue Sep 15 00:32:05 2015 +0100 cogl: reset pending swaps counter on unrealize When removing the frame callback on the CoglOnscreen, we loose the ability to get notified of swap events. This could leave us with a counter != 0 which leads to a deadlock situation after the next realize/draw cycle. https://bugzilla.gnome.org/show_bug.cgi?id=755014 clutter/cogl/clutter-stage-cogl.c | 2 ++ 1 file changed, 2 insertions(+) commit ff1a5aae7ac374592f1a9f7ff7be6d0a4bd576c2 Author: Lionel Landwerlin Date: Tue Sep 15 00:30:05 2015 +0100 x11: stage window: reset framebuffer on foreign window unrealize Similarly to 13dbb74c81bec861d3a135fb53966ae5562831a7, we need to reset the framebuffer in the x11 for foreign windows. https://bugzilla.gnome.org/show_bug.cgi?id=755014 clutter/clutter-backend-private.h | 5 +++++ clutter/clutter-backend.c | 25 +++++++++++++++++++++++++ clutter/gdk/clutter-backend-gdk.c | 27 --------------------------- clutter/gdk/clutter-backend-gdk.h | 4 ---- clutter/gdk/clutter-stage-gdk.c | 3 +-- clutter/x11/clutter-stage-x11.c | 14 ++++++++++++++ 6 files changed, 45 insertions(+), 33 deletions(-) commit 6c7f624f691415ca9ae8c1a95d41b359704d6f1b Author: Lionel Landwerlin Date: Mon Sep 14 23:21:29 2015 +0100 master-clock-default: prevent deadlock with GLX_INTEL_swap_event If we call _clutter_stage_do_update() on a ClutterStage that isn't mapped/visible, no GL command will be queued, and the Mesa/DRI2 implementation of SwapBuffers will do nothing. This causes GLX_INTEL_swap_event to not be emitted by the X server because no swapping has been requested through DRI2 and it eventually leads to a deadlock situation in ClutterStageCogl because we're waiting for an event before we start the next draw cycle. This patch removes the non mapped stages from the list of stages to process. This is consistent with a previous patch for the ClutterMasterClockGdk [1]. [1] : 5733ad58e5a3989f5cb836d42a1cebf3884e7c36 https://bugzilla.gnome.org/show_bug.cgi?id=755014 clutter/clutter-master-clock-default.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) commit ee98a5bbe8ad21519d5e368ca5b2336e5d1da880 Author: Lionel Landwerlin Date: Mon Sep 14 01:00:12 2015 +0200 gdk: x11: notify Cogl immediately of a foreign window resize We want to avoid waiting for the acknowledgement event from the X server as we might redraw the stage before that happens. This patch reimplements a bit of logic already in clutter-gtk [1]. [1] : https://git.gnome.org/browse/clutter-gtk/tree/clutter-gtk/gtk-clutter-embed.c#n723 https://bugzilla.gnome.org/show_bug.cgi?id=754993 clutter/gdk/clutter-stage-gdk.c | 42 +++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) commit aeb19f2f4dcb6d25093802aaac1878c755dc16be Author: Lionel Landwerlin Date: Sun Sep 13 00:38:56 2015 +0200 gdk: move sync_to_vblank setup from master clock to backend Setting up the sync_to_vblank in the MasterClock is a bit too late as the MasterClock can be created after a StageWindow has been created and realized (and therefore all of its Cogl/GL state setup already). So move the setup to the backend, prior to any StageWindow creation. https://bugzilla.gnome.org/show_bug.cgi?id=754938 clutter/gdk/clutter-backend-gdk.c | 5 +++++ clutter/gdk/clutter-master-clock-gdk.c | 4 ---- 2 files changed, 5 insertions(+), 4 deletions(-) commit 9f1db3f1b828a7f2e92877b44da6204c7ad3d505 Author: Marek Černocký Date: Mon Sep 14 13:24:00 2015 +0200 Updated Czech translation po/cs.po | 863 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 428 insertions(+), 435 deletions(-) commit 53bbd4801f870608fc49f51cc4b555636df9f22e Author: Bernd Homuth Date: Sun Sep 13 05:27:22 2015 +0000 Updated German translation po/de.po | 938 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 476 insertions(+), 462 deletions(-) commit 13dbb74c81bec861d3a135fb53966ae5562831a7 Author: Lionel Landwerlin Date: Fri Sep 11 17:24:05 2015 +0200 gdk: stage window: reset framebuffer on foreign window unrealize Clutter still uses part of the deprecated stateful API of Cogl (in particulart cogl_set_framebuffer). It means Cogl can keep an internal reference to the onscreen object we rendered to. In the case of foreign window, we want to avoid this, as we don't know what's going to happen to that window. This change sets the current Cogl framebuffer to a dummy 1x1 framebuffer if the current Cogl framebuffer is the one we're unrealizing. https://bugzilla.gnome.org/show_bug.cgi?id=754890 clutter/gdk/clutter-backend-gdk.c | 29 ++++++++++++++++++++++++++++- clutter/gdk/clutter-backend-gdk.h | 4 ++++ clutter/gdk/clutter-stage-gdk.c | 21 ++++++++++++++++++++- 3 files changed, 52 insertions(+), 2 deletions(-) commit cb4e88884bc811120dabcf473503d23a21044618 Author: Lionel Landwerlin Date: Fri Sep 11 13:15:16 2015 +0200 gdk: master clock: hook ourselves to the paint signal We're currently hooked to the "update" signal of the FrameClock. When embedding Clutter inside GTK+ we want to have the layout phase of GTK+ to notify us the size of our stage. This patch change to FrameClock signal we're listening to, to the "paint" signal to make sure we've received the layout information from GTK+, before painting. Otherwise we paint with a delay of one frame. https://bugzilla.gnome.org/show_bug.cgi?id=754889 clutter/gdk/clutter-master-clock-gdk.c | 6 +++--- clutter/gdk/clutter-stage-gdk.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) commit 5d83260b19c06f216cfdb21a57f256ebee1affef Author: Jonas Ådahl Date: Thu Sep 10 16:12:51 2015 +0800 actor: Fix transforming stage point when scale is less than 1 The commit 6cd24faaa54de3246ca45d1c7426d8b7a74f71db (actor: Clean up transform_stage_point()) changed the validation of the transformation matrix to ignore the fraction part of the determinant. This caused clutter_actor_transform_stage_point() to fail and return FALSE for actors which scale was less than 1. Previously the validation was ('det' being a float): det = (RQ[0][0] * ST[0][0]) + (RQ[0][1] * ST[0][1]) + (RQ[0][2] * ST[0][2]); if (!det) return FALSE; Semantically, the if statement expression '!det' is equivalent to 'det == 0', i.e. 'det == 0.0f'. Post cleanup patches, 'det' was turned into a double, and the if statement was changed to: if (CLUTTER_NEARBYINT (det) == 0) return FALSE; which, different from before, rounds the determinant to the nearest integer value, meaning determinant in the range (-0.5, 0.5) would be considered invalid. This patch reverts this part to the old behavior, while, because of the inexact nature of floating point arithmetics, allowing a bit more liberal meaning of "equals to 0" than '== 0.0'. https://bugzilla.gnome.org/show_bug.cgi?id=754766 clutter/clutter-actor.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) commit 63813ad398a38d5d7f304c497a1c3f0fda92bdd7 Author: Dušan Kazik Date: Thu Sep 10 17:28:07 2015 +0000 Updated Slovak translation po/sk.po | 61 +++++++++++++++++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 32 deletions(-) commit 763a04e4dd140a79bad1c0c1364fd18970f4f2f3 Author: Matej Urbančič Date: Tue Sep 8 23:13:13 2015 +0200 Updated Slovenian translation po/sl.po | 880 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 444 insertions(+), 436 deletions(-) commit 9432e67ee8f5884d883b6ce1e3ac3e84dcd7cd22 Author: Lionel Landwerlin Date: Mon Aug 31 22:58:11 2015 +0100 gdk: stage: create subsurface when dealing with foreign windows on wayland It is safer to create our own wayland surface when rendering into someone else GdkWindow, otherwise we might draw somewhere we didn't intend to. https://bugzilla.gnome.org/show_bug.cgi?id=754697 clutter/gdk/clutter-event-gdk.c | 9 +++ clutter/gdk/clutter-stage-gdk.c | 143 +++++++++++++++++++++++++++++++++++++--- clutter/gdk/clutter-stage-gdk.h | 12 ++++ 3 files changed, 154 insertions(+), 10 deletions(-) commit 3771ef2f08054770ebc6110de14efd8fa2de3a26 Author: Lionel Landwerlin Date: Mon Aug 31 22:55:57 2015 +0100 gdk: stage: report geometry of the underlying surface for foreign windows When running on wayland, we might have our own subsurface desynchronized from the foreign GdkWindow. It is important that we report the size of the actually surface we're rendering to, otherwise the logic in ClutterStage might discard resize operation that resynchronize the subsurface with the stage's size. https://bugzilla.gnome.org/show_bug.cgi?id=754697 clutter/gdk/clutter-stage-gdk.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) commit 55dce70440dc27d6b0e38feccbf62422cfabe499 Author: Lionel Landwerlin Date: Mon Aug 31 23:20:29 2015 +0100 gdk: stage: do not ensure native windows are created with foreign windows For foreign windows this should be dealt with by the embedding framework. In particular on Wayland with foreign windows, we might want to create a subsurface and use the foreign window only for events and frame clock synchronization. https://bugzilla.gnome.org/show_bug.cgi?id=754697 clutter/gdk/clutter-stage-gdk.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) commit a9b38fefdc097427cc33ca2b8d527415ee4f157b Author: Lionel Landwerlin Date: Mon Sep 7 12:21:18 2015 +0100 gdk: stage: disable some operations for foreign windows Some operations like : * resize * show/hide * set_title * set_user_resizable should be handled by the embedding framework, so disable them for foreign windows. https://bugzilla.gnome.org/show_bug.cgi?id=754671 clutter/gdk/clutter-stage-gdk.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) commit 5733ad58e5a3989f5cb836d42a1cebf3884e7c36 Author: Lionel Landwerlin Date: Sat Sep 5 23:08:09 2015 +0100 gdk: master clock: only process mapped & realized stages When using Clutter embed inside a Gtk application, a stage might end up realized but not visible. In this case we might discard doing any kind of animation processing. https://bugzilla.gnome.org/show_bug.cgi?id=754671 clutter/gdk/clutter-master-clock-gdk.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) commit 6183eb363282e5143bfd52aa36b5e6a318c4c992 Author: Lionel Landwerlin Date: Mon Sep 7 12:27:26 2015 +0100 gdk: master-clock: disable vsync throttling When running with a master clock based on the GdkFrameClock, we get synchronized with the compositor, so no need for throttling rendering. In particular when dealing with foreign windows, we run into deadlocks in Mesa because of the way the Mesa wayland backend is implemented [1]. [1] : http://cgit.freedesktop.org/mesa/mesa/tree/src/egl/drivers/dri2/platform_wayland.c#n330 https://bugzilla.gnome.org/show_bug.cgi?id=754671 clutter/gdk/clutter-master-clock-gdk.c | 3 +++ 1 file changed, 3 insertions(+) commit dbec3be99686685dfb704cba468cb807a8b5760d Author: Emmanuele Bassi Date: Fri Sep 4 13:53:04 2015 +0100 grid-layout: Clarify the scope of the orientation property Just like GtkGrid, changing the orientation of a ClutterGridLayout does not change the existing layout; the orientation property is only used as a hint when adding new children. clutter/clutter-grid-layout.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) commit 41e18f795a6cd090fbe2fdf039ea555a5df735b0 Author: Milo Casagrande Date: Fri Sep 4 07:51:39 2015 +0000 Updated Italian translation po/it.po | 556 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 279 insertions(+), 277 deletions(-) commit 7ed96aabd8c3703f5b0572ee7f000821a25d019d Author: Emmanuele Bassi Date: Thu Sep 3 14:15:11 2015 +0100 grid: Use the proper orientation for the request mode We automatically switch the request mode of the container depending on the GridLayout's orientation, but we need to keep track of the request mode during allocation, so that we don't get out of sync if the user changed the request mode after adding the layout manager. This change also brings us closer to the code in GtkGrid. clutter/clutter-grid-layout.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) commit 8a7304ee7d86fd3649a754a059a596c39792a97d Author: Aurimas Černius Date: Wed Sep 2 21:13:29 2015 +0300 Updated Lithuanian translation po/lt.po | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) commit 41bde79cf65a9a4c7c93aa4e5a03f5701161d5ee Author: Dušan Kazik Date: Tue Sep 1 08:15:40 2015 +0000 Updated Slovak translation po/sk.po | 75 ++++++++++++++++++++++++++++++---------------------------------- 1 file changed, 35 insertions(+), 40 deletions(-) commit 5ae744c835032b75146a9869e01f5920de5c2e32 Author: Balázs Úr Date: Mon Aug 31 15:32:01 2015 +0000 Updated Hungarian translation po/hu.po | 871 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 438 insertions(+), 433 deletions(-) commit 3bb58de17064de7d9d9d209c26ccf5d8f49c5e83 Author: Yosef Or Boczko Date: Sun Aug 30 11:12:55 2015 +0300 Updated Hebrew translation po/he.po | 870 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 435 insertions(+), 435 deletions(-) commit dea5057fbd7e9e2f0199ec6df6e5716635f0e5ee Author: Emmanuele Bassi Date: Sat Aug 29 20:19:51 2015 +0100 grid: Use the orientation of the request We use the orientation of the grid to get the preferred size of the layout, but we should be using the orientation of the request instead. The preferred width has an orizontal orientation, and the preferred height has a vertical orientation. This allows us to refactor the get_preferred_* implementation into a separate function. clutter/clutter-grid-layout.c | 69 +++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 28 deletions(-) commit ed80a4bebb4c271e0f3f22208b38010d9ba4a812 Author: Dušan Kazik Date: Sat Aug 29 15:58:00 2015 +0000 Updated Slovak translation po/sk.po | 636 +++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 334 insertions(+), 302 deletions(-) commit 6b7cfceb5ee372269f22bcd3b785a245429c6998 Author: Tom Tryfonidis Date: Fri Aug 28 20:50:07 2015 +0000 Updated Greek translation po/el.po | 628 ++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 315 insertions(+), 313 deletions(-) commit 6bcbd1bfce75f82d95c6b15f8f4bdf1c3702f436 Author: Andika Triwidada Date: Fri Aug 28 13:02:13 2015 +0000 Updated Indonesian translation po/id.po | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) commit 0e4d11bcd8fca592215259568f2e816d3f501397 Author: Lionel Landwerlin Date: Tue Aug 25 23:28:18 2015 +0100 gdk: master clock: fix incorrect symbol use https://bugzilla.gnome.org/show_bug.cgi?id=754134 clutter/gdk/clutter-master-clock-gdk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) commit 5b9c31a0cece7852a22a76e24a4738cb4c773d1d Author: Lionel Landwerlin Date: Tue Aug 25 00:13:49 2015 +0100 gdk: fix memory corruption g_hash_table_replace will free the list pointer we're modifying. Let's just do memory management ourselves. https://bugzilla.gnome.org/show_bug.cgi?id=754134 clutter/gdk/clutter-master-clock-gdk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) commit 84ad306a6598b831c4827cb6151a7f1bde33a6ff Author: Piotr Drąg Date: Wed Aug 26 17:38:58 2015 +0200 Updated Polish translation po/pl.po | 656 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 328 insertions(+), 328 deletions(-) commit 6e6d5b152b3d9c346bb6d02bd5234bf812ec325f Author: Chao-Hsiung Liao Date: Tue Aug 25 22:51:41 2015 +0000 Updated Chinese (Taiwan) translation po/zh_TW.po | 871 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 438 insertions(+), 433 deletions(-) commit e26a0c3afc82bba1226403b05d5836c6dce8c4c9 Author: Fran Dieguez Date: Tue Aug 25 15:51:15 2015 +0200 Updated Galician translations po/gl.po | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) commit e10fd2d4c01d339056a30f4d3dca713147986b9e Author: Daniel Mustieles Date: Tue Aug 25 11:01:18 2015 +0200 Updated Spanish translation po/es.po | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) commit 8f20f86a80882ce3506a7feb2527c64e95045631 Author: Pedro Albuquerque Date: Tue Aug 25 06:20:10 2015 +0000 Updated Portuguese translation po/pt.po | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) commit 81a560f9bf043c54a37c947a52f149fb4d5e0064 Author: Alexandre Franke Date: Mon Aug 24 16:02:38 2015 +0000 Updated French translation po/fr.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) commit 84c5846aa07080c825702af798d3bae4c888b240 Author: Emmanuele Bassi Date: Mon Aug 24 10:01:03 2015 +0100 image: Use internal function for the texture node ClutterActor has a convenience function that removes the need to query the actor's state and apply it to a ClutterTextureNode, so we should use it. clutter/clutter-image.c | 41 +++-------------------------------------- 1 file changed, 3 insertions(+), 38 deletions(-) commit af010d5e2daf09f8ce4e453e32efa4920b3d103a Author: Emmanuele Bassi Date: Mon Aug 24 09:59:53 2015 +0100 canvas: Use internal function for the texture node ClutterActor has a convenience function that removes the need to query the actor's state and apply it to a ClutterTextureNode, so we should use it. clutter/clutter-canvas.c | 45 ++++++--------------------------------------- 1 file changed, 6 insertions(+), 39 deletions(-) commit cf7e37b53bb5f5a91d3a849e88e1cfeeada9aa0c Author: Emmanuele Bassi Date: Mon Aug 24 09:59:16 2015 +0100 actor: Add internal "create textute node" function To avoid excessive copy and paste. We could even consider making it public before release. clutter/clutter-actor-private.h | 3 ++ clutter/clutter-actor.c | 63 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+) commit 6cc12adf4d1b3ab5475caa98a7c99a5b577459e1 Author: Emmanuele Bassi Date: Fri Aug 21 15:02:47 2015 +0100 Post-release version bump to 1.23.7 configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)