What do you mean of "how to get focus changes of all windows, not just in the same process"?
Do you mean that you have two applications (ie: gedit and gcalculator) and you want to know when one of the windows get the focus? BR On 10/04/2012 11:18 AM, Tal Hadad wrote: > I found the problem I had: > The windows I showed up are blank windows. If I added them some > widgets they work fine. > Also, I can't find in Google how to get focus change of all windows, > not just in the same process. > Is this possible? > > Thanks > Tal > > ------------------------------------------------------------------------ > Date: Thu, 4 Oct 2012 11:04:58 +0200 > From: apinhe...@igalia.com > To: gnome-accessibility-list@gnome.org > Subject: Re: Atk focus change capture fail. Why? > > That code (although I didn't test it), seems fine, and should work if > you are using a recent gtk version. If not, that will only work if > accessibility is enabled. > > Anyway, FWIW, we plan to deprecate those methods at some moment of the > future: > https://bugzilla.gnome.org/show_bug.cgi?id=649575#c4 > > If you want to track when the focus change, you can also add a global > event, and filter state-change:focus events. > > BR > > On 10/04/2012 12:42 AM, Tal Hadad wrote: > > I tried to make my first steps in ATK, but I can't understand what > I'm doing wrong. > Here is my Vala code: > using GLib; > using Atk; > using Gtk; > > void _my_focus_tracker (Atk.Object object) { > stdout.printf ("Tracked!\n"); > } > > int main (string[] args) { > Gtk.init (ref args); > Util.add_focus_tracker (_my_focus_tracker); > > Gtk.Window window1 = new Gtk.Window (); > window1.show (); > > Gtk.Window window2 = new Gtk.Window (); > window2.show (); > > Gtk.main (); > > return 0; > } > > add_docus_tracker doesn't call _my_focus_tracker when focus get > changed. > I know that most of you may not know Vala, so here is part of > the C generated/equated code: > void _my_focus_tracker (AtkObject* object) { > FILE* _tmp0_; > g_return_if_fail (object != NULL); > _tmp0_ = stdout; > fprintf (_tmp0_, "Tracked!\n"); > } > > gint _vala_main (gchar** args, int args_length1) { > gint result = 0; > GtkWindow* _tmp0_; > GtkWindow* _tmp1_; > GtkWindow* window1; > GtkWindow* _tmp2_; > GtkWindow* _tmp3_; > GtkWindow* window2; > gtk_init (&args_length1, &args); > atk_add_focus_tracker (_my_focus_tracker_atk_event_listener); > _tmp0_ = (GtkWindow*) gtk_window_new (GTK_WINDOW_TOPLEVEL); > _tmp1_ = g_object_ref_sink (_tmp0_); > window1 = _tmp1_; > gtk_widget_show ((GtkWidget*) window1); > _tmp2_ = (GtkWindow*) gtk_window_new (GTK_WINDOW_TOPLEVEL); > _tmp3_ = g_object_ref_sink (_tmp2_); > window2 = _tmp3_; > gtk_widget_show ((GtkWidget*) window2); > gtk_main (); > result = 0; > _g_object_unref0 (window2); > _g_object_unref0 (window1); > return result; > } > > int main (int argc, char ** argv) { > g_type_init (); > return _vala_main (argv, argc); > } > > For some reason, even when GLib main loop is running, no focus > change detection between the two windows. > Have I miss something? I think I haven't initialize something or > forgot to active watcher... > > Hope for your reply > Tal > > > _______________________________________________ > gnome-accessibility-list mailing list > gnome-accessibility-list@gnome.org > <mailto:gnome-accessibility-list@gnome.org> > https://mail.gnome.org/mailman/listinfo/gnome-accessibility-list > > > > -- > Alejandro Piñeiro Iglesias > > _______________________________________________ > gnome-accessibility-list mailing list > gnome-accessibility-list@gnome.org > https://mail.gnome.org/mailman/listinfo/gnome-accessibility-list > > > _______________________________________________ > gnome-accessibility-list mailing list > gnome-accessibility-list@gnome.org > https://mail.gnome.org/mailman/listinfo/gnome-accessibility-list -- Alejandro Piñeiro Iglesias
_______________________________________________ gnome-accessibility-list mailing list gnome-accessibility-list@gnome.org https://mail.gnome.org/mailman/listinfo/gnome-accessibility-list