Hello community,

here is the log from the commit of package cinnamon-desktop for 
openSUSE:Factory checked in at 2020-09-17 14:47:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon-desktop (Old)
 and      /work/SRC/openSUSE:Factory/.cinnamon-desktop.new.4249 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cinnamon-desktop"

Thu Sep 17 14:47:33 2020 rev:18 rq:834948 version:4.6.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/cinnamon-desktop/cinnamon-desktop.changes        
2020-06-11 10:14:03.920963539 +0200
+++ 
/work/SRC/openSUSE:Factory/.cinnamon-desktop.new.4249/cinnamon-desktop.changes  
    2020-09-17 14:50:44.459904709 +0200
@@ -1,0 +2,9 @@
+Sun Sep 13 19:15:59 UTC 2020 - andy great <[email protected]>
+
+- Update to version 4.6.4.
+  * gnome-rr.c: Only use nearest filtering for "pixel-exact" 
+    scaling, not any whole integer scale.
+  * gnome-rr-config.c: Don't ignore disabled monitors when shifting
+    the layout towards 0,0.
+
+-------------------------------------------------------------------

Old:
----
  cinnamon-desktop-4.6.1.tar.gz

New:
----
  cinnamon-desktop-4.6.4.tar.gz

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

Other differences:
------------------
++++++ cinnamon-desktop.spec ++++++
--- /var/tmp/diff_new_pack.sKr8SK/_old  2020-09-17 14:50:46.759906904 +0200
+++ /var/tmp/diff_new_pack.sKr8SK/_new  2020-09-17 14:50:46.767906912 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package cinnamon-desktop
 #
-# Copyright (c) 2020 SUSE LLC.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -23,7 +23,7 @@
 %define typelib typelib-1_0-CinnamonDesktop-3_0
 %define typelib_cvc typelib-1_0-Cvc-1_0
 Name:           cinnamon-desktop
-Version:        4.6.1
+Version:        4.6.4
 Release:        0
 Summary:        Libcinnamon-desktop API
 License:        GPL-2.0-or-later AND MIT

++++++ cinnamon-desktop-4.6.1.tar.gz -> cinnamon-desktop-4.6.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-desktop-4.6.1/README 
new/cinnamon-desktop-4.6.4/README
--- old/cinnamon-desktop-4.6.1/README   2020-06-06 15:44:56.000000000 +0200
+++ new/cinnamon-desktop-4.6.4/README   2020-08-11 16:32:17.000000000 +0200
@@ -20,7 +20,7 @@
 
     meson debian/build \
         --prefix=/usr/local \
-        --buildtype=plain \
+        --buildtype=debug \
         -D deprecated_warnings=false
 
 2) Compile and install (sudo is needed for install)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-desktop-4.6.1/debian/changelog 
