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:
parent
f81c4496af
commit
0085a00cee
173
startup-notification-application-id.patch
Normal file
173
startup-notification-application-id.patch
Normal 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
|
21
startup-notification-sn-launcher-screen.patch
Normal file
21
startup-notification-sn-launcher-screen.patch
Normal 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
|
@ -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
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# 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
|
||||
# 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+
|
||||
Group: System/X11/Utilities
|
||||
Version: 0.10
|
||||
Release: 2
|
||||
Release: 9
|
||||
Summary: Reference Implementation for the Startup-Notification Protocol
|
||||
Source: startup-notification-%{version}.tar.bz2
|
||||
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
|
||||
# bug437293
|
||||
%ifarch ppc64
|
||||
@ -39,12 +43,6 @@ Obsoletes: startup-notification-64bit
|
||||
Startup-notification contains a reference implementation of the
|
||||
startup-notification protocol.
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Havoc Pennington <hp@redhat.com>
|
||||
|
||||
%package devel
|
||||
License: GPLv2+
|
||||
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
|
||||
to develop applications that require these.
|
||||
|
||||
|
||||
|
||||
Authors:
|
||||
--------
|
||||
Havoc Pennington <hp@redhat.com>
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
|
||||
%build
|
||||
%configure --disable-static
|
||||
@ -75,24 +69,24 @@ make %{?jobs:-j %jobs}
|
||||
|
||||
%install
|
||||
%makeinstall
|
||||
find %{buildroot} -type f -name "*.la" -exec %{__rm} -fv {} +
|
||||
find %{buildroot} -type f -name "*.la" -delete -print
|
||||
|
||||
%post -p /sbin/ldconfig
|
||||
|
||||
%postun -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc AUTHORS COPYING NEWS ChangeLog
|
||||
%doc AUTHORS COPYING NEWS ChangeLog
|
||||
%{_libdir}/*.so.*
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%{_includedir}/startup-notification-1.0
|
||||
%{_includedir}/startup-notification-1.0/
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/pkgconfig/*.pc
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%changelog
|
||||
|
Loading…
Reference in New Issue
Block a user