diff options
Diffstat (limited to 'source/blender/editors/space_sequencer/space_sequencer.c')
-rw-r--r-- | source/blender/editors/space_sequencer/space_sequencer.c | 32 |
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"); |