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

Reply via email to