Author: Carlos Lopez <[email protected]>
Date: Sun Jan 15 20:39:47 2012 +0100
When a widget is focused on a Dock dialog or the Canvas view, lets the widget
parse the key strokes first.
---
synfig-studio/src/gui/canvasview.cpp | 18 ++++++++++++++++++
synfig-studio/src/gui/canvasview.h | 5 +++++
synfig-studio/src/gui/docks/dockdialog.cpp | 18 ++++++++++++++++++
synfig-studio/src/gui/docks/dockdialog.h | 4 ++++
4 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/synfig-studio/src/gui/canvasview.cpp
b/synfig-studio/src/gui/canvasview.cpp
index 162be65..3ea62ad 100644
--- a/synfig-studio/src/gui/canvasview.cpp
+++ b/synfig-studio/src/gui/canvasview.cpp
@@ -2412,6 +2412,24 @@ CanvasView::on_focus_out_event(GdkEventFocus*x)
return Gtk::Window::on_focus_out_event(x);
}
+bool
+CanvasView::on_key_press_event(GdkEventKey* event)
+{
+ Gtk::Widget* focused_widget = get_focus();
+ if(focused_widget->event((GdkEvent*)event))
+ return true;
+ return Gtk::Window::on_key_press_event(event);
+}
+
+bool
+CanvasView::on_key_release_event(GdkEventKey* event)
+{
+ Gtk::Widget* focused_widget = get_focus();
+ if(focused_widget->event((GdkEvent*)event))
+ return true;
+ return Gtk::Window::on_key_release_event(event);
+}
+
void
CanvasView::refresh_tables()
{
diff --git a/synfig-studio/src/gui/canvasview.h
b/synfig-studio/src/gui/canvasview.h
index 30cb02f..7caba24 100644
--- a/synfig-studio/src/gui/canvasview.h
+++ b/synfig-studio/src/gui/canvasview.h
@@ -456,6 +456,7 @@ private:
void toggle_animatebutton();
+
/*
-- ** -- P U B L I C M E T H O D S -----------------------------------------
*/
@@ -716,6 +717,10 @@ private:
void on_meta_data_changed();
+ bool on_key_press_event(GdkEventKey* event);
+ bool on_key_release_event(GdkEventKey* event);
+
+
protected:
bool close_instance_when_safe();
bool on_delete_event(GdkEventAny* event);
diff --git a/synfig-studio/src/gui/docks/dockdialog.cpp
b/synfig-studio/src/gui/docks/dockdialog.cpp
index 4187a9d..10aa645 100644
--- a/synfig-studio/src/gui/docks/dockdialog.cpp
+++ b/synfig-studio/src/gui/docks/dockdialog.cpp
@@ -246,6 +246,24 @@ DockDialog::prepend_dock_book()
return last_dock_book;
}
+bool
+DockDialog::on_key_press_event(GdkEventKey* event)
+{
+ Gtk::Widget* focused_widget = get_focus();
+ if(focused_widget->event((GdkEvent*)event))
+ return true;
+ return Gtk::Window::on_key_press_event(event);
+}
+
+bool
+DockDialog::on_key_release_event(GdkEventKey* event)
+{
+ Gtk::Widget* focused_widget = get_focus();
+ if(focused_widget->event((GdkEvent*)event))
+ return true;
+ return Gtk::Window::on_key_release_event(event);
+}
+
DockBook*
DockDialog::append_dock_book()
{
diff --git a/synfig-studio/src/gui/docks/dockdialog.h
b/synfig-studio/src/gui/docks/dockdialog.h
index e1fba30..92050fa 100644
--- a/synfig-studio/src/gui/docks/dockdialog.h
+++ b/synfig-studio/src/gui/docks/dockdialog.h
@@ -94,6 +94,10 @@ private:
void drop_on_append(const Glib::RefPtr<Gdk::DragContext>& context, int,
int, const Gtk::SelectionData& selection_data, guint, guint time);
void drop_on_prepend(const Glib::RefPtr<Gdk::DragContext>& context,
int, int, const Gtk::SelectionData& selection_data, guint, guint time);
+ bool on_key_press_event(GdkEventKey* event);
+ bool on_key_release_event(GdkEventKey* event);
+
+
public:
const std::vector<int>& get_dock_book_sizes()const { return
dock_book_sizes_;}
------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl