Accepting request 47804 from GNOME:Factory

Copy from GNOME:Factory/startup-notification based on submit request 47804 from user vuntz

OBS-URL: https://build.opensuse.org/request/show/47804
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/startup-notification?expand=0&rev=13
This commit is contained in:
OBS User autobuild 2010-09-13 09:43:18 +00:00 committed by Git OBS Bridge
parent f81c4496af
commit 0085a00cee
4 changed files with 217 additions and 21 deletions

View File

@ -0,0 +1,173 @@
From 1b14d72976741afc33d9f7fac22e20b831e47e1f Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Thu, 25 Feb 2010 20:33:54 +0000
Subject: Support APPLICATION_ID key
For moving GNOME to an application-based system, it's useful if
launcher systems say which .desktop file they're launching, so
that we can show it as the current focus even while a launch is
in progress.
Signed-off-by: Julien Danjou <julien@danjou.info>
---
diff --git a/doc/startup-notification.txt b/doc/startup-notification.txt
index cf5b250..dd1ccc2 100644
--- a/doc/startup-notification.txt
+++ b/doc/startup-notification.txt
@@ -300,6 +300,16 @@ The following keys may be provided optionally in either a "new" or a
have their window mapped on the desktop specified by
the value of DESKTOP.
+ APPLICATION_ID
+
+ When launching an application using a .desktop file from
+ the normal application paths (see desktop file specification),
+ this should be basename of the .desktop file.
+ For example: "foo.desktop".
+
+ When launching a .desktop file NOT in the paths, this should
+ be an absolute path to the .desktop file.
+
Some details of the startup sequence:
- "new" and "change" messages are sent by the launcher code
diff --git a/libsn/sn-launcher.c b/libsn/sn-launcher.c
index 21344cd..089b5c2 100644
--- a/libsn/sn-launcher.c
+++ b/libsn/sn-launcher.c
@@ -44,6 +44,7 @@ struct SnLauncherContext
char *wmclass;
char *binary_name;
char *icon_name;
+ char *application_id;
struct timeval initiation_time;
unsigned int completed : 1;
unsigned int canceled : 1;
@@ -121,6 +122,7 @@ sn_launcher_context_unref (SnLauncherContext *context)
sn_free (context->wmclass);
sn_free (context->binary_name);
sn_free (context->icon_name);
+ sn_free (context->application_id);
sn_display_unref (context->display);
sn_free (context);
@@ -266,9 +268,16 @@ sn_launcher_context_initiate (SnLauncherContext *context,
values[i] = context->icon_name;
++i;
}
-
+
+ if (context->application_id != NULL)
+ {
+ names[i] = "APPLICATION_ID";
+ values[i] = context->application_id;
+ ++i;
+ }
+
assert (i < MAX_PROPS);
-
+
names[i] = NULL;
values[i] = NULL;
@@ -433,6 +442,16 @@ sn_launcher_context_set_icon_name (SnLauncherContext *context,
}
void
+sn_launcher_set_application_id (SnLauncherContext *context,
+ const char *desktop_file)
+{
+ WARN_ALREADY_INITIATED (context);
+
+ sn_free (context->application_id);
+ context->application_id = sn_internal_strdup (desktop_file);
+}
+
+void
sn_launcher_context_set_extra_property (SnLauncherContext *context,
const char *name,
const char *value)
diff --git a/libsn/sn-launcher.h b/libsn/sn-launcher.h
index f88f11c..9cd34fd 100644
--- a/libsn/sn-launcher.h
+++ b/libsn/sn-launcher.h
@@ -61,6 +61,8 @@ void sn_launcher_context_set_binary_name (SnLauncherContext *context,
const char *name);
void sn_launcher_context_set_icon_name (SnLauncherContext *context,
const char *name);
+void sn_launcher_context_set_application_id (SnLauncherContext *context,
+ const char *desktop_file);
void sn_launcher_context_set_extra_property (SnLauncherContext *context,
const char *name,
diff --git a/libsn/sn-monitor.c b/libsn/sn-monitor.c
index 223473a..035d523 100644
--- a/libsn/sn-monitor.c
+++ b/libsn/sn-monitor.c
@@ -66,7 +66,8 @@ struct SnStartupSequence
Time timestamp;
char *binary_name;
- char *icon_name;
+ char *icon_name;
+ char *application_id;
unsigned int completed : 1;
unsigned int canceled : 1;
@@ -269,7 +270,8 @@ sn_startup_sequence_unref (SnStartupSequence *sequence)
sn_free (sequence->wmclass);
sn_free (sequence->binary_name);
sn_free (sequence->icon_name);
-
+ sn_free (sequence->application_id);
+
sn_display_unref (sequence->display);
sn_free (sequence);
}
@@ -337,6 +339,12 @@ sn_startup_sequence_get_icon_name (SnStartupSequence *sequence)
return sequence->icon_name;
}
+const char*
+sn_startup_sequence_get_application_id (SnStartupSequence *sequence)
+{
+ return sequence->application_id;
+}
+
int
sn_startup_sequence_get_screen (SnStartupSequence *sequence)
{
@@ -805,10 +813,18 @@ xmessage_func (SnDisplay *display,
changed = TRUE;
}
}
+ else if (strcmp (names[i], "APPLICATION_ID") == 0)
+ {
+ if (sequence->application_id == NULL)
+ {
+ sequence->application_id = sn_internal_strdup (values[i]);
+ changed = TRUE;
+ }
+ }
else if (strcmp (names[i], "DESKTOP") == 0)
{
int workspace;
-
+
workspace = sn_internal_string_to_ulong (values[i]);
sequence->workspace = workspace;
diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h
index 15a38d7..b58581f 100644
--- a/libsn/sn-monitor.h
+++ b/libsn/sn-monitor.h
@@ -73,6 +73,7 @@ Time sn_startup_sequence_get_timestamp (SnStartupSequence *se
const char* sn_startup_sequence_get_wmclass (SnStartupSequence *sequence);
const char* sn_startup_sequence_get_binary_name (SnStartupSequence *sequence);
const char* sn_startup_sequence_get_icon_name (SnStartupSequence *sequence);
+const char* sn_startup_sequence_get_application_id (SnStartupSequence *sequence);
int sn_startup_sequence_get_screen (SnStartupSequence *sequence);
void sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence,
--
cgit v0.8.3-6-g21f6

View File

@ -0,0 +1,21 @@
From 76ede84816d187e3c6ce11ec03dbe9167f5738dc Mon Sep 17 00:00:00 2001
From: Julien Danjou <julien@danjou.info>
Date: Mon, 24 May 2010 12:25:02 +0000
Subject: Fix sn-launcher not using screen number
Signed-off-by: Julien Danjou <julien@danjou.info>
---
diff --git a/libsn/sn-launcher.c b/libsn/sn-launcher.c
index 089b5c2..f1d5e99 100644
--- a/libsn/sn-launcher.c
+++ b/libsn/sn-launcher.c
@@ -78,6 +78,7 @@ sn_launcher_context_new (SnDisplay *display,
context->refcount = 1;
context->display = display;
+ context->screen = screen;
sn_display_ref (context->display);
context->workspace = -1;
--
cgit v0.8.3-6-g21f6

View File

@ -1,3 +1,11 @@
-------------------------------------------------------------------
Thu Sep 9 23:56:27 CEST 2010 - vuntz@opensuse.org
- Add startup-notification-application-id.patch from git: this adds
support for APPLICATION_ID, which can be used by gnome-shell.
- Add startup-notification-sn-launcher-screen.patch from git: fix
sn-launcher to use screen number.
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Dec 17 21:16:46 CET 2009 - jengelh@medozas.de Thu Dec 17 21:16:46 CET 2009 - jengelh@medozas.de

View File

@ -1,7 +1,7 @@
# #
# spec file for package startup-notification (Version 0.10) # spec file for package startup-notification (Version 0.10)
# #
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -24,10 +24,14 @@ Url: http://www.freedesktop.org/wiki/Software/startup-notification
License: GPLv2+ License: GPLv2+
Group: System/X11/Utilities Group: System/X11/Utilities
Version: 0.10 Version: 0.10
Release: 2 Release: 9
Summary: Reference Implementation for the Startup-Notification Protocol Summary: Reference Implementation for the Startup-Notification Protocol
Source: startup-notification-%{version}.tar.bz2 Source: startup-notification-%{version}.tar.bz2
Source99: baselibs.conf Source99: baselibs.conf
# PATCH-FEATURE-UPSTREAM startup-notification-application-id.patch vuntz@opensuse.org -- Add git commit to support APPLICATION_ID. This is useful for gnome-shell.
Patch0: startup-notification-application-id.patch
# PATCH-FIX-UPSTREAM startup-notification-sn-launcher-screen.patch vuntz@opensuse.org -- Taken from git, to use the screen number in sn-launcher
Patch1: startup-notification-sn-launcher-screen.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
# bug437293 # bug437293
%ifarch ppc64 %ifarch ppc64
@ -39,12 +43,6 @@ Obsoletes: startup-notification-64bit
Startup-notification contains a reference implementation of the Startup-notification contains a reference implementation of the
startup-notification protocol. startup-notification protocol.
Authors:
--------
Havoc Pennington <hp@redhat.com>
%package devel %package devel
License: GPLv2+ License: GPLv2+
Summary: Include Files and Libraries mandatory for Development. Summary: Include Files and Libraries mandatory for Development.
@ -60,14 +58,10 @@ Obsoletes: startup-notification-devel-64bit
This package contains all necessary include files and libraries needed This package contains all necessary include files and libraries needed
to develop applications that require these. to develop applications that require these.
Authors:
--------
Havoc Pennington <hp@redhat.com>
%prep %prep
%setup -q %setup -q
%patch0 -p1
%patch1 -p1
%build %build
%configure --disable-static %configure --disable-static
@ -75,24 +69,24 @@ make %{?jobs:-j %jobs}
%install %install
%makeinstall %makeinstall
find %{buildroot} -type f -name "*.la" -exec %{__rm} -fv {} + find %{buildroot} -type f -name "*.la" -delete -print
%post -p /sbin/ldconfig %post -p /sbin/ldconfig
%postun -p /sbin/ldconfig %postun -p /sbin/ldconfig
%files %clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root) %defattr(-,root,root)
%doc AUTHORS COPYING NEWS ChangeLog %doc AUTHORS COPYING NEWS ChangeLog
%{_libdir}/*.so.* %{_libdir}/*.so.*
%files devel %files devel
%defattr(-,root,root) %defattr(-,root,root)
%{_includedir}/startup-notification-1.0 %{_includedir}/startup-notification-1.0/
%{_libdir}/*.so %{_libdir}/*.so
%{_libdir}/pkgconfig/*.pc %{_libdir}/pkgconfig/*.pc
%clean
rm -rf $RPM_BUILD_ROOT
%changelog %changelog