Thanks for your answer. It turned out that invoking g_object_ref was
unnecessary.
I had some problems with proper eventkey struct marshaling.

If someone needs to emulate key press event, this method will work.

void SendKeyEvent(Gtk.Widget widget, Gdk.Key key) 
{
        uint keyval=(uint)key;
        Gdk.Window window=widget.GdkWindow;
        Gdk.KeymapKey[] keymap=Gdk.Keymap.Default.GetEntriesForKeyval(keyval);
        
        EventKeyStruct native=new EventKeyStruct();
        native.type=(int)Gdk.EventType.KeyPress;
        native.window=window.Handle;
        native.send_event=1;
        native.state=(uint)Gdk.EventMask.KeyPressMask;
        native.keyval=keyval;
        native.length=0;
        native.str=null;
        native.hardware_keycode=(ushort)keymap[0].Keycode;
        native.group=(byte)keymap[0].Group;
                        
        IntPtr ptr=GLib.Marshaller.StructureToPtrAlloc(native);
        try
        {
                EventKey evnt=new EventKey(ptr);
                EventHelper.Put(evnt);
        }
        finally
        {
                GLib.Marshaller.Free(ptr);
        }
}
-- 
View this message in context: 
http://old.nabble.com/How-to-increase-Gdk.Window-reference-count---tp26887589p26903298.html
Sent from the Mono - Gtk# mailing list archive at Nabble.com.

_______________________________________________
Gtk-sharp-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

Reply via email to