[gnome-settings-daemon/wip/flashback: 4/10] gnome-settings-daemon: split out OSD from org.gnome.Shell
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/wip/flashback: 4/10] gnome-settings-daemon: split out OSD from org.gnome.Shell
- Date: Mon, 29 Dec 2014 14:11:00 +0000 (UTC)
commit 0524968f0c5571737164f5f07bb0fcda25bc7acb
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Sat Dec 13 23:59:08 2014 +0200
gnome-settings-daemon: split out OSD from org.gnome.Shell
OSD can be reused in other desktop environments that are using
GNOME components.
.gitignore | 2 +
gnome-settings-daemon/Makefile.am | 15 +++++++++++
gnome-settings-daemon/gnome-settings-bus.c | 30 ++++++++++++++++++++++
gnome-settings-daemon/gnome-settings-bus.h | 2 +
gnome-settings-daemon/org.gnome.Shell.OSD.xml | 33 +++++++++++++++++++++++++
gnome-settings-daemon/org.gnome.Shell.xml | 3 --
6 files changed, 82 insertions(+), 3 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e4e5725..c16bfdf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,6 +41,8 @@ gnome-settings-daemon/gsd-session-manager-glue.c
gnome-settings-daemon/gsd-session-manager-glue.h
gnome-settings-daemon/gsd-shell-glue.c
gnome-settings-daemon/gsd-shell-glue.h
+gnome-settings-daemon/gsd-shell-osd-glue.c
+gnome-settings-daemon/gsd-shell-osd-glue.h
data/*.pc
data/*.xml
data/*.xml.in
diff --git a/gnome-settings-daemon/Makefile.am b/gnome-settings-daemon/Makefile.am
index dd901c7..0972c83 100644
--- a/gnome-settings-daemon/Makefile.am
+++ b/gnome-settings-daemon/Makefile.am
@@ -58,10 +58,24 @@ $(shell_dbus_built_sources) : Makefile.am org.gnome.Shell.xml
"org.gtk.GDBus.C.Name" Shell \
$(srcdir)/org.gnome.Shell.xml
+shell_osd_dbus_built_sources = gsd-shell-osd-glue.c gsd-shell-osd-glue.h
+
+BUILT_SOURCES += $(shell_osd_dbus_built_sources)
+
+$(shell_osd_dbus_built_sources) : Makefile.am org.gnome.Shell.OSD.xml
+ gdbus-codegen \
+ --interface-prefix org.gnome.Shell.OSD \
+ --generate-c-code gsd-shell-osd-glue \
+ --c-namespace Gsd \
+ --annotate "org.gnome.Shell.OSD" \
+ "org.gtk.GDBus.C.Name" ShellOSD \
+ $(srcdir)/org.gnome.Shell.OSD.xml
+
libgsd_la_SOURCES = \
$(session_manager_dbus_built_sources) \
$(screen_saver_dbus_built_sources) \
$(shell_dbus_built_sources) \
+ $(shell_osd_dbus_built_sources) \
gnome-settings-profile.c \
gnome-settings-profile.h \
gnome-settings-bus.c \
@@ -101,6 +115,7 @@ EXTRA_DIST = \
org.gnome.SessionManager.xml \
org.gnome.ScreenSaver.xml \
org.gnome.Shell.xml \
+ org.gnome.Shell.OSD.xml \
$(NULL)
gnome-settings-daemon-localeexec: gnome-settings-daemon-localeexec.in
diff --git a/gnome-settings-daemon/gnome-settings-bus.c b/gnome-settings-daemon/gnome-settings-bus.c
index c4d14f8..f94fdc8 100644
--- a/gnome-settings-daemon/gnome-settings-bus.c
+++ b/gnome-settings-daemon/gnome-settings-bus.c
@@ -42,6 +42,9 @@
#define GNOME_SHELL_DBUS_NAME "org.gnome.Shell"
#define GNOME_SHELL_DBUS_OBJECT "/org/gnome/Shell"
+#define GNOME_SHELL_OSD_DBUS_NAME "org.gnome.Shell.OSD"
+#define GNOME_SHELL_OSD_DBUS_OBJECT "/org/gnome/Shell/OSD"
+
GsdSessionManager *
gnome_settings_bus_get_session_proxy (void)
{
@@ -122,6 +125,33 @@ gnome_settings_bus_get_shell_proxy (void)
return shell_proxy;
}
+GsdShellOSD *
+gnome_settings_bus_get_shell_osd_proxy (void)
+{
+ static GsdShellOSD *proxy = NULL;
+ GError *error = NULL;
+
+ if (proxy != NULL) {
+ g_object_ref (proxy);
+ } else {
+ proxy = gsd_shell_osd_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
+ G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
+ G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START,
+ GNOME_SHELL_OSD_DBUS_NAME,
+ GNOME_SHELL_OSD_DBUS_OBJECT,
+ NULL,
+ &error);
+ if (error) {
+ g_warning ("Failed to connect to the shell osd: %s", error->message);
+ g_error_free (error);
+ } else {
+ g_object_add_weak_pointer (G_OBJECT (proxy), (gpointer*)&proxy);
+ }
+ }
+
+ return proxy;
+}
+
static gboolean
is_wayland_session (void)
{
diff --git a/gnome-settings-daemon/gnome-settings-bus.h b/gnome-settings-daemon/gnome-settings-bus.h
index 845a369..4c1a860 100644
--- a/gnome-settings-daemon/gnome-settings-bus.h
+++ b/gnome-settings-daemon/gnome-settings-bus.h
@@ -26,12 +26,14 @@
#include "gsd-session-manager-glue.h"
#include "gsd-screen-saver-glue.h"
#include "gsd-shell-glue.h"
+#include "gsd-shell-osd-glue.h"
G_BEGIN_DECLS
GsdSessionManager *gnome_settings_bus_get_session_proxy (void);
GsdScreenSaver *gnome_settings_bus_get_screen_saver_proxy (void);
GsdShell *gnome_settings_bus_get_shell_proxy (void);
+GsdShellOSD *gnome_settings_bus_get_shell_osd_proxy (void);
gboolean gnome_settings_is_wayland (void);
G_END_DECLS
diff --git a/gnome-settings-daemon/org.gnome.Shell.OSD.xml b/gnome-settings-daemon/org.gnome.Shell.OSD.xml
new file mode 100644
index 0000000..6ae88d6
--- /dev/null
+++ b/gnome-settings-daemon/org.gnome.Shell.OSD.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE node PUBLIC
+ "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN"
+ "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+
+<!--
+ Copyright (C) 2013 Red Hat, Inc.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General
+ Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
+-->
+
+<node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
+ <!--
+ org.gnome.Shell:
+
+ An interface used to request shell features.
+ -->
+ <interface name="org.gnome.Shell.OSD">
+ <method name="ShowOSD">
+ <arg type="a{sv}" direction="in" name="params"/>
+ </method>
+ </interface>
+</node>
diff --git a/gnome-settings-daemon/org.gnome.Shell.xml b/gnome-settings-daemon/org.gnome.Shell.xml
index 1845dde..d9e5bf9 100644
--- a/gnome-settings-daemon/org.gnome.Shell.xml
+++ b/gnome-settings-daemon/org.gnome.Shell.xml
@@ -27,8 +27,5 @@
-->
<interface name="org.gnome.Shell">
<method name="FocusSearch"/>
- <method name="ShowOSD">
- <arg type="a{sv}" direction="in" name="params"/>
- </method>
</interface>
</node>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]