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:
Diffstat (limited to 'source/blender/windowmanager/intern')
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c13
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c51
2 files changed, 27 insertions, 37 deletions
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 1648bdfb9d4..3ff3117dafe 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1960,12 +1960,9 @@ static void wm_handler_op_context_get_if_valid(bContext *C,
region = NULL;
}
- if (region == NULL) {
- LISTBASE_FOREACH (ARegion *, region_iter, &area->regionbase) {
- region = region_iter;
- if (region == handler->context.region) {
- break;
- }
+ if ((region == NULL) && handler->context.region) {
+ if (BLI_findindex(&area->regionbase, handler->context.region) != -1) {
+ region = handler->context.region;
}
}
@@ -4022,6 +4019,7 @@ void WM_event_fileselect_event(wmWindowManager *wm, void *ophandle, int eventval
event.type = EVT_FILESELECT;
event.val = eventval;
+ event.flag = 0;
event.customdata = ophandle; /* Only as void pointer type check. */
wm_event_add(win, &event);
@@ -5848,6 +5846,7 @@ void WM_window_cursor_keymap_status_refresh(bContext *C, wmWindow *win)
wmEvent test_event = *win->eventstate;
test_event.type = event_data[data_index].event_type;
test_event.val = event_data[data_index].event_value;
+ test_event.flag = 0;
wm_eventemulation(&test_event, true);
wmKeyMapItem *kmi = NULL;
for (int handler_index = 0; handler_index < ARRAY_SIZE(handlers); handler_index++) {
@@ -5914,7 +5913,7 @@ bool WM_window_modal_keymap_status_draw(bContext *C, wmWindow *win, uiLayout *la
bool show_text = true;
{
- /* Warning: O(n^2). */
+ /* WARNING: O(n^2). */
wmKeyMapItem *kmi = NULL;
for (kmi = keymap->items.first; kmi; kmi = kmi->next) {
if (kmi->propvalue == items[i].value) {
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index b8107a49a4c..f455f7f2719 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -106,47 +106,38 @@
/** \name Operator API
* \{ */
-void WM_operator_py_idname(char *to, const char *from)
+size_t WM_operator_py_idname(char *dst, const char *src)
{
- const char *sep = strstr(from, "_OT_");
+ const char *sep = strstr(src, "_OT_");
if (sep) {
- int ofs = (sep - from);
+ int ofs = (sep - src);
/* NOTE: we use ascii `tolower` instead of system `tolower`, because the
* latter depends on the locale, and can lead to `idname` mismatch. */
- memcpy(to, from, sizeof(char) * ofs);
- BLI_str_tolower_ascii(to, ofs);
+ memcpy(dst, src, sizeof(char) * ofs);
+ BLI_str_tolower_ascii(dst, ofs);
- to[ofs] = '.';
- BLI_strncpy(to + (ofs + 1), sep + 4, OP_MAX_TYPENAME - (ofs + 1));
- }
- else {
- /* should not happen but support just in case */
- BLI_strncpy(to, from, OP_MAX_TYPENAME);
+ dst[ofs] = '.';
+ return BLI_strncpy_rlen(dst + (ofs + 1), sep + 4, OP_MAX_TYPENAME - (ofs + 1)) + (ofs + 1);
}
+ /* Should not happen but support just in case. */
+ return BLI_strncpy_rlen(dst, src, OP_MAX_TYPENAME);
}
-void WM_operator_bl_idname(char *to, const char *from)
+size_t WM_operator_bl_idname(char *dst, const char *src)
{
- if (from) {
- const char *sep = strchr(from, '.');
-
- int from_len;
- if (sep && (from_len = strlen(from)) < OP_MAX_TYPENAME - 3) {
- const int ofs = (sep - from);
- memcpy(to, from, sizeof(char) * ofs);
- BLI_str_toupper_ascii(to, ofs);
- memcpy(to + ofs, "_OT_", 4);
- memcpy(to + (ofs + 4), sep + 1, (from_len - ofs));
- }
- else {
- /* should not happen but support just in case */
- BLI_strncpy(to, from, OP_MAX_TYPENAME);
- }
- }
- else {
- to[0] = 0;
+ const char *sep = strchr(src, '.');
+ int from_len;
+ if (sep && (from_len = strlen(src)) < OP_MAX_TYPENAME - 3) {
+ const int ofs = (sep - src);
+ memcpy(dst, src, sizeof(char) * ofs);
+ BLI_str_toupper_ascii(dst, ofs);
+ memcpy(dst + ofs, "_OT_", 4);
+ memcpy(dst + (ofs + 4), sep + 1, (from_len - ofs));
+ return (from_len - ofs) - 1;
}
+ /* Should not happen but support just in case. */
+ return BLI_strncpy_rlen(dst, src, OP_MAX_TYPENAME);
}
bool WM_operator_py_idname_ok_or_report(ReportList *reports,