Commit be63f6ff authored by Sean Davis's avatar Sean Davis
Browse files

Playlist improvements

- Move playlist into a popover
- Prevent hiding controls while playlist or sound popovers are open
parent c46d320a
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.20.0 -->
<!-- Generated with glade 3.22.2 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkBox" id="playlist-box">
......@@ -57,6 +57,7 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="rules_hint">True</property>
<signal name="row-activated" handler="parole_media_list_row_activated_cb" swapped="no"/>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2"/>
</child>
......
......@@ -62,7 +62,6 @@ enum {
PROP_REMOVE_DUPLICATED_PLAYLIST_ENTRIES,
PROP_REPEAT,
PROP_REPLACE_PLAYLIST,
PROP_SHOWHIDE_PLAYLIST,
PROP_SHUFFLE,
PROP_START_PLAYING_OPENED_FILES,
/* Subtitles */
......@@ -271,8 +270,6 @@ gchar *parole_conf_map_xfconf_property_name(const gchar *prop_name) {
value = g_strdup("repeat");
if (g_strcmp0(prop_name, "/playlist/replace-playlist") == 0)
value = g_strdup("replace-playlist");
if (g_strcmp0(prop_name, "/playlist/show-playlist") == 0)
value = g_strdup("showhide-playlist");
if (g_strcmp0(prop_name, "/playlist/shuffle") == 0)
value = g_strdup("shuffle");
if (g_strcmp0(prop_name, "/playlist/play-opened-files") == 0)
......@@ -585,21 +582,6 @@ parole_conf_class_init(ParoleConfClass *klass) {
FALSE,
G_PARAM_READWRITE));
/**
* ParoleConf:showhide-playlist:
*
* Xfconf property: /playlist/show-playlist
*
* If the playlist is shown or hidden.
**/
g_object_class_install_property(object_class,
PROP_SHOWHIDE_PLAYLIST,
g_param_spec_boolean("showhide-playlist",
"/playlist/show-playlist",
NULL,
FALSE,
G_PARAM_READWRITE));
/**
* ParoleConf:shuffle:
*
......
This diff is collapsed.
......@@ -38,6 +38,8 @@ enum {
NAME_COL,
LENGTH_COL,
DATA_COL,
ENTRY_COL,
SORT_COL,
COL_NUMBERS
};
......@@ -71,9 +73,6 @@ typedef struct {
void (*uri_opened) (ParoleMediaList *list,
const gchar *uri);
void (*show_playlist) (ParoleMediaList *list,
gboolean show_playlist);
void (*gst_dvd_nav_message) (ParoleMediaList *list,
gint gst_dvd_nav_message);
......@@ -82,6 +81,9 @@ typedef struct {
void (*dvd_chapter_count) (ParoleMediaList *list,
gint chapter_count);
void (*key_fwd_event) (ParoleMediaList *list,
gpointer *event);
} ParoleMediaListClass;
GType parole_media_list_get_type (void) G_GNUC_CONST;
......@@ -130,10 +132,8 @@ GtkTreeRowReference
GtkTreeRowReference
*parole_media_list_get_prev_row (ParoleMediaList *list,
GtkTreeRowReference *row);
GtkTreeRowReference
*parole_media_list_get_row_random (ParoleMediaList *list);
GtkTreeRowReference *row,
gboolean repeat);
void
parole_media_list_set_row_playback_state (ParoleMediaList *list,
......
......@@ -152,12 +152,16 @@ void parole_player_playpause_action_cb(GSimpleAction *action);
void parole_player_pause_clicked(GtkButton *button,
ParolePlayer *player);
void parole_player_playlist_toggled_cb(GtkWidget *button,
ParolePlayer *player);
void parole_player_playlist_menu_toggled_cb(GtkWidget *button,
ParolePlayer *player);
void parole_player_next_action_cb(GSimpleAction *action);
void parole_player_previous_action_cb(GSimpleAction *action);
void parole_player_toggle_playlist_action_cb(GSimpleAction *action);
void parole_player_fullscreen_action_cb(GSimpleAction *action);
void parole_player_seekf_cb(GtkWidget *widget,
......@@ -218,6 +222,9 @@ gboolean parole_player_volume_scroll_event_cb(GtkWidget *widget,
GdkEventScroll *ev,
ParolePlayer *player);
static void parole_player_volume_popdown_cb(GtkWidget *widget,
ParolePlayer *player);
static void parole_player_clear_subtitles(ParolePlayer *player);
static void parole_player_clear_audio_tracks(ParolePlayer *player);
......@@ -254,6 +261,10 @@ gboolean parole_player_gst_widget_button_release(GtkWidget *widget,
GdkEventButton *ev,
ParolePlayer *player);
void
parole_player_schedule_hide_controls (ParolePlayer *player,
gint seconds);
gboolean
parole_player_gst_widget_motion_notify_event(GtkWidget *widget,
GdkEventMotion *ev,
......@@ -323,6 +334,11 @@ void parole_player_widget_activate_action(GtkWidget *widget,
static void parole_player_set_cursor_visible(ParolePlayer *player,
gboolean visible);
static gboolean
parole_player_handle_key_value (guint keyval,
guint state,
ParolePlayer *player);
gboolean parole_player_hide_controls(gpointer data);
static GtkTargetEntry target_entry[] = {
......@@ -359,14 +375,13 @@ struct ParolePlayerPrivate {
GtkWidget *window;
GtkWidget *playlist_nt;
GtkWidget *playlist_popover;
/* Parole Player layouts */
gboolean embedded;
gboolean full_screen;
gboolean mini_mode;
/* Remembered window sizes */
gint last_h, last_w;
/* HPaned handle-width for calculating size with playlist */
gint handle_width;
/* Menubar */
GtkWidget *menu_bar;
......@@ -393,8 +408,8 @@ struct ParolePlayerPrivate {
GtkWidget *progressbar_buffering;
GtkWidget *volume;
GtkWidget *mute;
GtkWidget *showhide_playlist_button;
GtkWidget *showhide_playlist_menu_item;
GtkWidget *showhide_playlist_button;
GtkWidget *repeat_menu_item;
GtkWidget *shuffle_menu_item;
GtkWidget *revealer;
......@@ -453,7 +468,6 @@ struct ParolePlayerPrivate {
GSimpleAction *media_playpause_action;
GSimpleAction *media_previous_action;
GSimpleAction *media_fullscreen_action;
GSimpleAction *toggle_playlist_action;
GSimpleAction *toggle_repeat_action;
GSimpleAction *toggle_shuffle_action;
......@@ -521,54 +535,41 @@ static void toggle_action_cb(GtkWidget *widget, GSimpleAction *action) {
!g_simple_toggle_action_get_active(action));
}
void parole_player_set_playlist_visible(ParolePlayer *player, gboolean visibility) {
gint window_w, window_h, playlist_w;
GtkAllocation *allocation = g_new0(GtkAllocation, 1);
gboolean parole_player_get_playlist_visible(ParolePlayer *player) {
return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(player->priv->showhide_playlist_button));
}
gtk_widget_set_tooltip_text(GTK_WIDGET(player->priv->showhide_playlist_button),
visibility ? _("Hide Playlist") : _("Show Playlist"));
gboolean parole_player_get_volume_visible(ParolePlayer *player) {
GtkWidget *popup;
if (gtk_widget_get_visible (player->priv->playlist_nt) == visibility)
return;
popup = gtk_scale_button_get_popup (GTK_SCALE_BUTTON (player->priv->volume));
gtk_window_get_size(GTK_WINDOW(player->priv->window), &window_w, &window_h);
return gtk_widget_get_visible (popup);
}
/* Get the playlist width. If we fail to get it, use the default 220. */
gtk_widget_get_allocation(GTK_WIDGET(player->priv->playlist_nt), allocation);
playlist_w = allocation->width;
if (playlist_w == 1)
playlist_w = 220;
void parole_player_set_playlist_visible(ParolePlayer *player, gboolean visibility) {
if (visibility && player->priv->control != NULL) {
gtk_widget_show(gtk_widget_get_parent(player->priv->control));
gtk_revealer_set_reveal_child(GTK_REVEALER(player->priv->revealer), TRUE);
parole_player_set_cursor_visible(player, TRUE);
}
g_simple_toggle_action_set_active(player->priv->toggle_playlist_action, visibility);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(player->priv->showhide_playlist_menu_item), visibility);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(player->priv->showhide_playlist_button), visibility);
if ( visibility ) {
if ( !player->priv->full_screen )
gtk_window_resize(GTK_WINDOW(player->priv->window),
window_w+playlist_w+player->priv->handle_width, window_h);
if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(player->priv->showhide_playlist_menu_item)) != visibility)
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(player->priv->showhide_playlist_menu_item), visibility);
gtk_widget_show(player->priv->playlist_nt);
g_object_set(G_OBJECT(player->priv->conf),
"showhide-playlist", TRUE,
NULL);
} else {
gtk_widget_hide(player->priv->playlist_nt);
g_object_set(G_OBJECT(player->priv->conf),
"showhide-playlist", FALSE,
NULL);
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(player->priv->showhide_playlist_button)) != visibility)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(player->priv->showhide_playlist_button), visibility);
if ( !player->priv->full_screen )
gtk_window_resize(GTK_WINDOW(player->priv->window),
window_w-playlist_w-player->priv->handle_width, window_h);
}
if (!visibility)
parole_player_schedule_hide_controls (player, 1);
}
void parole_player_toggle_playlist_action_cb(GSimpleAction *action) {
gboolean visible;
visible = gtk_widget_get_visible(parole_player->priv->playlist_nt);
void parole_player_playlist_menu_toggled_cb(GtkWidget *menu_item, ParolePlayer *player) {
parole_player_set_playlist_visible(player, gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_item)));
}
parole_player_set_playlist_visible(parole_player, !visible);
void parole_player_playlist_toggled_cb(GtkWidget *button, ParolePlayer *player) {
parole_player_set_playlist_visible(player, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)));
}
static void
......@@ -1141,6 +1142,12 @@ parole_player_iso_opened_cb(ParoleMediaList *list, const gchar *uri, ParolePlaye
parole_player_disc_selected_cb(NULL, uri, NULL, player);
}
static void
parole_player_key_forward_cb(ParoleMediaList *list, GdkEventKey *event, ParolePlayer *player) {
parole_player_handle_key_value(event->keyval, event->state, player);
gdk_event_free ((GdkEvent *)event);
}
static void
parole_player_recent_menu_clear_activated_cb(GtkWidget *widget, ParolePlayer *player) {
GtkWidget *dlg;
......@@ -1234,13 +1241,6 @@ parole_player_media_cursor_changed_cb(ParoleMediaList *list, gboolean media_sele
g_simple_action_set_enabled(player->priv->media_next_action, enabled);
}
static void
parole_player_media_list_show_playlist_cb(ParoleMediaList *list, gboolean show_playlist, ParolePlayer *player) {
parole_media_list_set_playlist_view(player->priv->list,
player->priv->current_media_type == PAROLE_MEDIA_TYPE_DVD);
parole_player_set_playlist_visible(player, show_playlist);
}
static void
parole_player_media_progressed_cb(ParoleGst *gst, const ParoleStream *stream, gint64 value, ParolePlayer *player) {
#ifdef DEBUG
......@@ -1391,18 +1391,12 @@ parole_player_playing(ParolePlayer *player, const ParoleStream *stream) {
parole_player_save_uri(player, stream);
parole_media_list_select_row(player->priv->list, player->priv->row);
gtk_widget_grab_focus(player->priv->gst);
if (!parole_player_get_playlist_visible (player)) {
gtk_widget_grab_focus(player->priv->gst);
}
parole_player_update_languages(player, PAROLE_GST(player->priv->gst));
g_object_get(G_OBJECT(player->priv->conf),
"hide-controls-timeout", &hide_controls_timeout,
NULL);
if (hide_controls_timeout != 0 || player->priv->full_screen) {
if (player->priv->full_screen)
g_timeout_add_seconds(4, (GSourceFunc)parole_player_hide_controls, player);
else
g_timeout_add_seconds(hide_controls_timeout, (GSourceFunc)parole_player_hide_controls, player);
}
parole_player_schedule_hide_controls(player, -1);
}
static void
......@@ -1492,10 +1486,7 @@ parole_player_play_next(ParolePlayer *player, gboolean allow_shuffle) {
if ( player->priv->row ) {
parole_media_list_set_row_playback_state(player->priv->list, player->priv->row, PAROLE_MEDIA_STATE_NONE);
if ( shuffle && allow_shuffle )
row = parole_media_list_get_row_random(player->priv->list);
else
row = parole_media_list_get_next_row(player->priv->list, player->priv->row, repeat);
row = parole_media_list_get_next_row(player->priv->list, player->priv->row, repeat);
if ( row ) {
parole_player_media_activated_cb(player->priv->list, row, player);
......@@ -1512,6 +1503,7 @@ parole_player_play_next(ParolePlayer *player, gboolean allow_shuffle) {
static void
parole_player_play_prev(ParolePlayer *player) {
gboolean repeat;
GtkTreeRowReference *row;
if ( player->priv->current_media_type == PAROLE_MEDIA_TYPE_DVD ) {
......@@ -1519,10 +1511,14 @@ parole_player_play_prev(ParolePlayer *player) {
return;
}
g_object_get(G_OBJECT(player->priv->conf),
"repeat", &repeat,
NULL);
if ( player->priv->row ) {
parole_media_list_set_row_playback_state(player->priv->list, player->priv->row, PAROLE_MEDIA_STATE_NONE);
row = parole_media_list_get_prev_row(player->priv->list, player->priv->row);
row = parole_media_list_get_prev_row(player->priv->list, player->priv->row, repeat);
if ( row ) {
parole_player_media_activated_cb(player->priv->list, row, player);
......@@ -1966,7 +1962,6 @@ void
parole_player_reset_controls(ParolePlayer *player, gboolean fullscreen) {
static gint current_page = 0;
gboolean show_playlist;
gboolean always_hide_menubar = FALSE;
gint h, w;
......@@ -1985,26 +1980,18 @@ parole_player_reset_controls(ParolePlayer *player, gboolean fullscreen) {
else if (always_hide_menubar == TRUE)
gtk_widget_hide(player->priv->menu_bar);
show_playlist = g_simple_toggle_action_get_active(player->priv->toggle_playlist_action);
gtk_widget_show(player->priv->playlist_nt);
parole_player_set_playlist_visible(player, show_playlist);
gtk_menu_item_set_label(GTK_MENU_ITEM(player->priv->fullscreen_menu_item), _("_Fullscreen"));
gtk_widget_set_tooltip_text(player->priv->fullscreen_button, _("Fullscreen"));
gtk_image_set_from_icon_name(GTK_IMAGE(player->priv->fullscreen_image), "view-fullscreen-symbolic", 24);
gtk_widget_set_visible(GTK_WIDGET(player->priv->showhide_playlist_button), TRUE);
gtk_window_unfullscreen(GTK_WINDOW(player->priv->window));
gtk_notebook_set_current_page(GTK_NOTEBOOK(player->priv->playlist_nt), current_page);
player->priv->full_screen = FALSE;
} else {
gtk_widget_hide(player->priv->menu_bar);
gtk_widget_hide(player->priv->playlist_nt);
parole_player_set_playlist_visible(player, FALSE);
gtk_menu_item_set_label(GTK_MENU_ITEM(player->priv->fullscreen_menu_item), _("Leave _Fullscreen"));
gtk_widget_set_tooltip_text(player->priv->fullscreen_button, _("Leave Fullscreen"));
gtk_image_set_from_icon_name(GTK_IMAGE(player->priv->fullscreen_image), "view-restore-symbolic", 24);
gtk_widget_set_visible(GTK_WIDGET(player->priv->showhide_playlist_button), FALSE);
current_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(player->priv->playlist_nt));
......@@ -2015,15 +2002,11 @@ parole_player_reset_controls(ParolePlayer *player, gboolean fullscreen) {
if ( player->priv->embedded ) {
gtk_widget_hide(player->priv->menu_bar);
gtk_widget_hide(player->priv->playlist_nt);
gtk_widget_hide(player->priv->fullscreen_button);
gtk_widget_hide(player->priv->showhide_playlist_button);
} else {
if ( player->priv->mini_mode ) {
gtk_widget_hide(player->priv->menu_bar);
gtk_widget_hide(player->priv->playlist_nt);
gtk_widget_hide(player->priv->fullscreen_button);
gtk_widget_hide(player->priv->showhide_playlist_button);
gtk_widget_hide(player->priv->audiobox_text);
gtk_widget_set_halign(player->priv->audiobox_cover, GTK_ALIGN_CENTER);
......@@ -2047,9 +2030,6 @@ parole_player_reset_controls(ParolePlayer *player, gboolean fullscreen) {
if ( !player->priv->full_screen ) {
gtk_widget_show(player->priv->menu_bar);
gtk_widget_show(player->priv->showhide_playlist_button);
if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (player->priv->showhide_playlist_button)) )
gtk_widget_show(player->priv->playlist_nt);
gtk_window_resize(GTK_WINDOW(player->priv->window), w, h);
}
}
......@@ -2248,6 +2228,12 @@ gboolean parole_player_hide_controls(gpointer data) {
player = PAROLE_PLAYER(data);
if (parole_player_get_playlist_visible (player))
return FALSE;
if (parole_player_get_volume_visible (player))
return FALSE;
gtk_revealer_set_reveal_child(GTK_REVEALER(player->priv->revealer), FALSE);
parole_player_set_cursor_visible(player, FALSE);
......@@ -2255,8 +2241,8 @@ gboolean parole_player_hide_controls(gpointer data) {
return FALSE;
}
gboolean
parole_player_gst_widget_motion_notify_event(GtkWidget *widget, GdkEventMotion *ev, ParolePlayer *player) {
void
parole_player_schedule_hide_controls (ParolePlayer *player, gint seconds) {
static gulong hide_timeout;
int hide_controls_timeout;
......@@ -2265,31 +2251,41 @@ parole_player_gst_widget_motion_notify_event(GtkWidget *widget, GdkEventMotion *
hide_timeout = 0;
}
if (player->priv->revealer == NULL)
return;
if (!gtk_revealer_get_reveal_child(GTK_REVEALER(player->priv->revealer)))
return;
if ( player->priv->state != PAROLE_STATE_PLAYING )
return;
g_object_get(G_OBJECT(player->priv->conf),
"hide-controls-timeout", &hide_controls_timeout,
NULL);
if (hide_controls_timeout == 0)
return;
if (seconds < 0) {
seconds = (gint)hide_controls_timeout;
}
hide_timeout = g_timeout_add_seconds((guint)seconds,
(GSourceFunc) parole_player_hide_controls, player);
return;
}
gboolean
parole_player_gst_widget_motion_notify_event(GtkWidget *widget, GdkEventMotion *ev, ParolePlayer *player) {
gtk_widget_show(gtk_widget_get_parent(player->priv->control));
parole_player_set_cursor_visible(player, TRUE);
if (gtk_revealer_get_reveal_child(GTK_REVEALER(player->priv->revealer))) {
if ((gdouble)gtk_widget_get_allocated_height(widget) - ev->y >= 32.0) {
if ( player->priv->state == PAROLE_STATE_PLAYING ) {
g_object_get(G_OBJECT(player->priv->conf),
"hide-controls-timeout", &hide_controls_timeout,
NULL);
if (hide_controls_timeout != 0 || player->priv->full_screen) {
if (player->priv->full_screen)
hide_timeout = g_timeout_add_seconds(4,
(GSourceFunc) parole_player_hide_controls, player);
else
hide_timeout = g_timeout_add_seconds(hide_controls_timeout,
(GSourceFunc) parole_player_hide_controls, player);
}
}
}
} else {
if (!gtk_revealer_get_reveal_child(GTK_REVEALER(player->priv->revealer))) {
gtk_revealer_set_reveal_child(GTK_REVEALER(player->priv->revealer), TRUE);
}
parole_player_schedule_hide_controls (player, -1);
return FALSE;
}
......@@ -2341,6 +2337,10 @@ parole_player_change_volume(ParolePlayer *player, gdouble value) {
parole_gst_set_volume(PAROLE_GST(player->priv->gst), value);
}
static void parole_player_volume_popdown_cb(GtkWidget *widget, ParolePlayer *player) {
parole_player_schedule_hide_controls (player, 1);
}
gboolean
parole_player_volume_scroll_event_cb(GtkWidget *widget, GdkEventScroll *ev, ParolePlayer *player) {
gboolean ret_val = FALSE;
......@@ -2543,25 +2543,16 @@ parole_player_reset_saver_changed_cb(ParolePlayer *player) {
}
static gboolean
parole_player_handle_key_press(GdkEventKey *ev, ParolePlayer *player) {
GtkWidget *focused;
parole_player_handle_key_value(guint keyval, guint state, ParolePlayer *player) {
/* Seek duration in seconds */
gdouble seek_short = 10, seek_medium = 60, seek_long = 600;
gboolean ret_val = FALSE;
focused = gtk_window_get_focus(GTK_WINDOW(player->priv->window));
if ( focused ) {
if (gtk_widget_is_ancestor(focused, player->priv->playlist_nt)) {
return FALSE;
}
}
if (ev->state & GDK_MOD1_MASK)
if (state & GDK_MOD1_MASK)
return FALSE;
switch (ev->keyval) {
switch (keyval) {
case GDK_KEY_f:
case GDK_KEY_F:
if ( player->priv->embedded != TRUE ) {
......@@ -2578,7 +2569,7 @@ parole_player_handle_key_press(GdkEventKey *ev, ParolePlayer *player) {
case GDK_KEY_Right:
/* Media seekable ?*/
if (gtk_widget_get_sensitive(player->priv->range)) {
if (ev->state & GDK_CONTROL_MASK) {
if (state & GDK_CONTROL_MASK) {
parole_player_seekf_cb(NULL, player, seek_medium);
} else {
parole_player_seekf_cb(NULL, player, seek_short);
......@@ -2588,7 +2579,7 @@ parole_player_handle_key_press(GdkEventKey *ev, ParolePlayer *player) {
break;
case GDK_KEY_Left:
if (gtk_widget_get_sensitive(player->priv->range)) {
if (ev->state & GDK_CONTROL_MASK) {
if (state & GDK_CONTROL_MASK) {
parole_player_seekb_cb(NULL, player, seek_medium);
} else {
parole_player_seekb_cb(NULL, player, seek_short);
......@@ -2612,7 +2603,7 @@ parole_player_handle_key_press(GdkEventKey *ev, ParolePlayer *player) {
parole_player_full_screen(player, FALSE);
break;
case GDK_KEY_m:
if (ev->state & GDK_CONTROL_MASK) {
if (state & GDK_CONTROL_MASK) {
parole_player_hide_menubar_cb(NULL, player);
}
ret_val = TRUE;
......@@ -2629,7 +2620,7 @@ parole_player_handle_key_press(GdkEventKey *ev, ParolePlayer *player) {
break;
case GDK_KEY_q:
case GDK_KEY_Q:
if (ev->state & GDK_CONTROL_MASK) {
if (state & GDK_CONTROL_MASK) {
parole_player_quit(player);
ret_val = TRUE;
}
......@@ -2667,6 +2658,21 @@ parole_player_handle_key_press(GdkEventKey *ev, ParolePlayer *player) {
return ret_val;
}
static gboolean
parole_player_handle_key_press(GdkEventKey *ev, ParolePlayer *player) {
GtkWidget *focused;
focused = gtk_window_get_focus(GTK_WINDOW(player->priv->window));
if ( focused ) {
if (gtk_widget_is_ancestor(focused, player->priv->playlist_nt)) {
return FALSE;
}
}
return parole_player_handle_key_value(ev->keyval, ev->state, player);
}
gboolean
parole_player_key_press(GtkWidget *widget, GdkEventKey *ev, ParolePlayer *player) {
gboolean enabled;
......@@ -2989,6 +2995,8 @@ parole_player_configure_event_cb(GtkWidget *widget, GdkEventConfigure *ev, Parol
}
}
gtk_widget_set_size_request(player->priv->playlist_popover, -1, new_h - 100);
return FALSE;
}
......@@ -3104,9 +3112,6 @@ parole_player_init(ParolePlayer *player) {
GtkWidget *infobar_close, *close_icon;
GtkCellRenderer *cell, *sub_cell;
/* Content / Media List Panes */
GtkWidget *hpaned;
/* Content Area */
GtkWidget *controls_overlay;
GtkWidget *controls_parent;
......@@ -3115,12 +3120,13 @@ parole_player_init(ParolePlayer *player) {
/* Player Controls */
GList *widgets;
GtkWidget *playlist;
GtkWidget *playlist_popover;
/* Properties */
gchar *videosink = NULL;
gint w, h;
gboolean maximized;
gboolean showhide;
gboolean always_hide_menubar = FALSE;
gint volume;
......@@ -3186,7 +3192,6 @@ parole_player_init(ParolePlayer *player) {
/* Get properties from ParoleConf */
g_object_get(G_OBJECT(player->priv->conf),
"showhide-playlist", &showhide,
"videosink", &videosink,
"volume", &volume,
"window-width", &w,
......@@ -3213,10 +3218,7 @@ parole_player_init(ParolePlayer *player) {
GTK_WIDGET(player->priv->list),
gtk_label_new(_("Playlist")));