forked from mia/Aegisub
Make hotkey::check return whether any hotkeys matched, and skip events which did not match any hotkeys
Originally committed to SVN as r5241.
This commit is contained in:
parent
ec3d1a9d35
commit
ccddf8eab1
|
@ -1154,7 +1154,8 @@ void AudioDisplay::OnMouseEvent(wxMouseEvent& event)
|
||||||
|
|
||||||
void AudioDisplay::OnKeyDown(wxKeyEvent& event)
|
void AudioDisplay::OnKeyDown(wxKeyEvent& event)
|
||||||
{
|
{
|
||||||
hotkey::check("Audio", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers());
|
if (!hotkey::check("Audio", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers()))
|
||||||
|
event.Skip();
|
||||||
event.StopPropagation();
|
event.StopPropagation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1129,12 +1129,13 @@ bool BaseGrid::IsDisplayed(const AssDialogue *line) const {
|
||||||
/// @return
|
/// @return
|
||||||
///
|
///
|
||||||
void BaseGrid::OnKeyDown(wxKeyEvent &event) {
|
void BaseGrid::OnKeyDown(wxKeyEvent &event) {
|
||||||
|
event.StopPropagation();
|
||||||
|
if (hotkey::check("Subtitle Grid", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers()))
|
||||||
|
return;
|
||||||
|
|
||||||
int w,h;
|
int w,h;
|
||||||
GetClientSize(&w,&h);
|
GetClientSize(&w,&h);
|
||||||
|
|
||||||
hotkey::check("Subtitle Grid", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers());
|
|
||||||
event.StopPropagation();
|
|
||||||
|
|
||||||
// Get scan code
|
// Get scan code
|
||||||
int key = event.GetKeyCode();
|
int key = event.GetKeyCode();
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
@ -1219,8 +1220,8 @@ void BaseGrid::OnKeyDown(wxKeyEvent &event) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else if (!hotkey::check("Audio", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers())) {
|
||||||
hotkey::check("Audio", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers());
|
event.Skip();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -405,7 +405,8 @@ END_EVENT_TABLE()
|
||||||
///
|
///
|
||||||
void StyleEditBox::OnKeyDown(wxKeyEvent &event) {
|
void StyleEditBox::OnKeyDown(wxKeyEvent &event) {
|
||||||
|
|
||||||
hotkey::check("Styling Assistant", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers());
|
if (!hotkey::check("Styling Assistant", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers()))
|
||||||
|
event.Skip();
|
||||||
event.StopPropagation();
|
event.StopPropagation();
|
||||||
|
|
||||||
//H I think most of this can be removed.
|
//H I think most of this can be removed.
|
||||||
|
|
|
@ -314,7 +314,8 @@ void DialogTranslationEvent::OnTransBoxKey(wxKeyEvent &event) { control->OnTrans
|
||||||
/// @return
|
/// @return
|
||||||
///
|
///
|
||||||
void DialogTranslation::OnTransBoxKey(wxKeyEvent &event) {
|
void DialogTranslation::OnTransBoxKey(wxKeyEvent &event) {
|
||||||
hotkey::check("Translation Assistant", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers());
|
if (!hotkey::check("Translation Assistant", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers()))
|
||||||
|
event.Skip();
|
||||||
event.StopPropagation();
|
event.StopPropagation();
|
||||||
|
|
||||||
// H convert below to commands.
|
// H convert below to commands.
|
||||||
|
|
|
@ -1362,6 +1362,7 @@ void FrameMain::OnSubtitlesSave() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameMain::OnKeyDown(wxKeyEvent &event) {
|
void FrameMain::OnKeyDown(wxKeyEvent &event) {
|
||||||
hotkey::check("Main Frame", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers());
|
if (!hotkey::check("Main Frame", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers()))
|
||||||
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ static std::vector<std::string> keycode_names;
|
||||||
static std::string const& get_keycode_name(int code);
|
static std::string const& get_keycode_name(int code);
|
||||||
static void init_keycode_names();
|
static void init_keycode_names();
|
||||||
|
|
||||||
std::string const& keycode_name(int code) {
|
static std::string const& keycode_name(int code) {
|
||||||
if (keycode_names.empty())
|
if (keycode_names.empty())
|
||||||
init_keycode_names();
|
init_keycode_names();
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@ std::string const& keycode_name(int code) {
|
||||||
return keycode_names[code];
|
return keycode_names[code];
|
||||||
}
|
}
|
||||||
|
|
||||||
void check(std::string const& context, int key_code, wchar_t key_char, int modifier) {
|
bool check(std::string const& context, int key_code, wchar_t key_char, int modifier) {
|
||||||
std::string combo;
|
std::string combo;
|
||||||
if ((modifier != wxMOD_NONE)) {
|
if ((modifier != wxMOD_NONE)) {
|
||||||
if ((modifier & wxMOD_CMD) != 0) combo.append("Ctrl-");
|
if ((modifier & wxMOD_CMD) != 0) combo.append("Ctrl-");
|
||||||
|
@ -66,15 +66,18 @@ void check(std::string const& context, int key_code, wchar_t key_char, int modif
|
||||||
}
|
}
|
||||||
|
|
||||||
combo += keycode_name(key_code);
|
combo += keycode_name(key_code);
|
||||||
if (combo.empty()) return;
|
if (combo.empty()) return false;
|
||||||
|
|
||||||
std::string command;
|
std::string command;
|
||||||
if (agi::hotkey::hotkey->Scan(context, combo, command) == 0) {
|
if (agi::hotkey::hotkey->Scan(context, combo, command) == 0) {
|
||||||
/// The bottom line should be removed after all the hotkey commands are fixed.
|
/// The bottom line should be removed after all the hotkey commands are fixed.
|
||||||
/// This is to avoid pointless exceptions.
|
/// This is to avoid pointless exceptions.
|
||||||
if (command.find("/") != std::string::npos)
|
if (command.find("/") != std::string::npos) {
|
||||||
(*cmd::get(command))(wxGetApp().frame->context.get());
|
(*cmd::get(command))(wxGetApp().frame->context.get());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<std::string> get_hotkey_strs(std::string const& context, std::string const& command) {
|
std::vector<std::string> get_hotkey_strs(std::string const& context, std::string const& command) {
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
namespace hotkey {
|
namespace hotkey {
|
||||||
|
|
||||||
void check(std::string const& context, int key_code, wchar_t key_char, int modifier);
|
bool check(std::string const& context, int key_code, wchar_t key_char, int modifier);
|
||||||
std::string get_hotkey_str_first(std::string const& context, std::string const& command);
|
std::string get_hotkey_str_first(std::string const& context, std::string const& command);
|
||||||
std::vector<std::string> get_hotkey_strs(std::string const& context, std::string const& command);
|
std::vector<std::string> get_hotkey_strs(std::string const& context, std::string const& command);
|
||||||
|
|
||||||
|
|
|
@ -424,9 +424,9 @@ void SubsEditBox::UpdateFrameTiming(agi::vfr::Framerate const& fps) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SubsEditBox::OnKeyDown(wxKeyEvent &event) {
|
void SubsEditBox::OnKeyDown(wxKeyEvent &event) {
|
||||||
|
|
||||||
hotkey::check("Subtitle Edit Box", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers());
|
|
||||||
event.StopPropagation();
|
event.StopPropagation();
|
||||||
|
if (hotkey::check("Subtitle Edit Box", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers()))
|
||||||
|
return;
|
||||||
|
|
||||||
int key = event.GetKeyCode();
|
int key = event.GetKeyCode();
|
||||||
if (line && (key == WXK_RETURN || key == WXK_NUMPAD_ENTER)) {
|
if (line && (key == WXK_RETURN || key == WXK_NUMPAD_ENTER)) {
|
||||||
|
|
|
@ -48,7 +48,6 @@
|
||||||
|
|
||||||
#include "command/command.h"
|
#include "command/command.h"
|
||||||
#include "include/aegisub/context.h"
|
#include "include/aegisub/context.h"
|
||||||
#include "include/aegisub/hotkey.h"
|
|
||||||
#include "include/aegisub/audio_provider.h"
|
#include "include/aegisub/audio_provider.h"
|
||||||
|
|
||||||
#include "ass_file.h"
|
#include "ass_file.h"
|
||||||
|
|
|
@ -499,8 +499,9 @@ void VideoDisplay::OnMouseEvent(wxMouseEvent& event) {
|
||||||
ShowCursor(activeMode != Video_Mode_Standard);
|
ShowCursor(activeMode != Video_Mode_Standard);
|
||||||
}
|
}
|
||||||
void VideoDisplay::OnKeyDown(wxKeyEvent &event) {
|
void VideoDisplay::OnKeyDown(wxKeyEvent &event) {
|
||||||
hotkey::check("Video Display", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers());
|
|
||||||
event.StopPropagation();
|
event.StopPropagation();
|
||||||
|
if (hotkey::check("Video Display", event.GetKeyCode(), event.GetUnicodeKey(), event.GetModifiers()))
|
||||||
|
return;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
int key = event.GetKeyCode();
|
int key = event.GetKeyCode();
|
||||||
|
|
Loading…
Reference in a new issue