Hello community,

here is the log from the commit of package pix for openSUSE:Factory checked in 
at 2020-12-13 17:30:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/pix (Old)
 and      /work/SRC/openSUSE:Factory/.pix.new.2328 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "pix"

Sun Dec 13 17:30:04 2020 rev:21 rq:855381 version:2.6.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/pix/pix.changes  2020-09-29 19:03:46.077916677 
+0200
+++ /work/SRC/openSUSE:Factory/.pix.new.2328/pix.changes        2020-12-13 
17:30:33.416399272 +0100
@@ -1,0 +2,15 @@
+Mon Dec  7 19:46:12 UTC 2020 - andy great <[email protected]>
+
+- Update to version 2.6.0.
+  * Fix picture greyed out even if not selected
+  * Added backspace to list of hot keys for fullscreen mode
+  * Added line on how to remove image from selection
+  * Added Rating to filter list for ticket #104
+  * gth-browser.c: Improve handling of invalid uris.
+  * Use debhelper 10 to allow parallel (-j) make jobs.
+  * Implements #74. Allow for override of permanent delete message
+  * Add favorites:/// to the sidebar file browser.
+  * l10n: Update POT
+  * Fix pix crashes with some XCF files.
+
+-------------------------------------------------------------------

Old:
----
  pix-2.4.11.tar.gz

New:
----
  pix-2.6.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ pix.spec ++++++
--- /var/tmp/diff_new_pack.sxWL5u/_old  2020-12-13 17:30:34.112399978 +0100
+++ /var/tmp/diff_new_pack.sxWL5u/_new  2020-12-13 17:30:34.116399982 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           pix
-Version:        2.4.11
+Version:        2.6.0
 Release:        0
 Summary:        Image viewer and browser utility
 License:        GPL-2.0-or-later

++++++ pix-2.4.11.tar.gz -> pix-2.6.0.tar.gz ++++++
++++ 1871 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/configure.ac new/pix-2.6.0/configure.ac
--- old/pix-2.4.11/configure.ac 2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/configure.ac  2020-12-01 17:32:08.000000000 +0100
@@ -1,6 +1,6 @@
 m4_define([pix_major_version], [2])
