Author: Carlos Lopez <[email protected]>
Date:   Sun Jan 15 20:23:19 2012 +0100

Warp the focused widget by its focus status so it is more general.

---

 synfig-studio/src/gui/toolbox.cpp                 |   16 +++++++---------
 synfig-studio/src/gui/toolbox.h                   |    2 --
 synfig-studio/src/gui/widgets/widget_defaults.cpp |    7 +------
 synfig-studio/src/gui/widgets/widget_defaults.h   |    3 +--
 4 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/synfig-studio/src/gui/toolbox.cpp 
b/synfig-studio/src/gui/toolbox.cpp
index d8aec82..d8cf868 100644
--- a/synfig-studio/src/gui/toolbox.cpp
+++ b/synfig-studio/src/gui/toolbox.cpp
@@ -328,7 +328,7 @@ Toolbox::Toolbox():
        handle_tools->set_handle_position(Gtk::POS_TOP);
        handle_tools->set_snap_edge(Gtk::POS_TOP);
 
-       widget_defaults=manage(new Widget_Defaults());
+       Widget_Defaults* widget_defaults(manage(new Widget_Defaults()));
        widget_defaults->show();
        Gtk::HandleBox* handle_defaults(manage(new Gtk::HandleBox()));
        handle_defaults->add(*widget_defaults);
@@ -346,8 +346,6 @@ Toolbox::Toolbox():
        table1->attach(*handle_defaults, 0,1, 3,4, 
Gtk::FILL|Gtk::EXPAND,Gtk::EXPAND|Gtk::FILL, 0, 0);
        table1->show_all();
 
-
-
        // Set the parameters for this window
        add(*table1);
        set_title(_("Synfig Studio"));
@@ -356,8 +354,6 @@ Toolbox::Toolbox():
        signal_delete_event().connect(sigc::ptr_fun(App::shutdown_request));
        set_resizable(false);
 
-
-
        App::signal_instance_selected().connect(
                sigc::hide(
                        sigc::mem_fun(*this,&studio::Toolbox::update_undo_redo)
@@ -639,16 +635,18 @@ Toolbox::on_drop_drag_data_received(const 
Glib::RefPtr<Gdk::DragContext>& contex
 bool
 Toolbox::on_key_press_event(GdkEventKey* event)
 {
-       if(widget_defaults->get_widget_bline_width()->is_focus())
-               return 
widget_defaults->get_widget_bline_width()->on_key_press_event(event);
+       Gtk::Widget* focused_widget = get_focus();
+       if(focused_widget->event((GdkEvent*)event))
+               return true;
        return Gtk::Window::on_key_press_event(event);
 }
 
 bool
 Toolbox::on_key_release_event(GdkEventKey* event)
 {
-       if(widget_defaults->get_widget_bline_width()->is_focus())
-               return 
widget_defaults->get_widget_bline_width()->on_key_release_event(event);
+       Gtk::Widget* focused_widget = get_focus();
+       if(focused_widget->event((GdkEvent*)event))
+               return true;
        return Gtk::Window::on_key_release_event(event);
 }
 
diff --git a/synfig-studio/src/gui/toolbox.h b/synfig-studio/src/gui/toolbox.h
index 188051f..f6e6267 100644
--- a/synfig-studio/src/gui/toolbox.h
+++ b/synfig-studio/src/gui/toolbox.h
@@ -39,7 +39,6 @@
 #include "smach.h"
 #include <map>
 #include "dialogsettings.h"
-#include "widgets/widget_defaults.h"
 
 /* === M A C R O S ========================================================= */
 
@@ -65,7 +64,6 @@ class Toolbox : public Gtk::Window
 
        Gtk::Button *button_undo;
        Gtk::Button *button_redo;
-       Widget_Defaults *widget_defaults;
 
        Gtk::Table *tool_table;
 
diff --git a/synfig-studio/src/gui/widgets/widget_defaults.cpp 
b/synfig-studio/src/gui/widgets/widget_defaults.cpp
index 4de243f..b42ef36 100644
--- a/synfig-studio/src/gui/widgets/widget_defaults.cpp
+++ b/synfig-studio/src/gui/widgets/widget_defaults.cpp
@@ -43,6 +43,7 @@
 #include <synfigapp/main.h>
 #include "canvasview.h"
 #include "widgets/widget_enum.h"
+#include "widgets/widget_distance.h"
 
 #include "general.h"
 
@@ -474,12 +475,6 @@ Widget_Defaults::on_gradient_clicked()
        App::dialog_gradient->present();
 }
 
-Widget_Distance*
-Widget_Defaults::get_widget_bline_width()const
-{
-       return widget_bline_width;
-}
-
 
 /*
 bool
diff --git a/synfig-studio/src/gui/widgets/widget_defaults.h 
b/synfig-studio/src/gui/widgets/widget_defaults.h
index bde0a40..7220cfd 100644
--- a/synfig-studio/src/gui/widgets/widget_defaults.h
+++ b/synfig-studio/src/gui/widgets/widget_defaults.h
@@ -31,7 +31,6 @@
 #include <gtkmm/table.h>
 #include <synfig/gradient.h>
 #include "widgets/widget_gradient.h"
-#include "widgets/widget_distance.h"
 #include <gtkmm/tooltip.h>
 
 /* === M A C R O S ========================================================= */
@@ -46,6 +45,7 @@ namespace studio {
 
 class Widget_Brush;
 class Widget_Color;
+class Widget_Distance;
 class Widget_Enum;
 
 class Widget_Defaults : public Gtk::Table
@@ -82,7 +82,6 @@ class Widget_Defaults : public Gtk::Table
 public:
 
        Widget_Defaults();
-       Widget_Distance* get_widget_bline_width()const;
 
        ~Widget_Defaults();
 


------------------------------------------------------------------------------
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

Reply via email to