mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-30 04:20:23 +00:00
Better double-click: remove DoubleClickeable and make ui::Widget default behavior to convert double-clicks into mouse downs
This commit is contained in:
parent
62fc42c24d
commit
e363577e65
@ -45,7 +45,6 @@ FileList::FileList()
|
||||
{
|
||||
setFocusStop(true);
|
||||
setDoubleBuffered(true);
|
||||
setDoubleClickeable(true);
|
||||
|
||||
m_currentFolder = FileSystemModule::instance()->getRootFileItem();
|
||||
m_req_valid = false;
|
||||
|
@ -163,7 +163,6 @@ Timeline::Timeline()
|
||||
m_context->addObserver(this);
|
||||
|
||||
setDoubleBuffered(true);
|
||||
setDoubleClickeable(true);
|
||||
}
|
||||
|
||||
Timeline::~Timeline()
|
||||
@ -705,7 +704,7 @@ bool Timeline::onProcessMessage(Message* msg)
|
||||
->getCommandByName(CommandId::LayerProperties);
|
||||
|
||||
UIContext::instance()->executeCommand(command);
|
||||
break;
|
||||
return true;
|
||||
}
|
||||
|
||||
case A_PART_HEADER_FRAME: {
|
||||
@ -715,7 +714,7 @@ bool Timeline::onProcessMessage(Message* msg)
|
||||
params.set("frame", "current");
|
||||
|
||||
UIContext::instance()->executeCommand(command, ¶ms);
|
||||
break;
|
||||
return true;
|
||||
}
|
||||
|
||||
case A_PART_CEL: {
|
||||
@ -723,7 +722,7 @@ bool Timeline::onProcessMessage(Message* msg)
|
||||
->getCommandByName(CommandId::CelProperties);
|
||||
|
||||
UIContext::instance()->executeCommand(command);
|
||||
break;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -58,7 +58,6 @@ namespace ui {
|
||||
#define JI_INITIALIZED 0x0400 // The widget was already initialized by a theme.
|
||||
#define JI_DIRTY 0x0800 // The widget (or one child) is dirty (update_region != empty).
|
||||
#define JI_HASTEXT 0x1000 // The widget has text (at least setText() was called one time).
|
||||
#define JI_DOUBLECLICKABLE 0x2000 // The widget accepts double-clicks
|
||||
|
||||
class GuiSystem {
|
||||
public:
|
||||
|
@ -62,7 +62,6 @@ Entry::Entry(size_t maxsize, const char *format, ...)
|
||||
setText(buf);
|
||||
|
||||
setFocusStop(true);
|
||||
setDoubleClickeable(true);
|
||||
initTheme();
|
||||
}
|
||||
|
||||
|
@ -28,7 +28,6 @@ ListBox::ListBox()
|
||||
: Widget(kListBoxWidget)
|
||||
{
|
||||
setFocusStop(true);
|
||||
setDoubleClickeable(true);
|
||||
initTheme();
|
||||
}
|
||||
|
||||
|
@ -580,13 +580,10 @@ void Manager::handleMouseUp(const gfx::Point& mousePos, MouseButtons mouseButton
|
||||
void Manager::handleMouseDoubleClick(const gfx::Point& mousePos, MouseButtons mouseButtons)
|
||||
{
|
||||
Widget* dst = (capture_widget ? capture_widget: mouse_widget);
|
||||
if (dst && dst->isDoubleClickeable()) {
|
||||
if (dst) {
|
||||
enqueueMessage(newMouseMessage(kDoubleClickMessage,
|
||||
dst, mousePos, mouseButtons));
|
||||
}
|
||||
else {
|
||||
handleMouseDown(mousePos, mouseButtons);
|
||||
}
|
||||
}
|
||||
|
||||
void Manager::handleMouseWheel(const gfx::Point& mousePos, MouseButtons mouseButtons, const gfx::Point& wheelDelta)
|
||||
|
@ -277,14 +277,6 @@ void Widget::setFocusMagnet(bool state)
|
||||
this->flags &= ~JI_FOCUSMAGNET;
|
||||
}
|
||||
|
||||
void Widget::setDoubleClickeable(bool state)
|
||||
{
|
||||
if (state)
|
||||
this->flags |= JI_DOUBLECLICKABLE;
|
||||
else
|
||||
this->flags &= ~JI_DOUBLECLICKABLE;
|
||||
}
|
||||
|
||||
bool Widget::isVisible() const
|
||||
{
|
||||
const Widget* widget = this;
|
||||
@ -338,11 +330,6 @@ bool Widget::isFocusMagnet() const
|
||||
return (this->flags & JI_FOCUSMAGNET) ? true: false;
|
||||
}
|
||||
|
||||
bool Widget::isDoubleClickeable() const
|
||||
{
|
||||
return (this->flags & JI_DOUBLECLICKABLE) ? true: false;
|
||||
}
|
||||
|
||||
// ===============================================================
|
||||
// PARENTS & CHILDREN
|
||||
// ===============================================================
|
||||
@ -1330,9 +1317,21 @@ bool Widget::onProcessMessage(Message* msg)
|
||||
else
|
||||
break;
|
||||
|
||||
case kDoubleClickMessage:
|
||||
// Convert double clicks into mouse down
|
||||
if (kMouseDownMessage) {
|
||||
MouseMessage* mouseMsg = static_cast<MouseMessage*>(msg);
|
||||
MouseMessage mouseMsg2(kMouseDownMessage,
|
||||
mouseMsg->buttons(),
|
||||
mouseMsg->position(),
|
||||
mouseMsg->wheelDelta());
|
||||
|
||||
sendMessage(&mouseMsg2);
|
||||
}
|
||||
break;
|
||||
|
||||
case kMouseDownMessage:
|
||||
case kMouseUpMessage:
|
||||
case kDoubleClickMessage:
|
||||
case kMouseMoveMessage:
|
||||
case kMouseWheelMessage:
|
||||
// Propagate the message to the parent.
|
||||
|
@ -139,10 +139,6 @@ namespace ui {
|
||||
void setFocusMagnet(bool state);
|
||||
bool isFocusMagnet() const;
|
||||
|
||||
// True if this widget wants double-clicks.
|
||||
void setDoubleClickeable(bool state);
|
||||
bool isDoubleClickeable() const;
|
||||
|
||||
// ===============================================================
|
||||
// LOOK & FEEL
|
||||
// ===============================================================
|
||||
|
Loading…
x
Reference in New Issue
Block a user