[Bf-blender-cvs] [c5c46e5b74a] master: UI: Fix Hover Flickering on Selected Items

Harley Acheson noreply at git.blender.org
Wed Jan 22 23:02:12 CET 2020


Commit: c5c46e5b74a0c52f042d7fb61d3e4b401110cc5e
Author: Harley Acheson
Date:   Wed Jan 22 14:00:08 2020 -0800
Branches: master
https://developer.blender.org/rBc5c46e5b74a0c52f042d7fb61d3e4b401110cc5e

UI: Fix Hover Flickering on Selected Items

Removes hover highlight from already-selected UI items to remove unintended flickering.

Differential Revision: https://developer.blender.org/D6503

Reviewed by Campbell Barton

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

M	source/blender/editors/interface/interface_widgets.c

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

diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index d313310bfa1..fd2f652d40e 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -2662,10 +2662,14 @@ static void widget_state(uiWidgetType *wt, int state, int drawflag)
     if (color_blend != NULL) {
       color_blend_v3_v3(wt->wcol.inner, color_blend, wcol_state->blend);
     }
-  }
 
-  if (state & UI_ACTIVE) {
-    widget_active_color(&wt->wcol);
+    /* Add "hover" highlight. Ideally this could apply in all cases,
+     * even if UI_SELECT. But currently this causes some flickering
+     * as buttons can be created and updated without respect to mouse
+     * position and so can draw without UI_ACTIVE set.  See D6503. */
+    if (state & UI_ACTIVE) {
+      widget_active_color(&wt->wcol);
+    }
   }
 
   if (state & UI_BUT_REDALERT) {



More information about the Bf-blender-cvs mailing list