Merge branch 'master' into blender2.8
[blender.git] / source / blender / editors / space_view3d / view3d_view.c
index e6b7970a0d40f866fb2c7b060d907d30b14feb47..991c61a77cc41603cb5b4bdf9589047df51ab23d 100644 (file)
@@ -54,6 +54,8 @@
 
 #include "BIF_glutil.h"
 
+#include "UI_resources.h"
+
 #include "GPU_glew.h"
 #include "GPU_select.h"
 #include "GPU_matrix.h"
@@ -1199,6 +1201,7 @@ int view3d_opengl_select(
         const EvaluationContext *eval_ctx, ViewContext *vc, unsigned int *buffer, unsigned int bufsize, const rcti *input,
         eV3DSelectMode select_mode)
 {
+       struct bThemeState theme_state;
        Depsgraph *graph = vc->depsgraph;
        Scene *scene = vc->scene;
        View3D *v3d = vc->v3d;
@@ -1244,6 +1247,10 @@ int view3d_opengl_select(
                }
        }
 
+       /* Tools may request depth outside of regular drawing code. */
+       UI_Theme_Store(&theme_state);
+       UI_SetTheme(SPACE_VIEW3D, RGN_TYPE_WINDOW);
+
        /* Re-use cache (rect must be smaller then the cached)
         * other context is assumed to be unchanged */
        if (GPU_select_is_cached()) {
@@ -1314,6 +1321,8 @@ int view3d_opengl_select(
 finally:
        if (hits < 0) printf("Too many objects in select buffer\n");  /* XXX make error message */
 
+       UI_Theme_Restore(&theme_state);
+
        return hits;
 }