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:
authorCampbell Barton <ideasman42@gmail.com>2021-10-07 19:59:20 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-10-07 20:01:59 +0300
commitba4e5399fc85e318c41380b0b1c81b23a8334786 (patch)
tree1f540ac06f2eda3370afd25a47053c4659721e50 /source/blender/windowmanager
parentd04d27b406b856396102452cab0eedf315e94a54 (diff)
Fix screenshot editor showing status text in the editor
This caused problems calling screenshot from menu-search which included the status text in the screenshot. Now the status text is shown in the global status bar for any operators called from a screen context.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/WM_types.h4
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 28c7a270554..c4612485e5a 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -227,6 +227,10 @@ enum {
WM_OP_EXEC_SCREEN,
};
+#define WM_OP_CONTEXT_HAS_AREA(type) (!ELEM(type, WM_OP_INVOKE_SCREEN, WM_OP_EXEC_SCREEN))
+#define WM_OP_CONTEXT_HAS_REGION(type) \
+ (WM_OP_CONTEXT_HAS_AREA(type) && !ELEM(type, WM_OP_INVOKE_AREA, WM_OP_EXEC_AREA))
+
/* property tags for RNA_OperatorProperties */
typedef enum eOperatorPropTags {
OP_PROP_TAG_ADVANCED = (1 << 0),
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index f4753c7c190..785434c301c 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1790,7 +1790,10 @@ void WM_operator_name_call_ptr_with_depends_on_cursor(
}
wmWindow *win = CTX_wm_window(C);
- ScrArea *area = CTX_wm_area(C);
+ /* The operator context is applied when the operator is called,
+ * the check for the area needs to be explicitly limited here.
+ * Useful so it's possible to screen-shot an area without drawing into it's header. */
+ ScrArea *area = WM_OP_CONTEXT_HAS_AREA(opcontext) ? CTX_wm_area(C) : NULL;
{
char header_text[UI_MAX_DRAW_STR];