Keymap: Special keymap for clip editor scrubbing area

Reviewers: sergey

Differential Revision: https://developer.blender.org/D4825
This commit is contained in:
2019-05-08 14:10:09 +02:00
parent 6950faa24e
commit c79fc710b3
5 changed files with 31 additions and 8 deletions

View File

@@ -1322,6 +1322,20 @@ def km_scrubbing(params):
return keymap
def km_scrubbing_clip(params):
items = []
keymap = (
"Clip Scrubbing",
{"space_type": 'CLIP_EDITOR', "region_type": 'PREVIEW'},
{"items": items},
)
items.extend([
("clip.change_frame", {"type": "LEFTMOUSE", "value": 'PRESS'}, None),
])
return keymap
def km_graph_editor_generic(_params):
items = []
@@ -6165,6 +6179,7 @@ def generate_keymaps(params=None):
km_mask_editing(params),
km_markers(params),
km_scrubbing(params),
km_scrubbing_clip(params),
km_graph_editor_generic(params),
km_graph_editor(params),
km_image_generic(params),

View File

@@ -155,6 +155,13 @@ void ED_scrubbing_draw(const ARegion *ar,
GPU_matrix_pop_projection();
}
bool ED_event_in_scrubbing_region(const ARegion *ar, const wmEvent *event)
{
rcti rect = ar->winrct;
rect.ymin = rect.ymax - UI_SCRUBBING_MARGIN_Y;
return BLI_rcti_isect_pt(&rect, event->x, event->y);
}
void ED_channel_search_draw(const bContext *C, ARegion *ar, bDopeSheet *dopesheet)
{
GPU_matrix_push_projection();

View File

@@ -27,12 +27,15 @@
struct bContext;
struct View2DGrid;
struct bDopeSheet;
struct wmEvent;
void ED_scrubbing_draw(const struct ARegion *ar,
const struct Scene *scene,
bool display_seconds,
bool discrete_frames);
bool ED_event_in_scrubbing_region(const struct ARegion *ar, const struct wmEvent *event);
void ED_channel_search_draw(const struct bContext *C,
struct ARegion *ar,
struct bDopeSheet *dopesheet);

View File

@@ -50,6 +50,7 @@
#include "ED_screen.h"
#include "ED_screen_types.h"
#include "ED_space_api.h"
#include "ED_scrubbing.h"
#include "GPU_immediate.h"
#include "GPU_immediate_util.h"
@@ -1566,13 +1567,6 @@ static bool event_in_markers_region(const ARegion *ar, const wmEvent *event)
return BLI_rcti_isect_pt(&rect, event->x, event->y);
}
static bool event_in_scrubbing_region(const ARegion *ar, const wmEvent *event)
{
rcti rect = ar->winrct;
rect.ymin = rect.ymax - UI_SCRUBBING_MARGIN_Y;
return BLI_rcti_isect_pt(&rect, event->x, event->y);
}
/**
* \param ar: Region, may be NULL when adding handlers for \a sa.
*/
@@ -1620,7 +1614,7 @@ static void ed_default_handlers(
/* time-scrubbing */
keymap = WM_keymap_ensure(wm->defaultconf, "Scrubbing", 0, 0);
WM_event_add_keymap_handler_poll(handlers, keymap, event_in_scrubbing_region);
WM_event_add_keymap_handler_poll(handlers, keymap, ED_event_in_scrubbing_region);
/* frame changing and timeline operators (for time spaces) */
keymap = WM_keymap_ensure(wm->defaultconf, "Animation", 0, 0);

View File

@@ -1002,9 +1002,13 @@ static void clip_preview_region_init(wmWindowManager *wm, ARegion *ar)
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
/* own keymap */
keymap = WM_keymap_ensure(wm->defaultconf, "Clip", SPACE_CLIP, 0);
WM_event_add_keymap_handler_v2d_mask(&ar->handlers, keymap);
keymap = WM_keymap_ensure(wm->defaultconf, "Clip Scrubbing", SPACE_CLIP, RGN_TYPE_PREVIEW);
WM_event_add_keymap_handler_poll(&ar->handlers, keymap, ED_event_in_scrubbing_region);
keymap = WM_keymap_ensure(wm->defaultconf, "Clip Graph Editor", SPACE_CLIP, 0);
WM_event_add_keymap_handler_v2d_mask(&ar->handlers, keymap);