-m4_define([pix_minor_version], [4])
-m4_define([pix_micro_version], [11])
+m4_define([pix_minor_version], [6])
+m4_define([pix_micro_version], [0])
 m4_define([pix_version],
           [pix_major_version.pix_minor_version.pix_micro_version])
 m4_define([pix_api_version],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/debian/changelog new/pix-2.6.0/debian/changelog
--- old/pix-2.4.11/debian/changelog     2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/debian/changelog      2020-12-01 17:32:08.000000000 +0100
@@ -1,3 +1,29 @@
+pix (2.6.0) ulyssa; urgency=medium
+
+  [ icarter09 ]
+  * Removed code causing issue73
+  * Added backspace to list of hot keys for fullscreen mode
+  * Added line on how to remove image from selection
+  * Added Rating to filter list for ticket #104
+
+  [ Michael Webster ]
+  * gth-browser.c: Improve handling of invalid uris.
+  * Use debhelper 10 to allow parallel (-j) make jobs.
+
+  [ icarter09 ]
+  * Implements #74. Allow for override of permanent delete message
+
+  [ Michael Webster ]
+  * Add favorites:/// to the sidebar file browser.
+
+  [ brkeh ]
+  * Fix issue 28 (#123)
+
+  [ Clement Lefebvre ]
+  * l10n: Update POT
+
+ -- Clement Lefebvre <[email protected]>  Tue, 01 Dec 2020 16:31:40 +0000
+
 pix (2.4.11) ulyana; urgency=medium
 
   * Fix app version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/debian/compat new/pix-2.6.0/debian/compat
--- old/pix-2.4.11/debian/compat        2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/debian/compat 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/debian/control new/pix-2.6.0/debian/control
--- old/pix-2.4.11/debian/control       2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/debian/control        2020-12-01 17:32:08.000000000 +0100
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Linux Mint <[email protected]>
 Build-Depends:
- debhelper (>= 9)
+ debhelper-compat(=10)
  , dh-autoreconf
  , intltool
  , libexiv2-dev (>= 0.21)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/extensions/cairo_io/cairo-image-surface-xcf.c 
new/pix-2.6.0/extensions/cairo_io/cairo-image-surface-xcf.c
--- old/pix-2.4.11/extensions/cairo_io/cairo-image-surface-xcf.c        
2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/extensions/cairo_io/cairo-image-surface-xcf.c 2020-12-01 
17:32:08.000000000 +0100
@@ -900,8 +900,10 @@
        if (*error != NULL)
                goto read_error;
 
-       if (is_gimp_channel)
-               g_assert (in_bpp == 1);
+       if (is_gimp_channel && in_bpp != 1){
+               printf("Error: in_bpp = %d and is_gimp_channel is true. 
Expected in_bpp = 1 when is_gimp_channel is true.\n", in_bpp);
+               goto read_error;
+       }
 
        if (! is_gimp_channel)
                layer->bpp = in_bpp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/extensions/selections/callbacks.c 
new/pix-2.6.0/extensions/selections/callbacks.c
--- old/pix-2.4.11/extensions/selections/callbacks.c    2020-06-24 
13:43:09.000000000 +0200
+++ new/pix-2.6.0/extensions/selections/callbacks.c     2020-12-01 
17:32:08.000000000 +0100
@@ -282,7 +282,7 @@
        gth_embedded_dialog_set_gicon (GTH_EMBEDDED_DIALOG (extra_widget), 
g_file_info_get_icon (location_data->info), GTK_ICON_SIZE_DIALOG);
        gth_embedded_dialog_set_primary_text (GTH_EMBEDDED_DIALOG 
(extra_widget), g_file_info_get_display_name (location_data->info));
        if (n_selection > 0)
-               msg = g_strdup_printf (_("Use Alt-%d to add files to this 
selection, Ctrl-%d to view this selection."), n_selection, n_selection);
+               msg = g_strdup_printf (_("Use Alt-%d to add files to this 
selection, Ctrl-%d to view this selection, Alt+Shift+%d to remove files from 
this selection"), n_selection, n_selection, n_selection);
        else
                msg = NULL;
        gth_embedded_dialog_set_secondary_text (GTH_EMBEDDED_DIALOG 
(extra_widget), msg);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-browser.c new/pix-2.6.0/pix/gth-browser.c
--- old/pix-2.4.11/pix/gth-browser.c    2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/pix/gth-browser.c     2020-12-01 17:32:08.000000000 +0100
@@ -5362,6 +5362,7 @@
                case GDK_KEY_Up:
                case GDK_KEY_Left:
                case GDK_KEY_Page_Up:
+        case GDK_KEY_BackSpace:
                        gth_browser_show_prev_image (browser, FALSE, FALSE);
                        return TRUE;
 
@@ -6138,6 +6139,18 @@
        g_free (data);
 }
 
+static void
+go_home_on_error (GthBrowser *browser)
+{
+        GFile *home;
+
+        home = g_file_new_for_uri (get_home_uri ());
+
+        gth_window_set_current_page (GTH_WINDOW (browser), 
GTH_BROWSER_PAGE_BROWSER);
+        _gth_browser_load (browser, home, NULL, NULL, 0, GTH_ACTION_GO_TO, 
TRUE);
+
+        g_object_unref (home);
+}
 
 static void
 load_file_attributes_ready_cb (GObject  *object,
@@ -6189,6 +6202,8 @@
        else {
                char *title;
 
+        go_home_on_error (browser);
+
                title =  file_format (_("Could not load the position \"%s\""), 
data->location_data->file);
                _gth_browser_show_error (browser, title, error);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-file-source-vfs.c new/pix-2.6.0/pix/gth-file-source-vfs.c
--- old/pix-2.4.11/pix/gth-file-source-vfs.c    2020-06-24 13:43:09.000000000 
+0200
+++ new/pix-2.6.0/pix/gth-file-source-vfs.c     2020-12-01 17:32:08.000000000 
+0100
@@ -115,10 +115,20 @@
        GList       *list;
        GList       *mounts;
        GList       *scan;
+    const gchar * const *schemes;
 
        list = NULL;
 
-       list = gth_file_source_vfs_add_uri (list, file_source, get_home_uri (), 
_("Home Folder"));
+    // Put favorites first - if the home folder is first, it automatically 
expands the first
+    // level of its tree off the window.
+    GVfs *vfs = g_vfs_get_default ();
+    schemes = g_vfs_get_supported_uri_schemes (vfs);
+    if (g_strv_contains (schemes, "favorites"))
+    {
+        list = gth_file_source_vfs_add_uri (list, file_source, 
"favorites:///", _("Favorites"));
+    }
+
+    list = gth_file_source_vfs_add_uri (list, file_source, get_home_uri (), 
_("Home Folder"));
        list = gth_file_source_vfs_add_special_dir (list, file_source, 
G_USER_DIRECTORY_PICTURES);
        list = gth_file_source_vfs_add_special_dir (list, file_source, 
G_USER_DIRECTORY_VIDEOS);
        list = gth_file_source_vfs_add_special_dir (list, file_source, 
G_USER_DIRECTORY_DESKTOP);
@@ -834,35 +844,44 @@
        int        file_count;
        char      *prompt;
        GtkWidget *d;
+    GSettings *settings;
+    settings = g_settings_new (PIX_MESSAGES_SCHEMA);
 
-       file_list = _g_object_list_ref (file_list);
-       file_count = g_list_length (file_list);
-       if (file_count == 1) {
-               GthFileData *file_data = file_list->data;
-               prompt = g_strdup_printf (_("Are you sure you want to 
permanently delete \"%s\"?"), g_file_info_get_display_name (file_data->info));
-       }
-       else
-               prompt = g_strdup_printf (ngettext("Are you sure you want to 
permanently delete "
-                                                  "the %'d selected file?",
-                                                  "Are you sure you want to 
permanently delete "
-                                                  "the %'d selected files?", 
file_count),
-                                         file_count);
-
-       d = _gtk_message_dialog_new (window,
-                                    GTK_DIALOG_MODAL,
-                                    GTK_STOCK_DIALOG_QUESTION,
-                                    prompt,
-                                    _("If you delete a file, it will be 
permanently lost."),
-                                    GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                    GTK_STOCK_DELETE, GTK_RESPONSE_YES,
-                                    NULL);
-
-       gtk_dialog_set_default_response (d, GTK_RESPONSE_YES);
+    if (g_settings_get_boolean (settings, PREF_MSG_CONFIRM_DELETION)){
 
-       g_signal_connect (d, "response", G_CALLBACK 
(delete_permanently_response_cb), file_list);
-       gtk_widget_show (d);
+        file_list = _g_object_list_ref (file_list);
+        file_count = g_list_length (file_list);
+        if (file_count == 1) {
+            GthFileData *file_data = file_list->data;
+            prompt = g_strdup_printf (_("Are you sure you want to permanently 
delete \"%s\"?"), g_file_info_get_display_name (file_data->info));
+        }
+        else
+            prompt = g_strdup_printf (ngettext("Are you sure you want to 
permanently delete "
+                               "the %'d selected file?",
+                               "Are you sure you want to permanently delete "
+                               "the %'d selected files?", file_count),
+                          file_count);
+
+        d = _gtk_message_dialog_new (window,
+                         GTK_DIALOG_MODAL,
+                         GTK_STOCK_DIALOG_QUESTION,
+                         prompt,
+                         _("If you delete a file, it will be permanently 
lost."),
+                         GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                         GTK_STOCK_DELETE, GTK_RESPONSE_YES,
+                         NULL);
+
+        gtk_dialog_set_default_response (d, GTK_RESPONSE_YES);
+
+        g_signal_connect (d, "response", G_CALLBACK 
(delete_permanently_response_cb), file_list);
+        gtk_widget_show (d);
+
+        g_free (prompt);
+    }
+    else 
+       delete_file_permanently (window, file_list);
 
-       g_free (prompt);
+    g_object_unref (settings);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-grid-view.c new/pix-2.6.0/pix/gth-grid-view.c
--- old/pix-2.4.11/pix/gth-grid-view.c  2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/pix/gth-grid-view.c   2020-12-01 17:32:08.000000000 +0100
@@ -2692,7 +2692,6 @@
                self->priv->last_selected_item = item;
        }
 
-       gth_file_view_set_cursor (GTH_FILE_VIEW (self), pos);
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-main-default-tests.c 
new/pix-2.6.0/pix/gth-main-default-tests.c
--- old/pix-2.4.11/pix/gth-main-default-tests.c 2020-06-24 13:43:09.000000000 
+0200
+++ new/pix-2.6.0/pix/gth-main-default-tests.c  2020-12-01 17:32:08.000000000 
+0100
@@ -213,7 +213,7 @@
                                   GDestroyNotify *data_destroy_func)
 {
        GthMetadata *metadata;
-
+    
        metadata = (GthMetadata *) g_file_info_get_attribute_object 
(file->info, "general::description");
        if (metadata != NULL)
                *data = gth_metadata_get_formatted (metadata);
@@ -223,6 +223,25 @@
        return 0;
 }
 
+static int
+get_embedded_rating_for_test (GthTest        *test,
+                                  GthFileData    *file,
+                                  gconstpointer  *data,
+                                  GDestroyNotify *data_destroy_func)
+{
+       GthMetadata *metadata;
+    
+       metadata = (GthMetadata *) g_file_info_get_attribute_object 
(file->info, "general::rating");
+    if (metadata != NULL) {
+               int rating;
+
+               sscanf (gth_metadata_get_raw (metadata), "%d", &rating);
+               return rating;
+       }
+
+       return 0;
+}
+
 
 void
 gth_main_register_default_tests (void)
@@ -323,4 +342,13 @@
                                  "attributes", "general::tags",
                                  "display-name", _("Tag (embedded)"),
                                  NULL);
+       gth_main_register_object (GTH_TYPE_TEST,
+                                 "general::rating",
+                                 GTH_TYPE_TEST_SIMPLE,
+                                 "attributes", "general::rating",
+                                 "display-name", _("Rating"),
+                                 "data-type", GTH_TEST_DATA_TYPE_INT,
+                                 "get-data-func", get_embedded_rating_for_test,
+                  "max-int", 5,
+                                 NULL);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-test-simple.c new/pix-2.6.0/pix/gth-test-simple.c
--- old/pix-2.4.11/pix/gth-test-simple.c        2020-06-24 13:43:09.000000000 
+0200
+++ new/pix-2.6.0/pix/gth-test-simple.c 2020-12-01 17:32:08.000000000 +0100
@@ -1,7 +1,7 @@
 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 
 /*
- *  Pix
+ *  GThumb
  *
  *  Copyright (C) 2008 Free Software Foundation, Inc.
  *
@@ -19,6 +19,7 @@
  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+#include <math.h>
 #include <config.h>
 #include <stdlib.h>
 #include <string.h>
@@ -55,7 +56,9 @@
 GthOpData int_op_data[] = {
        { N_("is lower than"), GTH_TEST_OP_LOWER, FALSE },
        { N_("is greater than"), GTH_TEST_OP_GREATER, FALSE },
-       { N_("is equal to"), GTH_TEST_OP_EQUAL, FALSE }
+       { N_("is equal to"), GTH_TEST_OP_EQUAL, FALSE },
+       { N_("is greater than or equal to"), GTH_TEST_OP_LOWER, TRUE },
+       { N_("is lower than or equal to"), GTH_TEST_OP_GREATER, TRUE }
 };
 
 GthOpData date_op_data[] = {
@@ -79,28 +82,35 @@
 
 
 enum {
-        PROP_0,
-        PROP_DATA_TYPE,
-        PROP_DATA_AS_STRING,
-        PROP_DATA_AS_INT,
-        PROP_DATA_AS_DATE,
-        PROP_GET_DATA,
-        PROP_OP,
-        PROP_NEGATIVE
+       PROP_0,
+       PROP_DATA_TYPE,
+       PROP_DATA_AS_STRING,
+       PROP_DATA_AS_INT,
+       PROP_DATA_AS_SIZE,
+       PROP_DATA_AS_DOUBLE,
+       PROP_DATA_AS_DATE,
+       PROP_GET_DATA,
+       PROP_OP,
+       PROP_NEGATIVE,
+       PROP_MAX_INT,
+       PROP_MAX_DOUBLE
 };
 
 
-struct _GthTestSimplePrivate
-{
+struct _GthTestSimplePrivate {
        GthTestDataType  data_type;
        union {
-               char   *s;
-               gint64  i;
-               GDate  *date;
+               char    *s;
+               int      i;
+               guint64  size;
+               GDate   *date;
+               gdouble  f;
        } data;
        GthTestGetData   get_data;
        GthTestOp        op;
        gboolean         negative;
+       gint64           max_int;
+       double           max_double;
        GPatternSpec    *pattern;
        gboolean         has_focus;
        GtkWidget       *text_entry;
@@ -109,24 +119,26 @@
        GtkWidget       *date_op_combo_box;
        GtkWidget       *size_combo_box;
        GtkWidget       *time_selector;
+       GtkWidget       *spinbutton;
 };
 
 
-static DomDomizableInterface* dom_domizable_parent_iface = NULL;
+static DomDomizableInterface *dom_domizable_parent_iface = NULL;
 static GthDuplicableInterface *gth_duplicable_parent_iface = NULL;
 
 
-static void gth_test_simple_dom_domizable_interface_init 
(DomDomizableInterface * iface);
+static void gth_test_simple_dom_domizable_interface_init 
(DomDomizableInterface *iface);
 static void gth_test_simple_gth_duplicable_interface_init 
(GthDuplicableInterface *iface);
 
 
 G_DEFINE_TYPE_WITH_CODE (GthTestSimple,
                         gth_test_simple,
                         GTH_TYPE_TEST,
+                        G_ADD_PRIVATE (GthTestSimple)
                         G_IMPLEMENT_INTERFACE (DOM_TYPE_DOMIZABLE,
-                                               
gth_test_simple_dom_domizable_interface_init)
+                                               
gth_test_simple_dom_domizable_interface_init)
                         G_IMPLEMENT_INTERFACE (GTH_TYPE_DUPLICABLE,
-                                               
gth_test_simple_gth_duplicable_interface_init))
+                                               
gth_test_simple_gth_duplicable_interface_init))
 
 
 static void
@@ -162,25 +174,14 @@
 
        test = GTH_TEST_SIMPLE (object);
 
-       if (test->priv != NULL) {
-               _gth_test_simple_free_data (test);
-               if (test->priv->pattern != NULL)
-                       g_pattern_spec_free (test->priv->pattern);
-               g_free (test->priv);
-               test->priv = NULL;
-       }
+       _gth_test_simple_free_data (test);
+       if (test->priv->pattern != NULL)
+               g_pattern_spec_free (test->priv->pattern);
 
        G_OBJECT_CLASS (gth_test_simple_parent_class)->finalize (object);
 }
 
 
-static GtkWidget *
-create_control_for_integer (GthTestSimple *test)
-{
-       return NULL;
-}
-
-
 static gboolean
 text_entry_focus_in_event_cb (GtkEntry      *entry,
                              GdkEventFocus *event,
@@ -228,6 +229,129 @@
 }
 
 
+static void
+spinbutton_changed_cb (GtkSpinButton *spinbutton,
+                       GthTestSimple *test)
+{
+       gth_test_update_from_control (GTH_TEST (test), NULL);
+       gth_test_changed (GTH_TEST (test));
+}
+
+
+static void
+focus_event_cb (GtkWidget     *widget,
+                GdkEvent      *event,
+                GthTestSimple *test)
+{
+       gth_test_update_from_control (GTH_TEST (test), NULL);
+       gth_test_changed (GTH_TEST (test));
+}
+
+
+static GtkWidget *
+create_control_for_integer (GthTestSimple *test)
+{
+       GtkWidget *control;
+       int        i, op_idx;
+
+       control = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+
+       /* text operation combo box */
+
+       test->priv->text_op_combo_box = gtk_combo_box_text_new ();
+       gtk_widget_show (test->priv->text_op_combo_box);
+
+       op_idx = 0;
+       for (i = 0; i < G_N_ELEMENTS (int_op_data); i++) {
+               gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT 
(test->priv->text_op_combo_box),
+                                               _(int_op_data[i].name));
+               if ((int_op_data[i].op == test->priv->op) && 
(int_op_data[i].negative == test->priv->negative))
+                       op_idx = i;
+       }
+       gtk_combo_box_set_active (GTK_COMBO_BOX 
(test->priv->text_op_combo_box), op_idx);
+
+       g_signal_connect (G_OBJECT (test->priv->text_op_combo_box),
+                         "changed",
+                         G_CALLBACK (size_op_combo_box_changed_cb),
+                         test);
+
+       /* spin button */
+
+       test->priv->spinbutton = gtk_spin_button_new_with_range (0, 
test->priv->max_int, 1);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON (test->priv->spinbutton), 0);
+       gtk_widget_show (test->priv->spinbutton);
+
+       g_signal_connect (G_OBJECT (test->priv->spinbutton),
+                         "value-changed",
+                         G_CALLBACK (spinbutton_changed_cb),
+                         test);
+       g_signal_connect (G_OBJECT (test->priv->spinbutton),
+                         "activate",
+                         G_CALLBACK (size_text_entry_activate_cb),
+                         test);
+       g_signal_connect (G_OBJECT (test->priv->spinbutton),
+                         "focus-in-event",
+                         G_CALLBACK (focus_event_cb),
+                         test);
+       g_signal_connect (G_OBJECT (test->priv->spinbutton),
+                         "focus-out-event",
+                         G_CALLBACK (focus_event_cb),
+                         test);
+
+       /**/
+
+       gtk_box_pack_start (GTK_BOX (control), test->priv->text_op_combo_box, 
FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX (control), test->priv->spinbutton, FALSE, 
FALSE, 0);
+
+       return control;
+}
+
+static GtkWidget *
+create_control_for_double (GthTestSimple *test)
+{
+       GtkWidget *control;
+       int        i, op_idx;
+
+       control = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
+
+       /* text operation combo box */
+
+       test->priv->text_op_combo_box = gtk_combo_box_text_new ();
+       gtk_widget_show (test->priv->text_op_combo_box);
+
+       op_idx = 0;
+       for (i = 0; i < G_N_ELEMENTS (int_op_data); i++) {
+               gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT 
(test->priv->text_op_combo_box),
+                                               _(int_op_data[i].name));
+               if ((int_op_data[i].op == test->priv->op) && 
(int_op_data[i].negative == test->priv->negative))
+                       op_idx = i;
+       }
+       gtk_combo_box_set_active (GTK_COMBO_BOX 
(test->priv->text_op_combo_box), op_idx);
+
+       g_signal_connect (G_OBJECT (test->priv->text_op_combo_box),
+                         "changed",
+                         G_CALLBACK (size_op_combo_box_changed_cb),
+                         test);
+
+       /* spin button */
+
+       test->priv->spinbutton = gtk_spin_button_new_with_range (0, 
test->priv->max_double, 0.01);
+       gtk_spin_button_set_value (GTK_SPIN_BUTTON (test->priv->spinbutton), 
test->priv->data.f);
+       gtk_widget_show (test->priv->spinbutton);
+
+       g_signal_connect (G_OBJECT (test->priv->spinbutton),
+                         "value-changed",
+                         G_CALLBACK (spinbutton_changed_cb),
+                         test);
+
+       /**/
+
+       gtk_box_pack_start (GTK_BOX (control), test->priv->text_op_combo_box, 
FALSE, FALSE, 0);
+       gtk_box_pack_start (GTK_BOX (control), test->priv->spinbutton, FALSE, 
FALSE, 0);
+
+       return control;
+}
+
 static GtkWidget *
 create_control_for_size (GthTestSimple *test)
 {
@@ -284,11 +408,11 @@
        for (i = 0; i < G_N_ELEMENTS (size_data); i++) {
                gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT 
(test->priv->size_combo_box),
                                                _(size_data[i].name));
-               if (! size_set && ((i == G_N_ELEMENTS (size_data) - 1) || 
(test->priv->data.i < size_data[i + 1].size))) {
+               if (! size_set && ((i == G_N_ELEMENTS (size_data) - 1) || 
(test->priv->data.size < size_data[i + 1].size))) {
                        char *value;
 
                        size_idx = i;
-                       value = g_strdup_printf ("%.2f", (double) 
test->priv->data.i / size_data[i].size);
+                       value = g_strdup_printf ("%.2f", (double) 
test->priv->data.size / size_data[i].size);
                        gtk_entry_set_text (GTK_ENTRY (test->priv->text_entry), 
value);
                        g_free (value);
                        size_set = TRUE;
@@ -487,6 +611,10 @@
        case GTH_TEST_DATA_TYPE_DATE:
                control = create_control_for_date (GTH_TEST_SIMPLE (test));
                break;
+
+       case GTH_TEST_DATA_TYPE_DOUBLE:
+               control = create_control_for_double (GTH_TEST_SIMPLE (test));
+               break;
        }
 
        return control;
@@ -577,6 +705,59 @@
 
 
 static gboolean
+test_size (GthTestSimple *test,
+          guint64        value)
+{
+       gboolean result = FALSE;
+
+       switch (test->priv->op) {
+       case GTH_TEST_OP_EQUAL:
+               result = (value == test->priv->data.size);
+               break;
+
+       case GTH_TEST_OP_LOWER:
+               result = (value < test->priv->data.size);
+               break;
+
+       case GTH_TEST_OP_GREATER:
+               result = (value > test->priv->data.size);
+               break;
+
+       default:
+               break;
+       }
+
+       return result;
+}
+
+
+static gboolean
+test_double (GthTestSimple *test,
+             gdouble        value)
+{
+       gboolean result = FALSE;
+
+       switch (test->priv->op) {
+       case GTH_TEST_OP_EQUAL:
+               result = FLOAT_EQUAL (value, test->priv->data.f);
+               break;
+
+       case GTH_TEST_OP_LOWER:
+               result = (value < test->priv->data.f);
+               break;
+
+       case GTH_TEST_OP_GREATER:
+               result = (value > test->priv->data.f);
+               break;
+
+       default:
+               break;
+       }
+       return result;
+}
+
+
+static gboolean
 test_date (GthTestSimple *test,
            GDate         *date)
 {
@@ -629,6 +810,30 @@
 }
 
 
+static guint64
+_gth_test_simple_get_size (GthTestSimple *test,
+                          GthFileData   *file)
+{
+       guint64 value;
+
+       test->priv->get_data (GTH_TEST (test), file, (gpointer)&value, NULL);
+
+       return value;
+}
+
+
+static gdouble
+_gth_test_simple_get_double (GthTestSimple *test,
+                            GthFileData   *file)
+{
+       gdouble value;
+
+       test->priv->get_data (GTH_TEST (test), file, (gpointer)&value, NULL);
+
+       return value;
+}
+
+
 static GthMatch
 gth_test_simple_real_match (GthTest   *test,
                            GthFileData   *file)
@@ -646,10 +851,17 @@
                break;
 
        case GTH_TEST_DATA_TYPE_INT:
-       case GTH_TEST_DATA_TYPE_SIZE:
                result = test_integer (test_simple, _gth_test_simple_get_int 
(test_simple, file));
                break;
 
+       case GTH_TEST_DATA_TYPE_SIZE:
+               result = test_size (test_simple, _gth_test_simple_get_size 
(test_simple, file));
+               break;
+
+       case GTH_TEST_DATA_TYPE_DOUBLE:
+               result = test_double (test_simple, _gth_test_simple_get_double 
(test_simple, file));
+               break;
+
        case GTH_TEST_DATA_TYPE_STRING:
                data = _gth_test_simple_get_pointer (test_simple, file, 
&data_destroy_func);
                result = test_string (test_simple, data);
@@ -665,7 +877,7 @@
                break;
        }
 
-        if (test_simple->priv->negative)
+       if (test_simple->priv->negative)
                result = ! result;
 
        return result ? GTH_MATCH_YES : GTH_MATCH_NO;
@@ -696,12 +908,33 @@
                break;
 
        case GTH_TEST_DATA_TYPE_INT:
+               dom_element_set_attribute (element, "op", 
_g_enum_type_get_value (GTH_TYPE_TEST_OP, self->priv->op)->value_nick);
+               if (self->priv->op != GTH_TEST_OP_NONE) {
+                       if (self->priv->negative)
+                               dom_element_set_attribute (element, "negative", 
self->priv->negative ? "true" : "false");
+                       value = g_strdup_printf ("%d", self->priv->data.i);
+                       dom_element_set_attribute (element, "value", value);
+                       g_free (value);
+               }
+               break;
+
        case GTH_TEST_DATA_TYPE_SIZE:
                dom_element_set_attribute (element, "op", 
_g_enum_type_get_value (GTH_TYPE_TEST_OP, self->priv->op)->value_nick);
                if (self->priv->op != GTH_TEST_OP_NONE) {
                        if (self->priv->negative)
                                dom_element_set_attribute (element, "negative", 
self->priv->negative ? "true" : "false");
-                       value = g_strdup_printf ("%" G_GINT64_FORMAT, 
self->priv->data.i);
+                       value = g_strdup_printf ("%" G_GUINT64_FORMAT, 
self->priv->data.size);
+                       dom_element_set_attribute (element, "value", value);
+                       g_free (value);
+               }
+               break;
+
+       case GTH_TEST_DATA_TYPE_DOUBLE:
+               dom_element_set_attribute (element, "op", 
_g_enum_type_get_value (GTH_TYPE_TEST_OP, self->priv->op)->value_nick);
+               if (self->priv->op != GTH_TEST_OP_NONE) {
+                       if (self->priv->negative)
+                               dom_element_set_attribute (element, "negative", 
self->priv->negative ? "true" : "false");
+                       value = g_strdup_printf ("%f", self->priv->data.f);
                        dom_element_set_attribute (element, "value", value);
                        g_free (value);
                }
@@ -770,6 +1003,10 @@
                gth_test_simple_set_data_as_int (self, atol (value));
                break;
 
+       case GTH_TEST_DATA_TYPE_DOUBLE:
+               gth_test_simple_set_data_as_double (self, atof (value));
+               break;
+
        case GTH_TEST_DATA_TYPE_SIZE:
                gth_test_simple_set_data_as_size (self, atol (value));
                break;
@@ -805,13 +1042,22 @@
        op_data = int_op_data[gtk_combo_box_get_active (GTK_COMBO_BOX 
(self->priv->text_op_combo_box))];
        self->priv->op = op_data.op;
        self->priv->negative = op_data.negative;
-       gth_test_simple_set_data_as_int (self, atol (gtk_entry_get_text 
(GTK_ENTRY (self->priv->text_entry))));
+       gth_test_simple_set_data_as_int (self, gtk_spin_button_get_value_as_int 
 (GTK_SPIN_BUTTON (self->priv->spinbutton)));
 
-       if (self->priv->data.i == 0) {
-               if (error != NULL)
-                       *error = g_error_new (GTH_TEST_ERROR, 0, _("The test 
definition is incomplete"));
-               return FALSE;
-       }
+       return TRUE;
+}
+
+
+static gboolean
+update_from_control_for_double (GthTestSimple  *self,
+                               GError        **error)
+{
+       GthOpData op_data;
+
+       op_data = int_op_data[gtk_combo_box_get_active (GTK_COMBO_BOX 
(self->priv->text_op_combo_box))];
+       self->priv->op = op_data.op;
+       self->priv->negative = op_data.negative;
+       gth_test_simple_set_data_as_double (self, gtk_spin_button_get_value  
(GTK_SPIN_BUTTON (self->priv->spinbutton)));
 
        return TRUE;
 }
@@ -833,7 +1079,7 @@
        size = value * size_data[gtk_combo_box_get_active (GTK_COMBO_BOX 
(self->priv->size_combo_box))].size;
        gth_test_simple_set_data_as_size (self, size);
 
-       if ((self->priv->data.i == 0) && (self->priv->op == GTH_TEST_OP_LOWER)) 
{
+       if ((self->priv->data.size == 0) && (self->priv->op == 
GTH_TEST_OP_LOWER)) {
                if (error != NULL)
                        *error = g_error_new (GTH_TEST_ERROR, 0, _("The test 
definition is incomplete"));
                return FALSE;
@@ -904,6 +1150,10 @@
                retval = update_from_control_for_integer (self, error);
                break;
 
+       case GTH_TEST_DATA_TYPE_DOUBLE:
+               retval = update_from_control_for_double (self, error);
+               break;
+
        case GTH_TEST_DATA_TYPE_SIZE:
                retval = update_from_control_for_size (self, error);
                break;
@@ -926,6 +1176,34 @@
 }
 
 
+static void
+gth_test_simple_real_focus_control (GthTest *base)
+{
+       GthTestSimple *self;
+
+       self = GTH_TEST_SIMPLE (base);
+
+       switch (self->priv->data_type) {
+       case GTH_TEST_DATA_TYPE_INT:
+       case GTH_TEST_DATA_TYPE_DOUBLE:
+               gtk_widget_grab_focus (self->priv->spinbutton);
+               break;
+
+       case GTH_TEST_DATA_TYPE_STRING:
+       case GTH_TEST_DATA_TYPE_SIZE:
+               gtk_widget_grab_focus (self->priv->text_entry);
+               break;
+
+       case GTH_TEST_DATA_TYPE_DATE:
+               gth_time_selector_focus (GTH_TIME_SELECTOR 
(self->priv->time_selector));
+               break;
+
+       default:
+               break;
+       }
+}
+
+
 static GObject *
 gth_test_simple_real_duplicate (GthDuplicable *duplicable)
 {
@@ -947,8 +1225,12 @@
                gth_test_simple_set_data_as_int (new_test, test->priv->data.i);
                break;
 
+       case GTH_TEST_DATA_TYPE_DOUBLE:
+               gth_test_simple_set_data_as_double (new_test, 
test->priv->data.f);
+               break;
+
        case GTH_TEST_DATA_TYPE_SIZE:
-               gth_test_simple_set_data_as_size (new_test, test->priv->data.i);
+               gth_test_simple_set_data_as_size (new_test, 
test->priv->data.size);
                break;
 
        case GTH_TEST_DATA_TYPE_STRING:
@@ -963,6 +1245,8 @@
        new_test->priv->get_data = test->priv->get_data;
        new_test->priv->op = test->priv->op;
        new_test->priv->negative = test->priv->negative;
+       new_test->priv->max_int = test->priv->max_int;
+       new_test->priv->max_double = test->priv->max_double;
 
        return (GObject *) new_test;
 }
@@ -993,6 +1277,16 @@
                test->priv->data.i = g_value_get_int (value);
                break;
 
+       case PROP_DATA_AS_SIZE:
+               _gth_test_simple_free_data (test);
+               test->priv->data.size = g_value_get_uint64 (value);
+               break;
+
+       case PROP_DATA_AS_DOUBLE:
+               _gth_test_simple_free_data (test);
+               test->priv->data.f = g_value_get_double (value);
+               break;
+
        case PROP_DATA_AS_DATE:
                _gth_test_simple_free_data (test);
                test->priv->data.date = g_value_dup_boxed (value);
@@ -1010,6 +1304,14 @@
                test->priv->negative = g_value_get_boolean (value);
                break;
 
+       case PROP_MAX_INT:
+               test->priv->max_int = g_value_get_int (value);
+               break;
+
+       case PROP_MAX_DOUBLE:
+               test->priv->max_double = g_value_get_double (value);
+               break;
+
        default:
                break;
        }
@@ -1039,6 +1341,14 @@
                g_value_set_int (value, test->priv->data.i);
                break;
 
+       case PROP_DATA_AS_SIZE:
+               g_value_set_uint64 (value, test->priv->data.size);
+               break;
+
+       case PROP_DATA_AS_DOUBLE:
+               g_value_set_double (value, test->priv->data.f);
+               break;
+
        case PROP_DATA_AS_DATE:
                g_value_set_boxed (value, test->priv->data.date);
                break;
@@ -1055,6 +1365,14 @@
                g_value_set_boolean (value, test->priv->negative);
                break;
 
+       case PROP_MAX_INT:
+               g_value_set_int (value, test->priv->max_int);
+               break;
+
+       case PROP_MAX_DOUBLE:
+               g_value_set_double (value, test->priv->max_double);
+               break;
+
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
                break;
@@ -1076,6 +1394,7 @@
        test_class = (GthTestClass *) class;
        test_class->create_control = gth_test_simple_real_create_control;
        test_class->update_from_control = 
gth_test_simple_real_update_from_control;
+       test_class->focus_control = gth_test_simple_real_focus_control;
        test_class->match = gth_test_simple_real_match;
 
        /* properties */
@@ -1105,6 +1424,24 @@
                                                            0,
                                                            G_PARAM_READWRITE));
        g_object_class_install_property (object_class,
+                                        PROP_DATA_AS_SIZE,
+                                        g_param_spec_uint64 ("data-as-size",
+                                                              "Data as size",
+                                                             "The data value 
as an unsigned long integer",
+                                                             0,
+                                                             G_MAXUINT64,
+                                                             0,
+                                                             
G_PARAM_READWRITE));
+       g_object_class_install_property (object_class,
+                                        PROP_DATA_AS_DOUBLE,
+                                        g_param_spec_double ("data-as-double",
+                                                              "Data as double",
+                                                             "The data value 
as a double precision real number",
+                                                             G_MINDOUBLE,
+                                                             G_MAXDOUBLE,
+                                                             1.0,
+                                                             
G_PARAM_READWRITE));
+       g_object_class_install_property (object_class,
                                         PROP_DATA_AS_DATE,
                                         g_param_spec_boxed ("data-as-date",
                                                              "Data as date",
@@ -1132,6 +1469,24 @@
                                                                "Whether to 
negate the test result",
                                                                FALSE,
                                                                
G_PARAM_READWRITE));
+       g_object_class_install_property (object_class,
+                                        PROP_MAX_INT,
+                                        g_param_spec_int ("max-int",
+                                                           "Max integer",
+                                                           "Max value for 
integers",
+                                                           G_MININT,
+                                                           G_MAXINT,
+                                                           0,
+                                                           G_PARAM_READWRITE));
+       g_object_class_install_property (object_class,
+                                        PROP_MAX_DOUBLE,
+                                        g_param_spec_int ("max-double",
+                                                           "Max double",
+                                                           "Max value for 
doubles",
+                                                           G_MININT,
+                                                           G_MAXINT,
+                                                           0.0,
+                                                           G_PARAM_READWRITE));
 }
 
 
@@ -1155,7 +1510,22 @@
 static void
 gth_test_simple_init (GthTestSimple *test)
 {
-       test->priv = g_new0 (GthTestSimplePrivate, 1);
+       test->priv = gth_test_simple_get_instance_private (test);
+       test->priv->data_type = GTH_TEST_DATA_TYPE_NONE;
+       test->priv->get_data = NULL;
+       test->priv->op = GTH_TEST_OP_NONE;
+       test->priv->negative = FALSE;
+       test->priv->max_int = 0;
+       test->priv->max_double = 0;
+       test->priv->pattern = NULL;
+       test->priv->has_focus = FALSE;
+       test->priv->text_entry = NULL;
+       test->priv->text_op_combo_box = NULL;
+       test->priv->size_op_combo_box = NULL;
+       test->priv->date_op_combo_box = NULL;
+       test->priv->size_combo_box = NULL;
+       test->priv->time_selector = NULL;
+       test->priv->spinbutton = NULL;
 }
 
 
@@ -1171,7 +1541,7 @@
 
 void
 gth_test_simple_set_data_as_int (GthTestSimple *test,
-                                guint64        i)
+                                guint64         i)
 {
        _gth_test_simple_free_data (test);
        test->priv->data_type = GTH_TEST_DATA_TYPE_INT;
@@ -1180,12 +1550,22 @@
 
 
 void
+gth_test_simple_set_data_as_double (GthTestSimple *test,
+                                   gdouble        f)
+{
+       _gth_test_simple_free_data (test);
+       test->priv->data_type = GTH_TEST_DATA_TYPE_DOUBLE;
+       test->priv->data.f = f;
+}
+
+
+void
 gth_test_simple_set_data_as_size (GthTestSimple *test,
                                  guint64        i)
 {
        _gth_test_simple_free_data (test);
        test->priv->data_type = GTH_TEST_DATA_TYPE_SIZE;
-       test->priv->data.i = i;
+       test->priv->data.size = i;
 }
 
 
@@ -1201,3 +1581,4 @@
        else
                g_date_clear (test->priv->data.date, 1);
 }
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-test-simple.h new/pix-2.6.0/pix/gth-test-simple.h
--- old/pix-2.4.11/pix/gth-test-simple.h        2020-06-24 13:43:09.000000000 
+0200
+++ new/pix-2.6.0/pix/gth-test-simple.h 2020-12-01 17:32:08.000000000 +0100
@@ -40,7 +40,7 @@
 typedef struct _GthTestSimplePrivate  GthTestSimplePrivate;
 typedef struct _GthTestSimpleClass    GthTestSimpleClass;
 
-typedef gint64 (*GthTestGetData) (GthTest        *test,
+typedef int (*GthTestGetData) (GthTest        *test,
                                  GthFileData    *file,
                                  gpointer       *data,
                                  GDestroyNotify *data_destroy_func);
@@ -50,6 +50,7 @@
        GTH_TEST_DATA_TYPE_INT,
        GTH_TEST_DATA_TYPE_SIZE,
        GTH_TEST_DATA_TYPE_STRING,
+    GTH_TEST_DATA_TYPE_DOUBLE,
        GTH_TEST_DATA_TYPE_DATE
 } GthTestDataType;
 
@@ -73,6 +74,8 @@
                                           guint64        i);
 void   gth_test_simple_set_data_as_date   (GthTestSimple *test,
                                           GDate         *date);
+void   gth_test_simple_set_data_as_double (GthTestSimple *test,
+                                          gdouble        f);
 
 G_END_DECLS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-test.c new/pix-2.6.0/pix/gth-test.c
--- old/pix-2.4.11/pix/gth-test.c       2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/pix/gth-test.c        2020-12-01 17:32:08.000000000 +0100
@@ -69,6 +69,7 @@
 G_DEFINE_TYPE_WITH_CODE (GthTest,
                         gth_test,
                         G_TYPE_OBJECT,
+                 G_ADD_PRIVATE (GthTest)
                         G_IMPLEMENT_INTERFACE (GTH_TYPE_DUPLICABLE,
                                                
gth_test_gth_duplicable_interface_init))
 
@@ -112,7 +113,7 @@
 
 
 static void
-base_reset (GthTest *self)
+base_focus_control (GthTest *self)
 {
        /* void */
 }
@@ -196,13 +197,13 @@
 
 static void
 gth_test_set_property (GObject      *object,
-                      guint         property_id,
-                      const GValue *value,
-                      GParamSpec   *pspec)
+                       guint         property_id,
+                       const GValue *value,
+                       GParamSpec   *pspec)
 {
        GthTest *self;
 
-        self = GTH_TEST (object);
+    self = GTH_TEST (object);
 
        switch (property_id) {
        case PROP_ID:
@@ -234,13 +235,13 @@
 
 static void
 gth_test_get_property (GObject    *object,
-                      guint       property_id,
-                      GValue     *value,
-                      GParamSpec *pspec)
+                       guint       property_id,
+                       GValue     *value,
+                       GParamSpec *pspec)
 {
        GthTest *self;
 
-        self = GTH_TEST (object);
+    self = GTH_TEST (object);
 
        switch (property_id) {
        case PROP_ID:
@@ -277,7 +278,7 @@
        klass->get_attributes = base_get_attributes;
        klass->create_control = base_create_control;
        klass->update_from_control = base_update_from_control;
-       klass->reset = base_reset;
+    klass->focus_control = base_focus_control;
        klass->match = base_match;
        klass->set_file_list = base_set_file_list;
        klass->get_next = base_get_next;
@@ -287,31 +288,31 @@
        g_object_class_install_property (object_class,
                                         PROP_ID,
                                         g_param_spec_string ("id",
-                                                              "ID",
-                                                              "The object id",
-                                                              NULL,
-                                                              
G_PARAM_READWRITE));
+                                          "ID",
+                                          "The object id",
+                                          NULL,
+                                          G_PARAM_READWRITE));
        g_object_class_install_property (object_class,
                                         PROP_ATTRIBUTES,
                                         g_param_spec_string ("attributes",
-                                                              "Attributes",
-                                                              "The attributes 
required to perform this test",
-                                                              NULL,
-                                                              
G_PARAM_READWRITE));
+                                          "Attributes",
+                                          "The attributes required to perform 
this test",
+                                          NULL,
+                                          G_PARAM_READWRITE));
        g_object_class_install_property (object_class,
                                         PROP_DISPLAY_NAME,
                                         g_param_spec_string ("display-name",
-                                                              "Display name",
-                                                              "The user 
visible name",
-                                                              NULL,
-                                                              
G_PARAM_READWRITE));
+                                          "Display name",
+                                          "The user visible name",
+                                          NULL,
+                                          G_PARAM_READWRITE));
        g_object_class_install_property (object_class,
                                         PROP_VISIBLE,
                                         g_param_spec_boolean ("visible",
-                                                              "Visible",
-                                                              "Whether this 
test should be visible in the filter bar",
-                                                              FALSE,
-                                                              
G_PARAM_READWRITE));
+                                           "Visible",
+                                           "Whether this test should be 
visible in the filter bar",
+                                           FALSE,
+                                           G_PARAM_READWRITE));
 
        /* signals */
 
