mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-31 07:20:30 +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(
|
MouseMessage* mouseMsg2 = new MouseMessage(
|
||||||
kMouseDownMessage,
|
kMouseDownMessage,
|
||||||
mouseMsg->pointerType(),
|
*mouseMsg);
|
||||||
mouseMsg->button(),
|
|
||||||
mouseMsg->modifiers(),
|
|
||||||
mouseMsg->position());
|
|
||||||
mouseMsg2->setRecipient(strip);
|
mouseMsg2->setRecipient(strip);
|
||||||
manager()->enqueueMessage(mouseMsg2);
|
manager()->enqueueMessage(mouseMsg2);
|
||||||
}
|
}
|
||||||
@ -658,10 +655,7 @@ bool ToolBar::ToolStrip::onProcessMessage(Message* msg)
|
|||||||
|
|
||||||
MouseMessage* mouseMsg2 = new MouseMessage(
|
MouseMessage* mouseMsg2 = new MouseMessage(
|
||||||
kMouseDownMessage,
|
kMouseDownMessage,
|
||||||
mouseMsg->pointerType(),
|
*mouseMsg);
|
||||||
mouseMsg->button(),
|
|
||||||
mouseMsg->modifiers(),
|
|
||||||
mouseMsg->position());
|
|
||||||
mouseMsg2->setRecipient(bar);
|
mouseMsg2->setRecipient(bar);
|
||||||
manager()->enqueueMessage(mouseMsg2);
|
manager()->enqueueMessage(mouseMsg2);
|
||||||
}
|
}
|
||||||
|
@ -514,11 +514,7 @@ bool ComboBoxEntry::onProcessMessage(Message* msg)
|
|||||||
(pick == listbox || pick->hasAncestor(listbox))) {
|
(pick == listbox || pick->hasAncestor(listbox))) {
|
||||||
releaseMouse();
|
releaseMouse();
|
||||||
|
|
||||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
MouseMessage mouseMsg2(kMouseDownMessage, *mouseMsg);
|
||||||
mouseMsg->pointerType(),
|
|
||||||
mouseMsg->button(),
|
|
||||||
mouseMsg->modifiers(),
|
|
||||||
mouseMsg->position());
|
|
||||||
pick->sendMessage(&mouseMsg2);
|
pick->sendMessage(&mouseMsg2);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
// Aseprite UI Library
|
// 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
|
// Copyright (C) 2001-2017 David Capello
|
||||||
//
|
//
|
||||||
// This file is released under the terms of the MIT license.
|
// This file is released under the terms of the MIT license.
|
||||||
@ -94,11 +94,7 @@ bool IntEntry::onProcessMessage(Message* msg)
|
|||||||
if (pick == &m_slider) {
|
if (pick == &m_slider) {
|
||||||
releaseMouse();
|
releaseMouse();
|
||||||
|
|
||||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
MouseMessage mouseMsg2(kMouseDownMessage, *mouseMsg);
|
||||||
mouseMsg->pointerType(),
|
|
||||||
mouseMsg->button(),
|
|
||||||
mouseMsg->modifiers(),
|
|
||||||
mouseMsg->position());
|
|
||||||
m_slider.sendMessage(&mouseMsg2);
|
m_slider.sendMessage(&mouseMsg2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -467,7 +467,8 @@ void Manager::generateMessagesFromOSEvents()
|
|||||||
osEvent.position(),
|
osEvent.position(),
|
||||||
m_mouseButton = mouse_button_from_os_to_ui(osEvent),
|
m_mouseButton = mouse_button_from_os_to_ui(osEvent),
|
||||||
osEvent.modifiers(),
|
osEvent.modifiers(),
|
||||||
osEvent.pointerType());
|
osEvent.pointerType(),
|
||||||
|
osEvent.pressure());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -486,7 +487,8 @@ void Manager::generateMessagesFromOSEvents()
|
|||||||
osEvent.position(),
|
osEvent.position(),
|
||||||
m_mouseButton = mouse_button_from_os_to_ui(osEvent),
|
m_mouseButton = mouse_button_from_os_to_ui(osEvent),
|
||||||
osEvent.modifiers(),
|
osEvent.modifiers(),
|
||||||
osEvent.pointerType());
|
osEvent.pointerType(),
|
||||||
|
osEvent.pressure());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -550,7 +552,8 @@ void Manager::handleMouseMove(const gfx::Point& mousePos,
|
|||||||
void Manager::handleMouseDown(const gfx::Point& mousePos,
|
void Manager::handleMouseDown(const gfx::Point& mousePos,
|
||||||
MouseButton mouseButton,
|
MouseButton mouseButton,
|
||||||
KeyModifiers modifiers,
|
KeyModifiers modifiers,
|
||||||
PointerType pointerType)
|
PointerType pointerType,
|
||||||
|
const float pressure)
|
||||||
{
|
{
|
||||||
handleWindowZOrder();
|
handleWindowZOrder();
|
||||||
|
|
||||||
@ -561,7 +564,10 @@ void Manager::handleMouseDown(const gfx::Point& mousePos,
|
|||||||
mousePos,
|
mousePos,
|
||||||
pointerType,
|
pointerType,
|
||||||
mouseButton,
|
mouseButton,
|
||||||
modifiers));
|
modifiers,
|
||||||
|
gfx::Point(0, 0),
|
||||||
|
false,
|
||||||
|
pressure));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Manager::handleMouseUp(const gfx::Point& mousePos,
|
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,
|
void Manager::handleMouseDoubleClick(const gfx::Point& mousePos,
|
||||||
MouseButton mouseButton,
|
MouseButton mouseButton,
|
||||||
KeyModifiers modifiers,
|
KeyModifiers modifiers,
|
||||||
PointerType pointerType)
|
PointerType pointerType,
|
||||||
|
const float pressure)
|
||||||
{
|
{
|
||||||
Widget* dst = (capture_widget ? capture_widget: mouse_widget);
|
Widget* dst = (capture_widget ? capture_widget: mouse_widget);
|
||||||
if (dst) {
|
if (dst) {
|
||||||
@ -590,7 +597,9 @@ void Manager::handleMouseDoubleClick(const gfx::Point& mousePos,
|
|||||||
newMouseMessage(
|
newMouseMessage(
|
||||||
kDoubleClickMessage,
|
kDoubleClickMessage,
|
||||||
dst, mousePos, pointerType,
|
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,
|
void handleMouseDown(const gfx::Point& mousePos,
|
||||||
MouseButton mouseButton,
|
MouseButton mouseButton,
|
||||||
KeyModifiers modifiers,
|
KeyModifiers modifiers,
|
||||||
PointerType pointerType);
|
PointerType pointerType,
|
||||||
|
const float pressure);
|
||||||
void handleMouseUp(const gfx::Point& mousePos,
|
void handleMouseUp(const gfx::Point& mousePos,
|
||||||
MouseButton mouseButton,
|
MouseButton mouseButton,
|
||||||
KeyModifiers modifiers,
|
KeyModifiers modifiers,
|
||||||
@ -137,7 +138,8 @@ namespace ui {
|
|||||||
void handleMouseDoubleClick(const gfx::Point& mousePos,
|
void handleMouseDoubleClick(const gfx::Point& mousePos,
|
||||||
MouseButton mouseButton,
|
MouseButton mouseButton,
|
||||||
KeyModifiers modifiers,
|
KeyModifiers modifiers,
|
||||||
PointerType pointerType);
|
PointerType pointerType,
|
||||||
|
const float pressure);
|
||||||
void handleMouseWheel(const gfx::Point& mousePos,
|
void handleMouseWheel(const gfx::Point& mousePos,
|
||||||
KeyModifiers modifiers,
|
KeyModifiers modifiers,
|
||||||
PointerType pointerType,
|
PointerType pointerType,
|
||||||
|
@ -131,6 +131,18 @@ namespace ui {
|
|||||||
m_pressure(pressure) {
|
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; }
|
PointerType pointerType() const { return m_pointerType; }
|
||||||
MouseButton button() const { return m_button; }
|
MouseButton button() const { return m_button; }
|
||||||
bool left() const { return (m_button == kButtonLeft); }
|
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) {
|
if (pick && pick != this && pick->type() == widget_type) {
|
||||||
releaseMouse();
|
releaseMouse();
|
||||||
|
|
||||||
MouseMessage* mouseMsg2 = new MouseMessage(
|
MouseMessage* mouseMsg2 = new MouseMessage(kMouseDownMessage,
|
||||||
kMouseDownMessage,
|
*mouseMsg);
|
||||||
mouseMsg->pointerType(),
|
|
||||||
mouseMsg->button(),
|
|
||||||
mouseMsg->modifiers(),
|
|
||||||
mouseMsg->position());
|
|
||||||
mouseMsg2->setRecipient(pick);
|
mouseMsg2->setRecipient(pick);
|
||||||
man->enqueueMessage(mouseMsg2);
|
man->enqueueMessage(mouseMsg2);
|
||||||
return true;
|
return true;
|
||||||
@ -1490,13 +1486,7 @@ bool Widget::onProcessMessage(Message* msg)
|
|||||||
case kDoubleClickMessage: {
|
case kDoubleClickMessage: {
|
||||||
// Convert double clicks into mouse down
|
// Convert double clicks into mouse down
|
||||||
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
|
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
|
||||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
MouseMessage mouseMsg2(kMouseDownMessage, *mouseMsg);
|
||||||
mouseMsg->pointerType(),
|
|
||||||
mouseMsg->button(),
|
|
||||||
mouseMsg->modifiers(),
|
|
||||||
mouseMsg->position(),
|
|
||||||
mouseMsg->wheelDelta());
|
|
||||||
|
|
||||||
sendMessage(&mouseMsg2);
|
sendMessage(&mouseMsg2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user