private static void updateHover(@NotNull Component component, @Nullable Point point) {
      if (!(component instanceof XDebuggerFramesList list)) return;
      var oldHoverIndex = getHoveredIndex(component);
      ClientProperty.put(list, HOVER_POSITION, null);
      ClientProperty.put(list, HOVER_BOUNDS, null);
      ClientProperty.put(list, HOVER_INDEX, -1);
      ClientProperty.put(list, CAN_DROP_FRAME, false);
      ClientProperty.put(list, RESET_ICON_HOVERED, false);
      boolean resetHoverActions = true;

      if (point != null) {
        var renderer = getFrameListRenderer(list, point);
        var index = list.locationToIndex(point);
        var bounds = list.getCellBounds(index, index);
        var pointInCellBounds = bounds == null ? point : new Point(point.x - bounds.x, point.y - bounds.y);
        if (oldHoverIndex != index) {
          HelpTooltip.hide(list);
        }
        if (bounds != null) {
          ClientProperty.put(list, HOVER_POSITION, pointInCellBounds);
          ClientProperty.put(list, HOVER_BOUNDS, bounds);
        }
        ClientProperty.put(list, HOVER_INDEX, index);
        if (index >= 0 && index < list.getModel().getSize()) {
          var value = list.getModel().getElementAt(index);
          if (value instanceof XStackFrame) {
            var dropFrameHandler = findDropFrameHandler(list);
            ClientProperty.put(list, CAN_DROP_FRAME, dropFrameHandler != null && dropFrameHandler.canDrop((XStackFrame)value));
          }
        }
        if (renderer != null && getCanDropFrame(list)) {
          boolean isHovered = renderer.isIconHovered(pointInCellBounds, bounds);
          if (isHovered) {
            list.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
            ClientProperty.put(list, RESET_ICON_HOVERED, true);
            resetHoverActions = false;
          }
        }
      }

      if (resetHoverActions) {
        list.setCursor(Cursor.getDefaultCursor());
        HelpTooltip.hide(list);
      }

      component.repaint();
    }
private static void updateHover(@NotNull Component component, @Nullable Point point)