Merge lp:~3v1n0/bamf/ignore-desktopless-preregistration into lp:bamf

Proposed by Marco Trevisan (Treviño)
Status: Merged
Approved by: Andrea Azzarone
Approved revision: 627
Merged at revision: 628
Proposed branch: lp:~3v1n0/bamf/ignore-desktopless-preregistration
Merge into: lp:bamf
Diff against target: 65 lines (+31/-3)
1 file modified
src/bamf-matcher.c (+31/-3)
To merge this branch: bzr merge lp:~3v1n0/bamf/ignore-desktopless-preregistration
Reviewer Review Type Date Requested Status
Andrea Azzarone (community) Approve
Review via email: mp+289792@code.launchpad.net

Commit message

BamfMatcher: avoid to register apps with invalid (empty or not existing) destkop files

To post a comment you must log in.
Revision history for this message
Andrea Azzarone (azzar1) wrote :

+1

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/bamf-matcher.c'
2--- src/bamf-matcher.c 2016-03-21 15:16:22 +0000
3+++ src/bamf-matcher.c 2016-03-22 13:37:19 +0000
4@@ -148,7 +148,7 @@
5
6 g_return_val_if_fail (BAMF_IS_MATCHER (self), NULL);
7
8- if (!desktop_file)
9+ if (!desktop_file || desktop_file[0] == '\0')
10 return NULL;
11
12 for (l = self->priv->views; l; l = l->next)
13@@ -2362,6 +2362,34 @@
14 return autostart;
15 }
16
17+gboolean
18+is_valid_desktop_file (const gchar *desktop_file)
19+{
20+ if (!desktop_file || desktop_file[0] == '\0')
21+ return FALSE;
22+
23+ if (!g_file_test (desktop_file, G_FILE_TEST_EXISTS))
24+ return FALSE;
25+
26+ return TRUE;
27+}
28+
29+gboolean
30+is_visible_desktop_file (BamfMatcher *self,
31+ const gchar *desktop_file)
32+{
33+ if (!is_valid_desktop_file (desktop_file))
34+ return FALSE;
35+
36+ if (is_no_display_desktop (self, desktop_file))
37+ return FALSE;
38+
39+ if (is_autostart_desktop_file (desktop_file))
40+ return FALSE;
41+
42+ return TRUE;
43+}
44+
45 void
46 bamf_matcher_register_desktop_file_for_pid (BamfMatcher * self,
47 const gchar * desktop_file,
48@@ -2375,7 +2403,7 @@
49 g_return_if_fail (BAMF_IS_MATCHER (self));
50 g_return_if_fail (desktop_file);
51
52- if (is_no_display_desktop (self, desktop_file) || is_autostart_desktop_file (desktop_file))
53+ if (!is_visible_desktop_file (self, desktop_file))
54 return;
55
56 key = GUINT_TO_POINTER (pid);
57@@ -2425,7 +2453,7 @@
58 g_return_if_fail (BAMF_IS_MATCHER (self));
59 g_return_if_fail (desktop_file != NULL);
60
61- if (is_no_display_desktop (self, desktop_file) || is_autostart_desktop_file (desktop_file))
62+ if (!is_visible_desktop_file (self, desktop_file))
63 return;
64
65 app = bamf_matcher_get_application_by_desktop_file (self, desktop_file);

Subscribers

People subscribed via source and target branches