diff options
Diffstat (limited to 'src/client/view.cc')
-rw-r--r-- | src/client/view.cc | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/client/view.cc b/src/client/view.cc index 0f981ca..de867c0 100644 --- a/src/client/view.cc +++ b/src/client/view.cc @@ -165,10 +165,25 @@ KeyPress::KeyPress(ui::Widget *parent) : Widget(parent) void KeyPress::draw() { - if(input::last_key_pressed()) { - ui::paint::color(palette()->highlight()); - ui::paint::label(global_location(), size(), font(), input::last_key_pressed()->name(), ui::AlignCenter); + std::string label; + ui::paint::color(palette()->highlight()); + + Key::Modifier mod = input::modifier(); + if (mod != Key::None) { + if (mod == Key::Shift) + label.assign("shift+"); + else if (mod == Key::Ctrl) + label.assign("ctrl+"); + else if (mod == Key::Alt) + label.assign("alt+"); + } + + if(input::last_key_pressed()) { + label.append(input::last_key_pressed()->name()); } + + if (label.size()) + ui::paint::label(global_location(), size(), font(), label , ui::AlignCenter); } /* -- View --------------------------------------------------------- */ |