Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package osdlyrics for openSUSE:Factory checked in at 2022-09-15 23:00:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/osdlyrics (Old) and /work/SRC/openSUSE:Factory/.osdlyrics.new.2083 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "osdlyrics" Thu Sep 15 23:00:02 2022 rev:8 rq:1003855 version:0.5.12 Changes: -------- --- /work/SRC/openSUSE:Factory/osdlyrics/osdlyrics.changes 2022-02-22 21:18:41.514291751 +0100 +++ /work/SRC/openSUSE:Factory/.osdlyrics.new.2083/osdlyrics.changes 2022-09-15 23:01:16.973569864 +0200 @@ -1,0 +2,12 @@ +Thu Sep 15 12:46:59 UTC 2022 - Hillwood Yang <hillw...@opensuse.org> + +- Update version to 0.5.12 + * Fix the close button focus behavior + * Fix the behavior of the "OSD/visible" config + * Fix the behavior of hiding the OSD when playter is stopped + * Fix position update when seeking + * fix show/hide glitch + * save/restore window position + * fix content-reproducibility + +------------------------------------------------------------------- Old: ---- osdlyrics-0.5.10.tar.gz New: ---- osdlyrics-0.5.12.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ osdlyrics.spec ++++++ --- /var/tmp/diff_new_pack.0OY8ea/_old 2022-09-15 23:01:17.357570949 +0200 +++ /var/tmp/diff_new_pack.0OY8ea/_new 2022-09-15 23:01:17.361570960 +0200 @@ -17,7 +17,7 @@ Name: osdlyrics -Version: 0.5.10 +Version: 0.5.12 Release: 0 Summary: A third-party lyrics display program License: GPL-3.0-or-later ++++++ osdlyrics-0.5.10.tar.gz -> osdlyrics-0.5.12.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/.github/workflows/ci.yml new/osdlyrics-0.5.12/.github/workflows/ci.yml --- old/osdlyrics-0.5.10/.github/workflows/ci.yml 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/.github/workflows/ci.yml 2022-09-01 22:01:57.000000000 +0200 @@ -10,13 +10,19 @@ steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: - fetch-depth: 1 - + fetch-depth: 0 + + - name: Update image + run: sudo apt-get update && sudo apt-get upgrade + - name: Install dependencies run: sudo apt-get install dh-python intltool lib{dbus-glib-1,gtk2.0,notify,x11}-dev python3{,-dbus,-future,-gi} + - name: Version + run: ./check-version.sh + - name: Autogen run: ./autogen.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/README.md new/osdlyrics-0.5.12/README.md --- old/osdlyrics-0.5.10/README.md 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/README.md 2022-09-01 22:01:57.000000000 +0200 @@ -61,7 +61,7 @@ If there is any feature request, suggestion, or bug, feel free to report them in [issues page](https://github.com/osdlyrics/osdlyrics/issues). -You can contact the developers for fast support through [our discord server](https://discord.gg/anUy3K). +You can contact the developers for fast support through [our Discord server](https://discord.gg/vHC2Q3YUuA). ## How to contribute diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/check-version.sh new/osdlyrics-0.5.12/check-version.sh --- old/osdlyrics-0.5.10/check-version.sh 1970-01-01 01:00:00.000000000 +0100 +++ new/osdlyrics-0.5.12/check-version.sh 2022-09-01 22:01:57.000000000 +0200 @@ -0,0 +1,15 @@ +#h!/usr/bin/env sh + +GIT="${GIT:-git}" +OL_VERSION="${OL_VERSION:-0.5.11}" + +if [ ! "$("$GIT" rev-parse --show-prefix 2>/dev/null)" ]; then + _GIT_VERSION="$("$GIT" describe --always --tags 2>/dev/null)" + if [ "$_GIT_VERSION" ]; then + echo "$_GIT_VERSION" + else + echo "$OL_VERSION" + fi +else + echo "$OL_VERSION" +fi diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/configure.ac new/osdlyrics-0.5.12/configure.ac --- old/osdlyrics-0.5.10/configure.ac 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/configure.ac 2022-09-01 22:01:57.000000000 +0200 @@ -1,14 +1,6 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -m4_define([OL_MAJOR_VER], [0]) -m4_define([OL_MINOR_VER], [5]) -m4_define([OL_MICRO_VER], [10]) -m4_define([OL_BUILD], [-git]) -m4_define(OL_BUILD_VER, - m4_esyscmd_s([if test 'x]OL_BUILD[' = 'x-git'; then (git log -1 --format=format:%ad --date=short 2>/dev/null || date -u +%Y%m%d) | sed 's/-//g'; fi])) - -m4_define([OL_VERSION], [OL_MAJOR_VER.OL_MINOR_VER.OL_MICRO_VER[]OL_BUILD[]OL_BUILD_VER]) -AC_INIT([osdlyrics], [OL_VERSION], [https://github.com/osdlyrics/osdlyrics/issues]) +AC_INIT([osdlyrics], [m4_esyscmd_s([./check-version.sh])], [https://github.com/osdlyrics/osdlyrics/issues]) AM_INIT_AUTOMAKE([foreign subdir-objects -Wall -Werror]) m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/data/dialogs.glade new/osdlyrics-0.5.12/data/dialogs.glade --- old/osdlyrics-0.5.10/data/dialogs.glade 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/data/dialogs.glade 2022-09-01 22:01:57.000000000 +0200 @@ -2013,8 +2013,8 @@ <child> <object class="GtkCheckMenuItem" id="menu-hide"> <property name="visible">True</property> - <property name="tooltip_text" translatable="yes">Hide the OSD Window</property> - <property name="label" translatable="yes">_Hide OSD</property> + <property name="tooltip_text" translatable="yes">Hide the OSD window when the player is stopped</property> + <property name="label" translatable="yes">_Hide OSD when stopped</property> <property name="use_underline">True</property> <signal name="activate" handler="ol_menu_hide"/> </object> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/doc/dbus.rst new/osdlyrics-0.5.12/doc/dbus.rst --- old/osdlyrics-0.5.10/doc/dbus.rst 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/doc/dbus.rst 2022-09-01 22:01:57.000000000 +0200 @@ -301,7 +301,7 @@ The name of configure options ----------------------------- -All the name used in configure options MUST be in the format of "group_name/options_name". For example, the visibility of OSD Window should be configured in "OSD/visible". +All the name used in configure options MUST be in the format of "group_name/options_name". For example, the visibility of the OSD Window when the player is stopped should be configured in "OSD/visible_when_stopped". Methods ------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/players/http/http-player.py new/osdlyrics-0.5.12/players/http/http-player.py --- old/osdlyrics-0.5.10/players/http/http-player.py 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/players/http/http-player.py 2022-09-01 22:01:57.000000000 +0200 @@ -132,8 +132,7 @@ self.status_changed() def do_update_position(self, pos): - if self._timer.set_time(pos): - self.position_changed() + self.position_changed(pos) def get_metadata(self): return self._metadata diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/players/mpris2/mpris2.py new/osdlyrics-0.5.12/players/mpris2/mpris2.py --- old/osdlyrics-0.5.10/players/mpris2/mpris2.py 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/players/mpris2/mpris2.py 2022-09-01 22:01:57.000000000 +0200 @@ -140,7 +140,7 @@ getattr(self, method)() def _player_seeked(self, position): - self.position_changed() + self.position_changed(position // 1000) @property def object_path(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/python/player_proxy.py new/osdlyrics-0.5.12/python/player_proxy.py --- old/osdlyrics-0.5.10/python/player_proxy.py 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/python/player_proxy.py 2022-09-01 22:01:57.000000000 +0200 @@ -752,10 +752,10 @@ if cap in orig_caps != cap in self._caps: setattr(self, method, cap in self._caps) - def position_changed(self): + def position_changed(self, position): """ Notify that the position has been changed """ if self._timer is not None: - self._timer.time = self.get_position() - self.Seeked(self._timer.time * 1000) + self._timer.time = position + self.Seeked(position * 1000) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_commands.c new/osdlyrics-0.5.12/src/ol_commands.c --- old/osdlyrics-0.5.10/src/ol_commands.c 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_commands.c 2022-09-01 22:01:57.000000000 +0200 @@ -30,10 +30,10 @@ } void -ol_show_hide () +ol_osd_switch_display () { OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (config != NULL); - ol_config_proxy_set_bool (config, "General/visible", - !ol_config_proxy_get_bool (config, "General/visible")); + ol_config_proxy_set_bool (config, "General/display-mode-osd", + !ol_config_proxy_get_bool (config, "General/display-mode-osd")); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_commands.h new/osdlyrics-0.5.12/src/ol_commands.h --- old/osdlyrics-0.5.10/src/ol_commands.h 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_commands.h 2022-09-01 22:01:57.000000000 +0200 @@ -36,9 +36,9 @@ void ol_osd_lock_unlock (); /** - * @brief switch show/hide status + * @brief switch show/hide OSD * */ -void ol_show_hide (); +void ol_osd_switch_display (); #endif /* _OL_COMMANDS_H_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_config_property.h new/osdlyrics-0.5.12/src/ol_config_property.h --- old/osdlyrics-0.5.10/src/ol_config_property.h 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_config_property.h 2022-09-01 22:01:57.000000000 +0200 @@ -108,7 +108,7 @@ static const OlConfigBoolValue config_bool[] = { {"OSD/locked", TRUE}, - {".visible", TRUE}, + {"OSD/visible_when_stopped", TRUE}, {"OSD/translucent-on-mouse-over", TRUE}, {"Download/download-first-lyric", FALSE}, {"General/display-mode-osd", TRUE}, @@ -125,6 +125,8 @@ {"Download/proxy-port", 1, 65535, 7070}, {"ScrollMode/width", 1, 10000, 500}, {"ScrollMode/height", 1, 10000, 400}, + {"ScrollMode/x", 0, 10000, 0}, + {"ScrollMode/y", 0, 10000, 0}, }; static const OlConfigDoubleValue config_double[] = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_keybindings.c new/osdlyrics-0.5.12/src/ol_keybindings.c --- old/osdlyrics-0.5.10/src/ol_keybindings.c 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_keybindings.c 2022-09-01 22:01:57.000000000 +0200 @@ -39,19 +39,19 @@ GClosure *hide_closure = g_cclosure_new ((GCallback)ol_hide_accel, NULL, NULL); - gtk_accel_map_add_entry ("<OSD Lyrics>/Hide", + gtk_accel_map_add_entry ("<OSD Lyrics>/Switch OSD", gdk_keyval_from_name ("h"), GDK_CONTROL_MASK | GDK_SHIFT_MASK); gtk_accel_group_connect_by_path (accel, - "<OSD Lyrics>/Hide", + "<OSD Lyrics>/Switch OSD", hide_closure); gtk_accel_map_add_entry ("<OSD Lyrics>/Lock", gdk_keyval_from_name ("l"), GDK_CONTROL_MASK | GDK_SHIFT_MASK); gtk_accel_group_connect_by_path (accel, - "<OSD Lyrics>/Hide", + "<OSD Lyrics>/Switch OSD", hide_closure); - ol_keybinder_bind ("<Ctrl><Shift>H", ol_show_hide, NULL); + ol_keybinder_bind ("<Ctrl><Shift>H", ol_osd_switch_display, NULL); ol_keybinder_bind ("<Ctrl><Shift>L", ol_osd_lock_unlock, NULL); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_menu.c new/osdlyrics-0.5.12/src/ol_menu.c --- old/osdlyrics-0.5.10/src/ol_menu.c 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_menu.c 2022-09-01 22:01:57.000000000 +0200 @@ -219,7 +219,7 @@ OlConfigProxy *config = ol_config_proxy_get_instance (); ol_assert (config != NULL); gboolean hide = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)); - ol_config_proxy_set_bool (config, ".visible", !hide); + ol_config_proxy_set_bool (config, "OSD/visible_when_stopped", !hide); } void @@ -321,12 +321,6 @@ } menu.hide = ol_gui_get_widget ("menu-hide"); - if (menu.hide) - { - gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menu.hide), - "<OSD Lyrics>/Hide"); - } - menu.preference = ol_gui_get_widget ("menu-prefernce"); menu.about = ol_gui_get_widget ("menu-about"); menu.quit = ol_gui_get_widget ("menu-quit"); @@ -338,11 +332,17 @@ menu.next = ol_gui_get_widget ("menu-next"); menu.switch_osd = ol_gui_get_widget ("menu-switch-osd"); + if (menu.switch_osd) + { + gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menu.switch_osd), + "<OSD Lyrics>/Switch OSD"); + } + menu.switch_scroll = ol_gui_get_widget ("menu-switch-scroll"); gtk_widget_show_all (popup_menu); _locked_changed_cb (config, "OSD/locked", NULL); - _visible_changed_cb (config, ".visible", NULL); + _visible_changed_cb (config, "OSD/visible_when_stopped", NULL); _display_mode_osd_changed_cb (config, "General/display-mode-osd", NULL); _display_mode_scroll_changed_cb (config, "General/display-mode-scroll", NULL); g_signal_connect (config, @@ -350,7 +350,7 @@ G_CALLBACK (_locked_changed_cb), NULL); g_signal_connect (config, - "changed::.visible", + "changed::OSD/visible_when_stopped", G_CALLBACK (_visible_changed_cb), NULL); g_signal_connect (config, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_osd_module.c new/osdlyrics-0.5.12/src/ol_osd_module.c --- old/osdlyrics-0.5.10/src/ol_osd_module.c 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_osd_module.c 2022-09-01 22:01:57.000000000 +0200 @@ -50,6 +50,7 @@ OlOsdToolbar *toolbar; guint message_source; GList *config_bindings; + gboolean visible_when_stopped; }; typedef void (*_ConfigSetFunc) (OlConfigProxy *config, @@ -75,7 +76,10 @@ static void ol_osd_module_free (struct OlDisplayModule *module); static void _metadata_changed_cb (OlPlayer *player, OlOsdModule *module); +static void _status_changed_cb (OlPlayer *player, + OlOsdModule *module); static void _update_metadata (OlOsdModule *module); +static void _update_status (OlOsdModule *module); static gboolean _advance_to_nonempty_lyric (OlLrcIter *iter); static void ol_osd_module_set_played_time (struct OlDisplayModule *module, @@ -172,7 +176,7 @@ OlOsdModule *osd); static struct _ConfigMapping _config_mapping[] = { - { ".visible", _visible_changed_cb }, + { "OSD/visible_when_stopped", _visible_changed_cb }, { "OSD/width", _width_changed_cb }, { "OSD/osd-window-mode", _mode_changed_cb }, { "OSD/locked", _locked_changed_cb }, @@ -268,15 +272,8 @@ const char *key, OlOsdModule *osd) { - gboolean visible = ol_config_proxy_get_bool (config, key); - if (visible) - { - gtk_widget_show (GTK_WIDGET (osd->window)); - } - else - { - gtk_widget_hide (GTK_WIDGET (osd->window)); - } + osd->visible_when_stopped = ol_config_proxy_get_bool (config, key); + _update_status (osd); } static void @@ -543,12 +540,18 @@ data->message_source = 0; data->metadata = ol_metadata_new (); data->config_bindings = NULL; + data->visible_when_stopped = TRUE; ol_osd_module_init_osd (data); g_signal_connect (player, "track-changed", G_CALLBACK (_metadata_changed_cb), data); + g_signal_connect (player, + "status-changed", + G_CALLBACK (_status_changed_cb), + data); _update_metadata (data); + _update_status (data); return data; } @@ -587,6 +590,9 @@ g_signal_handlers_disconnect_by_func (priv->player, _metadata_changed_cb, priv); + g_signal_handlers_disconnect_by_func (priv->player, + _status_changed_cb, + priv); g_object_unref (priv->player); priv->player = NULL; while (priv->config_bindings != NULL) @@ -608,6 +614,13 @@ } static void +_status_changed_cb (OlPlayer *player, + OlOsdModule *module) +{ + _update_status (module); +} + +static void _update_metadata (OlOsdModule *module) { ol_log_func (); @@ -616,6 +629,25 @@ } static void +_update_status (OlOsdModule *module) +{ + ol_log_func (); + + enum OlPlayerStatus status; + if (module->player) + status = ol_player_get_status (module->player); + else + status = OL_PLAYER_UNKNOWN; + + gboolean visible = (status != OL_PLAYER_STOPPED || + module->visible_when_stopped); + + gtk_widget_set_visible (GTK_WIDGET (module->window), visible); + if (module->toolbar != NULL && visible) + ol_osd_toolbar_set_status (module->toolbar, status); +} + +static void ol_osd_module_set_played_time (struct OlDisplayModule *module, guint64 played_time) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_osd_toolbar.c new/osdlyrics-0.5.12/src/ol_osd_toolbar.c --- old/osdlyrics-0.5.10/src/ol_osd_toolbar.c 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_osd_toolbar.c 2022-09-01 22:01:57.000000000 +0200 @@ -59,11 +59,8 @@ static GtkButton *_add_button (OlOsdToolbar *toolbar, const struct ButtonSpec *btn_spec); static void _update_caps (OlOsdToolbar *toolbar); -static void _update_status (OlOsdToolbar *toolbar); static void _caps_changed_cb (OlPlayer *player, OlOsdToolbar *toolbar); -static void _status_changed_cb (OlPlayer *player, - OlOsdToolbar *toolbar); static void ol_osd_toolbar_destroy (GtkObject *obj); const static struct ButtonSpec btn_spec[] = { @@ -169,13 +166,6 @@ } static void -_status_changed_cb (OlPlayer *player, - OlOsdToolbar *toolbar) -{ - _update_status (toolbar); -} - -static void _update_caps (OlOsdToolbar *toolbar) { ol_assert (OL_IS_OSD_TOOLBAR (toolbar)); @@ -198,35 +188,6 @@ } static void -_update_status (OlOsdToolbar *toolbar) -{ - ol_log_func (); - OlOsdToolbarPriv *priv = OL_OSD_TOOLBAR_GET_PRIVATE (toolbar); - enum OlPlayerStatus status; - if (priv->player) - status = ol_player_get_status (priv->player); - else - status = OL_PLAYER_UNKNOWN; - switch (status) - { - case OL_PLAYER_PLAYING: - gtk_widget_show (GTK_WIDGET (toolbar->pause_button)); - gtk_widget_hide (GTK_WIDGET (toolbar->play_button)); - break; - case OL_PLAYER_PAUSED: - case OL_PLAYER_STOPPED: - gtk_widget_hide (GTK_WIDGET (toolbar->pause_button)); - gtk_widget_show (GTK_WIDGET (toolbar->play_button)); - break; - default: - gtk_widget_show (GTK_WIDGET (toolbar->pause_button)); - gtk_widget_show (GTK_WIDGET (toolbar->play_button)); - break; - } - gtk_widget_queue_draw (GTK_WIDGET (toolbar)); -} - -static void ol_osd_toolbar_class_init (OlOsdToolbarClass *klass) { GtkObjectClass *gtk_class = GTK_OBJECT_CLASS (klass); @@ -254,7 +215,6 @@ toolbar->next_button = _add_button (toolbar, &btn_spec[BTN_NEXT]); priv->player = NULL; - _update_status (toolbar); _update_caps (toolbar); } } @@ -302,10 +262,6 @@ { g_object_ref (player); g_signal_connect (player, - "status-changed", - G_CALLBACK (_status_changed_cb), - toolbar); - g_signal_connect (player, "caps-changed", G_CALLBACK (_caps_changed_cb), toolbar); @@ -313,14 +269,32 @@ if (priv->player != NULL) { g_signal_handlers_disconnect_by_func (priv->player, - _status_changed_cb, - toolbar); - g_signal_handlers_disconnect_by_func (priv->player, _caps_changed_cb, toolbar); g_object_unref (priv->player); } priv->player = player; _update_caps (toolbar); - _update_status (toolbar); } + +void +ol_osd_toolbar_set_status (OlOsdToolbar *toolbar, enum OlPlayerStatus status) +{ + switch (status) + { + case OL_PLAYER_PLAYING: + gtk_widget_show (GTK_WIDGET (toolbar->pause_button)); + gtk_widget_hide (GTK_WIDGET (toolbar->play_button)); + break; + case OL_PLAYER_PAUSED: + case OL_PLAYER_STOPPED: + gtk_widget_hide (GTK_WIDGET (toolbar->pause_button)); + gtk_widget_show (GTK_WIDGET (toolbar->play_button)); + break; + default: + gtk_widget_show (GTK_WIDGET (toolbar->pause_button)); + gtk_widget_show (GTK_WIDGET (toolbar->play_button)); + break; + } +} + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_scroll_module.c new/osdlyrics-0.5.12/src/ol_scroll_module.c --- old/osdlyrics-0.5.10/src/ol_scroll_module.c 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_scroll_module.c 2022-09-01 22:01:57.000000000 +0200 @@ -118,6 +118,9 @@ static void _size_changed_cb (OlConfigProxy *config, const char *key, OlScrollModule *module); +static void _pos_changed_cb (OlConfigProxy *config, + const char *key, + OlScrollModule *module); static void _active_color_changed_cb (OlConfigProxy *config, const char *key, OlScrollModule *module); @@ -137,6 +140,8 @@ static struct _ConfigMapping _config_mapping[] = { { "ScrollMode/width", _size_changed_cb }, { "ScrollMode/height", _size_changed_cb }, + { "ScrollMode/x", _pos_changed_cb }, + { "ScrollMode/y", _pos_changed_cb }, { "ScrollMode/font-name", _font_changed_cb }, { "ScrollMode/active-lrc-color", _active_color_changed_cb }, { "ScrollMode/inactive-lrc-color", _inactive_color_changed_cb }, @@ -193,11 +198,14 @@ if (_config_is_setting) return FALSE; _config_is_setting = TRUE; - gint width, height; + gint width, height, x, y; OlConfigProxy *config = ol_config_proxy_get_instance (); gtk_window_get_size (GTK_WINDOW (widget), &width, &height); + gtk_window_get_position (GTK_WINDOW (widget), &x, &y); ol_config_proxy_set_int (config, "ScrollMode/width", width); ol_config_proxy_set_int (config, "ScrollMode/height", height); + ol_config_proxy_set_int (config, "ScrollMode/x", x); + ol_config_proxy_set_int (config, "ScrollMode/y", y); _config_is_setting = FALSE; return FALSE; } @@ -264,6 +272,16 @@ } static void +_pos_changed_cb (OlConfigProxy *config, + const char *key, + OlScrollModule *module) +{ + gint x = ol_config_proxy_get_int (config, "ScrollMode/x"); + gint y = ol_config_proxy_get_int (config, "ScrollMode/y"); + gtk_window_move (GTK_WINDOW (module->scroll), x, y); +} + +static void _active_color_changed_cb (OlConfigProxy *config, const char *key, OlScrollModule *module) @@ -360,6 +378,7 @@ GTK_WIDGET (button)); gtk_icon_info_free (info); + gtk_widget_set_can_focus(GTK_WIDGET (button), FALSE); gtk_widget_show_all (toolbar); return toolbar; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/osdlyrics-0.5.10/src/ol_trayicon.c new/osdlyrics-0.5.12/src/ol_trayicon.c --- old/osdlyrics-0.5.10/src/ol_trayicon.c 2021-08-27 18:51:45.000000000 +0200 +++ new/osdlyrics-0.5.12/src/ol_trayicon.c 2022-09-01 22:01:57.000000000 +0200 @@ -28,6 +28,7 @@ #include "ol_stock.h" #include "ol_player.h" #include "ol_config_proxy.h" +#include "ol_commands.h" #include "ol_debug.h" #include <gtk/gtkstatusicon.h> #include <gtk/gtktooltip.h> @@ -54,9 +55,7 @@ activate (GtkStatusIcon* status_icon, gpointer user_data) { - OlConfigProxy *config = ol_config_proxy_get_instance (); - ol_config_proxy_set_bool (config, ".visible", - !ol_config_proxy_get_bool (config, ".visible")); + ol_osd_switch_display (); } static gboolean