[f-spot: 37/41] get the keypressevents. Handle some of them, even if they are overriden by PhotoImageView
- From: Stephane Delcroix <sdelcroix src gnome org>
- To: svn-commits-list gnome org
- Subject: [f-spot: 37/41] get the keypressevents. Handle some of them, even if they are overriden by PhotoImageView
- Date: Mon, 15 Jun 2009 08:42:58 -0400 (EDT)
commit 2d298752424aed7a7e54777fdb1b39c569953399
Author: Stephane Delcroix <stephane delcroix org>
Date: Fri Jun 12 14:48:07 2009 +0200
get the keypressevents. Handle some of them, even if they are overriden by PhotoImageView
src/Widgets/ImageView.cs | 50 +++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 49 insertions(+), 1 deletions(-)
---
diff --git a/src/Widgets/ImageView.cs b/src/Widgets/ImageView.cs
index 83f0968..097066e 100644
--- a/src/Widgets/ImageView.cs
+++ b/src/Widgets/ImageView.cs
@@ -25,7 +25,8 @@ namespace FSpot.Widgets
OnSetScrollAdjustments (hadjustment, vadjustment);
children = new List<LayoutChild> ();
AdjustmentsChanged += ScrollToAdjustments;
- //DoubleBuffered = false;
+ WidgetFlags &= ~WidgetFlags.NoWindow;
+ SetFlag (WidgetFlags.CanFocus);
}
public ImageView () : this (null, null)
@@ -222,6 +223,7 @@ namespace FSpot.Widgets
#region GtkWidgetry
protected override void OnRealized ()
{
+Console.WriteLine ("IsNoWindow: " + IsNoWindow);
SetFlag (Gtk.WidgetFlags.Realized);
GdkWindow = new Gdk.Window (ParentWindow,
new Gdk.WindowAttr { WindowType = Gdk.WindowType.Child,
@@ -251,6 +253,8 @@ namespace FSpot.Widgets
foreach (var child in children)
child.Widget.ParentWindow = GdkWindow;
+
+Console.WriteLine ("IsNoWindow: " + IsNoWindow);
}
protected override void OnMapped ()
@@ -415,6 +419,50 @@ namespace FSpot.Widgets
return base.OnScrollEvent (evnt);
}
+ protected override bool OnKeyPressEvent (EventKey key)
+ {
+ int step = 32;
+ bool handled = true;
+ int x, y;
+ Gdk.ModifierType type;
+ switch(key.Key) {
+ case Gdk.Key.Up:
+ ScrollBy (0, -step);
+ break;
+ case Gdk.Key.Down:
+ ScrollBy (0, step);
+ break;
+ case Gdk.Key.Left:
+ ScrollBy (-step, 0);
+ break;
+ case Gdk.Key.Right:
+ ScrollBy (step, 0);
+ break;
+ case Gdk.Key.plus:
+ case Gdk.Key.KP_Add:
+ GdkWindow.GetPointer (out x, out y, out type);
+ ZoomAboutPoint (ZOOM_FACTOR, x, y);
+ break;
+ case Gdk.Key.minus:
+ case Gdk.Key.KP_Subtract:
+ GdkWindow.GetPointer (out x, out y, out type);
+ ZoomAboutPoint (1.0/ZOOM_FACTOR, x, y);
+ break;
+ case Gdk.Key.Key_1:
+ GdkWindow.GetPointer (out x, out y, out type);
+ DoZoom (1.0, true, x, y);
+ break;
+
+ default:
+ handled = false;
+ break;
+ }
+
+ if (handled)
+ return true;
+
+ return base.OnKeyPressEvent (key);
+ }
#endregion
#region private painting and misc
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]