~jconti/unity-greeter/hide-hidden-indicators

« back to all changes in this revision

Viewing changes to src/user-list.vala

  • Committer: Robert Ancell
  • Date: 2011-08-30 02:33:56 UTC
  • Revision ID: robert.ancell@canonical.com-20110830023356-52fkmgp8emlrzd0h
Load onboard on demand

Show diffs side-by-side

added added

removed removed

Lines of Context:
267
267
        load_indicator ("/usr/lib/indicators3/6/libpower.so");
268
268
        load_indicator ("/usr/lib/indicators3/6/libsoundmenu.so");
269
269
    }
270
 
    
 
270
 
271
271
    private void keyboard_toggled_cb (Gtk.CheckMenuItem item)
272
272
    {
273
 
        keyboard_socket.visible = item.active;
 
273
        if (keyboard_socket == null)
 
274
        {
 
275
            Pid onboard_pid;
 
276
            try
 
277
            {
 
278
                string[] argv;
 
279
                int onboard_stdout_fd;
 
280
 
 
281
                Shell.parse_argv ("onboard --xid", out argv);
 
282
                Process.spawn_async_with_pipes (null,
 
283
                                                argv,
 
284
                                                null,
 
285
                                                SpawnFlags.SEARCH_PATH,
 
286
                                                null,
 
287
                                                out onboard_pid,
 
288
                                                null,
 
289
                                                out onboard_stdout_fd,
 
290
                                                null);
 
291
                var f = FileStream.fdopen (onboard_stdout_fd, "r");
 
292
                var stdout_text = new char[1024];
 
293
                f.gets (stdout_text);
 
294
                var id = int.parse ((string) stdout_text);
 
295
 
 
296
                keyboard_socket = new Gtk.Socket ();
 
297
                add (keyboard_socket);
 
298
                keyboard_socket.set_size_request (800, 200);
 
299
                Gtk.socket_add_id (keyboard_socket, id);
 
300
            }
 
301
            catch (Error e)
 
302
            {
 
303
                warning ("Error setting up keyboard: %s", e.message);
 
304
            }
 
305
        }
 
306
 
 
307
        if (keyboard_socket != null)
 
308
            keyboard_socket.visible = item.active;
274
309
    }
275
310
 
276
311
    private void high_contrast_toggled_cb (Gtk.CheckMenuItem item)
710
745
        set_window (window);
711
746
        window.set_user_data (this);
712
747
 
713
 
        Pid onboard_pid;
714
 
        try
715
 
        {
716
 
            string[] argv;
717
 
            int onboard_stdout_fd;
718
 
 
719
 
            Shell.parse_argv ("onboard --xid", out argv);
720
 
            Process.spawn_async_with_pipes (null,
721
 
                                            argv,
722
 
                                            null,
723
 
                                            SpawnFlags.SEARCH_PATH,
724
 
                                            null,
725
 
                                            out onboard_pid,
726
 
                                            null,
727
 
                                            out onboard_stdout_fd,
728
 
                                            null);
729
 
            var f = FileStream.fdopen (onboard_stdout_fd, "r");
730
 
            var stdout_text = new char[1024];
731
 
            f.gets (stdout_text);
732
 
            var id = int.parse ((string) stdout_text);
733
 
 
734
 
            keyboard_socket = new Gtk.Socket ();
735
 
            add (keyboard_socket);
736
 
            keyboard_socket.set_size_request (800, 200);
737
 
            Gtk.socket_add_id (keyboard_socket, id);
738
 
        }
739
 
        catch (Error e)
740
 
        {
741
 
            warning ("Error setting up keyboard: %s", e.message);
742
 
        }
743
 
 
744
748
        foreach (var child in children)
745
749
            child.set_parent_window (get_window ());
746
750
    }