[ease] Use smaller versions when resizing CairoActors.
- From: Nate Stedman <natesm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ease] Use smaller versions when resizing CairoActors.
- Date: Sun, 28 Nov 2010 22:02:50 +0000 (UTC)
commit e3f83f8b76ec131d5a9c5f25a4cd3d85d114b09c
Author: Nate Stedman <natesm gmail com>
Date: Sun Nov 28 17:01:49 2010 -0500
Use smaller versions when resizing CairoActors.
ease-core/ease-actor.vala | 8 ++++++++
ease-core/ease-cairo-actor.vala | 6 ++++--
ease/ease-editor-embed.vala | 2 ++
3 files changed, 14 insertions(+), 2 deletions(-)
---
diff --git a/ease-core/ease-actor.vala b/ease-core/ease-actor.vala
index 7e017bb..c7f5224 100644
--- a/ease-core/ease-actor.vala
+++ b/ease-core/ease-actor.vala
@@ -62,6 +62,14 @@ public abstract class Ease.Actor : Clutter.Group
* The widget of the surrounding rectangle in the editor.
*/
private const uint RECT_WIDTH = 1;
+
+ /**
+ * Whether or not the actor is currently being manually resized by the user.
+ * In subclasses (namely { link CairoActor}), this can cause frequent redraw
+ * calls. Therefore, these subclasses can make optimizations and use lower
+ * resolution media caches (such as that in { link Image}.
+ */
+ public bool resizing { get; set; default = false; }
/**
* Instantiate a new Actor
diff --git a/ease-core/ease-cairo-actor.vala b/ease-core/ease-cairo-actor.vala
index 11c9b6f..2a98bb4 100644
--- a/ease-core/ease-cairo-actor.vala
+++ b/ease-core/ease-cairo-actor.vala
@@ -36,17 +36,19 @@ public class Ease.CairoActor : Actor
e.changed.connect(draw);
draw();
+
+ // draw at full resolution again once redraw is complete
+ notify["resizing"].connect(() => { if (!resizing) draw(); });
}
internal void draw()
{
- //debug("drawing");
tex.set_surface_size((uint)element.width, (uint)element.height);
tex.clear();
var cr = tex.create();
try
{
- element.cairo_render(cr, false);
+ element.cairo_render(cr, resizing);
}
catch (Error e)
{
diff --git a/ease/ease-editor-embed.vala b/ease/ease-editor-embed.vala
index 8de2ac1..61b62fe 100644
--- a/ease/ease-editor-embed.vala
+++ b/ease/ease-editor-embed.vala
@@ -638,6 +638,7 @@ internal class Ease.EditorEmbed : ScrolledEmbedWindow, UndoSource
is_drag_initialized = false;
sender.motion_event.connect(handle_motion);
Clutter.grab_pointer(sender);
+ selected.resizing = true;
// create an UndoAction for this resize
move_undo = new UndoAction(selected.element, "x");
@@ -667,6 +668,7 @@ internal class Ease.EditorEmbed : ScrolledEmbedWindow, UndoSource
is_dragging = false;
sender.motion_event.disconnect(handle_motion);
undo(move_undo);
+ selected.resizing = false;
}
Clutter.ungrab_pointer();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]