Index: source/blender/editors/screen/screen_ops.c =================================================================== --- source/blender/editors/screen/screen_ops.c (revision 51303) +++ source/blender/editors/screen/screen_ops.c (working copy) @@ -2871,6 +2871,35 @@ ot->flag = 0; } + + +/* ************** show menus operator ***************************** */ + +/* show/hide header text menus */ +static int show_menus_exec(bContext *C, wmOperator *UNUSED(op)) +{ + ScrArea *sa = CTX_wm_area(C); + sa->flag = sa->flag ^ HEADER_NO_PULLDOWN; + ED_area_tag_redraw(CTX_wm_area(C)); + WM_event_add_notifier(C, NC_SCREEN | NA_EDITED, NULL); + return OPERATOR_FINISHED; +} + + +static void SCREEN_OT_show_menus(wmOperatorType *ot) +{ + /* identifiers */ + ot->name = "Show/Hide Header Menus"; + ot->idname = "SCREEN_OT_show_menus"; + ot->description = "Show or Hide the header pulldown menus"; + + /* api callbacks */ + ot->exec = show_menus_exec; + ot->poll = ED_operator_areaactive; + ot->flag = 0; +} + + /* ************** header tools operator ***************************** */ void ED_screens_header_tools_menu_create(bContext *C, uiLayout *layout, void *UNUSED(arg)) { @@ -2883,6 +2912,8 @@ else uiItemO(layout, IFACE_("Flip to Top"), ICON_NONE, "SCREEN_OT_header_flip"); + uiItemO(layout, IFACE_( (sa->flag & HEADER_NO_PULLDOWN) ? "Show Menus" : "Hide Menus"), ICON_NONE, "SCREEN_OT_show_menus"); + uiItemS(layout); /* file browser should be fullscreen all the time, but other regions can be maximized/restored... */ @@ -3547,6 +3578,7 @@ WM_operatortype_append(SCREEN_OT_region_scale); WM_operatortype_append(SCREEN_OT_region_flip); WM_operatortype_append(SCREEN_OT_header_flip); + WM_operatortype_append(SCREEN_OT_show_menus); WM_operatortype_append(SCREEN_OT_header_toolbox); WM_operatortype_append(SCREEN_OT_screen_set); WM_operatortype_append(SCREEN_OT_screen_full_area);