Guest User

Untitled

a guest
Nov 1st, 2017
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Vala 1.85 KB | None | 0 0
  1.         /* Code from Gnome-Do */
  2.         public static void present_window (Gtk.Window window) {
  3.  
  4.             // raise without grab
  5.             uint32 timestamp = Gtk.get_current_event_time();
  6.             window.present_with_time (timestamp);
  7.             window.get_window ().raise ();
  8.             window.get_window ().focus (timestamp);
  9.  
  10.             // grab
  11.             int i = 0;
  12.             Timeout.add (100, ()=>{
  13.                     if (i >= 100)
  14.                     return false;
  15.                     ++i;
  16.                     return !try_grab_window (window);
  17.             });
  18.         }
  19.         /* Code from Gnome-Do */
  20.         public static void unpresent_window (Gtk.Window window) {
  21.  
  22.             Gdk.DeviceManager dm = Gdk.Display.get_default ().get_device_manager ();
  23.             var device = dm.get_client_pointer ();
  24.  
  25.             uint32 time = Gtk.get_current_event_time();
  26.  
  27.             device.ungrab (time);
  28.             Gtk.grab_remove (window);
  29.  
  30.         }
  31.         /* Code from Gnome-Do */
  32.         private static bool try_grab_window (Gtk.Window window) {
  33.  
  34.             Gdk.DeviceManager dm = Gdk.Display.get_default ().get_device_manager ();
  35.             var device = dm.get_client_pointer ();
  36.  
  37.             uint time = Gtk.get_current_event_time();
  38.             if (device.grab (window.get_window(),
  39.                         Gdk.GrabOwnership.WINDOW,
  40.                         true,
  41.                         Gdk.EventMask.BUTTON_PRESS_MASK |
  42.                         Gdk.EventMask.BUTTON_RELEASE_MASK |
  43.                         Gdk.EventMask.POINTER_MOTION_MASK,
  44.                         null,
  45.                         time) == Gdk.GrabStatus.SUCCESS)
  46.             {
  47.                     Gtk.grab_add (window);
  48.                     message ("Window grabbed");
  49.                     return true;
  50.             }
  51.             return false;
  52.         }
Add Comment
Please, Sign In to add comment