[Bf-blender-cvs] [97e3de6dde3] soc-2020-info-editor: Keymap: info editor tweaks
Mateusz GrzeliÅski
noreply at git.blender.org
Sun Jun 7 12:46:50 CEST 2020
Commit: 97e3de6dde3185c114a39f726c26102376a2e0a2
Author: Mateusz Grzeliński
Date: Sun Jun 7 12:46:39 2020 +0200
Branches: soc-2020-info-editor
https://developer.blender.org/rB97e3de6dde3185c114a39f726c26102376a2e0a2
Keymap: info editor tweaks
if active element is not selected, shift click should select line and make it active
===================================================================
M source/blender/editors/space_info/info_report.c
===================================================================
diff --git a/source/blender/editors/space_info/info_report.c b/source/blender/editors/space_info/info_report.c
index 1e4924e4e7c..17c5dd159ab 100644
--- a/source/blender/editors/space_info/info_report.c
+++ b/source/blender/editors/space_info/info_report.c
@@ -169,35 +169,48 @@ static int select_report_pick_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
+
+ const Report *active_report = BLI_findlink((const struct ListBase *)reports,
+ sinfo->active_report_index);
+ const bool is_active_report_selected = active_report->flag & SELECT;
+
if (deselect_all) {
reports_select_all(reports, report_mask, SEL_DESELECT);
}
+ if (active_report == NULL) {
+ report->flag = SELECT;
+ sinfo->active_report_index = report_index;
+
+ ED_area_tag_redraw(CTX_wm_area(C));
+ return OPERATOR_FINISHED;
+ }
+
if (use_range) {
- const Report *active_report = BLI_findlink((const struct ListBase *)reports,
- sinfo->active_report_index);
- if (active_report == NULL) {
- report->flag = SELECT;
- sinfo->active_report_index = report_index;
+ if (is_active_report_selected) {
+ if (report_index < sinfo->active_report_index) {
+ for (Report *i = report; i && i->prev != active_report; i = i->next) {
+ i->flag = SELECT;
+ }
+ }
+ else {
+ for (Report *report_iter = report; report_iter && report_iter->next != active_report;
+ report_iter = report_iter->prev) {
+ report_iter->flag = SELECT;
+ }
+ }
ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
}
-
- if (report_index < sinfo->active_report_index) {
- for (Report *i = report; i && i->prev != active_report; i = i->next) {
- i->flag = SELECT;
- }
- }
else {
- for (Report *report_iter = report; report_iter && report_iter->next != active_report;
- report_iter = report_iter->prev) {
- report_iter->flag = SELECT;
- }
- }
+ reports_select_all(reports, report_mask, SEL_DESELECT);
+ report->flag = SELECT;
+ sinfo->active_report_index = report_index;
- ED_area_tag_redraw(CTX_wm_area(C));
- return OPERATOR_FINISHED;
+ ED_area_tag_redraw(CTX_wm_area(C));
+ return OPERATOR_FINISHED;
+ }
}
if (extend && (report->flag & SELECT) && report_index == sinfo->active_report_index) {
More information about the Bf-blender-cvs
mailing list