Question

I am creating a 'C' project with glade and gtk. I want a focus on a gtkentry field naming txt_abc and so I called the function:

gtk_widget_grab_focus (txt_abc);

There is another gtkentry widget just after txt_abc widget naming txt_def.

My problem is instead of getting focus on txt_abc widget, the cursor is automatically being focused on txt_def widget, when I am running the application.

One more thing, when I am setting the focus at txt_def widget by calling the code:

gtk_widget_grab_focus (txt_def);

the control is again being focused on the next widget on the window, i.e. txt_name.

I want the focus exactly on the widget I am setting the grab signal.

How to resolve this problem.

Was it helpful?

Solution

Cannot reproduce. Write a small testcase demonstrating your problem. Python is easy to experiment in.

import gtk

window = gtk.Window ()
box    = gtk.VBox ()

window.add (box)
for k in range (5):
   box.add (gtk.Entry ())

window.show_all ()
window.connect ('destroy', lambda *ignored: gtk.main_quit ())

box.children () [2].grab_focus ()  # <--- works fine

gtk.main ()
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top