Fix Preferences opens file browser in wrong window

Steps to reproduce were:
* Open Preferences in a new window (Edit -> Preferences)
* Set file browsers to open fullscreen (Interface->Editors->Temporary
  Windows)
* Open a file browser in the Preferences (e.g. Add-ons -> Install)
The file browser would be opened in the parent window, rather than the
preferences.
This commit is contained in:
Julian Eisel 2019-09-19 22:31:19 +02:00
parent 27642f24e1
commit c8df6f2cf9
Notes: blender-bot 2023-06-21 19:23:24 +02:00
Referenced by issue #88665, Impossible to weight paint certain vertices
Referenced by issue #70104, Display as Wire makes other objects disappear
1 changed files with 6 additions and 4 deletions

View File

@ -3546,10 +3546,12 @@ void WM_event_add_fileselect(bContext *C, wmOperator *op)
wmWindowManager *wm = CTX_wm_manager(C);
wmWindow *win = CTX_wm_window(C);
const bool is_temp_screen = WM_window_is_temp_screen(win);
/* Don't add the file handler to the temporary window, or else it owns the handlers for itself,
* causing dangling pointers once it's destructed through a handler. It has a parent which should
* hold the handlers itself. */
ListBase *modalhandlers = is_temp_screen ? &win->parent->modalhandlers : &win->modalhandlers;
const bool opens_window = (U.filebrowser_display_type == USER_TEMP_SPACE_DISPLAY_WINDOW);
/* Don't add the file handler to the temporary window if one is opened, or else it owns the
* handlers for itself, causing dangling pointers once it's destructed through a handler. It has
* a parent which should hold the handlers itself. */
ListBase *modalhandlers = (is_temp_screen && opens_window) ? &win->parent->modalhandlers :
&win->modalhandlers;
/* Close any popups, like when opening a file browser from the splash. */
UI_popup_handlers_remove_all(C, modalhandlers);