rpms/gnome-applets/devel gnome-applets-2.10.1-no-mixer-warning-on-startup.patch, NONE, 1.1 gnome-applets.spec, 1.71, 1.72 gnome-applets-2.9.5-mixer-crash-with-no-channels.patch, 1.1, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Fri Jul 1 12:44:10 UTC 2005
- Previous message (by thread): rpms/openoffice.org/devel openoffice.org-1.9.113.ooo43430.cvskk.np_sdk.patch, NONE, 1.1 openoffice.org.spec, 1.264, 1.265
- Next message (by thread): rpms/openoffice.org/devel openoffice.org-1.9.113.ooo51385.bridges.stack.patch, NONE, 1.1 openoffice.org.spec, 1.265, 1.266 sources, 1.83, 1.84
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: markmc
Update of /cvs/dist/rpms/gnome-applets/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv9439
Modified Files:
gnome-applets.spec
Added Files:
gnome-applets-2.10.1-no-mixer-warning-on-startup.patch
Removed Files:
gnome-applets-2.9.5-mixer-crash-with-no-channels.patch
Log Message:
* Fri Jul 1 2005 Mark McLoughlin <markmc at redhat.com> 1:2.10.1-10
- Backport from HEAD patch to remove lame warning dialog when the
mixer applet can't find a mixer device
gnome-applets-2.10.1-no-mixer-warning-on-startup.patch:
ChangeLog | 17 +++++
applet.c | 199 ++++++++++++++++++++++++++++++++++++++------------------------
load.c | 4 -
3 files changed, 143 insertions(+), 77 deletions(-)
--- NEW FILE gnome-applets-2.10.1-no-mixer-warning-on-startup.patch ---
--- gnome-applets-2.10.1/mixer/ChangeLog.no-mixer-warning-on-startup 2005-04-04 16:05:23.000000000 +0100
+++ gnome-applets-2.10.1/mixer/ChangeLog 2005-07-01 13:14:52.000000000 +0100
@@ -0,0 +1,17 @@
+2005-06-10 Ryan Lortie <desrt at desrt.ca>
+
+ * applet.c: (gnome_volume_applet_scroll): Small fix for showing
+ dialog on first user interaction: return TRUE on the event handler
+ and double-check for non-null before invoking a callback function.
+
+2005-06-10 Ronald S. Bultje <rbultje at ronald.bitfreak.net>
+
+ * applet.c: (gnome_volume_applet_setup), (show_no_mixer_dialog),
+ (gnome_volume_applet_scroll), (gnome_volume_applet_button),
+ (gnome_volume_applet_key), (gnome_volume_applet_refresh),
+ (cb_verb), (cb_ui_event):
+ * load.c: (gnome_volume_applet_factory):
+ If no elements/devices present, don't show a dialog to the user;
+ instead, show a insensitive/mute icon, and show the dialog on a
+ user action (only once).
+
--- gnome-applets-2.10.1/mixer/applet.c.no-mixer-warning-on-startup 2005-04-04 16:03:32.000000000 +0100
+++ gnome-applets-2.10.1/mixer/applet.c 2005-07-01 13:27:52.000000000 +0100
@@ -374,6 +374,7 @@
gchar *key;
gchar *active_element_name;
gchar *active_track_name;
+ gboolean res;
active_element_name = panel_applet_gconf_get_string (PANEL_APPLET (applet),
GNOME_VOLUME_APPLET_KEY_ACTIVE_ELEMENT,
@@ -383,40 +384,32 @@
GNOME_VOLUME_APPLET_KEY_ACTIVE_TRACK,
NULL);
- if (!select_element_and_track (applet, elements, active_element_name, active_track_name)) {
- GtkWidget *dialog;
-
- g_free (active_element_name);
- g_free (active_track_name);
-
- dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR,
- GTK_BUTTONS_CLOSE,
- _("No volume control elements and/or devices found."));
- gtk_widget_show (dialog);
- gtk_dialog_run (GTK_DIALOG (dialog));
- gtk_widget_destroy (dialog);
-
- return FALSE;
- }
+ res = select_element_and_track (applet, elements, active_element_name, active_track_name);
g_free (active_element_name);
g_free (active_track_name);
- /* tell the dock */
- page = (applet->track->max_volume - applet->track->min_volume) / 10;
- adj = gtk_adjustment_new (0, applet->track->min_volume,
- applet->track->max_volume,
- (page / 5 > 0) ? page / 5 : 1,
- page, 0);
+ if (res) {
+ /* tell the dock */
+ page = (applet->track->max_volume - applet->track->min_volume) / 10;
+ adj = gtk_adjustment_new (0, applet->track->min_volume,
+ applet->track->max_volume,
+ (page / 5 > 0) ? page / 5 : 1,
+ page, 0);
+ }
gnome_volume_applet_orientation (PANEL_APPLET (applet),
panel_applet_get_orient (PANEL_APPLET (applet)));
- gnome_volume_applet_dock_change (applet->dock,
- GTK_ADJUSTMENT (adj));
- g_signal_connect (adj, "value-changed",
- G_CALLBACK (cb_volume), applet);
+ if (res) {
+ gnome_volume_applet_dock_change (applet->dock,
+ GTK_ADJUSTMENT (adj));
+ g_signal_connect (adj, "value-changed",
+ G_CALLBACK (cb_volume), applet);
+ }
gnome_volume_applet_refresh (applet, FALSE);
- applet->timeout = g_timeout_add (100, cb_check, applet);
+ if (res) {
+ applet->timeout = g_timeout_add (100, cb_check, applet);
+ }
/* menu - done here because bonobo is intialized now */
panel_applet_setup_menu_from_file (PANEL_APPLET (applet),
@@ -426,21 +419,19 @@
component = panel_applet_get_popup_component (PANEL_APPLET (applet));
g_signal_connect (component, "ui-event", G_CALLBACK (cb_ui_event), applet);
- /* gconf */
- key = panel_applet_gconf_get_full_key (PANEL_APPLET (applet),
+ if (res) {
+ /* gconf */
+ key = panel_applet_gconf_get_full_key (PANEL_APPLET (applet),
GNOME_VOLUME_APPLET_KEY_ACTIVE_ELEMENT);
-#if 0
- gconf_client_add_dir (applet->client, key,
- GCONF_CLIENT_PRELOAD_RECURSIVE, NULL);
-#endif
- gconf_client_notify_add (applet->client, key,
- cb_gconf, applet, NULL, NULL);
- g_free (key);
- key = panel_applet_gconf_get_full_key (PANEL_APPLET (applet),
- GNOME_VOLUME_APPLET_KEY_ACTIVE_TRACK);
- gconf_client_notify_add (applet->client, key,
- cb_gconf, applet, NULL, NULL);
- g_free (key);
+ gconf_client_notify_add (applet->client, key,
+ cb_gconf, applet, NULL, NULL);
+ g_free (key);
+ key = panel_applet_gconf_get_full_key (PANEL_APPLET (applet),
+ GNOME_VOLUME_APPLET_KEY_ACTIVE_TRACK);
+ gconf_client_notify_add (applet->client, key,
+ cb_gconf, applet, NULL, NULL);
+ g_free (key);
+ }
gtk_widget_show (GTK_WIDGET (applet));
@@ -488,6 +479,33 @@
}
/*
+ * Show a dialog (once) when no mixer is available.
+ */
+
+static void
+show_no_mixer_dialog (GnomeVolumeApplet *applet)
+{
+ static gboolean shown = FALSE;
+ GtkWidget *dialog;
+
+ if (shown)
+ return;
+ shown = TRUE;
+
+ dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE, "%s\n\n%s",
+ _("The volume control did not find any elements and/or "
+ "devices to control. This means either that you don't "
+ "have the right GStreamer plugins installed, or that you "
+ "don't have a sound card configured."),
+ _("You can remove the volume control from the panel by "
+ "right-clicking the speaker icon on the panel and "
+ "selecting \"Remove From Panel\" from the menu."));
+ gtk_widget_show (dialog);
+ g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
+}
+
+/*
* get position that the dock should get based on applet position.
*/
@@ -666,6 +684,11 @@
{
GnomeVolumeApplet *applet = GNOME_VOLUME_APPLET (widget);
+ if (!applet->mixer) {
+ show_no_mixer_dialog (applet);
+ return TRUE;
+ }
+
if (event->type == GDK_SCROLL) {
switch (event->direction) {
case GDK_SCROLL_UP:
@@ -691,7 +714,10 @@
}
}
- return GTK_WIDGET_CLASS (parent_class)->scroll_event (widget, event);
+ if (GTK_WIDGET_CLASS (parent_class)->scroll_event)
+ return GTK_WIDGET_CLASS (parent_class)->scroll_event (widget, event);
+ else
+ return FALSE;
}
static gboolean
@@ -709,10 +735,16 @@
case 1:
switch (event->type) {
case GDK_BUTTON_PRESS:
- gnome_volume_applet_pop_dock (applet);
+ if (!applet->mixer) {
+ show_no_mixer_dialog (applet);
+ } else {
+ gnome_volume_applet_pop_dock (applet);
+ }
return TRUE;
case GDK_2BUTTON_PRESS:
- gnome_volume_applet_popdown_dock (applet);
+ if (applet->mixer) {
+ gnome_volume_applet_popdown_dock (applet);
+ }
gnome_volume_applet_run_mixer (applet);
return TRUE;
default:
@@ -743,7 +775,9 @@
{
GnomeVolumeApplet *applet = GNOME_VOLUME_APPLET (widget);
- switch (event->keyval) {
+ if (!applet->mixer) {
+ show_no_mixer_dialog (applet);
+ } else switch (event->keyval) {
case GDK_KP_Enter:
case GDK_ISO_Enter:
case GDK_3270_Enter:
@@ -917,29 +951,33 @@
gboolean mute;
/* build-up phase */
- if (!applet->track)
+ if (!applet->mixer) {
+ n = 0;
+ mute = FALSE;
+ } else if (!applet->track) {
return;
+ } else {
+ volumes = g_new (gint, applet->track->num_channels);
+ gst_mixer_get_volume (applet->mixer, applet->track, volumes);
+ for (n = 0; n < applet->track->num_channels; n++)
+ volume += volumes[n];
+ g_free (volumes);
+ mute = GST_MIXER_TRACK_HAS_FLAG (applet->track,
+ GST_MIXER_TRACK_MUTE);
+ if (volume == 0)
+ mute = TRUE;
+ orig_vol = volume;
+ volume /= applet->track->num_channels;
+
+ n = 4 * volume / (applet->track->max_volume -
+ applet->track->min_volume) + 1;
+ if (n <= 0)
+ n = 1;
+ if (n >= 5)
+ n = 4;
+ }
- volumes = g_new (gint, applet->track->num_channels);
- gst_mixer_get_volume (applet->mixer, applet->track, volumes);
- for (n = 0; n < applet->track->num_channels; n++)
- volume += volumes[n];
- g_free (volumes);
- mute = GST_MIXER_TRACK_HAS_FLAG (applet->track,
- GST_MIXER_TRACK_MUTE);
- if (volume == 0)
- mute = TRUE;
- orig_vol = volume;
- volume /= applet->track->num_channels;
-
- n = 4 * volume / (applet->track->max_volume -
- applet->track->min_volume) + 1;
- if (n <= 0)
- n = 1;
- if (n >= 5)
- n = 4;
-
- if ((STATE (n, mute) != applet->state) || force_refresh) {
+ if (force_refresh || (STATE (n, mute) != applet->state)) {
if (mute)
pixbuf = pix[0].pixbuf;
else
@@ -950,6 +988,9 @@
applet->state = STATE (n, mute);
}
+ if (!applet->mixer)
+ return;
+
applet->lock = TRUE;
if (orig_vol > 0)
gtk_range_set_value (applet->dock->scale, volume);
@@ -1129,16 +1170,20 @@
NULL);
} else if (!strcmp (verbname, "Pref")) {
- if (applet->prefs)
- return;
-
- applet->prefs = gnome_volume_applet_preferences_new (PANEL_APPLET (applet),
- applet->elements,
- applet->mixer,
- applet->track);
- g_signal_connect (applet->prefs, "destroy",
- G_CALLBACK (cb_prefs_destroy), applet);
- gtk_widget_show (applet->prefs);
+ if (!applet->mixer) {
+ show_no_mixer_dialog (applet);
+ } else {
+ if (applet->prefs)
+ return;
+
+ applet->prefs = gnome_volume_applet_preferences_new (PANEL_APPLET (applet),
+ applet->elements,
+ applet->mixer,
+ applet->track);
+ g_signal_connect (applet->prefs, "destroy",
+ G_CALLBACK (cb_prefs_destroy), applet);
+ gtk_widget_show (applet->prefs);
+ }
} else {
g_warning ("Unknown bonobo command '%s'", verbname);
}
@@ -1153,7 +1198,9 @@
{
GnomeVolumeApplet *applet = GNOME_VOLUME_APPLET (data);
- if (!strcmp (verbname, "Mute")) {
+ if (!applet->mixer) {
+ show_no_mixer_dialog (applet);
+ } else if (!strcmp (verbname, "Mute")) {
/* mute will have a value of 4 without the ? TRUE : FALSE bit... */
gboolean mute = applet->state & 1,
want_mute = !strcmp (state_string, "1") ? TRUE : FALSE;
--- gnome-applets-2.10.1/mixer/load.c.no-mixer-warning-on-startup 2005-03-20 10:30:18.000000000 +0000
+++ gnome-applets-2.10.1/mixer/load.c 2005-07-01 13:14:53.000000000 +0100
@@ -157,7 +157,9 @@
}
elements = create_mixer_collection ();
- return gnome_volume_applet_setup (GNOME_VOLUME_APPLET (applet), elements);
+ gnome_volume_applet_setup (GNOME_VOLUME_APPLET (applet), elements);
+
+ return TRUE;
}
PANEL_APPLET_BONOBO_FACTORY (
Index: gnome-applets.spec
===================================================================
RCS file: /cvs/dist/rpms/gnome-applets/devel/gnome-applets.spec,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -r1.71 -r1.72
--- gnome-applets.spec 27 May 2005 18:29:32 -0000 1.71
+++ gnome-applets.spec 1 Jul 2005 12:44:07 -0000 1.72
@@ -15,7 +15,7 @@
Summary: Small applications for the GNOME panel.
Name: gnome-applets
Version: 2.10.1
-Release: 9
+Release: 10
Epoch: 1
License: GPL
Group: User Interface/Desktops
@@ -26,6 +26,7 @@
Patch2: gnome-applets-2.10.1-use-builtin-apm.patch
Patch3: gnome-applets-2.3.6-ppp-command.patch
Patch4: gnome-applets-2.10.1-cpufreq.patch
+Patch5: gnome-applets-2.10.1-no-mixer-warning-on-startup.patch
URL: http://www.gnome.org/
BuildRoot: %{_tmppath}/%{name}-%{version}-root
@@ -73,6 +74,7 @@
%patch1 -p1 -b .fix-docs-error
%patch2 -p1 -b .use-builtin-apm
%patch4 -p1 -b .cpufreq
+%patch5 -p1 -b .no-mixer-warning-on-startup
cp gswitchit/gswitchit-applet.png gswitchit/gswitchit-properties-capplet.png
@@ -160,6 +162,10 @@
%{_libdir}/pkgconfig/gswitchit.pc
%changelog
+* Fri Jul 1 2005 Mark McLoughlin <markmc at redhat.com> 1:2.10.1-10
+- Backport from HEAD patch to remove lame warning dialog when the
+ mixer applet can't find a mixer device
+
* Fri May 27 2005 Bill Nottingham <notting at redhat.com> 1:2.10.1-9
- remove setuid bit from cpufreq-selector, usermode-ify it
--- gnome-applets-2.9.5-mixer-crash-with-no-channels.patch DELETED ---
- Previous message (by thread): rpms/openoffice.org/devel openoffice.org-1.9.113.ooo43430.cvskk.np_sdk.patch, NONE, 1.1 openoffice.org.spec, 1.264, 1.265
- Next message (by thread): rpms/openoffice.org/devel openoffice.org-1.9.113.ooo51385.bridges.stack.patch, NONE, 1.1 openoffice.org.spec, 1.265, 1.266 sources, 1.83, 1.84
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list