Merge lp:~3v1n0/bamf/windows-signal-merge into lp:bamf

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
Reviewer Review Type Date Requested Status
Andrea Azzarone (community) Approve
Review via email: mp+290325@code.launchpad.net

Commit message

BamfApplication: bind window-{added,removed} signals to child-{added,removed} ones

And deprecate dbus Window{Added,Removed} signals as well

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

+1

review: Approve
lp:~3v1n0/bamf/windows-signal-merge updated
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 <arg name="path" type="s" direction="out"/>
6 </method>
7 <signal name="WindowRemoved">
8+ <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
9 <arg name="path" type="s"/>
10 </signal>
11 <signal name="WindowAdded">
12+ <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
13 <arg name="path" type="s"/>
14 </signal>
15 <signal name="SupportedMimeTypesChanged">
16
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 }
22
23 static void
24-bamf_application_on_window_added (BamfDBusItemApplication *proxy, const char *path, BamfApplication *self)
25+bamf_application_on_child_added (BamfApplication *self, BamfView *view)
26 {
27- BamfView *view;
28- BamfFactory *factory;
29-
30- g_return_if_fail (BAMF_IS_APPLICATION (self));
31-
32- factory = _bamf_factory_get_default ();
33- view = _bamf_factory_view_for_path_type (factory, path, BAMF_FACTORY_WINDOW);
34-
35 if (BAMF_IS_WINDOW (view))
36 {
37 guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view));
38@@ -495,16 +487,8 @@
39 }
40
41 static void
42-bamf_application_on_window_removed (BamfDBusItemApplication *proxy, const char *path, BamfApplication *self)
43+bamf_application_on_child_removed (BamfApplication *self, BamfView *view)
44 {
45- BamfView *view;
46- BamfFactory *factory;
47-
48- g_return_if_fail (BAMF_IS_APPLICATION (self));
49-
50- factory = _bamf_factory_get_default ();
51- view = _bamf_factory_view_for_path_type (factory, path, BAMF_FACTORY_WINDOW);
52-
53 if (BAMF_IS_WINDOW (view))
54 {
55 guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view));
56@@ -615,12 +599,6 @@
57 g_signal_connect (priv->proxy, "desktop-file-updated",
58 G_CALLBACK (bamf_application_on_desktop_file_updated), view);
59
60- g_signal_connect (priv->proxy, "window-added",
61- G_CALLBACK (bamf_application_on_window_added), view);
62-
63- g_signal_connect (priv->proxy, "window-removed",
64- G_CALLBACK (bamf_application_on_window_removed), view);
65-
66 g_signal_connect (priv->proxy, "supported-mime-types-changed",
67 G_CALLBACK (bamf_application_on_supported_mime_types_changed), view);
68
69@@ -760,7 +738,6 @@
70 BAMF_TYPE_WINDOW);
71 }
72
73-
74 static void
75 bamf_application_init (BamfApplication *self)
76 {
77@@ -768,6 +745,9 @@
78
79 priv = self->priv = BAMF_APPLICATION_GET_PRIVATE (self);
80 priv->show_stubs = -1;
81+
82+ g_signal_connect (self, "child-added", G_CALLBACK (bamf_application_on_child_added), NULL);
83+ g_signal_connect (self, "child-removed", G_CALLBACK (bamf_application_on_child_removed), NULL);
84 }
85
86 BamfApplication *
87
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 }
93
94 static void
95-view_exported (BamfView *view, BamfApplication *self)
96-{
97- g_signal_emit_by_name (self, "window-added", bamf_view_get_path (view));
98- g_signal_handlers_disconnect_by_func (view, view_exported, self);
99-}
100-
101-static void
102 bamf_application_child_added (BamfView *view, BamfView *child)
103 {
104 BamfApplication *application;
105@@ -978,22 +971,6 @@
106
107 application = BAMF_APPLICATION (view);
108
109- if (BAMF_IS_WINDOW (child))
110- {
111- window = BAMF_WINDOW (child);
112-
113- if (bamf_view_is_on_bus (child))
114- {
115- g_signal_emit_by_name (BAMF_APPLICATION (view), "window-added",
116- bamf_view_get_path (child));
117- }
118- else
119- {
120- g_signal_connect (G_OBJECT (child), "exported",
121- (GCallback) view_exported, view);
122- }
123- }
124-
125 g_signal_connect (G_OBJECT (child), "active-changed",
126 (GCallback) view_active_changed, view);
127 g_signal_connect (G_OBJECT (child), "urgent-changed",
128@@ -1104,15 +1081,6 @@
129 BamfApplication *self = BAMF_APPLICATION (view);
130 GList *children, *l;
131
132- if (BAMF_IS_WINDOW (child))
133- {
134- if (bamf_view_is_on_bus (child))
135- g_signal_emit_by_name (BAMF_APPLICATION (view), "window-removed",
136- bamf_view_get_path (child));
137- }
138-
139- g_signal_handlers_disconnect_by_data (G_OBJECT (child), view);
140-
141 bamf_application_ensure_flags (self);
142
143 children = bamf_view_get_children (view);
144@@ -1184,17 +1152,17 @@
145 }
146
147 static void
148-on_window_added (BamfApplication *self, const gchar *win_path, gpointer _not_used)
149+on_child_added (BamfApplication *self, const gchar *child_path, gpointer _not_used)
150 {
151 g_return_if_fail (BAMF_IS_APPLICATION (self));
152- g_signal_emit_by_name (self->priv->dbus_iface, "window-added", win_path);
153+ g_signal_emit_by_name (self->priv->dbus_iface, "window-added", child_path);
154 }
155
156 static void
157-on_window_removed (BamfApplication *self, const gchar *win_path, gpointer _not_used)
158+on_child_removed (BamfApplication *self, const gchar *child_path, gpointer _not_used)
159 {
160 g_return_if_fail (BAMF_IS_APPLICATION (self));
161- g_signal_emit_by_name (self->priv->dbus_iface, "window-removed", win_path);
162+ g_signal_emit_by_name (self->priv->dbus_iface, "window-removed", child_path);
163 }
164
165 static void
166@@ -1415,8 +1383,8 @@
167
168 /* We need to connect to the object own signals to redirect them to the dbus
169 * interface */
170- g_signal_connect (self, "window-added", G_CALLBACK (on_window_added), NULL);
171- g_signal_connect (self, "window-removed", G_CALLBACK (on_window_removed), NULL);
172+ g_signal_connect (self, "child-added", G_CALLBACK (on_child_added), NULL);
173+ g_signal_connect (self, "child-removed", G_CALLBACK (on_child_removed), NULL);
174 g_signal_connect (self, "desktop-file-updated", G_CALLBACK (on_desktop_file_updated), NULL);
175
176 /* Registering signal callbacks to reply to dbus method calls */
177
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 enum
183 {
184 CLOSED_INTERNAL,
185- CHILD_ADDED_INTERNAL,
186- CHILD_REMOVED_INTERNAL,
187 EXPORTED,
188
189 LAST_SIGNAL,
190@@ -342,6 +340,13 @@
191 bamf_view_remove_child (view, child);
192 }
193
194+static void
195+on_child_view_exported (BamfView *child, BamfView *view)
196+{
197+ g_signal_emit_by_name (view, "child-added", bamf_view_get_path (child));
198+ g_signal_handlers_disconnect_by_func (child, on_child_view_exported, view);
199+}
200+
201 void
202 bamf_view_add_child (BamfView *view,
203 BamfView *child)
204@@ -352,20 +357,26 @@
205 g_return_if_fail (BAMF_IS_VIEW (child));
206
207 g_signal_connect (G_OBJECT (child), "closed-internal",
208- (GCallback) bamf_view_handle_child_closed, view);
209+ G_CALLBACK (bamf_view_handle_child_closed), view);
210
211 /* Make sure our parent child lists are ok, pay attention to whose list you add parents to */
212 view->priv->children = g_list_prepend (view->priv->children, child);
213 child->priv->parents = g_list_prepend (child->priv->parents, view);
214
215+ if (bamf_view_is_on_bus (child))
216+ {
217+ added = bamf_view_get_path (child);
218+ g_signal_emit_by_name (view, "child-added", added);
219+ }
220+ else
221+ {
222+ g_signal_connect (G_OBJECT (child), "exported",
223+ G_CALLBACK (on_child_view_exported), view);
224+ }
225+
226 // Do this by hand so we can pass and object instead of a string
227 if (BAMF_VIEW_GET_CLASS (view)->child_added)
228 BAMF_VIEW_GET_CLASS (view)->child_added (view, child);
229-
230- g_signal_emit (view, view_signals[CHILD_ADDED_INTERNAL], 0, child);
231-
232- added = bamf_view_get_path (child);
233- g_signal_emit_by_name (view, "child-added", added);
234 }
235
236 void
237@@ -376,14 +387,12 @@
238 g_return_if_fail (BAMF_IS_VIEW (view));
239 g_return_if_fail (BAMF_IS_VIEW (child));
240
241- g_signal_handlers_disconnect_by_func (child, bamf_view_handle_child_closed, view);
242+ g_signal_handlers_disconnect_by_data (child, view);
243
244 /* Make sure our parent child lists are ok, pay attention to whose list you add parents to */
245 view->priv->children = g_list_remove (view->priv->children, child);
246 child->priv->parents = g_list_remove (child->priv->parents, view);
247
248- g_signal_emit (view, view_signals[CHILD_REMOVED_INTERNAL], 0, child);
249-
250 removed = bamf_view_get_path (child);
251 g_signal_emit_by_name (view, "child-removed", removed);
252
253@@ -1001,22 +1010,6 @@
254 NULL, NULL, NULL,
255 G_TYPE_NONE, 0);
256
257- view_signals [CHILD_ADDED_INTERNAL] =
258- g_signal_new ("child-added-internal",
259- G_OBJECT_CLASS_TYPE (klass),
260- G_SIGNAL_RUN_FIRST,
261- G_STRUCT_OFFSET (BamfViewClass, child_added_internal),
262- NULL, NULL, NULL,
263- G_TYPE_NONE, 1, BAMF_TYPE_VIEW);
264-
265- view_signals [CHILD_REMOVED_INTERNAL] =
266- g_signal_new ("child-removed-internal",
267- G_OBJECT_CLASS_TYPE (klass),
268- G_SIGNAL_RUN_FIRST,
269- G_STRUCT_OFFSET (BamfViewClass, child_removed_internal),
270- NULL, NULL, NULL,
271- G_TYPE_NONE, 1, BAMF_TYPE_VIEW);
272-
273 view_signals [EXPORTED] =
274 g_signal_new ("exported",
275 G_OBJECT_CLASS_TYPE (klass),
276
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
282 /*< signals >*/
283 void (* closed_internal) (BamfView *view);
284- void (* child_added_internal) (BamfView *view, BamfView *child);
285- void (* child_removed_internal) (BamfView *view, BamfView *child);
286 void (* exported) (BamfView *view);
287 };
288

Subscribers

People subscribed via source and target branches