summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2007-03-19 03:04:08 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2007-03-19 03:04:08 +0000
commit48d8e9955bea172943e3eebc6657cbb6b8fe7a20 (patch)
tree52b919e8ea47bcc24e24c5afeb2c0b7895e8e968 /src
parentuse ::upgrade for getting NR::Rect (diff)
downloadinkscape-48d8e9955bea172943e3eebc6657cbb6b8fe7a20.tar.gz
inkscape-48d8e9955bea172943e3eebc6657cbb6b8fe7a20.zip
make arena remember its parent canvasarena, if any (so that an arenaitem can get access to the canvas viewbox for picking optimization)
(bzr r2712)
Diffstat (limited to 'src')
-rw-r--r--src/display/canvas-arena.cpp1
-rw-r--r--src/display/nr-arena.cpp1
-rw-r--r--src/display/nr-arena.h3
3 files changed, 5 insertions, 0 deletions
diff --git a/src/display/canvas-arena.cpp b/src/display/canvas-arena.cpp
index de43ec80d..bb60cdc93 100644
--- a/src/display/canvas-arena.cpp
+++ b/src/display/canvas-arena.cpp
@@ -101,6 +101,7 @@ sp_canvas_arena_init (SPCanvasArena *arena)
arena->sticky = FALSE;
arena->arena = NRArena::create();
+ arena->arena->canvasarena = arena;
arena->root = NRArenaGroup::create(arena->arena);
nr_arena_group_set_transparent (NR_ARENA_GROUP (arena->root), TRUE);
diff --git a/src/display/nr-arena.cpp b/src/display/nr-arena.cpp
index e6d0105fb..7c0664d16 100644
--- a/src/display/nr-arena.cpp
+++ b/src/display/nr-arena.cpp
@@ -54,6 +54,7 @@ nr_arena_init (NRArena *arena)
arena->delta = 0; // to be set by desktop from prefs
arena->rendermode = RENDERMODE_NORMAL; // default is normal render
arena->outlinecolor = 0xff; // black; to be set by desktop from bg color
+ arena->canvasarena = NULL;
}
static void
diff --git a/src/display/nr-arena.h b/src/display/nr-arena.h
index 245ce14db..89cb58f39 100644
--- a/src/display/nr-arena.h
+++ b/src/display/nr-arena.h
@@ -36,6 +36,8 @@ enum {
RENDERMODE_OUTLINE
};
+struct SPCanvasArena;
+
struct NRArena : public NRActiveObject {
static NRArena *create() {
return reinterpret_cast<NRArena *>(nr_object_new(NR_TYPE_ARENA));
@@ -44,6 +46,7 @@ struct NRArena : public NRActiveObject {
double delta;
int rendermode;
guint32 outlinecolor;
+ SPCanvasArena *canvasarena; // may be NULL is this arena is not the screen but used for export etc.
};
struct NRArenaClass : public NRActiveObjectClass {