Merge lp:~ken-vandine/ubuntu-app-launch/ual_focus_app into lp:ubuntu-app-launch

Proposed by Ken VanDine
Status: Merged
Approved by: Ted Gould
Approved revision: 340
Merged at revision: 289
Proposed branch: lp:~ken-vandine/ubuntu-app-launch/ual_focus_app
Merge into: lp:ubuntu-app-launch
Prerequisite: lp:~ken-vandine/ubuntu-app-launch/api3_abi4
Diff against target: 114 lines (+53/-0)
5 files modified
libubuntu-app-launch/application-impl-base.cpp (+12/-0)
libubuntu-app-launch/application-impl-base.h (+1/-0)
libubuntu-app-launch/application.h (+8/-0)
libubuntu-app-launch/jobs-base.cpp (+31/-0)
libubuntu-app-launch/jobs-base.h (+1/-0)
To merge this branch: bzr merge lp:~ken-vandine/ubuntu-app-launch/ual_focus_app
Reviewer Review Type Date Requested Status
unity-api-1-bot continuous-integration Needs Fixing
Ted Gould (community) Approve
Review via email: mp+316741@code.launchpad.net

This proposal supersedes a proposal from 2017-02-03.

Commit message

Adds Application::Instance::focus and Application::findInstance(pid_t) API

Description of the change

Adds Application::Instance::focus and Application::findInstance(pid_t) API

No tests yet and ubuntu-app-focus is just for my testing, i'll remove it later.

To post a comment you must log in.
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal

PASSED: Continuous integration, rev:323
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/202/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1596
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1603
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1381
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1381/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1381
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1381/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1381
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1381/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1381
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1381/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1381
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1381/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1381
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1381/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/202/rebuild