@@ -395,21 +396,18 @@
        return GTH_TEST_GET_CLASS (self)->update_from_control (self, error);
 }
 
-
 void
-gth_test_changed (GthTest *self)
+gth_test_focus_control (GthTest *self)
 {
-       g_signal_emit (self, gth_test_signals[CHANGED], 0);
+    GTH_TEST_GET_CLASS (self)->focus_control (self);
 }
 
-
 void
-gth_test_reset (GthTest *self)
+gth_test_changed (GthTest *self)
 {
-       GTH_TEST_GET_CLASS (self)->reset (self);
+       g_signal_emit (self, gth_test_signals[CHANGED], 0);
 }
 
-
 GthMatch
 gth_test_match (GthTest     *self,
                GthFileData *fdata)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-test.h new/pix-2.6.0/pix/gth-test.h
--- old/pix-2.4.11/pix/gth-test.h       2020-06-24 13:43:09.000000000 +0200
+++ new/pix-2.6.0/pix/gth-test.h        2020-12-01 17:32:08.000000000 +0100
@@ -86,7 +86,7 @@
        GtkWidget *   (*create_control)       (GthTest     *test);
        gboolean      (*update_from_control)  (GthTest     *test,
                                               GError     **error);
-       void          (*reset)                (GthTest     *test);
+       void          (*focus_control)                (GthTest     *test);
        GthMatch      (*match)                (GthTest     *test,
                                               GthFileData *fdata);
        void          (*set_file_list)        (GthTest     *test,
@@ -105,6 +105,7 @@
 GtkWidget *   gth_test_create_control      (GthTest      *test);
 gboolean      gth_test_update_from_control (GthTest      *test,
                                            GError      **error);
+void          gth_test_focus_control       (GthTest      *test);
 void          gth_test_changed             (GthTest      *test);
 GthMatch      gth_test_match               (GthTest      *test,
                                            GthFileData  *fdata);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-time-selector.c new/pix-2.6.0/pix/gth-time-selector.c
--- old/pix-2.4.11/pix/gth-time-selector.c      2020-06-24 13:43:09.000000000 
+0200
+++ new/pix-2.6.0/pix/gth-time-selector.c       2020-12-01 17:32:08.000000000 
+0100
@@ -72,6 +72,15 @@
        G_OBJECT_CLASS (gth_time_selector_parent_class)->finalize (object);
 }
 
