[Bf-blender-cvs] [605f87256ec] master: Cleanup: Decrease variable scope in UI region popup code

Hans Goudey noreply at git.blender.org
Wed Oct 12 19:19:52 CEST 2022


Commit: 605f87256ec7dbfc4954492a9cc864b9a76253f7
Author: Hans Goudey
Date:   Wed Oct 12 12:19:21 2022 -0500
Branches: master
https://developer.blender.org/rB605f87256ec7dbfc4954492a9cc864b9a76253f7

Cleanup: Decrease variable scope in UI region popup code

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

M	source/blender/editors/interface/interface_region_menu_popup.cc
M	source/blender/editors/interface/interface_region_popup.cc

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

diff --git a/source/blender/editors/interface/interface_region_menu_popup.cc b/source/blender/editors/interface/interface_region_menu_popup.cc
index f2057c9f5e8..569f657a544 100644
--- a/source/blender/editors/interface/interface_region_menu_popup.cc
+++ b/source/blender/editors/interface/interface_region_menu_popup.cc
@@ -175,11 +175,7 @@ struct uiPopupMenu {
 
 static uiBlock *ui_block_func_POPUP(bContext *C, uiPopupBlockHandle *handle, void *arg_pup)
 {
-  uiBlock *block;
   uiPopupMenu *pup = static_cast<uiPopupMenu *>(arg_pup);
-  int minwidth, width, height;
-  char direction;
-  bool flip;
 
   if (pup->menu_func) {
     pup->block->handle = handle;
@@ -188,6 +184,7 @@ static uiBlock *ui_block_func_POPUP(bContext *C, uiPopupBlockHandle *handle, voi
   }
 
   /* Find block minimum width. */
+  int minwidth;
   if (uiLayoutGetUnitsX(pup->layout) != 0.0f) {
     /* Use the minimum width from the layout if it's set. */
     minwidth = uiLayoutGetUnitsX(pup->layout) * UI_UNIT_X;
@@ -207,6 +204,7 @@ static uiBlock *ui_block_func_POPUP(bContext *C, uiPopupBlockHandle *handle, voi
   }
 
   /* Find block direction. */
+  char direction;
   if (pup->but) {
     if (pup->block->direction != 0) {
       /* allow overriding the direction from menu_func */
@@ -220,9 +218,9 @@ static uiBlock *ui_block_func_POPUP(bContext *C, uiPopupBlockHandle *handle, voi
     direction = UI_DIR_DOWN;
   }
 
-  flip = (direction == UI_DIR_DOWN);
+  bool flip = (direction == UI_DIR_DOWN);
 
-  block = pup->block;
+  uiBlock *block = pup->block;
 
   /* in some cases we create the block before the region,
    * so we set it delayed here if necessary */
@@ -232,6 +230,7 @@ static uiBlock *ui_block_func_POPUP(bContext *C, uiPopupBlockHandle *handle, voi
 
   block->direction = direction;
 
+  int width, height;
   UI_block_layout_resolve(block, &width, &height);
 
   UI_block_flag_enable(block, UI_BLOCK_MOVEMOUSE_QUIT);
@@ -318,7 +317,6 @@ uiPopupBlockHandle *ui_popup_menu_create(
 {
   wmWindow *window = CTX_wm_window(C);
   const uiStyle *style = UI_style_get_dpi();
-  uiPopupBlockHandle *handle;
 
   uiPopupMenu *pup = MEM_cnew<uiPopupMenu>(__func__);
   pup->block = UI_block_begin(C, nullptr, __func__, UI_EMBOSS_PULLDOWN);
@@ -357,7 +355,8 @@ uiPopupBlockHandle *ui_popup_menu_create(
   pup->menu_func = menu_func;
   pup->menu_arg = arg;
 
-  handle = ui_popup_block_create(C, butregion, but, nullptr, ui_block_func_POPUP, pup, nullptr);
+  uiPopupBlockHandle *handle = ui_popup_block_create(
+      C, butregion, but, nullptr, ui_block_func_POPUP, pup, nullptr);
 
   if (!but) {
     handle->popup = true;
@@ -384,7 +383,6 @@ uiPopupMenu *UI_popup_menu_begin_ex(bContext *C,
 {
   const uiStyle *style = UI_style_get_dpi();
   uiPopupMenu *pup = MEM_cnew<uiPopupMenu>(__func__);
-  uiBut *but;
 
   pup->block = UI_block_begin(C, nullptr, block_name, UI_EMBOSS_PULLDOWN);
   pup->block->flag |= UI_BLOCK_POPUP_MEMORY | UI_BLOCK_IS_FLIP;
@@ -423,7 +421,7 @@ uiPopupMenu *UI_popup_menu_begin_ex(bContext *C,
                        "");
     }
     else {
-      but = uiDefBut(
+      uiBut *but = uiDefBut(
           pup->block, UI_BTYPE_LABEL, 0, title, 0, 0, 200, UI_UNIT_Y, nullptr, 0.0, 0.0, 0, 0, "");
       but->drawflag = UI_BUT_TEXT_LEFT;
     }
@@ -448,20 +446,20 @@ void UI_popup_menu_but_set(uiPopupMenu *pup, struct ARegion *butregion, uiBut *b
 void UI_popup_menu_end(bContext *C, uiPopupMenu *pup)
 {
   wmWindow *window = CTX_wm_window(C);
-  uiPopupBlockHandle *menu;
-  uiBut *but = nullptr;
-  ARegion *butregion = nullptr;
 
   pup->popup = true;
   pup->mx = window->eventstate->xy[0];
   pup->my = window->eventstate->xy[1];
 
+  uiBut *but = nullptr;
+  ARegion *butregion = nullptr;
   if (pup->but) {
     but = pup->but;
     butregion = pup->butregion;
   }
 
-  menu = ui_popup_block_create(C, butregion, but, nullptr, ui_block_func_POPUP, pup, nullptr);
+  uiPopupBlockHandle *menu = ui_popup_block_create(
+      C, butregion, but, nullptr, ui_block_func_POPUP, pup, nullptr);
   menu->popup = true;
 
   UI_popup_handlers_add(C, &window->modalhandlers, menu, 0);
@@ -545,8 +543,6 @@ void UI_popup_menu_reports(bContext *C, ReportList *reports)
 
 int UI_popup_menu_invoke(bContext *C, const char *idname, ReportList *reports)
 {
-  uiPopupMenu *pup;
-  uiLayout *layout;
   MenuType *mt = WM_menutype_find(idname, true);
 
   if (mt == nullptr) {
@@ -559,8 +555,9 @@ int UI_popup_menu_invoke(bContext *C, const char *idname, ReportList *reports)
     return (OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH);
   }
 
-  pup = UI_popup_menu_begin(C, CTX_IFACE_(mt->translation_context, mt->label), ICON_NONE);
-  layout = UI_popup_menu_layout(pup);
+  uiPopupMenu *pup = UI_popup_menu_begin(
+      C, CTX_IFACE_(mt->translation_context, mt->label), ICON_NONE);
+  uiLayout *layout = UI_popup_menu_layout(pup);
 
   UI_menutype_draw(C, mt, layout);
 
@@ -579,9 +576,9 @@ void UI_popup_block_invoke_ex(
     bContext *C, uiBlockCreateFunc func, void *arg, uiFreeArgFunc arg_free, bool can_refresh)
 {
   wmWindow *window = CTX_wm_window(C);
-  uiPopupBlockHandle *handle;
 
-  handle = ui_popup_block_create(C, nullptr, nullptr, func, nullptr, arg, arg_free);
+  uiPopupBlockHandle *handle = ui_popup_block_create(
+      C, nullptr, nullptr, func, nullptr, arg, arg_free);
   handle->popup = true;
 
   /* It can be useful to disable refresh (even though it will work)
@@ -607,9 +604,9 @@ void UI_popup_block_ex(bContext *C,
                        wmOperator *op)
 {
   wmWindow *window = CTX_wm_window(C);
-  uiPopupBlockHandle *handle;
 
-  handle = ui_popup_block_create(C, nullptr, nullptr, func, nullptr, arg, nullptr);
+  uiPopupBlockHandle *handle = ui_popup_block_create(
+      C, nullptr, nullptr, func, nullptr, arg, nullptr);
   handle->popup = true;
   handle->retvalue = 1;
   handle->can_refresh = true;
diff --git a/source/blender/editors/interface/interface_region_popup.cc b/source/blender/editors/interface/interface_region_popup.cc
index e93bc4c4bfe..e574cb30b23 100644
--- a/source/blender/editors/interface/interface_region_popup.cc
+++ b/source/blender/editors/interface/interface_region_popup.cc
@@ -69,7 +69,6 @@ static void ui_popup_block_position(wmWindow *window,
   /* Compute button position in window coordinates using the source
    * button region/block, to position the popup attached to it. */
   rctf butrct;
-
   if (!handle->refresh) {
     ui_block_to_window_rctf(butregion, but->block, &butrct, &but->rect);
 
@@ -417,14 +416,13 @@ static void ui_popup_block_clip(wmWindow *window, uiBlock *block)
 {
   const float xmin_orig = block->rect.xmin;
   const int margin = UI_SCREEN_MARGIN;
-  int winx, winy;
 
   if (block->flag & UI_BLOCK_NO_WIN_CLIP) {
     return;
   }
 
-  winx = WM_window_pixels_x(window);
-  winy = WM_window_pixels_y(window);
+  const int winx = WM_window_pixels_x(window);
+  const int winy = WM_window_pixels_y(window);
 
   /* shift to left if outside of view */
   if (block->rect.xmax > winx - margin) {
@@ -549,7 +547,6 @@ uiBlock *ui_popup_block_refresh(bContext *C,
   void *arg = handle->popup_create_vars.arg;
 
   uiBlock *block_old = static_cast<uiBlock *>(region->uiblocks.first);
-  uiBlock *block;
 
   handle->refresh = (block_old != nullptr);
 
@@ -561,6 +558,7 @@ uiBlock *ui_popup_block_refresh(bContext *C,
 #endif
 
   /* create ui block */
+  uiBlock *block;
   if (create_func) {
     block = create_func(C, region, arg);
   }
@@ -618,16 +616,14 @@ uiBlock *ui_popup_block_refresh(bContext *C,
 
   if (block->flag & UI_BLOCK_RADIAL) {
     const int win_width = UI_SCREEN_MARGIN;
-    int winx, winy;
-
-    int x_offset = 0, y_offset = 0;
 
-    winx = WM_window_pixels_x(window);
-    winy = WM_window_pixels_y(window);
+    const int winx = WM_window_pixels_x(window);
+    const int winy = WM_window_pixels_y(window);
 
     copy_v2_v2(block->pie_data.pie_center_init, block->pie_data.pie_center_spawned);
 
     /* only try translation if area is large enough */
+    int x_offset = 0;
     if (BLI_rctf_size_x(&block->rect) < winx - (2.0f * win_width)) {
       if (block->rect.xmin < win_width) {
         x_offset += win_width - block->rect.xmin;
@@ -637,6 +633,7 @@ uiBlock *ui_popup_block_refresh(bContext *C,
       }
     }
 
+    int y_offset = 0;
     if (BLI_rctf_size_y(&block->rect) < winy - (2.0f * win_width)) {
       if (block->rect.ymin < win_width) {
         y_offset += win_width - block->rect.ymin;
@@ -756,9 +753,6 @@ uiPopupBlockHandle *ui_popup_block_create(bContext *C,
 {
   wmWindow *window = CTX_wm_window(C);
   uiBut *activebut = UI_context_active_but_get(C);
-  static ARegionType type;
-  ARegion *region;
-  uiBlock *block;
 
   /* disable tooltips from buttons below */
   if (activebut) {
@@ -787,9 +781,10 @@ uiPopupBlockHandle *ui_popup_block_create(bContext *C,
   handle->can_refresh = false;
 
   /* create area region */
-  region = ui_region_temp_add(CTX_wm_screen(C));
+  ARegion *region = ui_region_temp_add(CTX_wm_screen(C));
   handle->region = region;
 
+  static ARegionType type;
   memset(&type, 0, sizeof(ARegionType));
   type.draw = ui_block_region_draw;
   type.layout = ui_block_region_refresh;
@@ -798,7 +793,7 @@ uiPopupBlockHandle *ui_popup_block_create(bContext *C,
 
   UI_region_handlers_add(&region->handlers);
 
-  block = ui_popup_block_refresh(C, handle, butregion, but);
+  uiBlock *block = ui_popup_block_refresh(C, handle, butregion, but);
   handle = block->handle;
 
   /* keep centered on window resizing */



More information about the Bf-blender-cvs mailing list