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
=== modified file 'lib/libbamf-private/org.ayatana.bamf.view.xml'
--- lib/libbamf-private/org.ayatana.bamf.view.xml 2016-02-25 14:51:27 +0000
+++ lib/libbamf-private/org.ayatana.bamf.view.xml 2016-03-29 23:36:56 +0000
@@ -98,9 +98,11 @@
98 <arg name="path" type="s" direction="out"/>98 <arg name="path" type="s" direction="out"/>
99 </method>99 </method>
100 <signal name="WindowRemoved">100 <signal name="WindowRemoved">
101 <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
101 <arg name="path" type="s"/>102 <arg name="path" type="s"/>
102 </signal>103 </signal>
103 <signal name="WindowAdded">104 <signal name="WindowAdded">
105 <annotation name="org.freedesktop.DBus.Deprecated" value="true"/>
104 <arg name="path" type="s"/>106 <arg name="path" type="s"/>
105 </signal>107 </signal>
106 <signal name="SupportedMimeTypesChanged">108 <signal name="SupportedMimeTypesChanged">
107109
=== modified file 'lib/libbamf/bamf-application.c'
--- lib/libbamf/bamf-application.c 2015-04-22 15:53:12 +0000
+++ lib/libbamf/bamf-application.c 2016-03-29 23:36:56 +0000
@@ -471,16 +471,8 @@
471}471}
472472
473static void473static void
474bamf_application_on_window_added (BamfDBusItemApplication *proxy, const char *path, BamfApplication *self)474bamf_application_on_child_added (BamfApplication *self, BamfView *view)
475{475{
476 BamfView *view;
477 BamfFactory *factory;
478
479 g_return_if_fail (BAMF_IS_APPLICATION (self));
480
481 factory = _bamf_factory_get_default ();
482 view = _bamf_factory_view_for_path_type (factory, path, BAMF_FACTORY_WINDOW);
483
484 if (BAMF_IS_WINDOW (view))476 if (BAMF_IS_WINDOW (view))
485 {477 {
486 guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view));478 guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view));
@@ -495,16 +487,8 @@
495}487}
496488
497static void489static void
498bamf_application_on_window_removed (BamfDBusItemApplication *proxy, const char *path, BamfApplication *self)490bamf_application_on_child_removed (BamfApplication *self, BamfView *view)
499{491{
500 BamfView *view;
501 BamfFactory *factory;
502
503 g_return_if_fail (BAMF_IS_APPLICATION (self));
504
505 factory = _bamf_factory_get_default ();
506 view = _bamf_factory_view_for_path_type (factory, path, BAMF_FACTORY_WINDOW);
507
508 if (BAMF_IS_WINDOW (view))492 if (BAMF_IS_WINDOW (view))
509 {493 {
510 guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view));494 guint32 xid = bamf_window_get_xid (BAMF_WINDOW (view));
@@ -615,12 +599,6 @@
615 g_signal_connect (priv->proxy, "desktop-file-updated",599 g_signal_connect (priv->proxy, "desktop-file-updated",
616 G_CALLBACK (bamf_application_on_desktop_file_updated), view);600 G_CALLBACK (bamf_application_on_desktop_file_updated), view);
617601
618 g_signal_connect (priv->proxy, "window-added",
619 G_CALLBACK (bamf_application_on_window_added), view);
620
621 g_signal_connect (priv->proxy, "window-removed",
622 G_CALLBACK (bamf_application_on_window_removed), view);
623
624 g_signal_connect (priv->proxy, "supported-mime-types-changed",602 g_signal_connect (priv->proxy, "supported-mime-types-changed",
625 G_CALLBACK (bamf_application_on_supported_mime_types_changed), view);603 G_CALLBACK (bamf_application_on_supported_mime_types_changed), view);
626604
@@ -760,7 +738,6 @@
760 BAMF_TYPE_WINDOW);738 BAMF_TYPE_WINDOW);
761}739}
762740
763
764static void741static void
765bamf_application_init (BamfApplication *self)742bamf_application_init (BamfApplication *self)
766{743{
@@ -768,6 +745,9 @@
768745
769 priv = self->priv = BAMF_APPLICATION_GET_PRIVATE (self);746 priv = self->priv = BAMF_APPLICATION_GET_PRIVATE (self);
770 priv->show_stubs = -1;747 priv->show_stubs = -1;
748
749 g_signal_connect (self, "child-added", G_CALLBACK (bamf_application_on_child_added), NULL);
750 g_signal_connect (self, "child-removed", G_CALLBACK (bamf_application_on_child_removed), NULL);
771}751}
772752
773BamfApplication *753BamfApplication *
774754
=== modified file 'src/bamf-application.c'
--- src/bamf-application.c 2016-03-21 14:34:34 +0000
+++ src/bamf-application.c 2016-03-29 23:36:56 +0000
@@ -963,13 +963,6 @@
963}963}
964964
965static void965static void
966view_exported (BamfView *view, BamfApplication *self)
967{
968 g_signal_emit_by_name (self, "window-added", bamf_view_get_path (view));
969 g_signal_handlers_disconnect_by_func (view, view_exported, self);
970}
971
972static void
973bamf_application_child_added (BamfView *view, BamfView *child)966bamf_application_child_added (BamfView *view, BamfView *child)
974{967{
975 BamfApplication *application;968 BamfApplication *application;
@@ -978,22 +971,6 @@
978971
979 application = BAMF_APPLICATION (view);972 application = BAMF_APPLICATION (view);
980973
981 if (BAMF_IS_WINDOW (child))
982 {
983 window = BAMF_WINDOW (child);
984
985 if (bamf_view_is_on_bus (child))
986 {
987 g_signal_emit_by_name (BAMF_APPLICATION (view), "window-added",
988 bamf_view_get_path (child));
989 }
990 else
991 {
992 g_signal_connect (G_OBJECT (child), "exported",
993 (GCallback) view_exported, view);
994 }
995 }
996
997 g_signal_connect (G_OBJECT (child), "active-changed",974 g_signal_connect (G_OBJECT (child), "active-changed",
998 (GCallback) view_active_changed, view);975 (GCallback) view_active_changed, view);
999 g_signal_connect (G_OBJECT (child), "urgent-changed",976 g_signal_connect (G_OBJECT (child), "urgent-changed",
@@ -1104,15 +1081,6 @@
1104 BamfApplication *self = BAMF_APPLICATION (view);1081 BamfApplication *self = BAMF_APPLICATION (view);
1105 GList *children, *l;1082 GList *children, *l;
11061083
1107 if (BAMF_IS_WINDOW (child))
1108 {
1109 if (bamf_view_is_on_bus (child))
1110 g_signal_emit_by_name (BAMF_APPLICATION (view), "window-removed",
1111 bamf_view_get_path (child));
1112 }
1113
1114 g_signal_handlers_disconnect_by_data (G_OBJECT (child), view);
1115
1116 bamf_application_ensure_flags (self);1084 bamf_application_ensure_flags (self);
11171085
1118 children = bamf_view_get_children (view);1086 children = bamf_view_get_children (view);
@@ -1184,17 +1152,17 @@
1184}1152}
11851153
1186static void1154static void
1187on_window_added (BamfApplication *self, const gchar *win_path, gpointer _not_used)1155on_child_added (BamfApplication *self, const gchar *child_path, gpointer _not_used)
1188{1156{
1189 g_return_if_fail (BAMF_IS_APPLICATION (self));1157 g_return_if_fail (BAMF_IS_APPLICATION (self));
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);
1191}1159}
11921160
1193static void1161static void
1194on_window_removed (BamfApplication *self, const gchar *win_path, gpointer _not_used)1162on_child_removed (BamfApplication *self, const gchar *child_path, gpointer _not_used)
1195{1163{
1196 g_return_if_fail (BAMF_IS_APPLICATION (self));1164 g_return_if_fail (BAMF_IS_APPLICATION (self));
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);
1198}1166}
11991167
1200static void1168static void
@@ -1415,8 +1383,8 @@
14151383
1416 /* We need to connect to the object own signals to redirect them to the dbus1384 /* We need to connect to the object own signals to redirect them to the dbus
1417 * interface */1385 * interface */
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);
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);
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);
14211389
1422 /* Registering signal callbacks to reply to dbus method calls */1390 /* Registering signal callbacks to reply to dbus method calls */
14231391
=== modified file 'src/bamf-view.c'
--- src/bamf-view.c 2016-03-21 14:31:14 +0000
+++ src/bamf-view.c 2016-03-29 23:36:56 +0000
@@ -46,8 +46,6 @@
46enum46enum
47{47{
48 CLOSED_INTERNAL,48 CLOSED_INTERNAL,
49 CHILD_ADDED_INTERNAL,
50 CHILD_REMOVED_INTERNAL,
51 EXPORTED,49 EXPORTED,
5250
53 LAST_SIGNAL,51 LAST_SIGNAL,
@@ -342,6 +340,13 @@
342 bamf_view_remove_child (view, child);340 bamf_view_remove_child (view, child);
343}341}
344342
343static void
344on_child_view_exported (BamfView *child, BamfView *view)
345{
346 g_signal_emit_by_name (view, "child-added", bamf_view_get_path (child));
347 g_signal_handlers_disconnect_by_func (child, on_child_view_exported, view);
348}
349
345void350void
346bamf_view_add_child (BamfView *view,351bamf_view_add_child (BamfView *view,
347 BamfView *child)352 BamfView *child)
@@ -352,20 +357,26 @@
352 g_return_if_fail (BAMF_IS_VIEW (child));357 g_return_if_fail (BAMF_IS_VIEW (child));
353358
354 g_signal_connect (G_OBJECT (child), "closed-internal",359 g_signal_connect (G_OBJECT (child), "closed-internal",
355 (GCallback) bamf_view_handle_child_closed, view);360 G_CALLBACK (bamf_view_handle_child_closed), view);
356361
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 */
358 view->priv->children = g_list_prepend (view->priv->children, child);363 view->priv->children = g_list_prepend (view->priv->children, child);
359 child->priv->parents = g_list_prepend (child->priv->parents, view);364 child->priv->parents = g_list_prepend (child->priv->parents, view);
360365
366 if (bamf_view_is_on_bus (child))
367 {
368 added = bamf_view_get_path (child);
369 g_signal_emit_by_name (view, "child-added", added);
370 }
371 else
372 {
373 g_signal_connect (G_OBJECT (child), "exported",
374 G_CALLBACK (on_child_view_exported), view);
375 }
376
361 // Do this by hand so we can pass and object instead of a string377 // Do this by hand so we can pass and object instead of a string
362 if (BAMF_VIEW_GET_CLASS (view)->child_added)378 if (BAMF_VIEW_GET_CLASS (view)->child_added)
363 BAMF_VIEW_GET_CLASS (view)->child_added (view, child);379 BAMF_VIEW_GET_CLASS (view)->child_added (view, child);
364
365 g_signal_emit (view, view_signals[CHILD_ADDED_INTERNAL], 0, child);
366
367 added = bamf_view_get_path (child);
368 g_signal_emit_by_name (view, "child-added", added);
369}380}
370381
371void382void
@@ -376,14 +387,12 @@
376 g_return_if_fail (BAMF_IS_VIEW (view));387 g_return_if_fail (BAMF_IS_VIEW (view));
377 g_return_if_fail (BAMF_IS_VIEW (child));388 g_return_if_fail (BAMF_IS_VIEW (child));
378389
379 g_signal_handlers_disconnect_by_func (child, bamf_view_handle_child_closed, view);390 g_signal_handlers_disconnect_by_data (child, view);
380391
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 */
382 view->priv->children = g_list_remove (view->priv->children, child);393 view->priv->children = g_list_remove (view->priv->children, child);
383 child->priv->parents = g_list_remove (child->priv->parents, view);394 child->priv->parents = g_list_remove (child->priv->parents, view);
384395
385 g_signal_emit (view, view_signals[CHILD_REMOVED_INTERNAL], 0, child);
386
387 removed = bamf_view_get_path (child);396 removed = bamf_view_get_path (child);
388 g_signal_emit_by_name (view, "child-removed", removed);397 g_signal_emit_by_name (view, "child-removed", removed);
389398
@@ -1001,22 +1010,6 @@
1001 NULL, NULL, NULL,1010 NULL, NULL, NULL,
1002 G_TYPE_NONE, 0);1011 G_TYPE_NONE, 0);
10031012
1004 view_signals [CHILD_ADDED_INTERNAL] =
1005 g_signal_new ("child-added-internal",
1006 G_OBJECT_CLASS_TYPE (klass),
1007 G_SIGNAL_RUN_FIRST,
1008 G_STRUCT_OFFSET (BamfViewClass, child_added_internal),
1009 NULL, NULL, NULL,
1010 G_TYPE_NONE, 1, BAMF_TYPE_VIEW);
1011
1012 view_signals [CHILD_REMOVED_INTERNAL] =
1013 g_signal_new ("child-removed-internal",
1014 G_OBJECT_CLASS_TYPE (klass),
1015 G_SIGNAL_RUN_FIRST,
1016 G_STRUCT_OFFSET (BamfViewClass, child_removed_internal),
1017 NULL, NULL, NULL,
1018 G_TYPE_NONE, 1, BAMF_TYPE_VIEW);
1019
1020 view_signals [EXPORTED] =1013 view_signals [EXPORTED] =
1021 g_signal_new ("exported",1014 g_signal_new ("exported",
1022 G_OBJECT_CLASS_TYPE (klass),1015 G_OBJECT_CLASS_TYPE (klass),
10231016
=== modified file 'src/bamf-view.h'
--- src/bamf-view.h 2016-01-19 14:54:58 +0000
+++ src/bamf-view.h 2016-03-29 23:36:56 +0000
@@ -57,8 +57,6 @@
5757
58 /*< signals >*/58 /*< signals >*/
59 void (* closed_internal) (BamfView *view);59 void (* closed_internal) (BamfView *view);
60 void (* child_added_internal) (BamfView *view, BamfView *child);
61 void (* child_removed_internal) (BamfView *view, BamfView *child);
62 void (* exported) (BamfView *view);60 void (* exported) (BamfView *view);
63};61};
6462

Subscribers

People subscribed via source and target branches