summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHavoc Pennington <hp@redhat.com>2002-10-25 22:44:59 +0000
committerHavoc Pennington <hp@redhat.com>2002-10-25 22:44:59 +0000
commit7d7d6c683875d78f4f594aa59692ba5d880d8eb7 (patch)
treef781763716fd1dfe89076941b5e814479e66643a
parent8f61892d31087d67443e0b2ca795c9db49237704 (diff)
downloadstartup-notification-7d7d6c683875d78f4f594aa59692ba5d880d8eb7.tar.gz
fix -I flag
new function (sn_startup_sequence_get_last_active_time): new function -DSN_API_NOT_YET_FROZEN=1 put in the little API-not-frozen warning. rename to "libstartup-notification" instead of "libsn"
-rw-r--r--ChangeLog22
-rw-r--r--Makefile.am4
-rwxr-xr-xautogen.sh2
-rw-r--r--configure.in2
-rw-r--r--libsn-1.0.pc.in11
-rw-r--r--libsn/Makefile.am10
-rw-r--r--libsn/sn-common.c6
-rw-r--r--libsn/sn-common.h16
-rw-r--r--libsn/sn-internals.h4
-rw-r--r--libsn/sn-monitor.c49
-rw-r--r--libsn/sn-monitor.h7
-rw-r--r--libsn/sn-xutils.c2
-rw-r--r--libstartup-notification-1.0.pc.in11
-rw-r--r--test/Makefile.am2
14 files changed, 110 insertions, 38 deletions
diff --git a/ChangeLog b/ChangeLog
index c2f7233..917d1b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,27 @@
+2002-10-25 Havoc Pennington <hp@pobox.com>
+
+ * libstartup-notification-1.0.pc.in (Cflags): fix -I flag
+
+ * libsn/sn-monitor.c (sn_startup_sequence_get_initiated_time): new
+ function
+ (sn_startup_sequence_get_last_active_time): new function
+
+2002-10-24 Havoc Pennington <hp@pobox.com>
+
+ * test/Makefile.am (INCLUDES): -DSN_API_NOT_YET_FROZEN=1
+
+ * libsn/sn-common.h: put in the little API-not-frozen warning.
+
+ * libsn/Makefile.am, configure.in, autogen.sh: rename to
+ "libstartup-notification" instead of "libsn"
+
2002-10-23 Havoc Pennington <hp@pobox.com>
+ * libsn/sn-common.h (SnLaunchType): remove
+
+ * libsn/sn-common.c (sn_display_get_x_screen): make it
+ sn_internal_display_get_x_screen
+
* Makefile.am: add .pc file to Makefile
2002-10-23 Havoc Pennington <hp@redhat.com>
diff --git a/Makefile.am b/Makefile.am
index 69588f9..b525fa3 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,8 +1,8 @@
SUBDIRS=libsn test
-EXTRA_DIST=libsn-1.0.pc.in
+EXTRA_DIST=libstartup-notification-1.0.pc.in
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = libsn-1.0.pc
+pkgconfig_DATA = libstartup-notification-1.0.pc
diff --git a/autogen.sh b/autogen.sh
index ce5bec8..f6f20f0 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -9,7 +9,7 @@ cd $srcdir
PROJECT=startup-notification
TEST_TYPE=-f
-FILE=libsn-1.0.pc.in
+FILE=libstartup-notification-1.0.pc.in
DIE=0
diff --git a/configure.in b/configure.in
index a8047c3..d8a7018 100644
--- a/configure.in
+++ b/configure.in
@@ -85,5 +85,5 @@ AC_OUTPUT([
Makefile
libsn/Makefile
test/Makefile
-libsn-1.0.pc
+libstartup-notification-1.0.pc
])
diff --git a/libsn-1.0.pc.in b/libsn-1.0.pc.in
deleted file mode 100644
index 91021dc..0000000
--- a/libsn-1.0.pc.in
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-
-Name: libsn
-Description: Launch feedback library
-Version: @VERSION@
-Libs: -L${libdir} -lsn-1
-Cflags: -I${includedir}/libsn-1.0
-
diff --git a/libsn/Makefile.am b/libsn/Makefile.am
index be35758..ea6b06b 100644
--- a/libsn/Makefile.am
+++ b/libsn/Makefile.am
@@ -1,9 +1,9 @@
-INCLUDES=-I$(top_srcdir) $(LIBSN_CFLAGS)
+INCLUDES=-I$(top_srcdir) $(LIBSN_CFLAGS) -DSN_API_NOT_YET_FROZEN=1
-libsnincludedir=$(includedir)/libsn-1.0/libsn
+libsnincludedir=$(includedir)/startup-notification-1.0/libsn
-lib_LTLIBRARIES=libsn-1.la
+lib_LTLIBRARIES=libstartup-notification-1.la
libsninclude_HEADERS= \
sn.h \
@@ -13,7 +13,7 @@ libsninclude_HEADERS= \
sn-monitor.h \
sn-util.h
-libsn_1_la_SOURCES= \
+libstartup_notification_1_la_SOURCES= \
sn-common.c \
sn-internals.c \
sn-internals.h \
@@ -28,4 +28,4 @@ libsn_1_la_SOURCES= \
sn-xutils.c \
sn-xutils.h
-libsn_1_la_LIBADD= $(LIBSN_LIBS)
+libstartup_notification_1_la_LIBADD= $(LIBSN_LIBS)
diff --git a/libsn/sn-common.c b/libsn/sn-common.c
index 33f6237..ba50068 100644
--- a/libsn/sn-common.c
+++ b/libsn/sn-common.c
@@ -125,7 +125,7 @@ sn_display_get_x_display (SnDisplay *display)
}
/**
- * sn_display_get_x_screen:
+ * sn_internal_display_get_x_screen:
* @display: an #SnDisplay
* @number: screen number to get
*
@@ -135,8 +135,8 @@ sn_display_get_x_display (SnDisplay *display)
* Return value: X screen or %NULL
**/
Screen*
-sn_display_get_x_screen (SnDisplay *display,
- int number)
+sn_internal_display_get_x_screen (SnDisplay *display,
+ int number)
{
if (number < 0 || number >= display->n_screens)
return NULL;
diff --git a/libsn/sn-common.h b/libsn/sn-common.h
index a5ba057..79366ca 100644
--- a/libsn/sn-common.h
+++ b/libsn/sn-common.h
@@ -31,17 +31,11 @@
SN_BEGIN_DECLS
-typedef struct SnDisplay SnDisplay;
-
-typedef enum
-{
- SN_LAUNCH_TYPE_OTHER,
- SN_LAUNCH_TYPE_DOCK_ICON,
- SN_LAUNCH_TYPE_DESKTOP_ICON,
- SN_LAUNCH_TYPE_MENU,
- SN_LAUNCH_TYPE_KEY_SHORTCUT
+#ifndef SN_API_NOT_YET_FROZEN
+#error "libstartup-notification should only be used if you understand that it's subject to frequent change, and is not yet supported as a fixed API/ABI or as part of the platform"
+#endif
-} SnLaunchType;
+typedef struct SnDisplay SnDisplay;
typedef void (* SnDisplayErrorTrapPush) (SnDisplay *display,
Display *xdisplay);
@@ -54,8 +48,6 @@ SnDisplay* sn_display_new (Display *xdisplay,
void sn_display_ref (SnDisplay *display);
void sn_display_unref (SnDisplay *display);
Display* sn_display_get_x_display (SnDisplay *display);
-Screen* sn_display_get_x_screen (SnDisplay *display,
- int number);
sn_bool_t sn_display_process_event (SnDisplay *display,
XEvent *xevent);
void sn_display_error_trap_push (SnDisplay *display);
diff --git a/libsn/sn-internals.h b/libsn/sn-internals.h
index 5f73c6d..7c8997a 100644
--- a/libsn/sn-internals.h
+++ b/libsn/sn-internals.h
@@ -49,6 +49,10 @@ SN_BEGIN_DECLS
#define NULL ((void*) 0)
#endif
+/* --- From sn-common.c --- */
+Screen* sn_internal_display_get_x_screen (SnDisplay *display,
+ int number);
+
/* --- From sn-monitor.c --- */
sn_bool_t sn_internal_monitor_process_event (SnDisplay *display,
XEvent *xevent);
diff --git a/libsn/sn-monitor.c b/libsn/sn-monitor.c
index ed0426d..c2ea21c 100644
--- a/libsn/sn-monitor.c
+++ b/libsn/sn-monitor.c
@@ -24,6 +24,7 @@
#include "sn-monitor.h"
#include "sn-internals.h"
#include "sn-xmessages.h"
+#include <sys/time.h>
struct SnMonitorContext
{
@@ -36,7 +37,7 @@ struct SnMonitorContext
/* a context doesn't get events for sequences
* started prior to context creation
*/
- int creation_serial;
+ int creation_serial;
};
struct SnMonitorEvent
@@ -70,6 +71,8 @@ struct SnStartupSequence
unsigned int canceled : 1;
int creation_serial;
+
+ struct timeval initiation_time;
};
static SnList *context_list = NULL;
@@ -318,6 +321,46 @@ sn_startup_sequence_get_icon_name (SnStartupSequence *sequence)
return sequence->icon_name;
}
+/**
+ * sn_startup_sequence_get_initiated_time:
+ * @sequence: an #SnStartupSequence
+ * @tv_sec: seconds as in struct timeval
+ * @tv_usec: microseconds as struct timeval
+ *
+ * When a startup sequence is first monitored, libstartup-notification
+ * calls gettimeofday() and records the time, this function
+ * returns that recorded time.
+ *
+ **/
+void
+sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence,
+ long *tv_sec,
+ long *tv_usec)
+{
+ *tv_sec = sequence->initiation_time.tv_sec;
+ *tv_usec = sequence->initiation_time.tv_usec;
+}
+
+/**
+ * sn_startup_sequence_get_last_active_time:
+ * @sequence: an #SnStartupSequence
+ * @tv_sec: seconds as in struct timeval
+ * @tv_usec: microseconds as in struct timeval
+ *
+ * Returns the last time we had evidence the startup was active.
+ * This function should be used to decide whether a sequence
+ * has timed out.
+ *
+ **/
+void
+sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence,
+ long *tv_sec,
+ long *tv_usec)
+{
+ /* for now the same as get_initiated_time */
+ *tv_sec = sequence->initiation_time.tv_sec;
+ *tv_usec = sequence->initiation_time.tv_usec;
+}
static SnStartupSequence*
sn_startup_sequence_new (SnDisplay *display)
@@ -336,6 +379,10 @@ sn_startup_sequence_new (SnDisplay *display)
sn_display_ref (display);
sequence->workspace = -1; /* not set */
+
+ sequence->initiation_time.tv_sec = 0;
+ sequence->initiation_time.tv_usec = 0;
+ gettimeofday (&sequence->initiation_time, NULL);
return sequence;
}
diff --git a/libsn/sn-monitor.h b/libsn/sn-monitor.h
index 508bb94..022f1f4 100644
--- a/libsn/sn-monitor.h
+++ b/libsn/sn-monitor.h
@@ -73,6 +73,13 @@ const char* sn_startup_sequence_get_wmclass (SnStartupSequence *se
const char* sn_startup_sequence_get_binary_name (SnStartupSequence *sequence);
const char* sn_startup_sequence_get_icon_name (SnStartupSequence *sequence);
+void sn_startup_sequence_get_initiated_time (SnStartupSequence *sequence,
+ long *tv_sec,
+ long *tv_usec);
+void sn_startup_sequence_get_last_active_time (SnStartupSequence *sequence,
+ long *tv_sec,
+ long *tv_usec);
+
SN_END_DECLS
#endif /* __SN_MONITOR_H__ */
diff --git a/libsn/sn-xutils.c b/libsn/sn-xutils.c
index 4bc127f..ef7f7a1 100644
--- a/libsn/sn-xutils.c
+++ b/libsn/sn-xutils.c
@@ -453,7 +453,7 @@ sn_internal_send_event_all_screens (SnDisplay *display,
xdisplay = sn_display_get_x_display (display);
i = 0;
- while (sn_display_get_x_screen (display, i) != NULL)
+ while (sn_internal_display_get_x_screen (display, i) != NULL)
{
XSendEvent (xdisplay,
RootWindow (xdisplay, i),
diff --git a/libstartup-notification-1.0.pc.in b/libstartup-notification-1.0.pc.in
new file mode 100644
index 0000000..75fbbf0
--- /dev/null
+++ b/libstartup-notification-1.0.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libstartup-notification
+Description: Startup notification library
+Version: @VERSION@
+Libs: -L${libdir} -lstartup-notification-1
+Cflags: -I${includedir}/startup-notification-1.0
+
diff --git a/test/Makefile.am b/test/Makefile.am
index 2700cb8..e721dbb 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,5 +1,5 @@
-INCLUDES=$(LIBSN_CFLAGS) -I$(top_srcdir)
+INCLUDES=$(LIBSN_CFLAGS) -I$(top_srcdir) -DSN_API_NOT_YET_FROZEN=1
noinst_PROGRAMS= \
test-launcher \