void Cursor::SetShape(const String& shape) { if (shape == String::EMPTY || shape.Empty() || shape_ == shape || !shapeInfos_.Contains(shape)) return; shape_ = shape; CursorShapeInfo& info = shapeInfos_[shape_]; texture_ = info.texture_; imageRect_ = info.imageRect_; SetSize(info.imageRect_.Size()); // To avoid flicker, the UI subsystem will apply the OS shape once per frame. Exception: if we are using the // busy shape, set it immediately as we may block before that osShapeDirty_ = true; if (shape_ == shapeNames[CS_BUSY]) ApplyOSCursorShape(); }
void Cursor::SetShape(CursorShape shape) { if (shape_ == shape || shape < CS_NORMAL || shape >= CS_MAX_SHAPES) return; shape_ = shape; CursorShapeInfo& info = shapeInfos_[shape_]; texture_ = info.texture_; imageRect_ = info.imageRect_; SetSize(info.imageRect_.Size()); // To avoid flicker, the UI subsystem will apply the OS shape once per frame. Exception: if we are using the // busy shape, set it immediately as we may block before that osShapeDirty_ = true; if (shape_ == CS_BUSY) ApplyOSCursorShape(); }
void Cursor::HandleMouseVisibleChanged(StringHash eventType, VariantMap& eventData) { ApplyOSCursorShape(); }