summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBenjamin Drung <bdrung@ubuntu.com>2010-08-19 17:54:59 +0200
committerBenjamin Drung <bdrung@ubuntu.com>2010-08-19 17:54:59 +0200
commit4d82ce30fdda4dd8376819a65893daf4781af4ad (patch)
tree1b42e7893776416cfaf0ff6db8b7849d74a6966a /src
parent141a546249025a74bf53d061fe5b0ea5e46e7be7 (diff)
Imported Upstream version 2.4~rc2
Diffstat (limited to 'src')
-rw-r--r--src/audacious/compatibility.h16
-rw-r--r--src/audacious/output.c3
-rw-r--r--src/audacious/playlist-utils.c14
-rw-r--r--src/audacious/ui_preferences.c45
-rw-r--r--src/libaudgui/Makefile2
-rw-r--r--src/libaudgui/infowin.c1
-rw-r--r--src/libaudgui/ui_about.c9
-rw-r--r--src/libaudgui/ui_credits.c5
-rw-r--r--src/libaudgui/ui_jumptotrack.c20
9 files changed, 64 insertions, 51 deletions
diff --git a/src/audacious/compatibility.h b/src/audacious/compatibility.h
index abd5014..c20016c 100644
--- a/src/audacious/compatibility.h
+++ b/src/audacious/compatibility.h
@@ -3,11 +3,19 @@
(1000 * (seconds), func, data)
#endif
-#if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION < 10
- #define GDK_WINDOW_TYPE_HINT_TOOLTIP GDK_WINDOW_TYPE_HINT_MENU
+#if ! GTK_CHECK_VERSION (2, 10, 0)
+#define GDK_WINDOW_TYPE_HINT_TOOLTIP GDK_WINDOW_TYPE_HINT_MENU
#endif
-#if GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION < 12
- #define gtk_widget_set_tooltip_text(...)
+#if ! GTK_CHECK_VERSION (2, 12, 0)
+#define gtk_widget_set_tooltip_text(...)
#endif
+#if ! GTK_CHECK_VERSION (2, 14, 0)
+#define gtk_widget_get_window(w) ((w)->window)
+#endif
+
+#if ! GTK_CHECK_VERSION (2, 18, 0)
+#define gtk_widget_set_can_default(w, t) do {if (t) GTK_WIDGET_SET_FLAGS ((w), GTK_CAN_DEFAULT); else GTK_WIDGET_UNSET_FLAGS ((w), GTK_CAN_DEFAULT);} while (0)
+#define gtk_widget_set_can_focus(w, t) do {if (t) GTK_WIDGET_SET_FLAGS ((w), GTK_CAN_FOCUS); else GTK_WIDGET_UNSET_FLAGS ((w), GTK_CAN_FOCUS);} while (0)
+#endif
diff --git a/src/audacious/output.c b/src/audacious/output.c
index b8406ea..ef2bbff 100644
--- a/src/audacious/output.c
+++ b/src/audacious/output.c
@@ -442,10 +442,9 @@ static void write_buffers (void)
static void abort_write (void)
{
- COP->flush (0); /* signal wait to return immediately */
-
LOCK;
output_aborted = TRUE;
+ COP->flush (COP->output_time ()); /* signal wait to return immediately */
UNLOCK;
}
diff --git a/src/audacious/playlist-utils.c b/src/audacious/playlist-utils.c
index f39f615..fc3d40c 100644
--- a/src/audacious/playlist-utils.c
+++ b/src/audacious/playlist-utils.c
@@ -63,11 +63,8 @@ static gint tuple_compare_string (const Tuple * a, const Tuple * b, gint field)
const gchar * string_a = tuple_get_string (a, field, NULL);
const gchar * string_b = tuple_get_string (b, field, NULL);
- /* This is technically inconsistent if both string_a == NULL and string_b ==
- * NULL, but for the sake of removing duplicates we do not want blank fields
- * to compare as equal. */
if (string_a == NULL)
- return -1;
+ return (string_b == NULL) ? 0 : -1;
if (string_b == NULL)
return 1;
@@ -76,10 +73,10 @@ static gint tuple_compare_string (const Tuple * a, const Tuple * b, gint field)
static gint tuple_compare_int (const Tuple * a, const Tuple * b, gint field)
{
- /* technically inconsistent again */
- if (tuple_get_value_type (a, field, NULL) != TUPLE_INT &&
- tuple_get_value_type (b, field, NULL) != TUPLE_INT)
- return -1;
+ if (tuple_get_value_type (a, field, NULL) != TUPLE_INT)
+ return (tuple_get_value_type (b, field, NULL) != TUPLE_INT) ? 0 : -1;
+ if (tuple_get_value_type (b, field, NULL) != TUPLE_INT)
+ return 1;
gint int_a = tuple_get_int (a, field, NULL);
gint int_b = tuple_get_int (b, field, NULL);
@@ -156,6 +153,7 @@ void playlist_sort_selected_by_scheme (gint playlist, gint scheme)
playlist_sort_selected_by_tuple (playlist, tuple_comparisons[scheme]);
}
+/* Fix me: This considers empty fields as duplicates. */
void playlist_remove_duplicates_by_scheme (gint playlist, gint scheme)
{
gint entries = playlist_entry_count (playlist);
diff --git a/src/audacious/ui_preferences.c b/src/audacious/ui_preferences.c
index 3780fd4..45a4fdd 100644
--- a/src/audacious/ui_preferences.c
+++ b/src/audacious/ui_preferences.c
@@ -552,7 +552,7 @@ on_titlestring_help_button_clicked(GtkButton * button,
{
GtkMenu *menu;
MenuPos *pos = g_newa(MenuPos, 1);
- GdkWindow *parent;
+ GdkWindow *parent, *window;
gint x_ro, y_ro;
gint x_widget, y_widget;
@@ -562,10 +562,11 @@ on_titlestring_help_button_clicked(GtkButton * button,
g_return_if_fail (GTK_IS_MENU (data));
parent = gtk_widget_get_parent_window(GTK_WIDGET(button));
+ window = gtk_widget_get_window(GTK_WIDGET(button));
gdk_drawable_get_size(parent, &x_size, &y_size);
- gdk_window_get_root_origin(GTK_WIDGET(button)->window, &x_ro, &y_ro);
- gdk_window_get_position(GTK_WIDGET(button)->window, &x_widget, &y_widget);
+ gdk_window_get_root_origin(window, &x_ro, &y_ro);
+ gdk_window_get_position(window, &x_widget, &y_widget);
pos->x = x_size + x_ro;
pos->y = y_size + y_ro - 100;
@@ -701,8 +702,7 @@ create_plugin_preferences(PluginPreferences *settings)
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
gtk_window_set_title(GTK_WINDOW(window), _(settings->title));
- gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE);
- gtk_container_border_width(GTK_CONTAINER(window), 10);
+ gtk_container_set_border_width(GTK_CONTAINER(window), 10);
g_signal_connect(G_OBJECT(window), "destroy",
G_CALLBACK(plugin_preferences_destroy), settings);
@@ -713,7 +713,7 @@ create_plugin_preferences(PluginPreferences *settings)
bbox = gtk_hbutton_box_new();
gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
- gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
+ gtk_box_set_spacing(GTK_BOX(bbox), 5);
gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
ok = gtk_button_new_from_stock(GTK_STOCK_OK);
@@ -1325,7 +1325,7 @@ create_filepopup_settings(void)
btn_ok = gtk_button_new_from_stock("gtk-ok");
gtk_container_add(GTK_CONTAINER(hbuttonbox), btn_ok);
- GTK_WIDGET_SET_FLAGS(btn_ok, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(btn_ok, TRUE);
g_signal_connect(G_OBJECT(filepopup_settings), "delete_event",
G_CALLBACK(gtk_widget_hide_on_delete),
@@ -1879,7 +1879,8 @@ create_playlist_category(void)
gtk_table_attach (GTK_TABLE (table6), titlestring_help_button, 2, 3, 1, 2,
(GtkAttachOptions) (0),
(GtkAttachOptions) (0), 0, 0);
- GTK_WIDGET_UNSET_FLAGS (titlestring_help_button, GTK_CAN_FOCUS);
+
+ gtk_widget_set_can_focus (titlestring_help_button, FALSE);
gtk_widget_set_tooltip_text (titlestring_help_button, _("Show information about titlestring format"));
gtk_button_set_relief (GTK_BUTTON (titlestring_help_button), GTK_RELIEF_HALF);
gtk_button_set_focus_on_click (GTK_BUTTON (titlestring_help_button), FALSE);
@@ -1943,7 +1944,8 @@ create_playlist_category(void)
filepopup_for_tuple_settings_button = gtk_button_new ();
gtk_box_pack_start (GTK_BOX (hbox9), filepopup_for_tuple_settings_button, FALSE, FALSE, 0);
- GTK_WIDGET_UNSET_FLAGS (filepopup_for_tuple_settings_button, GTK_CAN_FOCUS);
+
+ gtk_widget_set_can_focus (filepopup_for_tuple_settings_button, FALSE);
gtk_widget_set_tooltip_text (filepopup_for_tuple_settings_button, _("Edit settings for popup information"));
gtk_button_set_relief (GTK_BUTTON (filepopup_for_tuple_settings_button), GTK_RELIEF_HALF);
@@ -2077,7 +2079,7 @@ create_audio_category(void)
output_plugin_prefs = gtk_button_new ();
gtk_container_add (GTK_CONTAINER (output_plugin_button_box), output_plugin_prefs);
gtk_widget_set_sensitive (output_plugin_prefs, FALSE);
- GTK_WIDGET_SET_FLAGS (output_plugin_prefs, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(output_plugin_prefs, TRUE);
alignment76 = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_container_add (GTK_CONTAINER (output_plugin_prefs), alignment76);
@@ -2094,7 +2096,7 @@ create_audio_category(void)
output_plugin_info = gtk_button_new ();
gtk_container_add (GTK_CONTAINER (output_plugin_button_box), output_plugin_info);
gtk_widget_set_sensitive (output_plugin_info, FALSE);
- GTK_WIDGET_SET_FLAGS (output_plugin_info, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(output_plugin_info, TRUE);
alignment77 = gtk_alignment_new (0.5, 0.5, 0, 0);
gtk_container_add (GTK_CONTAINER (output_plugin_info), alignment77);
@@ -2233,12 +2235,12 @@ create_plugin_category(void)
input_plugin_prefs = gtk_button_new_from_stock ("gtk-preferences");
gtk_container_add (GTK_CONTAINER (input_plugin_button_box), input_plugin_prefs);
gtk_widget_set_sensitive (input_plugin_prefs, FALSE);
- GTK_WIDGET_SET_FLAGS (input_plugin_prefs, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(input_plugin_prefs, TRUE);
input_plugin_info = gtk_button_new_from_stock ("gtk-dialog-info");
gtk_container_add (GTK_CONTAINER (input_plugin_button_box), input_plugin_info);
gtk_widget_set_sensitive (input_plugin_info, FALSE);
- GTK_WIDGET_SET_FLAGS (input_plugin_info, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(input_plugin_info, TRUE);
plugin_input_label = gtk_label_new (_("<span size=\"medium\"><b>Decoders</b></span>"));
gtk_notebook_set_tab_label (GTK_NOTEBOOK (plugin_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (plugin_notebook), 0), plugin_input_label);
@@ -2276,12 +2278,12 @@ create_plugin_category(void)
general_plugin_prefs = gtk_button_new_from_stock ("gtk-preferences");
gtk_container_add (GTK_CONTAINER (general_plugin_button_box), general_plugin_prefs);
gtk_widget_set_sensitive (general_plugin_prefs, FALSE);
- GTK_WIDGET_SET_FLAGS (general_plugin_prefs, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(general_plugin_prefs, TRUE);
general_plugin_info = gtk_button_new_from_stock ("gtk-dialog-info");
gtk_container_add (GTK_CONTAINER (general_plugin_button_box), general_plugin_info);
gtk_widget_set_sensitive (general_plugin_info, FALSE);
- GTK_WIDGET_SET_FLAGS (general_plugin_info, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(general_plugin_info, TRUE);
plugin_general_label = gtk_label_new (_("<span size=\"medium\"><b>General</b></span>"));
gtk_notebook_set_tab_label (GTK_NOTEBOOK (plugin_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (plugin_notebook), 1), plugin_general_label);
@@ -2318,12 +2320,12 @@ create_plugin_category(void)
vis_plugin_prefs = gtk_button_new_from_stock ("gtk-preferences");
gtk_container_add (GTK_CONTAINER (hbuttonbox6), vis_plugin_prefs);
gtk_widget_set_sensitive (vis_plugin_prefs, FALSE);
- GTK_WIDGET_SET_FLAGS (vis_plugin_prefs, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(vis_plugin_prefs, TRUE);
vis_plugin_info = gtk_button_new_from_stock ("gtk-dialog-info");
gtk_container_add (GTK_CONTAINER (hbuttonbox6), vis_plugin_info);
gtk_widget_set_sensitive (vis_plugin_info, FALSE);
- GTK_WIDGET_SET_FLAGS (vis_plugin_info, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(vis_plugin_info, TRUE);
vis_label = gtk_label_new (_("<b>Visualization</b>"));
gtk_notebook_set_tab_label (GTK_NOTEBOOK (plugin_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (plugin_notebook), 2), vis_label);
@@ -2359,12 +2361,12 @@ create_plugin_category(void)
effect_plugin_prefs = gtk_button_new_from_stock ("gtk-preferences");
gtk_container_add (GTK_CONTAINER (hbuttonbox9), effect_plugin_prefs);
gtk_widget_set_sensitive (effect_plugin_prefs, FALSE);
- GTK_WIDGET_SET_FLAGS (effect_plugin_prefs, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(effect_plugin_prefs, TRUE);
effect_plugin_info = gtk_button_new_from_stock ("gtk-dialog-info");
gtk_container_add (GTK_CONTAINER (hbuttonbox9), effect_plugin_info);
gtk_widget_set_sensitive (effect_plugin_info, FALSE);
- GTK_WIDGET_SET_FLAGS (effect_plugin_info, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(effect_plugin_info, TRUE);
effects_label = gtk_label_new (_("<b>Effects</b>"));
gtk_notebook_set_tab_label (GTK_NOTEBOOK (plugin_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (plugin_notebook), 3), effects_label);
@@ -2583,7 +2585,8 @@ void * * create_prefs_window (void)
category_notebook = gtk_notebook_new ();
gtk_box_pack_start (GTK_BOX (hbox1), category_notebook, TRUE, TRUE, 0);
- GTK_WIDGET_UNSET_FLAGS (category_notebook, GTK_CAN_FOCUS);
+
+ gtk_widget_set_can_focus (category_notebook, FALSE);
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (category_notebook), FALSE);
gtk_notebook_set_show_border (GTK_NOTEBOOK (category_notebook), FALSE);
gtk_notebook_set_scrollable (GTK_NOTEBOOK (category_notebook), TRUE);
@@ -2620,7 +2623,7 @@ void * * create_prefs_window (void)
close = gtk_button_new_from_stock ("gtk-close");
gtk_container_add (GTK_CONTAINER (prefswin_button_box), close);
- GTK_WIDGET_SET_FLAGS (close, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(close, TRUE);
gtk_widget_add_accelerator (close, "clicked", accel_group,
GDK_Escape, (GdkModifierType) 0,
GTK_ACCEL_VISIBLE);
diff --git a/src/libaudgui/Makefile b/src/libaudgui/Makefile
index 2239eb7..448c353 100644
--- a/src/libaudgui/Makefile
+++ b/src/libaudgui/Makefile
@@ -31,6 +31,6 @@ include ../../extra.mk
includesubdir = libaudgui
CPPFLAGS += -DHAVE_CONFIG_H ${LIB_CPPFLAGS} -I.. -I../.. ${GLIB_CFLASG} ${GTK_CFLAGS} ${DBUS_CFLAGS} ${LIBMCS_CFLAGS} ${AUDACIOUS_DEFINES} ${REGEX_CFLAGS}
-CFLAGS += ${LIB_CFLAGS}
+CFLAGS += -std=gnu99 ${LIB_CFLAGS}
LDFLAGS += $(AUDLDFLAGS)
LIBS += -lm ${GLIB_LIBS} ${MOWGLI_LIBS} ${GTK_LIBS} ${REGEX_LIBS} -L../libaudcore -laudcore
diff --git a/src/libaudgui/infowin.c b/src/libaudgui/infowin.c
index ce8dbca..fdb6303 100644
--- a/src/libaudgui/infowin.c
+++ b/src/libaudgui/infowin.c
@@ -679,7 +679,6 @@ void create_infowin (void)
btn_close = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
gtk_container_add ((GtkContainer *) bbox_close, btn_close);
- GTK_WIDGET_SET_FLAGS (btn_close, GTK_CAN_DEFAULT);
g_signal_connect_swapped (btn_close, "clicked", (GCallback) gtk_widget_hide,
infowin);
diff --git a/src/libaudgui/ui_about.c b/src/libaudgui/ui_about.c
index 4ad2e54..29a2a3d 100644
--- a/src/libaudgui/ui_about.c
+++ b/src/libaudgui/ui_about.c
@@ -37,6 +37,8 @@
#include <audacious/i18n.h>
#include <audacious/misc.h>
+#include "audacious/compatibility.h"
+
#include "ui_credits.h"
static GtkWidget *about_window = NULL;
@@ -49,11 +51,14 @@ static GdkBitmap *mask_bitmap_window1 = NULL,
static gboolean
on_about_window_expose(GtkWidget *widget, GdkEventExpose *expose, gpointer data)
{
+ GdkWindow *window;
+
g_return_val_if_fail(widget != NULL, FALSE);
g_return_val_if_fail(GTK_IS_WIDGET (widget), FALSE);
- gdk_window_set_back_pixmap(GDK_WINDOW(widget->window), mask_pixmap_window2, 0);
- gdk_window_clear(GDK_WINDOW(widget->window));
+ window = gtk_widget_get_window(widget);
+ gdk_window_set_back_pixmap(window, mask_pixmap_window2, 0);
+ gdk_window_clear(window);
return FALSE;
}
diff --git a/src/libaudgui/ui_credits.c b/src/libaudgui/ui_credits.c
index 6909cb5..4f3732f 100644
--- a/src/libaudgui/ui_credits.c
+++ b/src/libaudgui/ui_credits.c
@@ -33,6 +33,8 @@
#include <audacious/i18n.h>
#include <audacious/misc.h>
+#include "audacious/compatibility.h"
+
#include "ui_credits.h"
#include "audacious_logo.xpm"
@@ -194,7 +196,8 @@ audgui_show_credits_window(void)
close_btn = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
g_signal_connect_swapped(close_btn, "clicked",
G_CALLBACK(gtk_widget_destroy), about_window);
- GTK_WIDGET_SET_FLAGS(close_btn, GTK_CAN_DEFAULT);
+
+ gtk_widget_set_can_default(close_btn, TRUE);
gtk_box_pack_start(GTK_BOX(bbox), close_btn, TRUE, TRUE, 0);
gtk_widget_grab_default(close_btn);
diff --git a/src/libaudgui/ui_jumptotrack.c b/src/libaudgui/ui_jumptotrack.c
index f796859..a97d30e 100644
--- a/src/libaudgui/ui_jumptotrack.c
+++ b/src/libaudgui/ui_jumptotrack.c
@@ -55,6 +55,8 @@
#include <audacious/playlist.h>
#include <libaudcore/hook.h>
+#include "audacious/compatibility.h"
+
#include "icons-stock.h"
#include "ui_jumptotrack_cache.h"
@@ -202,13 +204,8 @@ ui_jump_to_track_edit_keypress_cb(GtkWidget * object,
{
switch (event->keyval) {
case GDK_Return:
- if (gtk_im_context_filter_keypress (GTK_ENTRY (object)->im_context, event)) {
- GTK_ENTRY (object)->need_im_reset = TRUE;
- return TRUE;
- } else {
- ui_jump_to_track_jump(GTK_TREE_VIEW(data));
- return TRUE;
- }
+ ui_jump_to_track_jump(GTK_TREE_VIEW(data));
+ return TRUE;
default:
return FALSE;
}
@@ -497,7 +494,7 @@ audgui_jump_to_track(void)
g_signal_connect (rescan, "clicked", (GCallback) clear_cb, storage);
- GTK_WIDGET_SET_FLAGS(rescan, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(rescan, TRUE);
gtk_widget_grab_default(rescan);
scrollwin = gtk_scrolled_window_new(NULL, NULL);
@@ -529,7 +526,8 @@ audgui_jump_to_track(void)
gtk_button_set_image(GTK_BUTTON(queue),
gtk_image_new_from_stock(AUD_STOCK_QUEUETOGGLE, GTK_ICON_SIZE_BUTTON));
gtk_box_pack_start(GTK_BOX(bbox), queue, FALSE, FALSE, 0);
- GTK_WIDGET_SET_FLAGS(queue, GTK_CAN_DEFAULT);
+
+ gtk_widget_set_can_default(queue, TRUE);
g_signal_connect(queue, "clicked",
G_CALLBACK(ui_jump_to_track_queue_cb),
treeview);
@@ -544,14 +542,14 @@ audgui_jump_to_track(void)
G_CALLBACK(ui_jump_to_track_jump_cb),
treeview);
- GTK_WIDGET_SET_FLAGS(jump, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(jump, TRUE);
gtk_widget_grab_default(jump);
close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(bbox), close, FALSE, FALSE, 0);
g_signal_connect (close, "clicked", (GCallback) audgui_jump_to_track_hide,
NULL);
- GTK_WIDGET_SET_FLAGS(close, GTK_CAN_DEFAULT);
+ gtk_widget_set_can_default(close, TRUE);
g_timeout_add(100, (GSourceFunc)ui_jump_to_track_fill, treeview);