title: Gtk Grab pointer without "stealing" it from other software
body: <p>Currently in my application I'm grabing the pointer to know when user clicks outside of some of my first window's widgets to hide my second window. Unfortunately if I grab the pointer then user needs to click outside of my application twice to set focus on another window.</p>
  
  <p>When window gets focus I grab the pointer:</p>
  
  <pre><code>this.focus_in_event.connect(()=&gt;{
              var pointer = Gdk.Display.get_default ().get_device_manager ().get_client_pointer ();
              pointer.grab (this.get_window (), Gdk.GrabOwnership.NONE, true, 
                     Gdk.EventMask.BUTTON_PRESS_MASK, null, Gdk.CURRENT_TIME);
  
              Gtk.device_grab_add (this, pointer, false);
              return false;
  });
  </code></pre>
  
  <p>When a click events occurs and some of window's widgets didn't 'lock' the pointer:</p>
  
  <pre><code>this.button_press_event.connect ( ()=&gt;{
  
              if (!lock_mouse_click) {
                  var pointer = Gdk.Display.get_default ().get_device_manager ().get_client_pointer ();
                  Gtk.device_grab_remove (this, pointer);
                  pointer.ungrab (Gdk.CURRENT_TIME);
  
                  feed_view.hide ();
              }
  
              lock_mouse_click = false;
              return false;
  });
  </code></pre>
  
  <p>What I would like to do is to "peek" at the pointer instead of stealing the mouse events outside of my application.</p>
  
  <p>My code in vala but you may answer me in any language that uses gtk.</p>