review: Approve (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal

PASSED: Continuous integration, rev:324
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/203/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1598
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1605
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1383
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1383/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1383
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1383/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1383
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1383/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1383
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1383/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1383
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1383/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1383
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1383/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/203/rebuild

review: Approve (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal

PASSED: Continuous integration, rev:325
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/205/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1611
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1618
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1396
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1396/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1396
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1396/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1396
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1396/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1396
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1396/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1396
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1396/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1396
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1396/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/205/rebuild

review: Approve (continuous-integration)
Revision history for this message
Ted Gould (ted) wrote : Posted in a previous version of this proposal

A few pointers, I imagine returning the wrong signal is your issue though:

* You don't need an implementation of findInstance() for every subclass. One in Base:: would work for every subclass because it'd use that subclass' instances() function.

* I think you implemented ::focus for Jobs::Upstart as well as Jobs::Base, which means it's probably not being used. (and will go away soon)

* Registry::appFocused returns appResumed()

* I would add a focused to ubuntu-app-watch, makes debugging this stuff easier.

Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Ken VanDine (ken-vandine) wrote : Posted in a previous version of this proposal

> A few pointers, I imagine returning the wrong signal is your issue though:
>
> * You don't need an implementation of findInstance() for every subclass. One
> in Base:: would work for every subclass because it'd use that subclass'
> instances() function.

Done

> * I think you implemented ::focus for Jobs::Upstart as well as Jobs::Base,
> which means it's probably not being used. (and will go away soon)
>
> * Registry::appFocused returns appResumed()

Fixed

> * I would add a focused to ubuntu-app-watch, makes debugging this stuff
> easier.

Done

Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal

PASSED: Continuous integration, rev:330
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/209/
Executed test runs:
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build/1644
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1651
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1426
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1426/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1426
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1426/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1426
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1426/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1426
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1426/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1426
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1426/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1426
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1426/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/209/rebuild

review: Approve (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:332
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/210/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build/1646/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1653
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1428/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1428
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1428/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1428/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1428
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1428/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1428/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1428
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1428/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/210/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:333
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/211/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build/1647/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1654
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1429/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1429
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1429/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1429/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1429
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1429/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1429/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1429
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1429/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/211/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:334
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/214/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build/1650/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1657
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1432/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1432
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1432/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1432/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1432
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1432/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1432/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1432
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1432/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/214/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

FAILED: Continuous integration, rev:335
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/215/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build/1651/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1658
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1433/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1433
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1433/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1433/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1433
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1433/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1433/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1433
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1433/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/215/rebuild

review: Needs Fixing (continuous-integration)
337. By Ken VanDine

merged prereq

Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :

FAILED: Continuous integration, rev:336
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/217/
Executed test runs:
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build/1653/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-0-fetch/1660
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1435
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1435/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1435
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=amd64,release=zesty/1435/artifact/output/*zip*/output.zip
    FAILURE: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1435/console
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1435
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=armhf,release=zesty/1435/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1435
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=xenial+overlay/1435/artifact/output/*zip*/output.zip
    SUCCESS: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1435
        deb: https://jenkins.canonical.com/unity-api-1/job/build-2-binpkg/arch=i386,release=zesty/1435/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://jenkins.canonical.com/unity-api-1/job/lp-ubuntu-app-launch-ci/217/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :
review: Needs Fixing (continuous-integration)
338. By Ken VanDine

Added Breaks/Replaces for libubuntu-app-launch2-dev

339. By Ken VanDine

merged prereq

340. By Ken VanDine

Removed the last of ApplicationFocused

Revision history for this message
Ted Gould (ted) :
review: Approve
Revision history for this message
unity-api-1-bot (unity-api-1-bot) wrote :
review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'libubuntu-app-launch/application-impl-base.cpp'
2--- libubuntu-app-launch/application-impl-base.cpp 2017-01-27 20:43:28 +0000
3+++ libubuntu-app-launch/application-impl-base.cpp 2017-02-10 15:30:01 +0000
4@@ -121,6 +121,18 @@
5 }
6 }
7
8+std::shared_ptr<Application::Instance> Base::findInstance(const pid_t& pid)
9+{
10+ for (auto instance : instances())
11+ {
12+ if (instance->hasPid(pid))
13+ {
14+ return instance;
15+ }
16+ }
17+ return nullptr;
18+}
19+
20 } // namespace app_impls
21 } // namespace app_launch
22 } // namespace ubuntu
23
24=== modified file 'libubuntu-app-launch/application-impl-base.h'
25--- libubuntu-app-launch/application-impl-base.h 2017-01-26 22:33:36 +0000
26+++ libubuntu-app-launch/application-impl-base.h 2017-02-10 15:30:01 +0000
27@@ -47,6 +47,7 @@
28
29 std::string getInstance(const std::shared_ptr<app_info::Desktop>& desktop) const;
30 virtual std::shared_ptr<Application::Instance> findInstance(const std::string& instanceid) = 0;
31+ std::shared_ptr<Application::Instance> findInstance(const pid_t& pid);
32
33 protected:
34 /** Pointer to the registry so we can ask it for things */
35
36=== modified file 'libubuntu-app-launch/application.h'
37--- libubuntu-app-launch/application.h 2016-08-17 15:24:30 +0000
38+++ libubuntu-app-launch/application.h 2017-02-10 15:30:01 +0000
39@@ -251,6 +251,8 @@
40 /** Stop, or send SIGTERM, to the PIDs in this Application::Instance, if
41 the PIDs do not respond to the SIGTERM they will be SIGKILL'd */
42 virtual void stop() = 0;
43+ /** Signal the shell to focus the Application::Instance */
44+ virtual void focus() = 0;
45 };
46
47 /** A quick check to see if this application has any running instances */
48@@ -269,6 +271,12 @@
49 \param urls A list of URLs to pass to the application command line
50 */
51 virtual std::shared_ptr<Instance> launchTest(const std::vector<URL>& urls = {}) = 0;
52+
53+ /** Get a a pointer to the running instances of this application based on the pid
54+
55+ \param pid The pid to find the instance of
56+ */
57+ virtual std::shared_ptr<Instance> findInstance(const pid_t& pid) = 0;
58 };
59
60 } // namespace app_launch
61
62=== modified file 'libubuntu-app-launch/jobs-base.cpp'
63--- libubuntu-app-launch/jobs-base.cpp 2017-01-26 22:46:06 +0000
64+++ libubuntu-app-launch/jobs-base.cpp 2017-02-10 15:30:01 +0000
65@@ -497,6 +497,37 @@
66 pidListToDbus(registry_, appId_, instance_, pids, "ApplicationResumed");
67 }
68
69+/** Focuses this application by sending SIGCONT to all the PIDs in the
70+ cgroup and tells the Shell to focus the application. */
71+void Base::focus()
72+{
73+ g_debug("Focusing application: %s", std::string(appId_).c_str());
74+
75+ GError* error = nullptr;
76+ GVariantBuilder params;
77+ g_variant_builder_init(&params, G_VARIANT_TYPE_TUPLE);
78+ g_variant_builder_add_value(&params, g_variant_new_string(std::string(appId_).c_str()));
79+ g_variant_builder_add_value(&params, g_variant_new_string(instance_.c_str()));
80+ g_dbus_connection_emit_signal(registry_->impl->_dbus.get(), /* bus */
81+ nullptr, /* destination */
82+ "/", /* path */
83+ "com.canonical.UbuntuAppLaunch", /* interface */
84+ "UnityFocusRequest", /* signal */
85+ g_variant_builder_end(&params), /* params */
86+ &error); /* error */
87+
88+ if (error != nullptr)
89+ {
90+ g_warning("Unable to emit signal 'UnityFocusRequest' for appid '%s': '%s'", std::string(appId_).c_str(),
91+ error->message);
92+ g_error_free(error);
93+ }
94+ else
95+ {
96+ g_debug("Emmitted 'UnityFocusRequest' to DBus");
97+ }
98+}
99+
100 /** Go through the list of PIDs calling a function and handling
101 the issue with getting PIDs being a racey condition.
102
103
104=== modified file 'libubuntu-app-launch/jobs-base.h'
105--- libubuntu-app-launch/jobs-base.h 2017-01-26 22:46:06 +0000
106+++ libubuntu-app-launch/jobs-base.h 2017-02-10 15:30:01 +0000
107@@ -49,6 +49,7 @@
108 bool hasPid(pid_t pid) override;
109 void pause() override;
110 void resume() override;
111+ void focus() override;
112
113 /* OOM Functions */
114 void setOomAdjustment(const oom::Score score) override;

Subscribers

People subscribed via source and target branches