diff --git a/src/app/ui/file_list.cpp b/src/app/ui/file_list.cpp index a25dc946a..79d345bc6 100644 --- a/src/app/ui/file_list.cpp +++ b/src/app/ui/file_list.cpp @@ -45,7 +45,6 @@ FileList::FileList() { setFocusStop(true); setDoubleBuffered(true); - setDoubleClickeable(true); m_currentFolder = FileSystemModule::instance()->getRootFileItem(); m_req_valid = false; diff --git a/src/app/ui/timeline.cpp b/src/app/ui/timeline.cpp index 688b88fe6..8cf6f432e 100644 --- a/src/app/ui/timeline.cpp +++ b/src/app/ui/timeline.cpp @@ -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; } } diff --git a/src/ui/base.h b/src/ui/base.h index 7f1d779bb..bf3ddc9d2 100644 --- a/src/ui/base.h +++ b/src/ui/base.h @@ -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: diff --git a/src/ui/entry.cpp b/src/ui/entry.cpp index 16b79ee45..263b1a9e7 100644 --- a/src/ui/entry.cpp +++ b/src/ui/entry.cpp @@ -62,7 +62,6 @@ Entry::Entry(size_t maxsize, const char *format, ...) setText(buf); setFocusStop(true); - setDoubleClickeable(true); initTheme(); } diff --git a/src/ui/listbox.cpp b/src/ui/listbox.cpp index 9c670aa08..ca3e77b20 100644 --- a/src/ui/listbox.cpp +++ b/src/ui/listbox.cpp @@ -28,7 +28,6 @@ ListBox::ListBox() : Widget(kListBoxWidget) { setFocusStop(true); - setDoubleClickeable(true); initTheme(); } diff --git a/src/ui/manager.cpp b/src/ui/manager.cpp index d33cb07ce..0c5a0c570 100644 --- a/src/ui/manager.cpp +++ b/src/ui/manager.cpp @@ -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) diff --git a/src/ui/widget.cpp b/src/ui/widget.cpp index 66c450dd6..63cc2e974 100644 --- a/src/ui/widget.cpp +++ b/src/ui/widget.cpp @@ -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(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. diff --git a/src/ui/widget.h b/src/ui/widget.h index 9d5e1a341..e1e0bf654 100644 --- a/src/ui/widget.h +++ b/src/ui/widget.h @@ -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 // ===============================================================