Merge lp:~3v1n0/bamf/windows-signal-merge into lp:bamf
- windows-signal-merge
- Merge into trunk
Proposed by
Marco Trevisan (Treviño)
Status: | Merged |
---|---|
Approved by: | Andrea Azzarone |
Approved revision: | 631 |
Merged at revision: | 630 |
Proposed branch: | lp:~3v1n0/bamf/windows-signal-merge |
Merge into: | lp:bamf |
Diff against target: |
287 lines (+33/-92) 5 files modified
lib/libbamf-private/org.ayatana.bamf.view.xml (+2/-0) lib/libbamf/bamf-application.c (+5/-25) src/bamf-application.c (+6/-38) src/bamf-view.c (+20/-27) src/bamf-view.h (+0/-2) |
To merge this branch: | bzr merge lp:~3v1n0/bamf/windows-signal-merge |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrea Azzarone (community) | Approve | ||
Review via email: mp+290325@code.launchpad.net |
Commit message
BamfApplication: bind window-
And deprecate dbus Window{
Description of the change
To post a comment you must log in.
- 632. By Rico Tzschichholz
-
BamfApplication: avoid chaining-up signals. Just use child-{
added,removed} ones
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'lib/libbamf-private/org.ayatana.bamf.view.xml' | |||
2 | --- lib/libbamf-private/org.ayatana.bamf.view.xml 2016-02-25 14:51:27 +0000 | |||
3 | +++ lib/libbamf-private/org.ayatana.bamf.view.xml 2016-03-29 23:36:56 +0000 | |||
4 | @@ -98,9 +98,11 @@ | |||
5 | 98 | <arg name="path" type="s" direction="out"/> | 98 | <arg name="path" type="s" direction="out"/> |
6 | 99 | </method> | 99 | </method> |
7 | 100 | <signal name="WindowRemoved"> | 100 | <signal name="WindowRemoved"> |
8 | 101 | <annotation name="org.freedesktop.DBus.Deprecated" value="true"/> | ||
9 | 101 | <arg name="path" type="s"/> | 102 | <arg name="path" type="s"/> |
10 | 102 | </signal> | 103 | </signal> |
11 | 103 | <signal name="WindowAdded"> | 104 | <signal name="WindowAdded"> |
12 | 105 | <annotation name="org.freedesktop.DBus.Deprecated" value="true"/> | ||
13 | 104 | <arg name="path" type="s"/> | 106 | <arg name="path" type="s"/> |
14 | 105 | </signal> | 107 | </signal> |
15 | 106 | <signal name="SupportedMimeTypesChanged"> | 108 | <signal name="SupportedMimeTypesChanged"> |
16 | 107 | 109 | ||
17 | === modified file 'lib/libbamf/bamf-application.c' | |||
18 | --- lib/libbamf/bamf-application.c 2015-04-22 15:53:12 +0000 | |||
19 | +++ lib/libbamf/bamf-application.c 2016-03-29 23:36:56 +0000 | |||
20 | @@ -471,16 +471,8 @@ | |||
21 | 471 | } | 471 | } |
22 | 472 | 472 | ||
23 | 473 | static void | 473 | static void |
25 | 474 | bamf_application_on_window_added (BamfDBusItemApplication *proxy, const char *path, BamfApplication *self) | 474 | bamf_application_on_child_added (BamfApplication *self, BamfView *view) |
26 | 475 | { | 475 | { |
27 | 476 | BamfView *view; | ||
28 | 477 | BamfFactory *factory; | ||
29 | 478 | |||
30 | 479 | g_return_if_fail (BAMF_IS_APPLICATION (self)); | ||
31 | 480 | |||
32 | 481 | factory = _bamf_factory_get_default (); | ||
33 | 482 | view = _bamf_factory_view_for_path_type (factory, path, BAMF_FACTORY_WINDOW); | ||
34 | 483 | |||
35 | 484 | if (BAMF_IS_WINDOW (view)) | 476 | if (BAMF_IS_WINDOW (view)) |
36 | 485 | { | 477 | { |
37 | 486 | guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view)); | 478 | guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view)); |
38 | @@ -495,16 +487,8 @@ | |||
39 | 495 | } | 487 | } |
40 | 496 | 488 | ||
41 | 497 | static void | 489 | static void |
43 | 498 | bamf_application_on_window_removed (BamfDBusItemApplication *proxy, const char *path, BamfApplication *self) | 490 | bamf_application_on_child_removed (BamfApplication *self, BamfView *view) |
44 | 499 | { | 491 | { |
45 | 500 | BamfView *view; | ||
46 | 501 | BamfFactory *factory; | ||
47 | 502 | |||
48 | 503 | g_return_if_fail (BAMF_IS_APPLICATION (self)); | ||
49 | 504 | |||
50 | 505 | factory = _bamf_factory_get_default (); | ||
51 | 506 | view = _bamf_factory_view_for_path_type (factory, path, BAMF_FACTORY_WINDOW); | ||
52 | 507 | |||
53 | 508 | if (BAMF_IS_WINDOW (view)) | 492 | if (BAMF_IS_WINDOW (view)) |
54 | 509 | { | 493 | { |
55 | 510 | guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view)); | 494 | guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view)); |
56 | @@ -615,12 +599,6 @@ | |||
57 | 615 | g_signal_connect (priv->proxy, "desktop-file-updated", | 599 | g_signal_connect (priv->proxy, "desktop-file-updated", |
58 | 616 | G_CALLBACK (bamf_application_on_desktop_file_updated), view); | 600 | G_CALLBACK (bamf_application_on_desktop_file_updated), view); |
59 | 617 | 601 | ||
60 | 618 | g_signal_connect (priv->proxy, "window-added", | ||
61 | 619 | G_CALLBACK (bamf_application_on_window_added), view); | ||
62 | 620 | |||
63 | 621 | g_signal_connect (priv->proxy, "window-removed", | ||
64 | 622 | G_CALLBACK (bamf_application_on_window_removed), view); | ||
65 | 623 | |||
66 | 624 | g_signal_connect (priv->proxy, "supported-mime-types-changed", | 602 | g_signal_connect (priv->proxy, "supported-mime-types-changed", |
67 | 625 | G_CALLBACK (bamf_application_on_supported_mime_types_changed), view); | 603 | G_CALLBACK (bamf_application_on_supported_mime_types_changed), view); |
68 | 626 | 604 | ||
69 | @@ -760,7 +738,6 @@ | |||
70 | 760 | BAMF_TYPE_WINDOW); | 738 | BAMF_TYPE_WINDOW); |
71 | 761 | } | 739 | } |
72 | 762 | 740 | ||
73 | 763 | |||
74 | 764 | static void | 741 | static void |
75 | 765 | bamf_application_init (BamfApplication *self) | 742 | bamf_application_init (BamfApplication *self) |
76 | 766 | { | 743 | { |
77 | @@ -768,6 +745,9 @@ | |||
78 | 768 | 745 | ||
79 | 769 | priv = self->priv = BAMF_APPLICATION_GET_PRIVATE (self); | 746 | priv = self->priv = BAMF_APPLICATION_GET_PRIVATE (self); |
80 | 770 | priv->show_stubs = -1; | 747 | priv->show_stubs = -1; |
81 | 748 | |||
82 | 749 | g_signal_connect (self, "child-added", G_CALLBACK (bamf_application_on_child_added), NULL); | ||
83 | 750 | g_signal_connect (self, "child-removed", G_CALLBACK (bamf_application_on_child_removed), NULL); | ||
84 | 771 | } | 751 | } |
85 | 772 | 752 | ||
86 | 773 | BamfApplication * | 753 | BamfApplication * |
87 | 774 | 754 | ||
88 | === modified file 'src/bamf-application.c' | |||
89 | --- src/bamf-application.c 2016-03-21 14:34:34 +0000 | |||
90 | +++ src/bamf-application.c 2016-03-29 23:36:56 +0000 | |||
91 | @@ -963,13 +963,6 @@ | |||
92 | 963 | } | 963 | } |
93 | 964 | 964 | ||
94 | 965 | static void | 965 | static void |
95 | 966 | view_exported (BamfView *view, BamfApplication *self) | ||
96 | 967 | { | ||
97 | 968 | g_signal_emit_by_name (self, "window-added", bamf_view_get_path (view)); | ||
98 | 969 | g_signal_handlers_disconnect_by_func (view, view_exported, self); | ||
99 | 970 | } | ||
100 | 971 | |||
101 | 972 | static void | ||
102 | 973 | bamf_application_child_added (BamfView *view, BamfView *child) | 966 | bamf_application_child_added (BamfView *view, BamfView *child) |
103 | 974 | { | 967 | { |
104 | 975 | BamfApplication *application; | 968 | BamfApplication *application; |
105 | @@ -978,22 +971,6 @@ | |||
106 | 978 | 971 | ||
107 | 979 | application = BAMF_APPLICATION (view); | 972 | application = BAMF_APPLICATION (view); |
108 | 980 | 973 | ||
109 | 981 | if (BAMF_IS_WINDOW (child)) | ||
110 | 982 | { | ||
111 | 983 | window = BAMF_WINDOW (child); | ||
112 | 984 | |||
113 | 985 | if (bamf_view_is_on_bus (child)) | ||
114 | 986 | { | ||
115 | 987 | g_signal_emit_by_name (BAMF_APPLICATION (view), "window-added", | ||
116 | 988 | bamf_view_get_path (child)); | ||
117 | 989 | } | ||
118 | 990 | else | ||
119 | 991 | { | ||
120 | 992 | g_signal_connect (G_OBJECT (child), "exported", | ||
121 | 993 | (GCallback) view_exported, view); | ||
122 | 994 | } | ||
123 | 995 | } | ||
124 | 996 | |||
125 | 997 | g_signal_connect (G_OBJECT (child), "active-changed", | 974 | g_signal_connect (G_OBJECT (child), "active-changed", |
126 | 998 | (GCallback) view_active_changed, view); | 975 | (GCallback) view_active_changed, view); |
127 | 999 | g_signal_connect (G_OBJECT (child), "urgent-changed", | 976 | g_signal_connect (G_OBJECT (child), "urgent-changed", |
128 | @@ -1104,15 +1081,6 @@ | |||
129 | 1104 | BamfApplication *self = BAMF_APPLICATION (view); | 1081 | BamfApplication *self = BAMF_APPLICATION (view); |
130 | 1105 | GList *children, *l; | 1082 | GList *children, *l; |
131 | 1106 | 1083 | ||
132 | 1107 | if (BAMF_IS_WINDOW (child)) | ||
133 | 1108 | { | ||
134 | 1109 | if (bamf_view_is_on_bus (child)) | ||
135 | 1110 | g_signal_emit_by_name (BAMF_APPLICATION (view), "window-removed", | ||
136 | 1111 | bamf_view_get_path (child)); | ||
137 | 1112 | } | ||
138 | 1113 | |||
139 | 1114 | g_signal_handlers_disconnect_by_data (G_OBJECT (child), view); | ||
140 | 1115 | |||
141 | 1116 | bamf_application_ensure_flags (self); | 1084 | bamf_application_ensure_flags (self); |
142 | 1117 | 1085 | ||
143 | 1118 | children = bamf_view_get_children (view); | 1086 | children = bamf_view_get_children (view); |
144 | @@ -1184,17 +1152,17 @@ | |||
145 | 1184 | } | 1152 | } |
146 | 1185 | 1153 | ||
147 | 1186 | static void | 1154 | static void |
149 | 1187 | on_window_added (BamfApplication *self, const gchar *win_path, gpointer _not_used) | 1155 | on_child_added (BamfApplication *self, const gchar *child_path, gpointer _not_used) |
150 | 1188 | { | 1156 | { |
151 | 1189 | g_return_if_fail (BAMF_IS_APPLICATION (self)); | 1157 | g_return_if_fail (BAMF_IS_APPLICATION (self)); |
153 | 1190 | g_signal_emit_by_name (self->priv->dbus_iface, "window-added", win_path); | 1158 | g_signal_emit_by_name (self->priv->dbus_iface, "window-added", child_path); |
154 | 1191 | } | 1159 | } |
155 | 1192 | 1160 | ||
156 | 1193 | static void | 1161 | static void |
158 | 1194 | on_window_removed (BamfApplication *self, const gchar *win_path, gpointer _not_used) | 1162 | on_child_removed (BamfApplication *self, const gchar *child_path, gpointer _not_used) |
159 | 1195 | { | 1163 | { |
160 | 1196 | g_return_if_fail (BAMF_IS_APPLICATION (self)); | 1164 | g_return_if_fail (BAMF_IS_APPLICATION (self)); |
162 | 1197 | g_signal_emit_by_name (self->priv->dbus_iface, "window-removed", win_path); | 1165 | g_signal_emit_by_name (self->priv->dbus_iface, "window-removed", child_path); |
163 | 1198 | } | 1166 | } |
164 | 1199 | 1167 | ||
165 | 1200 | static void | 1168 | static void |
166 | @@ -1415,8 +1383,8 @@ | |||
167 | 1415 | 1383 | ||
168 | 1416 | /* We need to connect to the object own signals to redirect them to the dbus | 1384 | /* We need to connect to the object own signals to redirect them to the dbus |
169 | 1417 | * interface */ | 1385 | * interface */ |
172 | 1418 | g_signal_connect (self, "window-added", G_CALLBACK (on_window_added), NULL); | 1386 | g_signal_connect (self, "child-added", G_CALLBACK (on_child_added), NULL); |
173 | 1419 | g_signal_connect (self, "window-removed", G_CALLBACK (on_window_removed), NULL); | 1387 | g_signal_connect (self, "child-removed", G_CALLBACK (on_child_removed), NULL); |
174 | 1420 | g_signal_connect (self, "desktop-file-updated", G_CALLBACK (on_desktop_file_updated), NULL); | 1388 | g_signal_connect (self, "desktop-file-updated", G_CALLBACK (on_desktop_file_updated), NULL); |
175 | 1421 | 1389 | ||
176 | 1422 | /* Registering signal callbacks to reply to dbus method calls */ | 1390 | /* Registering signal callbacks to reply to dbus method calls */ |
177 | 1423 | 1391 | ||
178 | === modified file 'src/bamf-view.c' | |||
179 | --- src/bamf-view.c 2016-03-21 14:31:14 +0000 | |||
180 | +++ src/bamf-view.c 2016-03-29 23:36:56 +0000 | |||
181 | @@ -46,8 +46,6 @@ | |||
182 | 46 | enum | 46 | enum |
183 | 47 | { | 47 | { |
184 | 48 | CLOSED_INTERNAL, | 48 | CLOSED_INTERNAL, |
185 | 49 | CHILD_ADDED_INTERNAL, | ||
186 | 50 | CHILD_REMOVED_INTERNAL, | ||
187 | 51 | EXPORTED, | 49 | EXPORTED, |
188 | 52 | 50 | ||
189 | 53 | LAST_SIGNAL, | 51 | LAST_SIGNAL, |
190 | @@ -342,6 +340,13 @@ | |||
191 | 342 | bamf_view_remove_child (view, child); | 340 | bamf_view_remove_child (view, child); |
192 | 343 | } | 341 | } |
193 | 344 | 342 | ||
194 | 343 | static void | ||
195 | 344 | on_child_view_exported (BamfView *child, BamfView *view) | ||
196 | 345 | { | ||
197 | 346 | g_signal_emit_by_name (view, "child-added", bamf_view_get_path (child)); | ||
198 | 347 | g_signal_handlers_disconnect_by_func (child, on_child_view_exported, view); | ||
199 | 348 | } | ||
200 | 349 | |||
201 | 345 | void | 350 | void |
202 | 346 | bamf_view_add_child (BamfView *view, | 351 | bamf_view_add_child (BamfView *view, |
203 | 347 | BamfView *child) | 352 | BamfView *child) |
204 | @@ -352,20 +357,26 @@ | |||
205 | 352 | g_return_if_fail (BAMF_IS_VIEW (child)); | 357 | g_return_if_fail (BAMF_IS_VIEW (child)); |
206 | 353 | 358 | ||
207 | 354 | g_signal_connect (G_OBJECT (child), "closed-internal", | 359 | g_signal_connect (G_OBJECT (child), "closed-internal", |
209 | 355 | (GCallback) bamf_view_handle_child_closed, view); | 360 | G_CALLBACK (bamf_view_handle_child_closed), view); |
210 | 356 | 361 | ||
211 | 357 | /* Make sure our parent child lists are ok, pay attention to whose list you add parents to */ | 362 | /* Make sure our parent child lists are ok, pay attention to whose list you add parents to */ |
212 | 358 | view->priv->children = g_list_prepend (view->priv->children, child); | 363 | view->priv->children = g_list_prepend (view->priv->children, child); |
213 | 359 | child->priv->parents = g_list_prepend (child->priv->parents, view); | 364 | child->priv->parents = g_list_prepend (child->priv->parents, view); |
214 | 360 | 365 | ||
215 | 366 | if (bamf_view_is_on_bus (child)) | ||
216 | 367 | { | ||
217 | 368 | added = bamf_view_get_path (child); | ||
218 | 369 | g_signal_emit_by_name (view, "child-added", added); | ||
219 | 370 | } | ||
220 | 371 | else | ||
221 | 372 | { | ||
222 | 373 | g_signal_connect (G_OBJECT (child), "exported", | ||
223 | 374 | G_CALLBACK (on_child_view_exported), view); | ||
224 | 375 | } | ||
225 | 376 | |||
226 | 361 | // Do this by hand so we can pass and object instead of a string | 377 | // Do this by hand so we can pass and object instead of a string |
227 | 362 | if (BAMF_VIEW_GET_CLASS (view)->child_added) | 378 | if (BAMF_VIEW_GET_CLASS (view)->child_added) |
228 | 363 | BAMF_VIEW_GET_CLASS (view)->child_added (view, child); | 379 | BAMF_VIEW_GET_CLASS (view)->child_added (view, child); |
229 | 364 | |||
230 | 365 | g_signal_emit (view, view_signals[CHILD_ADDED_INTERNAL], 0, child); | ||
231 | 366 | |||
232 | 367 | added = bamf_view_get_path (child); | ||
233 | 368 | g_signal_emit_by_name (view, "child-added", added); | ||
234 | 369 | } | 380 | } |
235 | 370 | 381 | ||
236 | 371 | void | 382 | void |
237 | @@ -376,14 +387,12 @@ | |||
238 | 376 | g_return_if_fail (BAMF_IS_VIEW (view)); | 387 | g_return_if_fail (BAMF_IS_VIEW (view)); |
239 | 377 | g_return_if_fail (BAMF_IS_VIEW (child)); | 388 | g_return_if_fail (BAMF_IS_VIEW (child)); |
240 | 378 | 389 | ||
242 | 379 | g_signal_handlers_disconnect_by_func (child, bamf_view_handle_child_closed, view); | 390 | g_signal_handlers_disconnect_by_data (child, view); |
243 | 380 | 391 | ||
244 | 381 | /* Make sure our parent child lists are ok, pay attention to whose list you add parents to */ | 392 | /* Make sure our parent child lists are ok, pay attention to whose list you add parents to */ |
245 | 382 | view->priv->children = g_list_remove (view->priv->children, child); | 393 | view->priv->children = g_list_remove (view->priv->children, child); |
246 | 383 | child->priv->parents = g_list_remove (child->priv->parents, view); | 394 | child->priv->parents = g_list_remove (child->priv->parents, view); |
247 | 384 | 395 | ||
248 | 385 | g_signal_emit (view, view_signals[CHILD_REMOVED_INTERNAL], 0, child); | ||
249 | 386 | |||
250 | 387 | removed = bamf_view_get_path (child); | 396 | removed = bamf_view_get_path (child); |
251 | 388 | g_signal_emit_by_name (view, "child-removed", removed); | 397 | g_signal_emit_by_name (view, "child-removed", removed); |
252 | 389 | 398 | ||
253 | @@ -1001,22 +1010,6 @@ | |||
254 | 1001 | NULL, NULL, NULL, | 1010 | NULL, NULL, NULL, |
255 | 1002 | G_TYPE_NONE, 0); | 1011 | G_TYPE_NONE, 0); |
256 | 1003 | 1012 | ||
257 | 1004 | view_signals [CHILD_ADDED_INTERNAL] = | ||
258 | 1005 | g_signal_new ("child-added-internal", | ||
259 | 1006 | G_OBJECT_CLASS_TYPE (klass), | ||
260 | 1007 | G_SIGNAL_RUN_FIRST, | ||
261 | 1008 | G_STRUCT_OFFSET (BamfViewClass, child_added_internal), | ||
262 | 1009 | NULL, NULL, NULL, | ||
263 | 1010 | G_TYPE_NONE, 1, BAMF_TYPE_VIEW); | ||
264 | 1011 | |||
265 | 1012 | view_signals [CHILD_REMOVED_INTERNAL] = | ||
266 | 1013 | g_signal_new ("child-removed-internal", | ||
267 | 1014 | G_OBJECT_CLASS_TYPE (klass), | ||
268 | 1015 | G_SIGNAL_RUN_FIRST, | ||
269 | 1016 | G_STRUCT_OFFSET (BamfViewClass, child_removed_internal), | ||
270 | 1017 | NULL, NULL, NULL, | ||
271 | 1018 | G_TYPE_NONE, 1, BAMF_TYPE_VIEW); | ||
272 | 1019 | |||
273 | 1020 | view_signals [EXPORTED] = | 1013 | view_signals [EXPORTED] = |
274 | 1021 | g_signal_new ("exported", | 1014 | g_signal_new ("exported", |
275 | 1022 | G_OBJECT_CLASS_TYPE (klass), | 1015 | G_OBJECT_CLASS_TYPE (klass), |
276 | 1023 | 1016 | ||
277 | === modified file 'src/bamf-view.h' | |||
278 | --- src/bamf-view.h 2016-01-19 14:54:58 +0000 | |||
279 | +++ src/bamf-view.h 2016-03-29 23:36:56 +0000 | |||
280 | @@ -57,8 +57,6 @@ | |||
281 | 57 | 57 | ||
282 | 58 | /*< signals >*/ | 58 | /*< signals >*/ |
283 | 59 | void (* closed_internal) (BamfView *view); | 59 | void (* closed_internal) (BamfView *view); |
284 | 60 | void (* child_added_internal) (BamfView *view, BamfView *child); | ||
285 | 61 | void (* child_removed_internal) (BamfView *view, BamfView *child); | ||
286 | 62 | void (* exported) (BamfView *view); | 60 | void (* exported) (BamfView *view); |
287 | 63 | }; | 61 | }; |
288 | 64 | 62 |
+1