implement CTRL+Z for undo() and CTRL+Shift+Z for redo()
This commit is contained in:
@@ -9,7 +9,10 @@ enum class kKey : uint8_t
|
|||||||
AndroidBack,
|
AndroidBack,
|
||||||
KeySpacebar,
|
KeySpacebar,
|
||||||
KeyE,
|
KeyE,
|
||||||
|
KeyZ,
|
||||||
KeyAlt,
|
KeyAlt,
|
||||||
|
KeyCtrl,
|
||||||
|
KeyShift,
|
||||||
KeyTab,
|
KeyTab,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -129,7 +129,7 @@ kKey convert_key(int key)
|
|||||||
CASE(kVK_ANSI_F, kKey::Unknown);
|
CASE(kVK_ANSI_F, kKey::Unknown);
|
||||||
CASE(kVK_ANSI_H, kKey::Unknown);
|
CASE(kVK_ANSI_H, kKey::Unknown);
|
||||||
CASE(kVK_ANSI_G, kKey::Unknown);
|
CASE(kVK_ANSI_G, kKey::Unknown);
|
||||||
CASE(kVK_ANSI_Z, kKey::Unknown);
|
CASE(kVK_ANSI_Z, kKey::KeyZ);
|
||||||
CASE(kVK_ANSI_X, kKey::Unknown);
|
CASE(kVK_ANSI_X, kKey::Unknown);
|
||||||
CASE(kVK_ANSI_C, kKey::Unknown);
|
CASE(kVK_ANSI_C, kKey::Unknown);
|
||||||
CASE(kVK_ANSI_V, kKey::Unknown);
|
CASE(kVK_ANSI_V, kKey::Unknown);
|
||||||
@@ -193,8 +193,8 @@ kKey convert_key(int key)
|
|||||||
CASE(kVK_Space, kKey::Unknown);
|
CASE(kVK_Space, kKey::Unknown);
|
||||||
CASE(kVK_Delete, kKey::Unknown);
|
CASE(kVK_Delete, kKey::Unknown);
|
||||||
CASE(kVK_Escape, kKey::Unknown);
|
CASE(kVK_Escape, kKey::Unknown);
|
||||||
CASE(kVK_Command, kKey::Unknown);
|
CASE(kVK_Command, kKey::KeyCtrl);
|
||||||
CASE(kVK_Shift, kKey::Unknown);
|
CASE(kVK_Shift, kKey::KeyShift);
|
||||||
CASE(kVK_CapsLock, kKey::Unknown);
|
CASE(kVK_CapsLock, kKey::Unknown);
|
||||||
CASE(kVK_Option, kKey::Unknown);
|
CASE(kVK_Option, kKey::Unknown);
|
||||||
CASE(kVK_Control, kKey::Unknown);
|
CASE(kVK_Control, kKey::Unknown);
|
||||||
@@ -246,8 +246,8 @@ kKey convert_key(int key)
|
|||||||
CASE(VK_TAB, kKey::KeyTab);
|
CASE(VK_TAB, kKey::KeyTab);
|
||||||
CASE(VK_CLEAR, kKey::Unknown);
|
CASE(VK_CLEAR, kKey::Unknown);
|
||||||
CASE(VK_RETURN, kKey::Unknown);
|
CASE(VK_RETURN, kKey::Unknown);
|
||||||
CASE(VK_SHIFT, kKey::Unknown);
|
CASE(VK_SHIFT, kKey::KeyShift);
|
||||||
CASE(VK_CONTROL, kKey::Unknown);
|
CASE(VK_CONTROL, kKey::KeyCtrl);
|
||||||
CASE(VK_MENU, kKey::KeyAlt);
|
CASE(VK_MENU, kKey::KeyAlt);
|
||||||
CASE(VK_PAUSE, kKey::Unknown);
|
CASE(VK_PAUSE, kKey::Unknown);
|
||||||
CASE(VK_CAPITAL, kKey::Unknown);
|
CASE(VK_CAPITAL, kKey::Unknown);
|
||||||
@@ -314,7 +314,7 @@ kKey convert_key(int key)
|
|||||||
CASE('W', kKey::Unknown);
|
CASE('W', kKey::Unknown);
|
||||||
CASE('X', kKey::Unknown);
|
CASE('X', kKey::Unknown);
|
||||||
CASE('Y', kKey::Unknown);
|
CASE('Y', kKey::Unknown);
|
||||||
CASE('Z', kKey::Unknown);
|
CASE('Z', kKey::KeyZ);
|
||||||
CASE(VK_LWIN, kKey::Unknown);
|
CASE(VK_LWIN, kKey::Unknown);
|
||||||
CASE(VK_RWIN, kKey::Unknown);
|
CASE(VK_RWIN, kKey::Unknown);
|
||||||
CASE(VK_APPS, kKey::Unknown);
|
CASE(VK_APPS, kKey::Unknown);
|
||||||
|
|||||||
@@ -83,6 +83,9 @@ kEventResult Node::on_event(Event* e)
|
|||||||
skip_children |= (e->m_cat == kEventCategory::MouseEvent || e->m_cat == kEventCategory::GestureEvent) &&
|
skip_children |= (e->m_cat == kEventCategory::MouseEvent || e->m_cat == kEventCategory::GestureEvent) &&
|
||||||
(m_mouse_captured) && (root()->current_mouse_capture == this) && m_capture_children; // <-- THIS IS WRONG "!m_capture_children" is correct, but it breaks everything if changed
|
(m_mouse_captured) && (root()->current_mouse_capture == this) && m_capture_children; // <-- THIS IS WRONG "!m_capture_children" is correct, but it breaks everything if changed
|
||||||
|
|
||||||
|
if (!m_display)
|
||||||
|
return kEventResult::Available;
|
||||||
|
|
||||||
if (!skip_children)
|
if (!skip_children)
|
||||||
{
|
{
|
||||||
for (auto it = m_children.rbegin(); it != m_children.rend(); ++it)
|
for (auto it = m_children.rbegin(); it != m_children.rend(); ++it)
|
||||||
|
|||||||
@@ -315,6 +315,8 @@ kEventResult NodeCanvas::handle_event(Event* e)
|
|||||||
// m_canvas->m_alpha_lock = false;
|
// m_canvas->m_alpha_lock = false;
|
||||||
if (ke->m_key == kKey::KeyTab)
|
if (ke->m_key == kKey::KeyTab)
|
||||||
App::I.toggle_ui();
|
App::I.toggle_ui();
|
||||||
|
if (ke->m_key == kKey::KeyZ && App::I.keys[(int)kKey::KeyCtrl])
|
||||||
|
App::I.keys[(int)kKey::KeyShift] ? ActionManager::redo() : ActionManager::undo();
|
||||||
break;
|
break;
|
||||||
case kEventType::GestureStart:
|
case kEventType::GestureStart:
|
||||||
mouse_capture();
|
mouse_capture();
|
||||||
|
|||||||
Reference in New Issue
Block a user