Commit c0a96141 authored by Maciej Suminski's avatar Maciej Suminski

Added AF_NOTIFY flag for TOOL_ACTIONs.

parent b2d07373
...@@ -448,8 +448,8 @@ void TOOL_MANAGER::dispatchInternal( TOOL_EVENT& aEvent ) ...@@ -448,8 +448,8 @@ void TOOL_MANAGER::dispatchInternal( TOOL_EVENT& aEvent )
{ {
if( st->waitEvents.Matches( aEvent ) ) if( st->waitEvents.Matches( aEvent ) )
{ {
// By default, already processed events are not passed further // By default, only messages are passed further
m_passEvent = false; m_passEvent = ( aEvent.m_category == TC_MESSAGE );
// got matching event? clear wait list and wake up the coroutine // got matching event? clear wait list and wake up the coroutine
st->wakeupEvent = aEvent; st->wakeupEvent = aEvent;
......
...@@ -148,6 +148,8 @@ public: ...@@ -148,6 +148,8 @@ public:
{ {
if( IsActivation() ) if( IsActivation() )
return TOOL_EVENT( TC_COMMAND, TA_ACTIVATE, m_name, m_scope ); return TOOL_EVENT( TC_COMMAND, TA_ACTIVATE, m_name, m_scope );
else if( IsNotification() )
return TOOL_EVENT( TC_MESSAGE, TA_ANY, m_name, m_scope );
else else
return TOOL_EVENT( TC_COMMAND, TA_ACTION, m_name, m_scope ); return TOOL_EVENT( TC_COMMAND, TA_ACTION, m_name, m_scope );
} }
...@@ -192,6 +194,14 @@ public: ...@@ -192,6 +194,14 @@ public:
return m_flags & AF_ACTIVATE; return m_flags & AF_ACTIVATE;
} }
/**
* Returns true if the action is a notification.
*/
bool IsNotification() const
{
return m_flags & AF_NOTIFY;
}
private: private:
friend class ACTION_MANAGER; friend class ACTION_MANAGER;
......
...@@ -130,7 +130,8 @@ enum TOOL_ACTION_SCOPE ...@@ -130,7 +130,8 @@ enum TOOL_ACTION_SCOPE
enum TOOL_ACTION_FLAGS enum TOOL_ACTION_FLAGS
{ {
AF_NONE = 0, AF_NONE = 0,
AF_ACTIVATE = 1 ///> Action activates a tool AF_ACTIVATE = 1, ///> Action activates a tool
AF_NOTIFY = 2 ///> Action is a notification (it is by default passed to all tools)
}; };
/// Defines when a context menu is opened. /// Defines when a context menu is opened.
......
...@@ -264,7 +264,7 @@ TOOL_ACTION COMMON_ACTIONS::viaSizeDec( "pcbnew.EditorControl.viaSizeDec", ...@@ -264,7 +264,7 @@ TOOL_ACTION COMMON_ACTIONS::viaSizeDec( "pcbnew.EditorControl.viaSizeDec",
TOOL_ACTION COMMON_ACTIONS::trackViaSizeChanged( "pcbnew.EditorControl.trackViaSizeChanged", TOOL_ACTION COMMON_ACTIONS::trackViaSizeChanged( "pcbnew.EditorControl.trackViaSizeChanged",
AS_GLOBAL, 0, AS_GLOBAL, 0,
"", "" ); "", "", AF_NOTIFY );
// Module editor tools // Module editor tools
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment