X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fwidgets%2Fmodest-window.c;h=ea9c1ddbbebe3c1f07c1de84e3613b275d32c4ee;hb=858faf3df489b530ceb6b3ac5695a7b182368640;hp=895c750d1f5ac09aa8000a4ad7987ac85eac3bad;hpb=f9ac038b42d204e712425675c6f49a69da4cbe2d;p=modest diff --git a/src/widgets/modest-window.c b/src/widgets/modest-window.c index 895c750..ea9c1dd 100644 --- a/src/widgets/modest-window.c +++ b/src/widgets/modest-window.c @@ -36,6 +36,14 @@ #include "modest-defs.h" #include /* for strcmp */ #include +#include +#include +#include +#include +#include +#ifdef MODEST_TOOLKIT_HILDON2 +#include +#endif /* 'private'/'protected' functions */ static void modest_window_class_init (ModestWindowClass *klass); @@ -58,6 +66,10 @@ static void modest_window_set_zoom_default (ModestWindow *window, gdouble zoom); static gboolean on_key_pressed (GtkWidget *self, GdkEventKey *event, gpointer user_data); +static void _make_zoom_buttons_grabeable (GtkWidget* widget); +static gboolean _modest_window_map_event (GtkWidget *widget, + GdkEvent *event, + gpointer userdata); /* list my signals */ enum { @@ -146,6 +158,9 @@ modest_window_init (ModestWindow *obj) g_signal_connect (G_OBJECT (obj), "key-press-event", G_CALLBACK (on_key_pressed), NULL); + g_signal_connect (G_OBJECT (obj), "map-event", + G_CALLBACK (_modest_window_map_event), + G_OBJECT (obj)); } static void @@ -169,7 +184,7 @@ modest_window_finalize (GObject *obj) static void modest_window_dispose (GObject *obj) { - ModestWindowPrivate *priv; + ModestWindowPrivate *priv; priv = MODEST_WINDOW_GET_PRIVATE(obj); @@ -184,6 +199,7 @@ modest_window_dispose (GObject *obj) g_object_unref (G_OBJECT(priv->ui_dimming_manager)); priv->ui_dimming_manager = NULL; } + G_OBJECT_CLASS(parent_class)->dispose (obj); } @@ -465,7 +481,14 @@ on_key_pressed (GtkWidget *self, case GDK_F6: modest_ui_actions_on_change_fullscreen (NULL, MODEST_WINDOW(self)); return TRUE; -#ifndef MODEST_TOOLKIT_HILDON2 +#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; @@ -483,3 +506,27 @@ on_key_pressed (GtkWidget *self, 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); +}