title: gtkmm: How to detect arrow key is pressed
body: <p>What event can i connect to in order to detect arrow keys being pressed when a user is in a window.</p>
  
  <p>So far i have tried to connect via <code>on_key_press_event</code> and i checked <code>keyval</code>, <code>hardware_keycode</code>, and <code>state</code>.</p>
  
  <pre><code>#include &lt;gtkmm.h&gt;
  #include &lt;iostream&gt;
  
  class MyWindow : public Gtk::Window
  {
  public:
      MyWindow();
      bool onKeyPress(GdkEventKey*);
  };
  
  MyWindow::MyWindow()
  {
      set_title("arrow_button_test");
      this-&gt;signal_key_press_event().connect( sigc::mem_fun( *this, &amp;MyWindow::onKeyPress ) );
  }
  
  bool MyWindow::onKeyPress(GdkEventKey* event)
  {
      std::cout &lt;&lt; event-&gt;keyval &lt;&lt; ' ' &lt;&lt; event-&gt;hardware_keycode &lt;&lt; ' ' &lt;&lt; event-&gt;state &lt;&lt; std::endl;
  
      return false;
  }
  
  int main(int argc, char** argv)
  {
      Glib::RefPtr&lt;Gtk::Application&gt; app = Gtk::Application::create(argc, argv, "com.almost-university.gtkmm.arrow_button_press");
  
      MyWindow window;    
  
      app-&gt;run(window);
  
      return 0;
  }
  </code></pre>
  
  <p>This code generates no output on arrow keys, meaning that event isn't even fired off.</p>