+static gboolean
+gth_time_selector_real_focus (GtkWidget        *base,
+                             GtkDirectionType  direction)
+{
+       GthTimeSelector *self = GTH_TIME_SELECTOR (base);
+       gtk_widget_grab_focus (self->priv->date_entry);
+       return TRUE;
+}
+
 
 static void
 gth_time_selector_class_init (GthTimeSelectorClass *class)
@@ -620,3 +629,9 @@
        else
                gth_time_clear (date_time->time);
 }
+
+void 
+gth_time_selector_focus (GthTimeSelector *self)
+{
+    gth_time_selector_real_focus (GTK_WIDGET (self), GTK_DIR_RIGHT);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/pix-2.4.11/pix/gth-time-selector.h new/pix-2.6.0/pix/gth-time-selector.h
--- old/pix-2.4.11/pix/gth-time-selector.h      2020-06-24 13:43:09.000000000 
+0200
+++ new/pix-2.6.0/pix/gth-time-selector.h       2020-12-01 17:32:08.000000000 
+0100
@@ -64,6 +64,7 @@
                                                const char      *exif_date);
 void          gth_time_selector_get_value      (GthTimeSelector *self,
                                                GthDateTime     *date_time);
+void          gth_time_selector_focus          (GthTimeSelector *self);
 
 G_END_DECLS
 
_______________________________________________
openSUSE Commits mailing list -- [email protected]
To unsubscribe, email [email protected]
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/[email protected]

Reply via email to