Hi,

I am using libglade (gtkmm 2.10.8 and libglademm 2.6.3, on Ubuntu 
Feisty), and I have a problem with reorderable treeviews.

When I try to grab a row and move it within the GtkTreeView, it does 
nothing.  If I first drag the row outside the GtkTreeView widget, and 
then drag it back in, it works as expected (shows the drop target, and 
moves the row there when I drop it).

Does anybody know why this happens, and how to fix it?  A test case is 
attached below.

Ferenc


-----------------------------------------------------------------------
TestWindow.cpp
-----------------------------------------------------------------------
// compile with
// g++ `pkg-config --cflags --libs libglademm-2.4` TestWindow.cpp

#include <gtkmm.h>
#include <libglademm.h>

class TestWindow
{
     private:
         class ModelColumns : public Gtk::TreeModelColumnRecord
         {
             public:
                 Gtk::TreeModelColumn<Glib::ustring>  textColumn;

                 ModelColumns (void)
                 {
                     add(textColumn);
                 }
         };

         ModelColumns                    modelColumns;
         Glib::RefPtr<Gtk::ListStore>    treeModel;
         Gtk::TreeView *                 treeView;

     public:
         Gtk::Window *                   window;

         TestWindow (void)
         {
             Glib::RefPtr<Gnome::Glade::Xml>     glade;
             glade = Gnome::Glade::Xml::create("TestWindow.glade");
             glade->get_widget("window1", window);

             treeModel = Gtk::ListStore::create(modelColumns);
             glade->get_widget("treeview1", treeView);
             treeView->set_model(treeModel);
             treeView->append_column("title", modelColumns.textColumn);

             Gtk::TreeModel::Row     row = *treeModel->append();
             row[modelColumns.textColumn] = "1";

             row = *treeModel->append();
             row[modelColumns.textColumn] = "2";

             row = *treeModel->append();
             row[modelColumns.textColumn] = "3";

             row = *treeModel->append();
             row[modelColumns.textColumn] = "4";
         }
};

int
main (int       argc,
       char *    argv[])
{
     Gtk::Main kit(argc, argv);

     TestWindow      testWindow;
     Gtk::Main::run(*testWindow.window);
}


-----------------------------------------------------------------------
TestWindow.glade
-----------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd">
<!--Generated with glade3 3.2.0 on Tue Aug 14 17:23:56 2007 by 
[EMAIL PROTECTED]>
<glade-interface>
   <widget class="GtkWindow" id="window1">
     <property name="width_request">300</property>
     <property name="height_request">300</property>
     <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
     <child>
       <widget class="GtkTreeView" id="treeview1">
         <property name="visible">True</property>
         <property name="can_focus">True</property>
         <property name="events">GDK_POINTER_MOTION_MASK | 
GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | 
GDK_BUTTON_RELEASE_MASK</property>
         <property name="headers_clickable">True</property>
         <property name="reorderable">True</property>
         <property name="rules_hint">True</property>
       </widget>
     </child>
   </widget>
</glade-interface>
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to