new/cinnamon-desktop-4.6.4/debian/changelog
--- old/cinnamon-desktop-4.6.1/debian/changelog 2020-06-06 15:44:56.000000000 
+0200
+++ new/cinnamon-desktop-4.6.4/debian/changelog 2020-08-11 16:32:17.000000000 
+0200
@@ -1,3 +1,26 @@
+cinnamon-desktop (4.6.4) ulyana; urgency=medium
+
+  [ Michael Webster ]
+  * gnome-rr.c: Only use nearest filtering for "pixel-exact" scaling, not any 
whole integer scale.
+  * gnome-rr-config.c: Don't ignore disabled monitors when shifting the layout 
towards 0,0.
+  * rules: use buildtype=debug.
+
+ -- Clement Lefebvre <[email protected]>  Tue, 11 Aug 2020 15:31:58 +0100
+
+cinnamon-desktop (4.6.3) ulyana; urgency=medium
+
+  [ Michael Webster ]
+  * gnome-rr-config.c: Fix inadvertant change.
+
+ -- Clement Lefebvre <[email protected]>  Fri, 10 Jul 2020 15:36:15 +0100
+
+cinnamon-desktop (4.6.2) ulyana; urgency=medium
+
+  [ Michael Webster ]
+  * Fixes for gnome-rr scaling (#150)
+
+ -- Clement Lefebvre <[email protected]>  Sun, 21 Jun 2020 13:34:38 +0100
+
 cinnamon-desktop (4.6.1) ulyana; urgency=medium
 
   [ Fabio Fantoni ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-desktop-4.6.1/debian/rules 
new/cinnamon-desktop-4.6.4/debian/rules
--- old/cinnamon-desktop-4.6.1/debian/rules     2020-06-06 15:44:56.000000000 
+0200
+++ new/cinnamon-desktop-4.6.4/debian/rules     2020-08-11 16:32:17.000000000 
+0200
@@ -8,6 +8,7 @@
 
 override_dh_auto_configure:
        dh_auto_configure -- \
+               --buildtype=debug \
                -Dpnp_ids=/usr/share/hwdata/pnp.ids \
                -Ddeprecation_warnings=false
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr-config.c 
new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr-config.c
--- old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr-config.c    
2020-06-06 15:44:56.000000000 +0200
+++ new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr-config.c    
2020-08-11 16:32:17.000000000 +0200
@@ -46,7 +46,7 @@
 #define CONFIG_BACKUP_BASENAME "cinnamon-monitors.xml.backup"
 #define CONFIG_LEGACY_BASENAME "monitors.xml"
 
-#define BASE_SCALE_NOT_CONFIGURED -1
+#define BASE_SCALE_NOT_CONFIGURED 0
 /* Look for DPI_FALLBACK in:
  * 
http://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/xsettings/gsd-xsettings-manager.c
  * for the reasoning */
@@ -220,7 +220,7 @@
     else if (strcmp (name, "configuration") == 0)
     {
        g_assert (parser->configuration == NULL);
-       
+
        parser->configuration = g_object_new (GNOME_TYPE_RR_CONFIG, NULL);
        parser->configuration->priv->clone = FALSE;
        parser->configuration->priv->outputs = NULL;
@@ -283,7 +283,7 @@
             GError             **err)
 {
     Parser *parser = user_data;
-    
+
     if (stack_is (parser, "vendor", "output", "configuration", 
TOPLEVEL_ELEMENT, NULL))
     {
        parser->output->priv->connected = TRUE;
@@ -433,6 +433,32 @@
     g_free (parser);
 }
 
+static void
+check_auto_scaling (GnomeRRConfig **configs)
+{
+    GnomeRRConfig *config;
+    gint i;
+
+    if (configs == NULL)
+    {
+        return;
+    }
+
+    i = 0;
+    config = configs[i];
+
+    while (config != NULL)
+    {
+        if (config->priv->base_scale == BASE_SCALE_NOT_CONFIGURED)
+        {
+            config->priv->auto_scale = TRUE;
+            config->priv->base_scale = gnome_rr_screen_get_global_scale (NULL);
+        }
+
+        config = configs[++i];
+    }
+}
+
 static GnomeRRConfig **
 configurations_read_from_file (const gchar *filename, GError **error)
 {
@@ -460,7 +486,7 @@
     }
 
     g_assert (parser->outputs);
-    
+
     g_ptr_array_add (parser->configurations, NULL);
     result = (GnomeRRConfig **)g_ptr_array_free (parser->configurations, 
FALSE);
     parser->configurations = g_ptr_array_new ();
@@ -469,6 +495,8 @@
 out:
     parser_free (parser);
 
+    check_auto_scaling (result);
+
     return result;
 }
 
@@ -479,6 +507,7 @@
 
     self->priv->clone = FALSE;
     self->priv->base_scale = BASE_SCALE_NOT_CONFIGURED;
+    self->priv->auto_scale = FALSE;
     self->priv->screen = NULL;
     self->priv->outputs = NULL;
 }
@@ -535,6 +564,10 @@
 
     config->priv->clone = FALSE;
     config->priv->base_scale = gnome_rr_screen_get_global_scale 
(config->priv->screen);
+    if (gnome_rr_screen_get_global_scale_setting (config->priv->screen) == 0)
+    {
+        config->priv->auto_scale = TRUE;
+    }
     
     for (i = 0; rr_outputs[i] != NULL; ++i)
     {
@@ -703,56 +736,40 @@
 }
 
 static void
-ensure_scale_factor (GnomeRRConfig     *current,
+ensure_scale_factor (GnomeRRConfig     *config_from_file,
                      GnomeRROutputInfo *info_from_file)
 {
     /* Loading an old config for the first time, there probably won't be any
      * scale factor.  If this happens, give it the matching current output's
      * scale factor (what actual 'is' right now) - to maintain their existing
      * configuration. */
-    if (info_from_file->priv->scale == 0)
-    {
-        int k;
+    int k;
 
-        for (k = 0; current->priv->outputs[k] != NULL; ++k)
+    for (k = 0; config_from_file->priv->outputs[k] != NULL; ++k)
+    {
+        if (config_from_file->priv->auto_scale)
         {
-            gchar *current_output_name, *new_output_name;
+            info_from_file->priv->scale = (float) 
config_from_file->priv->base_scale;
+            continue;
+        }
 
-            current_output_name = current->priv->outputs[k]->priv->name;
-            new_output_name = info_from_file->priv->name;
+        gchar *current_output_name, *new_output_name;
 
-            if (g_strcmp0 (current_output_name, new_output_name) == 0)
-            {
-                info_from_file->priv->scale = 
current->priv->outputs[k]->priv->scale;
-            }
+        current_output_name = config_from_file->priv->outputs[k]->priv->name;
+        new_output_name = info_from_file->priv->name;
+
+        if (g_strcmp0 (current_output_name, new_output_name) == 0)
+        {
+            info_from_file->priv->scale = 
config_from_file->priv->outputs[k]->priv->scale;
         }
     }
 
-
     if (info_from_file->priv->scale == 0)
     {
         info_from_file->priv->scale = MINIMUM_LOGICAL_SCALE_FACTOR;
     }
 }
 
-static void
-ensure_base_scale_factor (GnomeRRConfig     *matching,
-                          GnomeRRConfig     *new)
-{
-    /* Loading an old config for the first time, there probably won't be a
-     * base scale factor. If this happens, give it the current system global
-     * scale - to maintain their existing configuration. */
-
-    if (matching->priv->base_scale == BASE_SCALE_NOT_CONFIGURED)
-    {
-        new->priv->base_scale = gnome_rr_screen_get_global_scale (NULL);
-    }
-    else
-    {
-        new->priv->base_scale = matching->priv->base_scale;
-    }
-}
-
 gboolean
 gnome_rr_config_load_filename (GnomeRRConfig *result, const char *filename, 
GError **error)
 {
@@ -779,6 +796,8 @@
             int j;
             GPtrArray *array;
             result->priv->clone = configs[i]->priv->clone;
+            result->priv->auto_scale = configs[i]->priv->auto_scale;
+            result->priv->base_scale = configs[i]->priv->base_scale;
 
             array = g_ptr_array_new ();
             for (j = 0; configs[i]->priv->outputs[j] != NULL; j++) {
@@ -786,13 +805,11 @@
                 g_object_ref (configs[i]->priv->outputs[j]);
                 g_ptr_array_add (array, configs[i]->priv->outputs[j]);
 
-                ensure_scale_factor (current, configs[i]->priv->outputs[j]);
+                ensure_scale_factor (configs[i], configs[i]->priv->outputs[j]);
             }
             g_ptr_array_add (array, NULL);
             result->priv->outputs = (GnomeRROutputInfo **) g_ptr_array_free 
(array, FALSE);
 
-            ensure_base_scale_factor (configs[i], result);
-
             found = TRUE;
             break;
         }
@@ -1026,6 +1043,16 @@
     g_return_val_if_fail (GNOME_IS_RR_CONFIG (c1), FALSE);
     g_return_val_if_fail (GNOME_IS_RR_CONFIG (c2), FALSE);
 
+    if (c1->priv->auto_scale != c2->priv->auto_scale)
+    {
+        return FALSE;
+    }
+
+    if (c1->priv->base_scale != c2->priv->base_scale)
+    {
+        return FALSE;
+    }
+
     for (i = 0; c1->priv->outputs[i] != NULL; ++i)
     {
        GnomeRROutputInfo *output1 = c1->priv->outputs[i];
@@ -1189,7 +1216,11 @@
     g_string_append_printf (string, "  <configuration>\n");
 
     g_string_append_printf (string, "      <clone>%s</clone>\n", yes_no 
(config->priv->clone));
-    g_string_append_printf (string, "      <base_scale>%d</base_scale>\n", 
config->priv->base_scale);
+
+    if (!config->priv->auto_scale)
+    {
+        g_string_append_printf (string, "      <base_scale>%d</base_scale>\n", 
config->priv->base_scale);
+    }
     
     for (j = 0; config->priv->outputs[j] != NULL; ++j)
     {
@@ -1221,8 +1252,13 @@
                string, "          <x>%d</x>\n", output->priv->x);
            g_string_append_printf (
                string, "          <y>%d</y>\n", output->priv->y);
-           g_string_append_printf (
-        string, "          <scale>%f</scale>\n", output->priv->scale);
+
+        if (!config->priv->auto_scale)
+        {
+            g_string_append_printf (
+            string, "          <scale>%f</scale>\n", output->priv->scale);
+        }
+
         g_string_append_printf (
                string, "          <rotation>%s</rotation>\n", 
get_rotation_name (output->priv->rotation));
            g_string_append_printf (
@@ -1251,26 +1287,23 @@
      */
     x_offset = y_offset = G_MAXINT;
     for (i = 0; config->priv->outputs[i]; ++i)
-    {
-       GnomeRROutputInfo *output = config->priv->outputs[i];
+      {
+        GnomeRROutputInfo *output = config->priv->outputs[i];
 
-       if (output->priv->on)
-       {
-           x_offset = MIN (x_offset, output->priv->x);
-           y_offset = MIN (y_offset, output->priv->y);
-       }
-    }
+        if (output->priv->on)
+          {
+            x_offset = MIN (x_offset, output->priv->x);
+            y_offset = MIN (y_offset, output->priv->y);
+          }
+      }
 
     for (i = 0; config->priv->outputs[i]; ++i)
-    {
-       GnomeRROutputInfo *output = config->priv->outputs[i];
-       
-       if (output->priv->on)
-       {
-           output->priv->x -= x_offset;
-           output->priv->y -= y_offset;
-       }
-    }
+      {
+        GnomeRROutputInfo *output = config->priv->outputs[i];
+
+        output->priv->x -= x_offset;
+        output->priv->y -= y_offset;
+      }
 
     /* Only one primary, please */
     found = FALSE;
@@ -1442,7 +1475,8 @@
 
     if (result == TRUE)
     {
-        gnome_rr_screen_set_global_scale (screen, global_scale);
+        gnome_rr_screen_set_global_scale_setting (screen,
+                                                  config->priv->auto_scale ? 0 
: global_scale);
     }
 
     return result;
@@ -1544,6 +1578,11 @@
 {
     g_return_val_if_fail (GNOME_IS_RR_CONFIG (self), 
MINIMUM_GLOBAL_SCALE_FACTOR);
 
+    if (self->priv->auto_scale)
+    {
+        return gnome_rr_screen_get_global_scale (self->priv->screen);
+    }
+
     return self->priv->base_scale;
 }
 
@@ -1555,6 +1594,24 @@
 
     self->priv->base_scale = base_scale;
 }
+
+gboolean
+gnome_rr_config_get_auto_scale (GnomeRRConfig *self)
+{
+    g_return_val_if_fail (GNOME_IS_RR_CONFIG (self), TRUE);
+
+    return self->priv->auto_scale;
+}
+
+void
+gnome_rr_config_set_auto_scale (GnomeRRConfig *self,
+                                gboolean       auto_scale)
+{
+    g_return_if_fail (GNOME_IS_RR_CONFIG (self));
+
+    self->priv->auto_scale = auto_scale;
+}
+
 /*
  * CRTC assignment
  */
@@ -2043,9 +2100,8 @@
 
     *avg_scale = avg_screen_scale;
 
-    g_debug ("Proposed screen size: %dx%d average scale: %.2f, ui scale: %d, 
using %s",
-             *width, *height, *avg_scale, *global_scale,
-             gnome_rr_screen_get_use_upscaling (screen) ? "upscaling" : 
"downscaling");
+    g_debug ("Proposed screen size: %dx%d average scale: %.2f, ui scale: %d",
+             *width, *height, *avg_scale, *global_scale);
 
     g_list_free (active_crtcs);
 }
@@ -2152,13 +2208,12 @@
        int x, y;
 
        if (mode)
-       {
+    {
            int w, h;
            gnome_rr_crtc_get_position (crtc, &x, &y);
 
            w = gnome_rr_mode_get_width (mode) * (*global_scale);
            h = gnome_rr_mode_get_height (mode) * (*global_scale);
-
            if (crtc_is_rotated (crtc))
            {
                int tmp = h;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr-config.h 
new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr-config.h
--- old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr-config.h    
2020-06-06 15:44:56.000000000 +0200
+++ new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr-config.h    
2020-08-11 16:32:17.000000000 +0200
@@ -159,6 +159,9 @@
 guint               gnome_rr_config_get_base_scale (GnomeRRConfig *self);
 void                gnome_rr_config_set_base_scale (GnomeRRConfig *self,
                                                     guint base_scale);
+gboolean            gnome_rr_config_get_auto_scale (GnomeRRConfig *self);
+void                gnome_rr_config_set_auto_scale (GnomeRRConfig *self,
+                                                    gboolean       auto_scale);
 GnomeRROutputInfo **gnome_rr_config_get_outputs  (GnomeRRConfig  
*configuration);
 
 char *gnome_rr_config_get_backup_filename (void);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr-private.h 
new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr-private.h
--- old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr-private.h   
2020-06-06 15:44:56.000000000 +0200
+++ new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr-private.h   
2020-08-11 16:32:17.000000000 +0200
@@ -6,9 +6,9 @@
 #include <X11/extensions/Xrandr.h>
 
 #define MINIMUM_LOGICAL_SCALE_FACTOR 0.74f
-#define MAXIMUM_LOGICAL_SCALE_FACTOR 4.0f
+#define MAXIMUM_LOGICAL_SCALE_FACTOR 2.0f
 #define MINIMUM_GLOBAL_SCALE_FACTOR 1
-#define MAXIMUM_GLOBAL_SCALE_FACTOR 4
+#define MAXIMUM_GLOBAL_SCALE_FACTOR 2
 
 typedef struct ScreenInfo ScreenInfo;
 
@@ -83,6 +83,7 @@
   GnomeRRScreen *screen;
   GnomeRROutputInfo **outputs;
   guint base_scale;
+  gboolean auto_scale;
 };
 
 gboolean _gnome_rr_output_name_is_laptop (const char *name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr.c 
new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr.c
--- old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr.c   2020-06-06 
15:44:56.000000000 +0200
+++ new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr.c   2020-08-11 
16:32:17.000000000 +0200
@@ -357,7 +357,6 @@
     GPtrArray *a;
     GnomeRRCrtc **crtc;
     GnomeRROutput **output;
-
     info->resources = resources;
 
     /* We create all the structures before initializing them, so
@@ -2168,17 +2167,36 @@
 
     real_scale = global_scale / scale;
 
-    looks_like_w = gnome_rr_mode_get_width (mode) * real_scale / global_scale;
-    looks_like_h = gnome_rr_mode_get_height (mode) * real_scale / global_scale;
+    looks_like_w = 0;
+    looks_like_h = 0;
+
+    if (mode != NULL)
+    {
+        looks_like_w = gnome_rr_mode_get_width (mode) * real_scale / 
global_scale;
+        looks_like_h = gnome_rr_mode_get_height (mode) * real_scale / 
global_scale;
+    }
+
+    // Fractional scales use bilinear, doubling/halving can use nearest for 
better quality.
+    if (real_scale == 0.5 || real_scale == 1.0)
+    {
+        filter = g_strdup ("nearest");
+    }
+    else
+    {
+        filter = g_strdup ("bilinear");
+    }
 
-    g_debug ("\n\nTransforming based on:\n"
+    g_debug ("\n\n(xid: %lu) Transforming based on:\n"
              "global ui scale: %d\n"
              "requested logical scale: %.2f\n"
              "requested logical size: %dx%d\n"
-             "xrandr transform value: %.2f (%d)\n",
+             "xrandr transform value: %.2f (%d)\n"
+             "scaling method: %s",
+             crtc->id,
              global_scale, scale,
              looks_like_w, looks_like_h,
-             real_scale, XDoubleToFixed (real_scale));
+             real_scale, XDoubleToFixed (real_scale),
+             filter);
 
     XTransform transform =  {{
                     { XDoubleToFixed (real_scale), 0                          
, 0                    },
@@ -2186,15 +2204,6 @@
                     { 0                          , 0                          
, XDoubleToFixed (1.0) },
     }};
 
-    if ((real_scale) != 1.0)
-    {
-        filter = g_strdup ("bilinear");
-    }
-    else
-    {
-        filter = g_strdup ("nearest");
-    }
-
     XRRSetCrtcTransform (DISPLAY (crtc), crtc->id,
                          &transform,
                          filter,
@@ -2228,21 +2237,20 @@
     
     if (mode)
     {
-       if (x + mode->width > info->max_width
-           || y + mode->height > info->max_height)
-       {
-           g_set_error (error, GNOME_RR_ERROR, GNOME_RR_ERROR_BOUNDS_ERROR,
-                        /* Translators: the "position", "size", and "maximum"
-                         * words here are not keywords; please translate them
-                         * as usual.  A CRTC is a CRT Controller (this is X 
terminology) */
-                        _("requested position/size for CRTC %d is outside the 
allowed limit: "
-                          "position=(%d, %d), size=(%d, %d), maximum=(%d, 
%d)"),
-                        (int) crtc->id,
-                        x, y,
-                        mode->width, mode->height,
-                        info->max_width, info->max_height);
-           return FALSE;
-       }
+        if (x + mode->width > info->max_width || y + mode->height > 
info->max_height)
+        {
+            g_set_error (error, GNOME_RR_ERROR, GNOME_RR_ERROR_BOUNDS_ERROR,
+                         /* Translators: the "position", "size", and "maximum"
+                          * words here are not keywords; please translate them
+                          * as usual.  A CRTC is a CRT Controller (this is X 
terminology) */
+                         _("requested position/size for CRTC %d is outside the 
allowed limit: "
+                         "position=(%d, %d), size=(%d, %d), maximum=(%d, %d)"),
+                         (int) crtc->id,
+                         x, y,
+                         mode->width, mode->height,
+                         info->max_width, info->max_height);
+            return FALSE;
+        }
     }
     
     output_ids = g_array_new (FALSE, FALSE, sizeof (RROutput));
@@ -2461,22 +2469,26 @@
     return (guint) CLAMP (window_scale, MINIMUM_GLOBAL_SCALE_FACTOR, 
MAXIMUM_GLOBAL_SCALE_FACTOR);
 }
 
+guint
+gnome_rr_screen_get_global_scale_setting (GnomeRRScreen *screen)
+{
+    guint scale_factor;
+
+    scale_factor = g_settings_get_uint (screen->priv->interface_settings,
+                                        GLOBAL_SCALE_FACTOR_KEY);
+
+    return scale_factor;
+}
+
 void
-gnome_rr_screen_set_global_scale (GnomeRRScreen *screen,
-                                  guint           scale_factor)
+gnome_rr_screen_set_global_scale_setting (GnomeRRScreen *screen,
+                                          guint          scale_factor)
 {
     g_settings_set_uint (screen->priv->interface_settings,
                          GLOBAL_SCALE_FACTOR_KEY,
                          scale_factor);
 }
 
-gboolean
-gnome_rr_screen_get_use_upscaling (GnomeRRScreen *screen)
-{
-    return g_settings_get_boolean (screen->priv->interface_settings,
-                                   USE_UPSCALING_KEY);
-}
-
 static float
 get_crtc_scale (GnomeRRCrtc *crtc)
 {
@@ -2762,8 +2774,7 @@
                          float scale)
 {
   return scale >= MINIMUM_LOGICAL_SCALE_FACTOR &&
-         scale <= MAXIMUM_LOGICAL_SCALE_FACTOR &&
-         is_logical_size_large_enough (floorf (width/scale), floorf 
(height/scale));
+         scale <= MAXIMUM_LOGICAL_SCALE_FACTOR;
 }
 
 static float
@@ -2985,8 +2996,8 @@
     }
 
     if (width_mm > 0 && height_mm > 0) {
-            dpi_x = (double) real_width * monitor_scale / (width_mm / 25.4);
-            dpi_y = (double) real_height * monitor_scale / (height_mm / 25.4);
+            dpi_x = (double) real_width / (width_mm / 25.4);
+            dpi_y = (double) real_height / (height_mm / 25.4);
             /* We don't completely trust these values so both must be high, 
and never pick higher ratio than
               2 automatically */
             if (dpi_x > HIDPI_LIMIT && dpi_y > HIDPI_LIMIT)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr.h 
new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr.h
--- old/cinnamon-desktop-4.6.1/libcinnamon-desktop/gnome-rr.h   2020-06-06 
15:44:56.000000000 +0200
+++ new/cinnamon-desktop-4.6.4/libcinnamon-desktop/gnome-rr.h   2020-08-11 
16:32:17.000000000 +0200
@@ -145,7 +145,8 @@
                                                     GnomeRRDpmsMode        
mode,
                                                     GError              
**error);
 guint             gnome_rr_screen_get_global_scale (GnomeRRScreen   *screen);
-void            gnome_rr_screen_set_global_scale   (GnomeRRScreen   *screen,
+guint             gnome_rr_screen_get_global_scale_setting (GnomeRRScreen   
*screen);
+void            gnome_rr_screen_set_global_scale_setting (GnomeRRScreen   
*screen,
                                                     guint            
scale_factor);
 gboolean        gnome_rr_screen_get_use_upscaling  (GnomeRRScreen        
*screen);
 float *         gnome_rr_screen_calculate_supported_scales (GnomeRRScreen     
*screen,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cinnamon-desktop-4.6.1/meson.build 
new/cinnamon-desktop-4.6.4/meson.build
--- old/cinnamon-desktop-4.6.1/meson.build      2020-06-06 15:44:56.000000000 
+0200
+++ new/cinnamon-desktop-4.6.4/meson.build      2020-08-11 16:32:17.000000000 
+0200
@@ -1,7 +1,7 @@
 # Meson build file
 
 # https://github.com/linuxmint/cinnamon-desktop
-project('cinnamon-desktop', 'c', version: '4.6.1',
+project('cinnamon-desktop', 'c', version: '4.6.4',
   meson_version: '>=0.41.0'
 )
 


Reply via email to