[Bf-blender-cvs] [d5572eacc59] master: Cleanup: Reduce context usage in UI functions

Julian Eisel noreply at git.blender.org
Fri Mar 6 16:28:36 CET 2020


Commit: d5572eacc5958db38ac4a4a32eddb3a2cd24bf68
Author: Julian Eisel
Date:   Fri Mar 6 16:22:28 2020 +0100
Branches: master
https://developer.blender.org/rBd5572eacc5958db38ac4a4a32eddb3a2cd24bf68

Cleanup: Reduce context usage in UI functions

Part of https://developer.blender.org/T74429.

There's a chance that this causes some issues becaue in some cases we
change from getting the window from context to getting it from somewhere
else.

===================================================================

M	source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c
M	source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c
M	source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c
M	source/blender/editors/include/ED_image.h
M	source/blender/editors/include/UI_interface.h
M	source/blender/editors/interface/interface_eyedropper_datablock.c
M	source/blender/editors/interface/interface_handlers.c
M	source/blender/editors/interface/interface_ops.c
M	source/blender/editors/interface/interface_region_menu_pie.c
M	source/blender/editors/interface/interface_region_menu_popup.c
M	source/blender/editors/interface/interface_region_popover.c
M	source/blender/editors/interface/interface_region_popup.c
M	source/blender/editors/interface/view2d_ops.c
M	source/blender/editors/mesh/editmesh_polybuild.c
M	source/blender/editors/screen/area.c
M	source/blender/editors/screen/screen_edit.c
M	source/blender/editors/screen/screen_ops.c
M	source/blender/editors/screen/workspace_edit.c
M	source/blender/editors/space_file/file_ops.c
M	source/blender/editors/space_image/image_ops.c
M	source/blender/editors/space_view3d/view3d_view.c
M	source/blender/editors/undo/ed_undo.c
M	source/blender/makesrna/intern/rna_wm_api.c
M	source/blender/windowmanager/WM_api.h
M	source/blender/windowmanager/WM_keymap.h
M	source/blender/windowmanager/WM_types.h
M	source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c
M	source/blender/windowmanager/intern/wm.c
M	source/blender/windowmanager/intern/wm_event_system.c
M	source/blender/windowmanager/intern/wm_files.c
M	source/blender/windowmanager/intern/wm_files_link.c
M	source/blender/windowmanager/intern/wm_gesture.c
M	source/blender/windowmanager/intern/wm_gesture_ops.c
M	source/blender/windowmanager/intern/wm_init_exit.c
M	source/blender/windowmanager/intern/wm_jobs.c
M	source/blender/windowmanager/intern/wm_keymap.c
M	source/blender/windowmanager/intern/wm_keymap_utils.c
M	source/blender/windowmanager/intern/wm_window.c
M	source/blender/windowmanager/wm.h
M	source/blender/windowmanager/wm_files.h
M	source/blender/windowmanager/wm_window.h

===================================================================

diff --git a/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c
index a2b654dfa68..99ac683747f 100644
--- a/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c
+++ b/source/blender/editors/gizmo_library/gizmo_types/arrow3d_gizmo.c
@@ -354,7 +354,7 @@ static int gizmo_arrow_modal(bContext *C,
 
   /* tag the region for redraw */
   ED_region_tag_redraw_editor_overlays(ar);
-  WM_event_add_mousemove(C);
+  WM_event_add_mousemove(CTX_wm_window(C));
 
   return OPERATOR_RUNNING_MODAL;
 }
diff --git a/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c
index 5ff76d886c2..6f6f131136c 100644
--- a/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c
+++ b/source/blender/editors/gizmo_library/gizmo_types/cage2d_gizmo.c
@@ -1087,7 +1087,7 @@ static int gizmo_cage2d_modal(bContext *C,
 
   /* tag the region for redraw */
   ED_region_tag_redraw_editor_overlays(CTX_wm_region(C));
-  WM_event_add_mousemove(C);
+  WM_event_add_mousemove(CTX_wm_window(C));
 
   return OPERATOR_RUNNING_MODAL;
 }
diff --git a/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c b/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c
index 393568e8382..6f424252b91 100644
--- a/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c
+++ b/source/blender/editors/gizmo_library/gizmo_types/cage3d_gizmo.c
@@ -586,7 +586,7 @@ static int gizmo_cage3d_modal(bContext *C,
 
   /* tag the region for redraw */
   ED_region_tag_redraw_editor_overlays(CTX_wm_region(C));
-  WM_event_add_mousemove(C);
+  WM_event_add_mousemove(CTX_wm_window(C));
 
   return OPERATOR_RUNNING_MODAL;
 }
