Imported Upstream version 6.12.0.113

Former-commit-id: 16c3009c55743665b8bfab5c90c620198e92ea79
This commit is contained in:
Xamarin Public Jenkins (auto-signing) 2020-12-08 08:41:48 +00:00
parent ae096f9387
commit 6e4ea140c9
53 changed files with 832 additions and 742 deletions

View File

@ -1 +1 @@
9aaf6faf9f1a6001baf8029a1d2ff906263c0462
246303bb1eafe6befdbcf3b0a7b6924dedd2aee1

View File

@ -1 +1 @@
6f406c2fb4c0510cfd442b963ca9ccefbc2f0838
1991e019cf014d90ae2b65e06b9bfa3506629eb0

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
## Platform. ##
## --------- ##
hostname = az-ubuntu-generald40180
hostname = az-ubuntu-general774710
uname -m = x86_64
uname -r = 4.15.0-1100-azure
uname -s = Linux
@ -747,7 +747,7 @@ generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_COMMANDS =
$ ./config.status
on az-ubuntu-generald40180
on az-ubuntu-general774710
config.status:1238: creating Makefile
config.status:1238: creating bdw-gc.pc

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
b6a6639db1e54ab2a7bc8b430b7f24997aa0cdd9
78b6ba732476dbe70d4d2b99d4551d87607afc09

View File

@ -231,7 +231,10 @@ class GtkPackage (GitHubPackage):
# https://devdiv.visualstudio.com/DevDiv/_workitems/edit/993471
'patches/gtk/gtk-pboard-types.patch',
'patches/gtk/define-NSPasteboardTypeURL.patch',
'patches/gtk/Fix-1080409-StackOverflow-exception-opening-Gtk-host.patch'
'patches/gtk/Fix-1080409-StackOverflow-exception-opening-Gtk-host.patch',
# https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1092021/
'patches/gtk/0078-Optimize-querying-symbolic-hotkeys.patch'
])
def prep(self):

View File

@ -0,0 +1,87 @@
From ba68d11840da0ea10b863c598b1947fa1090a557 Mon Sep 17 00:00:00 2001
From: Marius Ungureanu <maungu@microsoft.com>
Date: Wed, 2 Dec 2020 17:39:31 +0200
Subject: [PATCH] Optimize querying symbolic hotkeys
This API is not threadsafe and there is no alternative API for querying
whether the symbolic hotkeys have changed.
Instead, we can check the last modification time of the preferences file
and only update the symbolic hotkeys _iff_ the underlying storage file
has changed.
---
gdk/quartz/gdkkeys-quartz.c | 40 +++++++++++++++++++++++++++++++++++--
1 file changed, 38 insertions(+), 2 deletions(-)
diff --git a/gdk/quartz/gdkkeys-quartz.c b/gdk/quartz/gdkkeys-quartz.c
index 5a4d88787d..8ee8628dd2 100644
--- a/gdk/quartz/gdkkeys-quartz.c
+++ b/gdk/quartz/gdkkeys-quartz.c
@@ -58,6 +58,8 @@
#include "gdkprivate-quartz.h"
#include <Foundation/Foundation.h>
+#include <glib/gstdio.h>
+
#define NUM_KEYCODES 128
#define KEYVALS_PER_KEYCODE 4
@@ -68,6 +70,7 @@ static GdkKeymap *default_keymap = NULL;
*/
static guint *keyval_array = NULL;
static CFArrayRef global_hotkeys = NULL;
+static struct timespec preferences_last_mtime = {};
static inline UniChar
macroman2ucs (unsigned char c)
@@ -815,12 +818,45 @@ gdk_keymap_map_virtual_modifiers (GdkKeymap *keymap,
return TRUE;
}
+static gboolean
+should_update_symbolic_hotkeys ()
+{
+ gchar *path_segments[] = {
+ g_get_home_dir(),
+ "Library",
+ "Preferences",
+ "com.apple.symbolichotkeys.plist",
+ NULL,
+ };
+
+ gchar *preferences_file = g_build_pathv(G_DIR_SEPARATOR_S, path_segments);
+ GStatBuf buf;
+
+ int res = g_stat(preferences_file, &buf);
+ g_free(preferences_file);
+
+ if (res != 0) {
+ /* In case we have any IO error, ensure correctness by querying */
+ return TRUE;
+ }
+
+ bool preferences_file_modified = preferences_last_mtime.tv_sec != buf.st_mtimespec.tv_sec
+ && preferences_last_mtime.tv_nsec != buf.st_mtimespec.tv_nsec;
+
+ preferences_last_mtime.tv_sec = buf.st_mtimespec.tv_sec;
+ preferences_last_mtime.tv_nsec = buf.st_mtimespec.tv_nsec;
+
+ return preferences_file_modified;
+}
+
void
_gdk_quartz_update_symbolic_hotkeys ()
{
- _gdk_quartz_release_symbolic_hotkeys ();
+ if (should_update_symbolic_hotkeys ()) {
+ _gdk_quartz_release_symbolic_hotkeys ();
- CopySymbolicHotKeys (&global_hotkeys);
+ CopySymbolicHotKeys (&global_hotkeys);
+ }
}
void
--
2.21.1 (Apple Git-122.3)

View File

@ -41,7 +41,7 @@ static partial class Consts
// Use these assembly version constants to make code more maintainable.
//
public const string MonoVersion = "6.12.0.112";
public const string MonoVersion = "6.12.0.113";
public const string MonoCompany = "Mono development team";
public const string MonoProduct = "Mono Common Language Infrastructure";
public const string MonoCopyright = "(c) Various Mono authors";

View File

@ -1 +1 @@
08608cab311184ce2ff214841e3ffe8f9f546671
ccd53925b70a2feb754d406c8f3ed70fbea30087

View File

@ -1 +1 @@
1db919084bb52b6905f7f20d93755317398a300b
78ff5e3e3b3c45624561392a9791bc8963a2fa08

View File

@ -1 +1 @@
656a6fbf39963dc13b11052c025ff66ba1e2b3df
daeafbf1a2bd2f479e0f4f4b34c368a0a874974f

View File

@ -1 +1 @@
297290e22045c386dc65fe8b1a0f1c72780da0e4
63cdb8f43d6aec8e6f3d32fee34ea63a05728deb

View File

@ -1 +1 @@
39932254d89fb0e681fa5f2681bd915702fe73fe
096837b3526030c9074f90560c9cb35e1856c6e2

View File

@ -1 +1 @@
e0d6b8508976b07bf1921345e8fc3d071d52eda0
00cd85450b8411778d8553a5bdd13e8b926b3d7f

View File

@ -1 +1 @@
7d3f742129a6b89db5777dc7df2ec3a867c538a7
ad40f788fbe5e9d204b0368e631654760d00c918

View File

@ -1 +1 @@
a0fb4124249483f29abfbf747bb3526a6f203eb5
89647d08d60f934295008053cf53dcd3e43c949f

View File

@ -1 +1 @@
08608cab311184ce2ff214841e3ffe8f9f546671
ccd53925b70a2feb754d406c8f3ed70fbea30087

View File

@ -1 +1 @@
1db919084bb52b6905f7f20d93755317398a300b
78ff5e3e3b3c45624561392a9791bc8963a2fa08

View File

@ -1 +1 @@
656a6fbf39963dc13b11052c025ff66ba1e2b3df
daeafbf1a2bd2f479e0f4f4b34c368a0a874974f

Some files were not shown because too many files have changed in this diff Show More