From 012d90c5538ea4c8f3860dd119acffd477dd3fb1 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Mon, 13 Jan 2025 00:46:05 -0500 Subject: [PATCH] BColorControl: SetValue and Invoke on color drop if enabled Change-Id: I055750707ed625b21c6b4cf02faf2509f615e169 Reviewed-on: https://review.haiku-os.org/c/haiku/+/8845 Haiku-Format: Haiku-format Bot Tested-by: Commit checker robot Reviewed-by: waddlesplash --- src/kits/interface/ColorControl.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/kits/interface/ColorControl.cpp b/src/kits/interface/ColorControl.cpp index 4d4d5d1f0d..65d0f308c6 100644 --- a/src/kits/interface/ColorControl.cpp +++ b/src/kits/interface/ColorControl.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2013 Haiku, Inc. All Rights Reserved. + * Copyright 2001-2025 Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -363,6 +363,18 @@ BColorControl::AttachedToWindow() void BColorControl::MessageReceived(BMessage* message) { + if (message->WasDropped() && IsEnabled()) { + char* name; + type_code type; + rgb_color* color; + ssize_t size; + if (message->GetInfo(B_RGB_COLOR_TYPE, 0, &name, &type) == B_OK + && message->FindData(name, type, (const void**)&color, &size) == B_OK) { + SetValue(*color); + Invoke(message); + } + } + switch (message->what) { case kMsgColorEntered: { @@ -408,6 +420,7 @@ BColorControl::MessageReceived(BMessage* message) default: BControl::MessageReceived(message); + break; } }