mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-28 16:20:50 +00:00
Add new MouseMessage() ctor to copy full information of the original message
This is mainly to keep the pressure information when a MouseMessage is copied, and any future property which could be added in MouseMessage.
This commit is contained in:
parent
0d0cfa7bb6
commit
251323a4d5
@ -226,10 +226,7 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
|
||||
MouseMessage* mouseMsg2 = new MouseMessage(
|
||||
kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->button(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
*mouseMsg);
|
||||
mouseMsg2->setRecipient(strip);
|
||||
manager()->enqueueMessage(mouseMsg2);
|
||||
}
|
||||
@ -658,10 +655,7 @@ bool ToolBar::ToolStrip::onProcessMessage(Message* msg)
|
||||
|
||||
MouseMessage* mouseMsg2 = new MouseMessage(
|
||||
kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->button(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
*mouseMsg);
|
||||
mouseMsg2->setRecipient(bar);
|
||||
manager()->enqueueMessage(mouseMsg2);
|
||||
}
|
||||
|
@ -514,11 +514,7 @@ bool ComboBoxEntry::onProcessMessage(Message* msg)
|
||||
(pick == listbox || pick->hasAncestor(listbox))) {
|
||||
releaseMouse();
|
||||
|
||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->button(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
MouseMessage mouseMsg2(kMouseDownMessage, *mouseMsg);
|
||||
pick->sendMessage(&mouseMsg2);
|
||||
return true;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite UI Library
|
||||
// Copyright (C) 2019-2020 Igara Studio S.A.
|
||||
// Copyright (C) 2019-2022 Igara Studio S.A.
|
||||
// Copyright (C) 2001-2017 David Capello
|
||||
//
|
||||
// This file is released under the terms of the MIT license.
|
||||
@ -94,11 +94,7 @@ bool IntEntry::onProcessMessage(Message* msg)
|
||||
if (pick == &m_slider) {
|
||||
releaseMouse();
|
||||
|
||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->button(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
MouseMessage mouseMsg2(kMouseDownMessage, *mouseMsg);
|
||||
m_slider.sendMessage(&mouseMsg2);
|
||||
}
|
||||
}
|
||||
|
@ -467,7 +467,8 @@ void Manager::generateMessagesFromOSEvents()
|
||||
osEvent.position(),
|
||||
m_mouseButton = mouse_button_from_os_to_ui(osEvent),
|
||||
osEvent.modifiers(),
|
||||
osEvent.pointerType());
|
||||
osEvent.pointerType(),
|
||||
osEvent.pressure());
|
||||
break;
|
||||
}
|
||||
|
||||
@ -486,7 +487,8 @@ void Manager::generateMessagesFromOSEvents()
|
||||
osEvent.position(),
|
||||
m_mouseButton = mouse_button_from_os_to_ui(osEvent),
|
||||
osEvent.modifiers(),
|
||||
osEvent.pointerType());
|
||||
osEvent.pointerType(),
|
||||
osEvent.pressure());
|
||||
break;
|
||||
}
|
||||
|
||||
@ -550,7 +552,8 @@ void Manager::handleMouseMove(const gfx::Point& mousePos,
|
||||
void Manager::handleMouseDown(const gfx::Point& mousePos,
|
||||
MouseButton mouseButton,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType)
|
||||
PointerType pointerType,
|
||||
const float pressure)
|
||||
{
|
||||
handleWindowZOrder();
|
||||
|
||||
@ -561,7 +564,10 @@ void Manager::handleMouseDown(const gfx::Point& mousePos,
|
||||
mousePos,
|
||||
pointerType,
|
||||
mouseButton,
|
||||
modifiers));
|
||||
modifiers,
|
||||
gfx::Point(0, 0),
|
||||
false,
|
||||
pressure));
|
||||
}
|
||||
|
||||
void Manager::handleMouseUp(const gfx::Point& mousePos,
|
||||
@ -582,7 +588,8 @@ void Manager::handleMouseUp(const gfx::Point& mousePos,
|
||||
void Manager::handleMouseDoubleClick(const gfx::Point& mousePos,
|
||||
MouseButton mouseButton,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType)
|
||||
PointerType pointerType,
|
||||
const float pressure)
|
||||
{
|
||||
Widget* dst = (capture_widget ? capture_widget: mouse_widget);
|
||||
if (dst) {
|
||||
@ -590,7 +597,9 @@ void Manager::handleMouseDoubleClick(const gfx::Point& mousePos,
|
||||
newMouseMessage(
|
||||
kDoubleClickMessage,
|
||||
dst, mousePos, pointerType,
|
||||
mouseButton, modifiers));
|
||||
mouseButton, modifiers,
|
||||
gfx::Point(0, 0), false,
|
||||
pressure));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,8 @@ namespace ui {
|
||||
void handleMouseDown(const gfx::Point& mousePos,
|
||||
MouseButton mouseButton,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType);
|
||||
PointerType pointerType,
|
||||
const float pressure);
|
||||
void handleMouseUp(const gfx::Point& mousePos,
|
||||
MouseButton mouseButton,
|
||||
KeyModifiers modifiers,
|
||||
@ -137,7 +138,8 @@ namespace ui {
|
||||
void handleMouseDoubleClick(const gfx::Point& mousePos,
|
||||
MouseButton mouseButton,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType);
|
||||
PointerType pointerType,
|
||||
const float pressure);
|
||||
void handleMouseWheel(const gfx::Point& mousePos,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType,
|
||||
|
@ -131,6 +131,18 @@ namespace ui {
|
||||
m_pressure(pressure) {
|
||||
}
|
||||
|
||||
// Copy other MouseMessage converting its type
|
||||
MouseMessage(MessageType type,
|
||||
const MouseMessage& other)
|
||||
: Message(type, other.modifiers()),
|
||||
m_pointerType(other.pointerType()),
|
||||
m_button(other.button()),
|
||||
m_pos(other.position()),
|
||||
m_wheelDelta(other.wheelDelta()),
|
||||
m_preciseWheel(other.preciseWheel()),
|
||||
m_pressure(other.pressure()) {
|
||||
}
|
||||
|
||||
PointerType pointerType() const { return m_pointerType; }
|
||||
MouseButton button() const { return m_button; }
|
||||
bool left() const { return (m_button == kButtonLeft); }
|
||||
|
@ -1403,12 +1403,8 @@ bool Widget::offerCapture(ui::MouseMessage* mouseMsg, int widget_type)
|
||||
if (pick && pick != this && pick->type() == widget_type) {
|
||||
releaseMouse();
|
||||
|
||||
MouseMessage* mouseMsg2 = new MouseMessage(
|
||||
kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->button(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
MouseMessage* mouseMsg2 = new MouseMessage(kMouseDownMessage,
|
||||
*mouseMsg);
|
||||
mouseMsg2->setRecipient(pick);
|
||||
man->enqueueMessage(mouseMsg2);
|
||||
return true;
|
||||
@ -1490,13 +1486,7 @@ bool Widget::onProcessMessage(Message* msg)
|
||||
case kDoubleClickMessage: {
|
||||
// Convert double clicks into mouse down
|
||||
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
|
||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->button(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position(),
|
||||
mouseMsg->wheelDelta());
|
||||
|
||||
MouseMessage mouseMsg2(kMouseDownMessage, *mouseMsg);
|
||||
sendMessage(&mouseMsg2);
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user