Hello community, here is the log from the commit of package slick-greeter for openSUSE:Factory checked in at 2017-06-09 15:58:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/slick-greeter (Old) and /work/SRC/openSUSE:Factory/.slick-greeter.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "slick-greeter" Fri Jun 9 15:58:40 2017 rev:2 rq:502495 version:1.0.6 Changes: -------- --- /work/SRC/openSUSE:Factory/slick-greeter/slick-greeter.changes 2017-05-31 12:17:23.468313348 +0200 +++ /work/SRC/openSUSE:Factory/.slick-greeter.new/slick-greeter.changes 2017-06-09 15:58:41.840745290 +0200 @@ -1,0 +2,10 @@ +Fri Jun 9 07:16:28 UTC 2017 - sor.ale...@meowr.ru + +- Update to version 1.0.6 (changes since 1.0.4): + * backgrounds: Fix determination of what to display as a + background. + * Fix prompt display in GTK+ 3.20 or newer. + * Background: If no user background is set/used, fallback to the + system background. + +------------------------------------------------------------------- @@ -4 +14 @@ -- Update to version 1.4.2: +- Update to version 1.0.4: Old: ---- slick-greeter-1.0.4.tar.gz New: ---- slick-greeter-1.0.6.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ slick-greeter.spec ++++++ --- /var/tmp/diff_new_pack.ThlGWL/_old 2017-06-09 15:58:42.872599654 +0200 +++ /var/tmp/diff_new_pack.ThlGWL/_new 2017-06-09 15:58:42.876599090 +0200 @@ -18,7 +18,7 @@ %define _name lightdm-slick-greeter Name: slick-greeter -Version: 1.0.4 +Version: 1.0.6 Release: 0 Summary: The slick-looking login screen application License: GPL-3.0 and CC-BY-SA-3.0 ++++++ slick-greeter-1.0.4.tar.gz -> slick-greeter-1.0.6.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/README.md new/slick-greeter-1.0.6/README.md --- old/slick-greeter-1.0.4/README.md 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/README.md 2017-05-30 15:59:53.000000000 +0200 @@ -1,6 +1,8 @@ A slick-looking LightDM greeter +![Slick Greeter](https://www.linuxmint.com/tmp/blog/3254/thumb_slick.png) + # Configuration - The default configuration is stored in dconf under the schema x.dm.slick-greeter. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/configure.ac new/slick-greeter-1.0.6/configure.ac --- old/slick-greeter-1.0.4/configure.ac 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/configure.ac 2017-05-30 15:59:53.000000000 +0200 @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script. -AC_INIT(slick-greeter, 1.0.4) +AC_INIT(slick-greeter, 1.0.6) AC_CONFIG_MACRO_DIR(m4) AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz foreign subdir-objects]) AM_PROG_CC_C_O @@ -39,6 +39,16 @@ AC_SUBST(GETTEXT_PACKAGE) dnl ########################################################################### +dnl Check for GTK version - 3.20 +dnl ########################################################################### + +PKG_CHECK_MODULES(GTK_3_20_0, gtk+-3.0 >= 3.20.0 , gtk_check_pass=yes, gtk_check_pass=no) +if test x$gtk_check_pass = xyes ; then + AM_VALAFLAGS="$AM_VALAFLAGS -D HAVE_GTK_3_20_0" + AC_SUBST([AM_VALAFLAGS]) +fi + +dnl ########################################################################### dnl Files to generate dnl ########################################################################### diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/data/x.dm.slick-greeter.gschema.xml new/slick-greeter-1.0.6/data/x.dm.slick-greeter.gschema.xml --- old/slick-greeter-1.0.4/data/x.dm.slick-greeter.gschema.xml 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/data/x.dm.slick-greeter.gschema.xml 2017-05-30 15:59:53.000000000 +0200 @@ -3,7 +3,7 @@ <schema id="x.dm.slick-greeter" path="/x/dm/slick-greeter/"> <key name="background" type="s"> <default>''</default> - <summary>Background file to use, either an image path or a color (e.g. #772953)</summary> + <summary>Background file to use</summary> </key> <key name="background-color" type="s"> <default>'#000000'</default> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/debian/changelog new/slick-greeter-1.0.6/debian/changelog --- old/slick-greeter-1.0.4/debian/changelog 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/debian/changelog 2017-05-30 15:59:53.000000000 +0200 @@ -1,3 +1,21 @@ +slick-greeter (1.0.6) sonya; urgency=medium + + [ Michael Webster ] + * Fix prompt display in gtk3 > 3.20 + + [ Clement Lefebvre ] + * Background: If no user background is set/used, fallback to system background. + * Update README.md + + -- Clement Lefebvre <r...@linuxmint.com> Tue, 30 May 2017 14:59:12 +0100 + +slick-greeter (1.0.5) sonya; urgency=medium + + [ Michael Webster ] + * backgrounds: Fix determination of what to display as a background, broken as a result of d2a7122d731c0f19f502a9efba1feee651bcfa7c + + -- Clement Lefebvre <r...@linuxmint.com> Thu, 25 May 2017 15:07:22 +0100 + slick-greeter (1.0.4) sonya; urgency=medium [ leigh123linux ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/src/Makefile.am new/slick-greeter-1.0.6/src/Makefile.am --- old/slick-greeter-1.0.4/src/Makefile.am 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/src/Makefile.am 2017-05-30 15:59:53.000000000 +0200 @@ -48,6 +48,7 @@ logo_generator_CFLAGS = $(slick_greeter_CFLAGS) slick_greeter_VALAFLAGS = \ + $(AM_VALAFLAGS) \ --debug \ --pkg posix \ --pkg gtk+-3.0 \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/src/background.vala new/slick-greeter-1.0.6/src/background.vala --- old/slick-greeter-1.0.4/src/background.vala 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/src/background.vala 2017-05-30 15:59:53.000000000 +0200 @@ -394,8 +394,74 @@ GRID, } - public string default_background { get; set; default = UGSettings.get_string (UGSettings.KEY_BACKGROUND_COLOR); } - public string? current_background { get; set; default = null; } + /* Fallback color - shown upon first startup, until an async background loader finishes, + * or until a user background or default background is loaded. + */ + private bool draw_user_backgrounds = UGSettings.get_boolean (UGSettings.KEY_DRAW_USER_BACKGROUNDS); + + private string _fallback_color = null; + public string fallback_color { + get { + if (_fallback_color == null) + { + var settings_color = UGSettings.get_string (UGSettings.KEY_BACKGROUND_COLOR); + var color = Gdk.RGBA (); + + if (settings_color == "" || !color.parse (settings_color)) + { + settings_color = "#000000"; + } + + _fallback_color = settings_color; + } + + return _fallback_color; + } + } + + private string _system_background; + public string? system_background { + get { + if (_system_background == null) + { + var system_bg = UGSettings.get_string (UGSettings.KEY_BACKGROUND); + + if (system_bg == "") + { + system_bg = fallback_color; + } + + _system_background = system_bg; + } + + return _system_background; + } + } + + /* Current background - whatever the background object is or should be showing right now. + * This could be a simple color or a file name - the BackgroundLoader takes care of deciding + * how to deal with it, we just ensure whatever we're sending is valid. + */ + + private string _current_background; + public string? current_background { + get { return _current_background; } + + set { + if (value == null || value == "") + { + _current_background = system_background; + } else + { + _current_background = value; + } + + reload (); + } + + default = fallback_color; + } + public bool draw_grid { get; set; default = true; } public double alpha { get; private set; default = 1.0; } public Gdk.RGBA average_color { get { return current.average_color; } } @@ -426,8 +492,6 @@ resize_mode = Gtk.ResizeMode.QUEUE; draw_grid = UGSettings.get_boolean (UGSettings.KEY_DRAW_GRID); - set_logo (UGSettings.get_string (UGSettings.KEY_LOGO), UGSettings.get_string (UGSettings.KEY_BACKGROUND_LOGO)); - loaders = new HashTable<string?, BackgroundLoader> (str_hash, str_equal); show (); @@ -438,9 +502,9 @@ this.target_surface = target_surface; timer = new AnimateTimer (AnimateTimer.ease_in_out, 700); - timer.animate.connect (animate_cb); - notify["current-background"].connect (() => { reload (); }); + set_logo (UGSettings.get_string (UGSettings.KEY_LOGO), UGSettings.get_string (UGSettings.KEY_BACKGROUND_LOGO)); + timer.animate.connect (animate_cb); } public void set_logo (string version_logo, string background_logo) @@ -489,12 +553,17 @@ public override void size_allocate (Gtk.Allocation allocation) { + if (!get_realized ()) + { + return; + } + var resized = allocation.height != get_allocated_height () || allocation.width != get_allocated_width (); base.size_allocate (allocation); /* Regenerate backgrounds */ - if (timer != null && resized) + if (resized) { debug ("Regenerating backgrounds"); loaders.remove_all (); @@ -629,7 +698,7 @@ private BackgroundLoader load_background (string? filename) { if (filename == null) - filename = default_background; + filename = fallback_color; var b = loaders.lookup (filename); if (b == null) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/src/greeter-list.vala new/slick-greeter-1.0.6/src/greeter-list.vala --- old/slick-greeter-1.0.4/src/greeter-list.vala 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/src/greeter-list.vala 2017-05-30 15:59:53.000000000 +0200 @@ -623,6 +623,10 @@ focus_prompt (); entry_displayed_done (); mode = Mode.ENTRY; + +#if HAVE_GTK_3_20_0 + queue_allocate (); +#endif } protected void select_entry (PromptBox entry, double direction, bool do_scroll = true) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/src/prompt-box.vala new/slick-greeter-1.0.6/src/prompt-box.vala --- old/slick-greeter-1.0.4/src/prompt-box.vala 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/src/prompt-box.vala 2017-05-30 15:59:53.000000000 +0200 @@ -263,6 +263,28 @@ last_row = start_row; } +#if HAVE_GTK_3_20_0 + private int round_to_grid (int size) + { + var num_grids = size / grid_size; + var remainder = size % grid_size; + if (remainder > 0) + num_grids += 1; + num_grids = int.max (num_grids, 3); + return num_grids * grid_size; + } + + public override void get_preferred_height (out int min, out int nat) + { + base.get_preferred_height (out min, out nat); + min = round_to_grid (min + GreeterList.BORDER * 2) - GreeterList.BORDER * 2; + nat = round_to_grid (nat + GreeterList.BORDER * 2) - GreeterList.BORDER * 2; + + if (position <= -1 || position >= 1) + min = nat = grid_size; + } +#endif + public void set_zone (Gtk.Widget zone) { this.zone = zone; @@ -319,7 +341,23 @@ public void clear () { prompt_visibility = PromptVisibility.HIDDEN; - foreach_prompt_widget ((w) => { w.destroy (); }); + + /* Hold a ref while removing the prompt widgets - + * if we just do w.destroy() we get this warning: + * CRITICAL: pango_layout_get_cursor_pos: assertion 'index >= 0 && index <= layout->length' failed + * by GtkWidget's screen-changed signal being called on + * widget when we destroy it. + */ + foreach_prompt_widget ((w) => { +#if HAVE_GTK_3_20_0 + w.ref (); + w.get_parent().remove(w); + w.unref (); +#else + w.destroy (); +#endif + }); + reset_last_row (); has_errors = false; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/slick-greeter-1.0.4/src/user-list.vala new/slick-greeter-1.0.6/src/user-list.vala --- old/slick-greeter-1.0.4/src/user-list.vala 2017-05-23 15:33:36.000000000 +0200 +++ new/slick-greeter-1.0.6/src/user-list.vala 2017-05-30 15:59:53.000000000 +0200 @@ -601,7 +601,9 @@ change_background_timeout = Idle.add (change_background_timeout_cb); } else + { change_background_timeout_cb (); + } } protected static int user_list_compare_entry (PromptBox a, PromptBox b)