diff --git a/src/DesktopIntegration.vala b/src/DesktopIntegration.vala index a0422494..ed26d253 100644 --- a/src/DesktopIntegration.vala +++ b/src/DesktopIntegration.vala @@ -100,6 +100,17 @@ public class Gala.DesktopIntegration : GLib.Object { return (owned) returned_windows; } + public void focus_window (uint64 uid) throws GLib.DBusError, GLib.IOError { + var apps = Gala.AppSystem.get_default ().get_running_apps (); + foreach (unowned var app in apps) { + foreach (weak Meta.Window window in app.get_windows ()) { + if (window.get_id () == uid) { + window.activate (wm.get_display ().get_current_time ()); + } + } + } + } + public void show_windows_for (string app_id) throws IOError, DBusError { if (wm.window_overview == null) { throw new IOError.FAILED ("Window overview not provided by window manager");