diff --git a/source/blender/editors/include/ED_image.h b/source/blender/editors/include/ED_image.h
index e97630cfb99..6cf633b477c 100644
--- a/source/blender/editors/include/ED_image.h
+++ b/source/blender/editors/include/ED_image.h
@@ -122,8 +122,8 @@ void ED_image_draw_info(struct Scene *scene,
 
 bool ED_space_image_show_cache(struct SpaceImage *sima);
 
-bool ED_image_should_save_modified(const struct bContext *C);
-int ED_image_save_all_modified_info(const struct bContext *C, struct ReportList *reports);
+bool ED_image_should_save_modified(const struct Main *bmain);
+int ED_image_save_all_modified_info(const struct Main *bmain, struct ReportList *reports);
 bool ED_image_save_all_modified(const struct bContext *C, struct ReportList *reports);
 
 /* image_sequence.c */
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 554a166b2ce..e83582b19d0 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -632,7 +632,7 @@ void uiPupBlockOperator(struct bContext *C,
 
 void UI_popup_block_close(struct bContext *C, struct wmWindow *win, uiBlock *block);
 
-bool UI_popup_block_name_exists(struct bContext *C, const char *name);
+bool UI_popup_block_name_exists(const struct bScreen *screen, const char *name);
 
 /* Blocks
  *
diff --git a/source/blender/editors/interface/interface_eyedropper_datablock.c b/source/blender/editors/interface/interface_eyedropper_datablock.c
index fd5a46e7716..0220f3f5afd 100644
--- a/source/blender/editors/interface/interface_eyedropper_datablock.c
+++ b/source/blender/editors/interface/interface_eyedropper_datablock.c
@@ -125,7 +125,9 @@ static int datadropper_init(bContext *C, wmOperator *op)
 
 static void datadropper_exit(bContext *C, wmOperator *op)
 {
-  WM_cursor_modal_restore(CTX_wm_window(C));
+  wmWindow *win = CTX_wm_window(C);
+
+  WM_cursor_modal_restore(win);
 
   if (op->customdata) {
     DataDropper *ddr = (DataDropper *)op->customdata;
@@ -139,7 +141,7 @@ static void datadropper_exit(bContext *C, wmOperator *op)
     op->customdata = NULL;
   }
 
-  WM_event_add_mousemove(C);
+  WM_event_add_mousemove(win);
 }
 
 /* *** datadropper id helper functions *** */
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index e96e4bfd72a..cf736d65596 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -1552,7 +1552,7 @@ static int ui_handler_region_drag_toggle(bContext *C, const wmEvent *event, void
                                false);
     ui_handler_region_drag_toggle_remove(C, drag_info);
 
-    WM_event_add_mousemove(C);
+    WM_event_add_mousemove(win);
     return WM_UI_HANDLER_BREAK;
   }
   else {
@@ -1843,7 +1843,7 @@ static bool ui_but_drag_init(bContext *C,
                              const wmEvent *event)
 {
   /* prevent other WM gestures to start while we try to drag */
-  WM_gestures_remove(C);
+  WM_gestures_remove(CTX_wm_window(C));
 
   /* Clamp the maximum to half the UI unit size so a high user preference
    * doesn't require the user to drag more then half the default button height. */
@@ -3280,7 +3280,7 @@ wmIMEData *ui_but_ime_data_get(uiBut *but)
 
 static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data)
 {
-  wmWindow *win = CTX_wm_window(C);
+  wmWindow *win = data->window;
   int len;
   const bool is_num_but = ELEM(but->type, UI_BTYPE_NUM, UI_BTYPE_NUM_SLIDER);
   bool no_zero_strip = false;
@@ -3370,7 +3370,7 @@ static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data)
 
 static void ui_textedit_end(bContext *C, uiBut *but, uiHandleButtonData *data)
 {
-  wmWindow *win = CTX_wm_window(C);
+  wmWindow *win = data->window;
 
   if (but) {
     if (UI_but_is_utf8(but)) {
@@ -3945,7 +3945,7 @@ static void ui_but_extra_operator_icon_apply(bContext *C, uiBut *but, uiButExtra
   /* Force recreation of extra operator icons (pseudo update). */
   ui_but_extra_operator_icons_free(but);
 
-  WM_event_add_mousemove(C);
+  WM_event_add_mousemove(CTX_wm_window(C));
 }
 
 /** \} */
@@ -4020,8 +4020,7 @@ static void ui_block_open_begin(bContext *C, uiBut *but, uiHandleButtonData *dat
 
 #ifdef USE_ALLSELECT
   {
-    wmWindow *win = CTX_wm_window(C);
-    if (IS_ALLSELECT_EVENT(win->eventstate)) {
+    if (IS_ALLSELECT_EVENT(data->window->eventstate)) {
       data->select_others.is_enabled = true;
     }
   }
@@ -5570,7 +5569,7 @@ static int ui_do_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data, co
          * The active state of the button could be maintained some other way
          * and remove this mousemove event.
          */
-        WM_event_add_mousemove(C);
+        WM_event_add_mousemove(data->window);
 
         return WM_UI_HANDLER_BREAK;
       }
@@ -8039,11 +8038,12 @@ static void button_activate_init(bContext *C, ARegion *ar, uiBut *but, uiButtonA
 static void button_activate_exit(
     bContext *C, uiBut *but, uiHandleButtonData *data, const bool mousemove, const bool onfree)
 {
+  wmWindow *win = data->window;
   uiBlock *block = but->block;
   uiBut *bt;
 
   if (but->type == UI_BTYPE_GRIP) {
-    WM_cursor_modal_restore(data->window);
+    WM_cursor_modal_restore(win);
   }
 
   /* ensure we are in the exit state */
@@ -8160,7 +8160,7 @@ static void button_activate_exit(
    * still over a button. We cannot just check for this ourselves because
    * at this point the mouse may be over a button in another region */
   if (mousemove) {
-    WM_event_add_mousemove(C);
+    WM_event_add_mousemove(CTX_wm_window(C));
   }
 }
 
@@ -8818,7 +8818,7 @@ static int ui_handle_button_event(bContext *C, const wmEvent *event, uiBut *but)
       button_activate_init(C, ar, post_but, post_type);
     }
     else {
-      /* XXX issue is because WM_event_add_mousemove(C) is a bad hack and not reliable,
+      /* XXX issue is because WM_event_add_mousemove(wm) is a bad hack and not reliable,
        * if that gets coded better this bypass can go away too.
        *
        * This is needed to make sure if a button was active,
@@ -9592,7 +9592,7 @@ static int ui_handle_menu_event(bContext *C,
                   but->active->cancel = true;
                   button_activate_exit(C, but, but->active, false, false);
                 }
-                WM_event_add_mousemove(C);
+                WM_event_add_mousemove(but->active->window);
               }
             }
             break;
@@ -10776,7 +10776,7 @@ static int ui_popup_handler(bContext *C, const wmEvent *event, void *userdata)
       temp.cancel_func(C, temp.popup_arg);
     }
 
-    WM_event_add_mousemove(C);
+    WM_event_add_mousemove(win);
   }
   else {
     /* re-enable tooltips */
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index 9fa8431beea..9de2824e3a3 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -1649,7 +1649,7 @@ static int ui_button_press_invoke(bContext *C, wmOperator *op, const wmEvent *ev
 
   but->optype = but_optype;
 
-  WM_event_add_mousemove(C);
+  WM_event_add_mousemove(CTX_wm_window(C));
 
   return OPERATOR_FINISHED;
 }
diff --git a/source/blender/editors/interface/interface_region_menu_pie.c b/source/blender/editors/interface/interface_region_menu_pie.c
index 330a9d48ff4..f75f4c054a3 100644
--- a/source/blender/editors/interface/interface_region_menu_pie.c
+++ b/source/blender/editors/interface/interface_region_menu_pie.c
@@ -213,7 +213,7 @@ void UI_pie_menu_end(bContext *C, uiPieMenu *pie)
   menu->towardstime = PIL_check_seconds_timer();
 
   UI_popup_handlers_add(C, &window->modalhandlers, menu, WM_HANDLER_ACCEPT_DBL_CLICK);
-  WM_event_add_mousemove(C);
+  WM_event_add_mousemove(window);
 
   MEM_freeN(pie);
 }
diff --git a/source/blender/editors/interface/interface_region_menu_popup.c b/source/blender/editors/interface/interface_region_menu_popup.c
index 560c6146afe..2b6125fc193 100644
--- a/source/blender/editors/interface/interface_region_menu_popup.c
+++ b/source/blender/editors/interface/interface_region_menu_popup.c
@@ -357,7 +357,7 @@ uiPopupBlockHandle *ui_popup_menu_create(
     handle->popup = true;
 
     UI_popup_handlers_add(C, &window->modalhandlers, handle, 0);
-    WM_event_add_mousemove(C)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list