mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-11 09:40:42 +00:00
Enable eraser support for Wacom tablets on Skia/Win back-end
Related to #610
This commit is contained in:
parent
47708a6826
commit
a58cbfbc1c
@ -113,6 +113,7 @@ protected:
|
||||
if (lmb->isPressed(msg) || rmb->isPressed(msg)) {
|
||||
MouseMessage mouseMsg(
|
||||
(msg->type() == kKeyDownMessage ? kMouseDownMessage: kMouseUpMessage),
|
||||
PointerType::Unknown,
|
||||
(lmb->isPressed(msg) ? kButtonLeft: kButtonRight),
|
||||
msg->modifiers(),
|
||||
ui::get_mouse_position());
|
||||
|
@ -164,6 +164,7 @@ Editor::Editor(Document* document, EditorFlags flags)
|
||||
, m_antsOffset(0)
|
||||
, m_customizationDelegate(NULL)
|
||||
, m_docView(NULL)
|
||||
, m_lastPointerType(ui::PointerType::Unknown)
|
||||
, m_flags(flags)
|
||||
, m_secondaryButton(false)
|
||||
, m_aniSpeed(1.0)
|
||||
@ -919,6 +920,12 @@ tools::Tool* Editor::getCurrentEditorTool()
|
||||
if (m_quicktool)
|
||||
return m_quicktool;
|
||||
|
||||
// Eraser tip
|
||||
if (m_lastPointerType == ui::PointerType::Eraser) {
|
||||
tools::ToolBox* toolbox = App::instance()->getToolBox();
|
||||
return toolbox->getToolById(tools::WellKnownTools::Eraser);
|
||||
}
|
||||
|
||||
tools::Tool* tool = App::instance()->activeTool();
|
||||
|
||||
if (m_secondaryButton &&
|
||||
@ -1277,6 +1284,8 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
|
||||
|
||||
m_oldPos = mouseMsg->position();
|
||||
m_lastPointerType = mouseMsg->pointerType();
|
||||
|
||||
if (!m_secondaryButton && mouseMsg->right()) {
|
||||
m_secondaryButton = mouseMsg->right();
|
||||
|
||||
@ -1293,6 +1302,9 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
case kMouseMoveMessage:
|
||||
if (m_sprite) {
|
||||
EditorStatePtr holdState(m_state);
|
||||
|
||||
m_lastPointerType = static_cast<MouseMessage*>(msg)->pointerType();
|
||||
|
||||
return m_state->onMouseMove(this, static_cast<MouseMessage*>(msg));
|
||||
}
|
||||
break;
|
||||
@ -1303,6 +1315,8 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
|
||||
bool result = m_state->onMouseUp(this, mouseMsg);
|
||||
|
||||
m_lastPointerType = mouseMsg->pointerType();
|
||||
|
||||
if (!hasCapture()) {
|
||||
m_secondaryButton = false;
|
||||
|
||||
@ -1320,6 +1334,9 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
if (m_sprite) {
|
||||
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
|
||||
EditorStatePtr holdState(m_state);
|
||||
|
||||
m_lastPointerType = mouseMsg->pointerType();
|
||||
|
||||
bool used = m_state->onDoubleClick(this, mouseMsg);
|
||||
if (used)
|
||||
return true;
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "render/zoom.h"
|
||||
#include "ui/base.h"
|
||||
#include "ui/cursor_type.h"
|
||||
#include "ui/pointer_type.h"
|
||||
#include "ui/timer.h"
|
||||
#include "ui/widget.h"
|
||||
|
||||
@ -324,6 +325,7 @@ namespace app {
|
||||
DocumentView* m_docView;
|
||||
|
||||
gfx::Point m_oldPos;
|
||||
ui::PointerType m_lastPointerType;
|
||||
|
||||
EditorFlags m_flags;
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite
|
||||
// Copyright (C) 2001-2015 David Capello
|
||||
// Copyright (C) 2001-2016 David Capello
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@ -221,6 +221,7 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
|
||||
MouseMessage* mouseMsg2 = new MouseMessage(
|
||||
kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->buttons(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
@ -635,6 +636,7 @@ bool ToolBar::ToolStrip::onProcessMessage(Message* msg)
|
||||
|
||||
MouseMessage* mouseMsg2 = new MouseMessage(
|
||||
kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->buttons(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite UI Library
|
||||
// Copyright (C) 2001-2013, 2015 David Capello
|
||||
// Copyright (C) 2001-2016 David Capello
|
||||
//
|
||||
// This file is released under the terms of the MIT license.
|
||||
// Read LICENSE.txt for more information.
|
||||
@ -481,6 +481,7 @@ bool ComboBoxEntry::onProcessMessage(Message* msg)
|
||||
releaseMouse();
|
||||
|
||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->buttons(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
|
@ -1,5 +1,5 @@
|
||||
// Aseprite UI Library
|
||||
// Copyright (C) 2001-2013, 2015 David Capello
|
||||
// Copyright (C) 2001-2016 David Capello
|
||||
//
|
||||
// This file is released under the terms of the MIT license.
|
||||
// Read LICENSE.txt for more information.
|
||||
@ -90,6 +90,7 @@ bool IntEntry::onProcessMessage(Message* msg)
|
||||
releaseMouse();
|
||||
|
||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->buttons(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
|
@ -247,7 +247,8 @@ bool Manager::generateMessages()
|
||||
}
|
||||
|
||||
void Manager::generateSetCursorMessage(const gfx::Point& mousePos,
|
||||
KeyModifiers modifiers)
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType)
|
||||
{
|
||||
if (get_mouse_cursor() == kOutsideDisplay)
|
||||
return;
|
||||
@ -257,7 +258,9 @@ void Manager::generateSetCursorMessage(const gfx::Point& mousePos,
|
||||
enqueueMessage(
|
||||
newMouseMessage(
|
||||
kSetCursorMessage, dst,
|
||||
mousePos, _internal_get_mouse_buttons(),
|
||||
mousePos,
|
||||
pointerType,
|
||||
_internal_get_mouse_buttons(),
|
||||
modifiers));
|
||||
else
|
||||
set_mouse_cursor(kArrowCursor);
|
||||
@ -273,6 +276,18 @@ static MouseButtons mouse_buttons_from_she_to_ui(const she::Event& sheEvent)
|
||||
}
|
||||
}
|
||||
|
||||
static PointerType pointer_type_from_she_event(const she::Event& sheEvent)
|
||||
{
|
||||
switch (sheEvent.device()) {
|
||||
case she::Event::MouseDevice: return PointerType::Mouse; break;
|
||||
case she::Event::MultitouchDevice: return PointerType::Multitouch; break;
|
||||
case she::Event::StylusDevice: return PointerType::Pen; break;
|
||||
case she::Event::EraserDevice: return PointerType::Eraser; break;
|
||||
default:
|
||||
return PointerType::Unknown;
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::generateMessagesFromSheEvents()
|
||||
{
|
||||
she::Event lastMouseMoveEvent;
|
||||
@ -346,8 +361,11 @@ void Manager::generateMessagesFromSheEvents()
|
||||
|
||||
case she::Event::MouseMove: {
|
||||
_internal_set_mouse_position(sheEvent.position());
|
||||
handleMouseMove(sheEvent.position(), m_mouseButtons,
|
||||
sheEvent.modifiers());
|
||||
handleMouseMove(
|
||||
sheEvent.position(),
|
||||
m_mouseButtons,
|
||||
sheEvent.modifiers(),
|
||||
pointer_type_from_she_event(sheEvent));
|
||||
lastMouseMoveEvent = sheEvent;
|
||||
break;
|
||||
}
|
||||
@ -357,8 +375,11 @@ void Manager::generateMessagesFromSheEvents()
|
||||
m_mouseButtons = (MouseButtons)((int)m_mouseButtons | (int)pressedButton);
|
||||
_internal_set_mouse_buttons(m_mouseButtons);
|
||||
|
||||
handleMouseDown(sheEvent.position(), pressedButton,
|
||||
sheEvent.modifiers());
|
||||
handleMouseDown(
|
||||
sheEvent.position(),
|
||||
pressedButton,
|
||||
sheEvent.modifiers(),
|
||||
pointer_type_from_she_event(sheEvent));
|
||||
break;
|
||||
}
|
||||
|
||||
@ -367,21 +388,28 @@ void Manager::generateMessagesFromSheEvents()
|
||||
m_mouseButtons = (MouseButtons)((int)m_mouseButtons & ~(int)releasedButton);
|
||||
_internal_set_mouse_buttons(m_mouseButtons);
|
||||
|
||||
handleMouseUp(sheEvent.position(), releasedButton,
|
||||
sheEvent.modifiers());
|
||||
handleMouseUp(
|
||||
sheEvent.position(),
|
||||
releasedButton,
|
||||
sheEvent.modifiers(),
|
||||
pointer_type_from_she_event(sheEvent));
|
||||
break;
|
||||
}
|
||||
|
||||
case she::Event::MouseDoubleClick: {
|
||||
MouseButtons clickedButton = mouse_buttons_from_she_to_ui(sheEvent);
|
||||
handleMouseDoubleClick(sheEvent.position(), clickedButton,
|
||||
sheEvent.modifiers());
|
||||
handleMouseDoubleClick(
|
||||
sheEvent.position(),
|
||||
clickedButton,
|
||||
sheEvent.modifiers(),
|
||||
pointer_type_from_she_event(sheEvent));
|
||||
break;
|
||||
}
|
||||
|
||||
case she::Event::MouseWheel: {
|
||||
handleMouseWheel(sheEvent.position(), m_mouseButtons,
|
||||
sheEvent.modifiers(),
|
||||
pointer_type_from_she_event(sheEvent),
|
||||
sheEvent.wheelDelta(),
|
||||
sheEvent.preciseWheel());
|
||||
break;
|
||||
@ -403,13 +431,15 @@ void Manager::generateMessagesFromSheEvents()
|
||||
if (lastMouseMoveEvent.type() != she::Event::None) {
|
||||
sheEvent = lastMouseMoveEvent;
|
||||
generateSetCursorMessage(sheEvent.position(),
|
||||
sheEvent.modifiers());
|
||||
sheEvent.modifiers(),
|
||||
pointer_type_from_she_event(sheEvent));
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::handleMouseMove(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers)
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType)
|
||||
{
|
||||
// Get the list of widgets to send mouse messages.
|
||||
mouse_widgets_list.clear();
|
||||
@ -436,12 +466,16 @@ void Manager::handleMouseMove(const gfx::Point& mousePos,
|
||||
enqueueMessage(
|
||||
newMouseMessage(
|
||||
kMouseMoveMessage, dst,
|
||||
mousePos, mouseButtons, modifiers));
|
||||
mousePos,
|
||||
pointerType,
|
||||
mouseButtons,
|
||||
modifiers));
|
||||
}
|
||||
|
||||
void Manager::handleMouseDown(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers)
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType)
|
||||
{
|
||||
handleWindowZOrder();
|
||||
|
||||
@ -449,41 +483,53 @@ void Manager::handleMouseDown(const gfx::Point& mousePos,
|
||||
newMouseMessage(
|
||||
kMouseDownMessage,
|
||||
(capture_widget ? capture_widget: mouse_widget),
|
||||
mousePos, mouseButtons, modifiers));
|
||||
mousePos,
|
||||
pointerType,
|
||||
mouseButtons,
|
||||
modifiers));
|
||||
}
|
||||
|
||||
void Manager::handleMouseUp(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers)
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType)
|
||||
{
|
||||
enqueueMessage(
|
||||
newMouseMessage(
|
||||
kMouseUpMessage,
|
||||
(capture_widget ? capture_widget: mouse_widget),
|
||||
mousePos, mouseButtons, modifiers));
|
||||
mousePos,
|
||||
pointerType,
|
||||
mouseButtons,
|
||||
modifiers));
|
||||
}
|
||||
|
||||
void Manager::handleMouseDoubleClick(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers)
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType)
|
||||
{
|
||||
Widget* dst = (capture_widget ? capture_widget: mouse_widget);
|
||||
if (dst) {
|
||||
enqueueMessage(
|
||||
newMouseMessage(
|
||||
kDoubleClickMessage,
|
||||
dst, mousePos, mouseButtons, modifiers));
|
||||
dst, mousePos, pointerType,
|
||||
mouseButtons, modifiers));
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::handleMouseWheel(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons, KeyModifiers modifiers,
|
||||
const gfx::Point& wheelDelta, bool preciseWheel)
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType,
|
||||
const gfx::Point& wheelDelta,
|
||||
bool preciseWheel)
|
||||
{
|
||||
enqueueMessage(newMouseMessage(
|
||||
kMouseWheelMessage,
|
||||
(capture_widget ? capture_widget: mouse_widget),
|
||||
mousePos, mouseButtons, modifiers,
|
||||
mousePos, pointerType, mouseButtons, modifiers,
|
||||
wheelDelta, preciseWheel));
|
||||
}
|
||||
|
||||
@ -776,7 +822,9 @@ void Manager::setMouse(Widget* widget)
|
||||
|
||||
Message* msg = newMouseMessage(
|
||||
kMouseEnterMessage, NULL,
|
||||
get_mouse_position(), _internal_get_mouse_buttons(),
|
||||
get_mouse_position(),
|
||||
PointerType::Unknown,
|
||||
_internal_get_mouse_buttons(),
|
||||
kKeyUninitializedModifier);
|
||||
|
||||
for (; it != widget_parents.end(); ++it) {
|
||||
@ -786,7 +834,8 @@ void Manager::setMouse(Widget* widget)
|
||||
|
||||
enqueueMessage(msg);
|
||||
generateSetCursorMessage(get_mouse_position(),
|
||||
kKeyUninitializedModifier);
|
||||
kKeyUninitializedModifier,
|
||||
PointerType::Unknown);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1419,12 +1468,16 @@ Widget* Manager::findMagneticWidget(Widget* widget)
|
||||
// static
|
||||
Message* Manager::newMouseMessage(
|
||||
MessageType type,
|
||||
Widget* widget, const gfx::Point& mousePos,
|
||||
MouseButtons buttons, KeyModifiers modifiers,
|
||||
const gfx::Point& wheelDelta, bool preciseWheel)
|
||||
Widget* widget,
|
||||
const gfx::Point& mousePos,
|
||||
PointerType pointerType,
|
||||
MouseButtons buttons,
|
||||
KeyModifiers modifiers,
|
||||
const gfx::Point& wheelDelta,
|
||||
bool preciseWheel)
|
||||
{
|
||||
Message* msg = new MouseMessage(
|
||||
type, buttons, modifiers, mousePos,
|
||||
type, pointerType, buttons, modifiers, mousePos,
|
||||
wheelDelta, preciseWheel);
|
||||
|
||||
if (widget != NULL)
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "ui/keys.h"
|
||||
#include "ui/message_type.h"
|
||||
#include "ui/mouse_buttons.h"
|
||||
#include "ui/pointer_type.h"
|
||||
#include "ui/widget.h"
|
||||
|
||||
namespace she {
|
||||
@ -115,14 +116,32 @@ namespace ui {
|
||||
virtual void onNewDisplayConfiguration();
|
||||
|
||||
private:
|
||||
void generateSetCursorMessage(const gfx::Point& mousePos, KeyModifiers modifiers);
|
||||
void generateSetCursorMessage(const gfx::Point& mousePos,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType);
|
||||
void generateMessagesFromSheEvents();
|
||||
void handleMouseMove(const gfx::Point& mousePos, MouseButtons mouseButtons, KeyModifiers modifiers);
|
||||
void handleMouseDown(const gfx::Point& mousePos, MouseButtons mouseButtons, KeyModifiers modifiers);
|
||||
void handleMouseUp(const gfx::Point& mousePos, MouseButtons mouseButtons, KeyModifiers modifiers);
|
||||
void handleMouseDoubleClick(const gfx::Point& mousePos, MouseButtons mouseButtons, KeyModifiers modifiers);
|
||||
void handleMouseWheel(const gfx::Point& mousePos, MouseButtons mouseButtons, KeyModifiers modifiers,
|
||||
const gfx::Point& wheelDelta, bool preciseWheel);
|
||||
void handleMouseMove(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType);
|
||||
void handleMouseDown(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType);
|
||||
void handleMouseUp(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType);
|
||||
void handleMouseDoubleClick(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType);
|
||||
void handleMouseWheel(const gfx::Point& mousePos,
|
||||
MouseButtons mouseButtons,
|
||||
KeyModifiers modifiers,
|
||||
PointerType pointerType,
|
||||
const gfx::Point& wheelDelta,
|
||||
bool preciseWheel);
|
||||
void handleTouchMagnify(const gfx::Point& mousePos,
|
||||
const KeyModifiers modifiers,
|
||||
const double magnification);
|
||||
@ -135,7 +154,9 @@ namespace ui {
|
||||
static Message* newMouseMessage(
|
||||
MessageType type,
|
||||
Widget* widget, const gfx::Point& mousePos,
|
||||
MouseButtons buttons, KeyModifiers modifiers,
|
||||
PointerType pointerType,
|
||||
MouseButtons buttons,
|
||||
KeyModifiers modifiers,
|
||||
const gfx::Point& wheelDelta = gfx::Point(0, 0),
|
||||
bool preciseWheel = false);
|
||||
void broadcastKeyMsg(Message* msg);
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "ui/keys.h"
|
||||
#include "ui/message_type.h"
|
||||
#include "ui/mouse_buttons.h"
|
||||
#include "ui/pointer_type.h"
|
||||
#include "ui/widgets_list.h"
|
||||
|
||||
#include <string>
|
||||
@ -103,18 +104,21 @@ namespace ui {
|
||||
class MouseMessage : public Message {
|
||||
public:
|
||||
MouseMessage(MessageType type,
|
||||
PointerType pointerType,
|
||||
MouseButtons buttons,
|
||||
KeyModifiers modifiers,
|
||||
const gfx::Point& pos,
|
||||
const gfx::Point& wheelDelta = gfx::Point(0, 0),
|
||||
bool preciseWheel = false)
|
||||
: Message(type, modifiers),
|
||||
m_pointerType(pointerType),
|
||||
m_buttons(buttons),
|
||||
m_pos(pos),
|
||||
m_wheelDelta(wheelDelta),
|
||||
m_preciseWheel(preciseWheel) {
|
||||
}
|
||||
|
||||
PointerType pointerType() const { return m_pointerType; }
|
||||
MouseButtons buttons() const { return m_buttons; }
|
||||
bool left() const { return (m_buttons & kButtonLeft) == kButtonLeft; }
|
||||
bool right() const { return (m_buttons & kButtonRight) == kButtonRight; }
|
||||
@ -125,6 +129,7 @@ namespace ui {
|
||||
const gfx::Point& position() const { return m_pos; }
|
||||
|
||||
private:
|
||||
PointerType m_pointerType;
|
||||
MouseButtons m_buttons; // Pressed buttons
|
||||
gfx::Point m_pos; // Mouse position
|
||||
gfx::Point m_wheelDelta; // Wheel axis variation
|
||||
|
23
src/ui/pointer_type.h
Normal file
23
src/ui/pointer_type.h
Normal file
@ -0,0 +1,23 @@
|
||||
// Aseprite UI Library
|
||||
// Copyright (C) 2016 David Capello
|
||||
//
|
||||
// This file is released under the terms of the MIT license.
|
||||
// Read LICENSE.txt for more information.
|
||||
|
||||
#ifndef UI_POINTER_TYPE_H_INCLUDED
|
||||
#define UI_POINTER_TYPE_H_INCLUDED
|
||||
#pragma once
|
||||
|
||||
namespace ui {
|
||||
|
||||
enum class PointerType {
|
||||
Unknown,
|
||||
Mouse,
|
||||
Multitouch,
|
||||
Pen,
|
||||
Eraser
|
||||
};
|
||||
|
||||
} // namespace ui
|
||||
|
||||
#endif
|
@ -1,5 +1,5 @@
|
||||
// Aseprite UI Library
|
||||
// Copyright (C) 2001-2013, 2015 David Capello
|
||||
// Copyright (C) 2001-2016 David Capello
|
||||
//
|
||||
// This file is released under the terms of the MIT license.
|
||||
// Read LICENSE.txt for more information.
|
||||
@ -43,14 +43,15 @@
|
||||
#include "ui/overlay_manager.h"
|
||||
#include "ui/paint_event.h"
|
||||
#include "ui/panel.h"
|
||||
#include "ui/pointer_type.h"
|
||||
#include "ui/popup_window.h"
|
||||
#include "ui/size_hint_event.h"
|
||||
#include "ui/property.h"
|
||||
#include "ui/register_message.h"
|
||||
#include "ui/resize_event.h"
|
||||
#include "ui/save_layout_event.h"
|
||||
#include "ui/scroll_bar.h"
|
||||
#include "ui/separator.h"
|
||||
#include "ui/size_hint_event.h"
|
||||
#include "ui/slider.h"
|
||||
#include "ui/splitter.h"
|
||||
#include "ui/system.h"
|
||||
|
@ -1242,6 +1242,7 @@ bool Widget::offerCapture(ui::MouseMessage* mouseMsg, int widget_type)
|
||||
|
||||
MouseMessage* mouseMsg2 = new MouseMessage(
|
||||
kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->buttons(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position());
|
||||
@ -1328,6 +1329,7 @@ bool Widget::onProcessMessage(Message* msg)
|
||||
if (kMouseDownMessage) {
|
||||
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
|
||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
||||
mouseMsg->pointerType(),
|
||||
mouseMsg->buttons(),
|
||||
mouseMsg->modifiers(),
|
||||
mouseMsg->position(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user