UI: Support using Ctrl+Scrollwheel to cycle properties editor tabs

Small side effect is that area operators (toggle fullscreen/maximized, duplicate
area) are now displayed in RMB-menu. Makes sense anyway.
This commit is contained in:
Julian Eisel
2018-10-29 23:28:08 +01:00
parent a0d40c6a8c
commit 70582cf8d2
6 changed files with 19 additions and 9 deletions

View File

@@ -364,4 +364,10 @@ void ED_area_type_hud_ensure(struct bContext *C, struct ScrArea *sa);
#define ED_KEYMAP_GPENCIL 32
#define ED_KEYMAP_HEADER 64
/* SCREEN_OT_space_context_cycle direction */
enum {
SPACE_CONTEXT_CYCLE_PREV,
SPACE_CONTEXT_CYCLE_NEXT,
};
#endif /* __ED_SCREEN_H__ */

View File

@@ -4614,12 +4614,6 @@ static void SCREEN_OT_region_blend(wmOperatorType *ot)
/** \name Space Context Cycle Operator
* \{ */
/* SCREEN_OT_space_context_cycle direction */
enum {
SPACE_CONTEXT_CYCLE_PREV,
SPACE_CONTEXT_CYCLE_NEXT,
};
static const EnumPropertyItem space_context_cycle_direction[] = {
{SPACE_CONTEXT_CYCLE_PREV, "PREV", 0, "Previous", ""},
{SPACE_CONTEXT_CYCLE_NEXT, "NEXT", 0, "Next", ""},

View File

@@ -351,8 +351,14 @@ static void buttons_operatortypes(void)
static void buttons_keymap(struct wmKeyConfig *keyconf)
{
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Property Editor", SPACE_BUTS, 0);
wmKeyMapItem *kmi;
WM_keymap_add_item(keymap, "BUTTONS_OT_context_menu", RIGHTMOUSE, KM_PRESS, 0, 0);
kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_PREV);
kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_NEXT);
}
/* add handlers, stuff you only do once or on area/region changes */
@@ -410,7 +416,11 @@ static void buttons_header_region_message_subscribe(
static void buttons_navigation_bar_region_init(wmWindowManager *wm, ARegion *ar)
{
wmKeyMap *keymap = WM_keymap_ensure(wm->defaultconf, "Property Editor", SPACE_BUTS, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
ar->flag |= RGN_FLAG_PREFSIZE_OR_HIDDEN;
ED_region_panels_init(wm, ar);
ar->v2d.keepzoom |= V2D_LOCKZOOM_X | V2D_LOCKZOOM_Y;
}