Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/editors/space_sequencer/space_sequencer.c')
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c32
1 files changed, 29 insertions, 3 deletions
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index 9b6c61c7af0..482b5b378ab 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -121,6 +121,9 @@ static SpaceLink *sequencer_new(const bContext *C)
sseq->mainb = SEQ_DRAW_IMG_IMBUF;
sseq->flag = SEQ_SHOW_GPENCIL | SEQ_USE_ALPHA;
+ /* backdrop */
+ sseq->overdrop_zoom = 1.0f;
+
/* header */
ar = MEM_callocN(sizeof(ARegion), "header for sequencer");
@@ -166,7 +169,7 @@ static SpaceLink *sequencer_new(const bContext *C)
BLI_addtail(&sseq->regionbase, ar);
ar->regiontype = RGN_TYPE_WINDOW;
-
+
/* seq space goes from (0,8) to (0, efra) */
ar->v2d.tot.xmin = 0.0f;
@@ -180,7 +183,7 @@ static SpaceLink *sequencer_new(const bContext *C)
ar->v2d.min[1] = 0.5f;
ar->v2d.max[0] = MAXFRAMEF;
- ar->v2d.max[1] = MAXSEQ;
+ ar->v2d.max[1] = MAXSEQ * 4;
ar->v2d.minzoom = 0.01f;
ar->v2d.maxzoom = 100.0f;
@@ -478,8 +481,13 @@ static void sequencer_main_area_init(wmWindowManager *wm, ARegion *ar)
/* add drop boxes */
lb = WM_dropboxmap_find("Sequencer", SPACE_SEQ, RGN_TYPE_WINDOW);
-
+
WM_event_add_dropbox_handler(&ar->handlers, lb);
+
+ /* no modal keymap here, only operators use this currently */
+ if (BLI_listbase_is_empty(&ar->widgetmaps)) {
+ BLI_addhead(&ar->widgetmaps, WM_widgetmap_from_type("Seq_Canvas", SPACE_SEQ, RGN_TYPE_WINDOW, false));
+ }
}
static void sequencer_main_area_draw(const bContext *C, ARegion *ar)
@@ -556,6 +564,10 @@ static void sequencer_preview_area_init(wmWindowManager *wm, ARegion *ar)
/* own keymap */
keymap = WM_keymap_find(wm->defaultconf, "SequencerPreview", SPACE_SEQ, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+
+ if (BLI_listbase_is_empty(&ar->widgetmaps)) {
+ BLI_addhead(&ar->widgetmaps, WM_widgetmap_from_type("Seq_Canvas", SPACE_SEQ, RGN_TYPE_PREVIEW, false));
+ }
}
static void sequencer_preview_area_draw(const bContext *C, ARegion *ar)
@@ -592,6 +604,9 @@ static void sequencer_preview_area_draw(const bContext *C, ARegion *ar)
ED_region_visible_rect(ar, &rect);
ED_scene_draw_fps(scene, &rect);
}
+
+ WM_widgets_update(C, ar->widgetmaps.first);
+ WM_widgets_draw(C, ar->widgetmaps.first, false);
}
static void sequencer_preview_area_listener(bScreen *UNUSED(sc), ScrArea *UNUSED(sa), ARegion *ar, wmNotifier *wmn)
@@ -687,8 +702,18 @@ static void sequencer_buttons_area_listener(bScreen *UNUSED(sc), ScrArea *UNUSED
break;
}
}
+
/* ************************************* */
+static void sequencer_widgets(void)
+{
+ /* create the widgetmap for the area here */
+ WM_widgetmaptype_find("Seq_Canvas", SPACE_SEQ, RGN_TYPE_WINDOW, false, true);
+
+ WM_widgetmaptype_find("Seq_Canvas", SPACE_SEQ, RGN_TYPE_PREVIEW, false, true);
+}
+
+
/* only called once, from space/spacetypes.c */
void ED_spacetype_sequencer(void)
{
@@ -708,6 +733,7 @@ void ED_spacetype_sequencer(void)
st->dropboxes = sequencer_dropboxes;
st->refresh = sequencer_refresh;
st->listener = sequencer_listener;
+ st->widgets = sequencer_widgets;
/* regions: main window */
art = MEM_callocN(sizeof(ARegionType), "spacetype sequencer region");