Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1:kernel-2.6.32
notification-daemon
notification-daemon-new-bubble.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File notification-daemon-new-bubble.patch of Package notification-daemon
This patch needs a newbubble directory in src/themes/ which is a copy of the standard directory. This way, we easily create a theme based on the standard theme. We add an internal engine API so that the engine can specify if it wants to always stack notifications. We give a style name to the notification window so the GTK+ theme can change the colors of the stripe. Here's an example: style "notification-magic" { base[NORMAL] = "#ffcb88" # background color of the notification window bg[NORMAL] = "#defc12" # color of the stripe (low urgency) bg[SELECTED] = "#76bf6f" # color of the stripe (normal urgency) } widget "notification-window.GtkEventBox.GtkVBox" style "notification-magic" Index: notification-daemon-0.3.7/src/daemon/daemon.c =================================================================== --- notification-daemon-0.3.7.orig/src/daemon/daemon.c +++ notification-daemon-0.3.7/src/daemon/daemon.c @@ -1276,7 +1276,7 @@ notify_daemon_notify_handler(NotifyDaemo * sync_notification_position later. */ } - else if (use_pos_data) + else if (use_pos_data && !theme_get_always_stack(nw)) { /* * Typically, the theme engine will set its own position based on Index: notification-daemon-0.3.7/src/daemon/engines.c =================================================================== --- notification-daemon-0.3.7.orig/src/daemon/engines.c +++ notification-daemon-0.3.7/src/daemon/engines.c @@ -30,6 +30,7 @@ typedef struct void (*move_notification)(GtkWindow *nw, int x, int y); void (*set_notification_timeout)(GtkWindow *nw, glong timeout); void (*notification_tick)(GtkWindow *nw, glong timeout); + gboolean (*get_always_stack)(GtkWindow *nw); } ThemeEngine; @@ -83,6 +84,7 @@ load_theme_engine(const char *name) BIND_OPTIONAL_FUNC(set_notification_timeout); BIND_OPTIONAL_FUNC(set_notification_hints); BIND_OPTIONAL_FUNC(notification_tick); + BIND_OPTIONAL_FUNC(get_always_stack); if (!engine->theme_check_init(NOTIFICATION_DAEMON_MAJOR_VERSION, NOTIFICATION_DAEMON_MINOR_VERSION, @@ -293,3 +295,14 @@ theme_move_notification(GtkWindow *nw, i ThemeEngine *engine = g_object_get_data(G_OBJECT(nw), "_theme_engine"); engine->move_notification(nw, x, y); } + +gboolean +theme_get_always_stack(GtkWindow *nw) +{ + ThemeEngine *engine = g_object_get_data(G_OBJECT(nw), "_theme_engine"); + + if (engine->get_always_stack != NULL) + return engine->get_always_stack(nw); + else + return FALSE; +} Index: notification-daemon-0.3.7/src/daemon/engines.h =================================================================== --- notification-daemon-0.3.7.orig/src/daemon/engines.h +++ notification-daemon-0.3.7/src/daemon/engines.h @@ -21,5 +21,6 @@ void theme_add_notification_action(GtkWi const char *key, GCallback cb); void theme_clear_notification_actions(GtkWindow *nw); void theme_move_notification(GtkWindow *nw, int x, int y); +gboolean theme_get_always_stack(GtkWindow *nw); #endif /* _ENGINES_H_ */ Index: notification-daemon-0.3.7/src/themes/Makefile.am =================================================================== --- notification-daemon-0.3.7.orig/src/themes/Makefile.am +++ notification-daemon-0.3.7/src/themes/Makefile.am @@ -1,2 +1,2 @@ -SUBDIRS = standard +SUBDIRS = standard newbubble DIST_SUBDIRS = $(SUBDIRS) bubble Index: notification-daemon-0.3.7/src/themes/newbubble/theme.c =================================================================== --- notification-daemon-0.3.7.orig/src/themes/newbubble/theme.c +++ notification-daemon-0.3.7/src/themes/newbubble/theme.c @@ -609,6 +609,7 @@ create_notification(UrlClickedCb url_cli gtk_window_set_type_hint(GTK_WINDOW(win), GDK_WINDOW_TYPE_HINT_NOTIFICATION); gtk_widget_add_events(win, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK); + gtk_widget_set_name(win, "notification-window"); gtk_widget_realize(win); gtk_widget_set_size_request(win, WIDTH, -1); @@ -1015,7 +1016,7 @@ get_theme_info(char **theme_name, char **author, char **homepage) { - *theme_name = g_strdup("Standard"); + *theme_name = g_strdup("Bubble"); *theme_ver = g_strdup_printf("%d.%d.%d", NOTIFICATION_DAEMON_MAJOR_VERSION, NOTIFICATION_DAEMON_MINOR_VERSION, @@ -1032,3 +1033,9 @@ theme_check_init(unsigned int major_ver, minor_ver == NOTIFICATION_DAEMON_MINOR_VERSION && micro_ver == NOTIFICATION_DAEMON_MICRO_VERSION; } + +gboolean +get_always_stack(GtkWidget *nw) +{ + return TRUE; +} Index: notification-daemon-0.3.7/configure.ac =================================================================== --- notification-daemon-0.3.7.orig/configure.ac +++ notification-daemon-0.3.7/configure.ac @@ -201,6 +201,7 @@ src/Makefile src/daemon/Makefile src/themes/Makefile src/themes/bubble/Makefile +src/themes/newbubble/Makefile src/themes/standard/Makefile ])
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor