+
+static gboolean
+on_key_pressed (GtkWidget *self,
+ GdkEventKey *event,
+ gpointer user_data)
+{
+ ModestWindowMgr *mgr = NULL;
+
+ mgr = modest_runtime_get_window_mgr ();
+
+ switch (event->keyval) {
+ case GDK_F6:
+ modest_ui_actions_on_change_fullscreen (NULL, MODEST_WINDOW(self));
+ return TRUE;
+#ifdef MODEST_TOOLKIT_HILDON2
+ case HILDON_HARDKEY_INCREASE:
+ modest_ui_actions_on_zoom_plus (NULL, MODEST_WINDOW(self));
+ return TRUE;
+ case HILDON_HARDKEY_DECREASE:
+ modest_ui_actions_on_zoom_minus (NULL, MODEST_WINDOW(self));
+ return TRUE;
+#else
+ case GDK_F7:
+ modest_ui_actions_on_zoom_plus (NULL, MODEST_WINDOW(self));
+ return TRUE;
+ case GDK_F8:
+ modest_ui_actions_on_zoom_minus (NULL, MODEST_WINDOW(self));
+ return TRUE;
+#endif
+ case GDK_Escape:
+ if (modest_window_mgr_get_fullscreen_mode (mgr))
+ modest_ui_actions_on_change_fullscreen (NULL, MODEST_WINDOW(self));
+ else if (MODEST_IS_MSG_VIEW_WINDOW (self))
+ modest_ui_actions_on_close_window (NULL, MODEST_WINDOW (self));
+ break;
+ }
+
+ return FALSE;
+}
+
+static gboolean
+_modest_window_map_event (GtkWidget *widget,
+ GdkEvent *event,
+ gpointer userdata)
+{
+ _make_zoom_buttons_grabeable (GTK_WIDGET (widget));
+ return FALSE;
+}
+
+static void
+_make_zoom_buttons_grabeable (GtkWidget* widget)
+{
+ GdkDisplay *display;
+ Atom atom;
+ unsigned long val = 1;
+
+ display = gdk_drawable_get_display (widget->window);
+ atom = gdk_x11_get_xatom_by_name_for_display (display, "_HILDON_ZOOM_KEY_ATOM");
+ XChangeProperty (GDK_DISPLAY_XDISPLAY (display),
+ GDK_WINDOW_XID (widget->window), atom,
+ XA_INTEGER, 32, PropModeReplace,
+ (unsigned char *) &val, 1);
+}