mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Rebase against 82dbf75dc064bb03b5dfc5d8a82b9782a7272ce2
This commit is contained in:
parent
f15b462860
commit
8710aa32b4
@ -1,7 +1,7 @@
|
||||
From 4b428e09733605affb987d369f56ec09d2525858 Mon Sep 17 00:00:00 2001
|
||||
From c8dc0ec6406e8449b59c219ede2e9bd88d8a56fa Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Sat, 5 Aug 2017 00:26:03 +0200
|
||||
Subject: server: Implement token elevation information.
|
||||
Subject: [PATCH] server: Implement token elevation information.
|
||||
|
||||
---
|
||||
dlls/ntdll/nt.c | 16 ++++++++++++----
|
||||
@ -10,10 +10,10 @@ Subject: server: Implement token elevation information.
|
||||
3 files changed, 39 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
|
||||
index 5822dec9b15..dda6cabe1cf 100644
|
||||
index cd271fde9c..b1dd999cf5 100644
|
||||
--- a/dlls/ntdll/nt.c
|
||||
+++ b/dlls/ntdll/nt.c
|
||||
@@ -597,18 +597,26 @@ NTSTATUS WINAPI NtQueryInformationToken(
|
||||
@@ -625,18 +625,26 @@ NTSTATUS WINAPI NtQueryInformationToken(
|
||||
SERVER_END_REQ;
|
||||
break;
|
||||
case TokenElevationType:
|
||||
@ -45,10 +45,10 @@ index 5822dec9b15..dda6cabe1cf 100644
|
||||
case TokenSessionId:
|
||||
{
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index b3dce66eb9c..33f1d5f0ab8 100644
|
||||
index 90af9df7f4..93afaabca1 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3673,6 +3673,14 @@ struct handle_info
|
||||
@@ -3643,6 +3643,14 @@ struct handle_info
|
||||
@END
|
||||
|
||||
|
||||
@ -64,10 +64,10 @@ index b3dce66eb9c..33f1d5f0ab8 100644
|
||||
@REQ(create_completion)
|
||||
unsigned int access; /* desired access to a port */
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index 7ab0f634c05..6a1085bae12 100644
|
||||
index 6d193603b4..64f20e1b57 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -126,6 +126,7 @@ struct token
|
||||
@@ -112,6 +112,7 @@ struct token
|
||||
ACL *default_dacl; /* the default DACL to assign to objects created by this user */
|
||||
TOKEN_SOURCE source; /* source of the token */
|
||||
int impersonation_level; /* impersonation level this token is capable of if non-primary token */
|
||||
@ -75,7 +75,7 @@ index 7ab0f634c05..6a1085bae12 100644
|
||||
};
|
||||
|
||||
struct privilege
|
||||
@@ -566,7 +567,7 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
@@ -545,7 +546,7 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
const LUID_AND_ATTRIBUTES *privs, unsigned int priv_count,
|
||||
const ACL *default_dacl, TOKEN_SOURCE source,
|
||||
const luid_t *modified_id,
|
||||
@ -84,7 +84,7 @@ index 7ab0f634c05..6a1085bae12 100644
|
||||
{
|
||||
struct token *token = alloc_object( &token_ops );
|
||||
if (token)
|
||||
@@ -588,6 +589,7 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
@@ -567,6 +568,7 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
token->impersonation_level = impersonation_level;
|
||||
token->default_dacl = NULL;
|
||||
token->primary_group = NULL;
|
||||
@ -92,7 +92,7 @@ index 7ab0f634c05..6a1085bae12 100644
|
||||
|
||||
/* copy user */
|
||||
token->user = memdup( user, security_sid_len( user ));
|
||||
@@ -700,7 +702,8 @@ struct token *token_duplicate( struct token *src_token, unsigned primary,
|
||||
@@ -682,7 +684,8 @@ struct token *token_duplicate( struct token *src_token, unsigned primary,
|
||||
token = create_token( primary, src_token->user, NULL, 0,
|
||||
NULL, 0, src_token->default_dacl,
|
||||
src_token->source, modified_id,
|
||||
@ -102,16 +102,16 @@ index 7ab0f634c05..6a1085bae12 100644
|
||||
if (!token) return token;
|
||||
|
||||
/* copy groups */
|
||||
@@ -904,7 +907,7 @@ struct token *token_create_admin( void )
|
||||
@@ -888,7 +891,7 @@ struct token *token_create_admin( void )
|
||||
static const TOKEN_SOURCE admin_source = {"SeMgr", {0, 0}};
|
||||
token = create_token( TRUE, user_sid, admin_groups, sizeof(admin_groups)/sizeof(admin_groups[0]),
|
||||
admin_privs, sizeof(admin_privs)/sizeof(admin_privs[0]), default_dacl,
|
||||
token = create_token( TRUE, user_sid, admin_groups, ARRAY_SIZE( admin_groups ),
|
||||
admin_privs, ARRAY_SIZE( admin_privs ), default_dacl,
|
||||
- admin_source, NULL, -1 );
|
||||
+ admin_source, NULL, -1, TokenElevationTypeFull );
|
||||
/* we really need a primary group */
|
||||
assert( token->primary_group );
|
||||
}
|
||||
@@ -1652,6 +1655,19 @@ DECL_HANDLER(get_token_statistics)
|
||||
@@ -1627,6 +1630,19 @@ DECL_HANDLER(get_token_statistics)
|
||||
}
|
||||
}
|
||||
|
||||
@ -132,5 +132,5 @@ index 7ab0f634c05..6a1085bae12 100644
|
||||
{
|
||||
struct token *token;
|
||||
--
|
||||
2.13.1
|
||||
2.19.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 971789f2af6149998e54382522569b3790309cf2 Mon Sep 17 00:00:00 2001
|
||||
From 7d07ac217db0b5226fed0b7233fdb21ef70b0cc9 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 7 Aug 2017 02:28:35 +0200
|
||||
Subject: [PATCH] server: Implement token integrity level.
|
||||
@ -10,10 +10,10 @@ Subject: [PATCH] server: Implement token integrity level.
|
||||
3 files changed, 48 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
|
||||
index 9e60196..59c6e49 100644
|
||||
index b1dd999cf5..249b715da3 100644
|
||||
--- a/dlls/ntdll/nt.c
|
||||
+++ b/dlls/ntdll/nt.c
|
||||
@@ -340,7 +340,7 @@ NTSTATUS WINAPI NtQueryInformationToken(
|
||||
@@ -400,7 +400,7 @@ NTSTATUS WINAPI NtQueryInformationToken(
|
||||
0, /* TokenAccessInformation */
|
||||
0, /* TokenVirtualizationAllowed */
|
||||
0, /* TokenVirtualizationEnabled */
|
||||
@ -22,7 +22,7 @@ index 9e60196..59c6e49 100644
|
||||
0, /* TokenUIAccess */
|
||||
0, /* TokenMandatoryPolicy */
|
||||
0, /* TokenLogonSid */
|
||||
@@ -593,18 +593,23 @@ NTSTATUS WINAPI NtQueryInformationToken(
|
||||
@@ -653,18 +653,23 @@ NTSTATUS WINAPI NtQueryInformationToken(
|
||||
}
|
||||
break;
|
||||
case TokenIntegrityLevel:
|
||||
@ -55,10 +55,10 @@ index 9e60196..59c6e49 100644
|
||||
case TokenAppContainerSid:
|
||||
{
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index c961eaf..0bb04cd 100644
|
||||
index 93afaabca1..685f69f4e2 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -3388,6 +3388,13 @@ enum caret_state
|
||||
@@ -3405,6 +3405,13 @@ enum caret_state
|
||||
VARARG(sid,SID); /* the sid specified by which_sid from the token */
|
||||
@END
|
||||
|
||||
@ -73,10 +73,10 @@ index c961eaf..0bb04cd 100644
|
||||
obj_handle_t handle; /* handle to the token */
|
||||
@REPLY
|
||||
diff --git a/server/token.c b/server/token.c
|
||||
index 355a523..1ed994a 100644
|
||||
index e97c460ae0..fb40c1b551 100644
|
||||
--- a/server/token.c
|
||||
+++ b/server/token.c
|
||||
@@ -112,6 +112,7 @@ struct token
|
||||
@@ -113,6 +113,7 @@ struct token
|
||||
TOKEN_SOURCE source; /* source of the token */
|
||||
int impersonation_level; /* impersonation level this token is capable of if non-primary token */
|
||||
TOKEN_ELEVATION_TYPE elevation; /* elevation level */
|
||||
@ -84,7 +84,7 @@ index 355a523..1ed994a 100644
|
||||
};
|
||||
|
||||
struct privilege
|
||||
@@ -544,7 +545,8 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
@@ -546,7 +547,8 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
const LUID_AND_ATTRIBUTES *privs, unsigned int priv_count,
|
||||
const ACL *default_dacl, TOKEN_SOURCE source,
|
||||
const luid_t *modified_id,
|
||||
@ -94,7 +94,7 @@ index 355a523..1ed994a 100644
|
||||
{
|
||||
struct token *token = alloc_object( &token_ops );
|
||||
if (token)
|
||||
@@ -625,6 +627,7 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
@@ -630,6 +632,7 @@ static struct token *create_token( unsigned primary, const SID *user,
|
||||
}
|
||||
|
||||
token->source = source;
|
||||
@ -102,7 +102,7 @@ index 355a523..1ed994a 100644
|
||||
}
|
||||
return token;
|
||||
}
|
||||
@@ -680,7 +683,8 @@ struct token *token_duplicate( struct token *src_token, unsigned primary,
|
||||
@@ -685,7 +688,8 @@ struct token *token_duplicate( struct token *src_token, unsigned primary,
|
||||
NULL, 0, src_token->default_dacl,
|
||||
src_token->source, modified_id,
|
||||
impersonation_level,
|
||||
@ -112,16 +112,16 @@ index 355a523..1ed994a 100644
|
||||
if (!token) return token;
|
||||
|
||||
/* copy groups */
|
||||
@@ -884,7 +888,7 @@ struct token *token_create_admin( void )
|
||||
@@ -891,7 +895,7 @@ struct token *token_create_admin( void )
|
||||
static const TOKEN_SOURCE admin_source = {"SeMgr", {0, 0}};
|
||||
token = create_token( TRUE, user_sid, admin_groups, sizeof(admin_groups)/sizeof(admin_groups[0]),
|
||||
admin_privs, sizeof(admin_privs)/sizeof(admin_privs[0]), default_dacl,
|
||||
token = create_token( TRUE, user_sid, admin_groups, ARRAY_SIZE( admin_groups ),
|
||||
admin_privs, ARRAY_SIZE( admin_privs ), default_dacl,
|
||||
- admin_source, NULL, -1, TokenElevationTypeFull );
|
||||
+ admin_source, NULL, -1, TokenElevationTypeFull, &high_label_sid );
|
||||
/* we really need a primary group */
|
||||
assert( token->primary_group );
|
||||
}
|
||||
@@ -1530,6 +1534,26 @@ DECL_HANDLER(get_token_sid)
|
||||
@@ -1525,6 +1529,26 @@ DECL_HANDLER(get_token_sid)
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,5 +149,5 @@ index 355a523..1ed994a 100644
|
||||
DECL_HANDLER(get_token_groups)
|
||||
{
|
||||
--
|
||||
1.9.1
|
||||
2.19.1
|
||||
|
||||
|
@ -198,7 +198,7 @@ index af2ba3d..57bf0ec 100644
|
||||
}
|
||||
|
||||
- if (!(process = create_process( socket_fd, parent, req->inherit_all, sd ))) goto done;
|
||||
+ if (!(process = create_process( socket_fd, current, req->inherit_all, sd, token ))) goto done;
|
||||
+ if (!(process = create_process( socket_fd, parent, req->inherit_all, sd, token ))) goto done;
|
||||
|
||||
process->startup_info = (struct startup_info *)grab_object( info );
|
||||
|
||||
|
@ -1,175 +0,0 @@
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Subject: [PATCH] browseui: Implement PROGDLG_AUTOTIME flag for IProgressDialog.
|
||||
Message-Id: <PS2P216MB0066C805C2E0BB70A2AA95E593E00@PS2P216MB0066.KORP216.PROD.OUTLOOK.COM>
|
||||
Date: Wed, 10 Oct 2018 05:38:30 +0000
|
||||
|
||||
From: Michael Müller <michael@fds-team.de>
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45970
|
||||
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
---
|
||||
dlls/browseui/browseui.rc | 5 +++
|
||||
dlls/browseui/progressdlg.c | 65 ++++++++++++++++++++++++++++++++++---
|
||||
dlls/browseui/resids.h | 5 +++
|
||||
3 files changed, 70 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/browseui/browseui.rc b/dlls/browseui/browseui.rc
|
||||
index 4c612e93e3..6a152d7bcf 100644
|
||||
--- a/dlls/browseui/browseui.rc
|
||||
+++ b/dlls/browseui/browseui.rc
|
||||
@@ -25,6 +25,11 @@ LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
|
||||
STRINGTABLE
|
||||
{
|
||||
IDS_CANCELLING "Canceling..."
|
||||
+ IDS_REMAINING1 "%u %s remaining"
|
||||
+ IDS_REMAINING2 "%u %s and %u %s remaining"
|
||||
+ IDS_SECONDS "seconds"
|
||||
+ IDS_MINUTES "minutes"
|
||||
+ IDS_HOURS "hours"
|
||||
}
|
||||
|
||||
IDD_PROGRESS_DLG DIALOG 0, 0, 260, 85
|
||||
diff --git a/dlls/browseui/progressdlg.c b/dlls/browseui/progressdlg.c
|
||||
index 2355b0cfa0..88c629099a 100644
|
||||
--- a/dlls/browseui/progressdlg.c
|
||||
+++ b/dlls/browseui/progressdlg.c
|
||||
@@ -74,6 +74,9 @@ typedef struct tagProgressDialog {
|
||||
ULONGLONG ullCompleted;
|
||||
ULONGLONG ullTotal;
|
||||
HWND hwndDisabledParent; /* For modal dialog: the parent that need to be re-enabled when the dialog ends */
|
||||
+ ULONGLONG startTime;
|
||||
+ LPWSTR remainingMsg[2];
|
||||
+ LPWSTR timeMsg[3];
|
||||
} ProgressDialog;
|
||||
|
||||
static inline ProgressDialog *impl_from_IProgressDialog(IProgressDialog *iface)
|
||||
@@ -158,6 +161,22 @@ static void update_dialog(ProgressDialog *This, DWORD dwUpdate)
|
||||
}
|
||||
}
|
||||
|
||||
+static void load_time_strings(ProgressDialog *This)
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ for (i = 0; i < 2; i++)
|
||||
+ {
|
||||
+ if (!This->remainingMsg[i])
|
||||
+ This->remainingMsg[i] = load_string(BROWSEUI_hinstance, IDS_REMAINING1 + i);
|
||||
+ }
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ {
|
||||
+ if (!This->timeMsg[i])
|
||||
+ This->timeMsg[i] = load_string(BROWSEUI_hinstance, IDS_SECONDS + i);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void end_dialog(ProgressDialog *This)
|
||||
{
|
||||
SendMessageW(This->hwnd, WM_DLG_DESTROY, 0, 0);
|
||||
@@ -260,14 +279,18 @@ static DWORD WINAPI dialog_thread(LPVOID lpParameter)
|
||||
|
||||
static void ProgressDialog_Destructor(ProgressDialog *This)
|
||||
{
|
||||
+ int i;
|
||||
TRACE("destroying %p\n", This);
|
||||
if (This->hwnd)
|
||||
end_dialog(This);
|
||||
- heap_free(This->lines[0]);
|
||||
- heap_free(This->lines[1]);
|
||||
- heap_free(This->lines[2]);
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ heap_free(This->lines[i]);
|
||||
heap_free(This->cancelMsg);
|
||||
heap_free(This->title);
|
||||
+ for (i = 0; i < 2; i++)
|
||||
+ heap_free(This->remainingMsg[i]);
|
||||
+ for (i = 0; i < 3; i++)
|
||||
+ heap_free(This->timeMsg[i]);
|
||||
This->cs.DebugInfo->Spare[0] = 0;
|
||||
DeleteCriticalSection(&This->cs);
|
||||
heap_free(This);
|
||||
@@ -329,8 +352,6 @@ static HRESULT WINAPI ProgressDialog_StartProgressDialog(IProgressDialog *iface,
|
||||
TRACE("(%p, %p, %x, %p)\n", iface, punkEnableModeless, dwFlags, reserved);
|
||||
if (punkEnableModeless || reserved)
|
||||
FIXME("Reserved parameters not null (%p, %p)\n", punkEnableModeless, reserved);
|
||||
- if (dwFlags & PROGDLG_AUTOTIME)
|
||||
- FIXME("Flags PROGDLG_AUTOTIME not supported\n");
|
||||
if (dwFlags & PROGDLG_NOTIME)
|
||||
FIXME("Flags PROGDLG_NOTIME not supported\n");
|
||||
|
||||
@@ -365,6 +386,10 @@ static HRESULT WINAPI ProgressDialog_StartProgressDialog(IProgressDialog *iface,
|
||||
This->hwndDisabledParent = hwndDisable;
|
||||
}
|
||||
|
||||
+ if (dwFlags & PROGDLG_AUTOTIME)
|
||||
+ load_time_strings(This);
|
||||
+
|
||||
+ This->startTime = GetTickCount64();
|
||||
LeaveCriticalSection(&This->cs);
|
||||
|
||||
return S_OK;
|
||||
@@ -422,6 +447,34 @@ static BOOL WINAPI ProgressDialog_HasUserCancelled(IProgressDialog *iface)
|
||||
return This->isCancelled;
|
||||
}
|
||||
|
||||
+static void update_time_remaining(ProgressDialog *This, ULONGLONG ullCompleted, ULONGLONG ullTotal)
|
||||
+{
|
||||
+ unsigned int remaining, remainder = 0;
|
||||
+ ULONGLONG elapsed;
|
||||
+ WCHAR line[128];
|
||||
+ int i;
|
||||
+
|
||||
+ if (!This->startTime || !ullCompleted || !ullTotal)
|
||||
+ return;
|
||||
+
|
||||
+ elapsed = GetTickCount64() - This->startTime;
|
||||
+ remaining = (elapsed * ullTotal / ullCompleted - elapsed) / 1000;
|
||||
+
|
||||
+ for (i = 0; remaining >= 60 && i < 2; i++)
|
||||
+ {
|
||||
+ remainder = remaining % 60;
|
||||
+ remaining /= 60;
|
||||
+ }
|
||||
+
|
||||
+ if (i > 0 && remaining < 2 && remainder != 0)
|
||||
+ wsprintfW(line, This->remainingMsg[1], remaining, This->timeMsg[i], remainder, This->timeMsg[i-1]);
|
||||
+ else
|
||||
+ wsprintfW(line, This->remainingMsg[0], remaining, This->timeMsg[i]);
|
||||
+
|
||||
+ set_buffer(&This->lines[2], line);
|
||||
+ This->dwUpdate |= UPDATE_LINE3;
|
||||
+}
|
||||
+
|
||||
static HRESULT WINAPI ProgressDialog_SetProgress64(IProgressDialog *iface, ULONGLONG ullCompleted, ULONGLONG ullTotal)
|
||||
{
|
||||
ProgressDialog *This = impl_from_IProgressDialog(iface);
|
||||
@@ -434,6 +487,8 @@ static HRESULT WINAPI ProgressDialog_SetProgress64(IProgressDialog *iface, ULONG
|
||||
This->ullCompleted = ullCompleted;
|
||||
This->dwUpdate |= UPDATE_PROGRESS;
|
||||
hwnd = This->hwnd;
|
||||
+ if (This->dwFlags & PROGDLG_AUTOTIME)
|
||||
+ update_time_remaining(This, ullCompleted, ullTotal);
|
||||
LeaveCriticalSection(&This->cs);
|
||||
|
||||
if (hwnd)
|
||||
diff --git a/dlls/browseui/resids.h b/dlls/browseui/resids.h
|
||||
index cd44a8ebd9..865cdd1a5e 100644
|
||||
--- a/dlls/browseui/resids.h
|
||||
+++ b/dlls/browseui/resids.h
|
||||
@@ -21,6 +21,11 @@
|
||||
#include "commctrl.h"
|
||||
|
||||
#define IDS_CANCELLING 16
|
||||
+#define IDS_REMAINING1 17
|
||||
+#define IDS_REMAINING2 18
|
||||
+#define IDS_SECONDS 19
|
||||
+#define IDS_MINUTES 20
|
||||
+#define IDS_HOURS 21
|
||||
|
||||
#define IDC_ANIMATION 100
|
||||
#define IDC_PROGRESS_BAR 102
|
||||
|
||||
--
|
||||
2.19.1
|
||||
|
||||
|
@ -1 +0,0 @@
|
||||
Fixes: [45970] - browseui: Implement PROGDLG_AUTOTIME flag for IProgressDialog
|
@ -52,7 +52,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "e52a20f5bf86d156e1130e8268c65e04032e8caa"
|
||||
echo "82dbf75dc064bb03b5dfc5d8a82b9782a7272ce2"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -96,7 +96,6 @@ patch_enable_all ()
|
||||
enable_avifile_dll16_AVIStreamGetFrame="$1"
|
||||
enable_bcrypt_BCryptDeriveKeyPBKDF2="$1"
|
||||
enable_bcrypt_BCryptGenerateKeyPair="$1"
|
||||
enable_browseui_Progress_Dialog="$1"
|
||||
enable_comctl32_Listview_DrawItem="$1"
|
||||
enable_comdlg32_lpstrFileTitle="$1"
|
||||
enable_configure_Absolute_RPATH="$1"
|
||||
@ -454,9 +453,6 @@ patch_enable ()
|
||||
bcrypt-BCryptGenerateKeyPair)
|
||||
enable_bcrypt_BCryptGenerateKeyPair="$2"
|
||||
;;
|
||||
browseui-Progress_Dialog)
|
||||
enable_browseui_Progress_Dialog="$2"
|
||||
;;
|
||||
comctl32-Listview_DrawItem)
|
||||
enable_comctl32_Listview_DrawItem="$2"
|
||||
;;
|
||||
@ -2575,21 +2571,6 @@ if test "$enable_bcrypt_BCryptGenerateKeyPair" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset browseui-Progress_Dialog
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#45970] - browseui: Implement PROGDLG_AUTOTIME flag for IProgressDialog
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/browseui/browseui.rc, dlls/browseui/progressdlg.c, dlls/browseui/resids.h
|
||||
# |
|
||||
if test "$enable_browseui_Progress_Dialog" -eq 1; then
|
||||
patch_apply browseui-Progress_Dialog/0002-browseui-Implement-PROGDLG_AUTOTIME-flag-for-IProgre.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Michael Müller", "browseui: Implement PROGDLG_AUTOTIME flag for IProgressDialog.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset comctl32-Listview_DrawItem
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
@ -1,18 +1,18 @@
|
||||
From 02879d85a14dd6fff5c473cf38f92dab1305f573 Mon Sep 17 00:00:00 2001
|
||||
From 2818967ffcc15779d8e0398eaf2f834f05fa21bd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Tue, 27 Jun 2017 02:08:50 +0200
|
||||
Subject: server: Improve handling of hooks for normal (non-injected) hardware
|
||||
messages.
|
||||
Subject: [PATCH] server: Improve handling of hooks for normal (non-injected)
|
||||
hardware messages.
|
||||
|
||||
---
|
||||
server/queue.c | 14 +++++++-------
|
||||
1 file changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/server/queue.c b/server/queue.c
|
||||
index 941fcb6a307..ee8e5255848 100644
|
||||
index 919e0cc350..16832c7aa4 100644
|
||||
--- a/server/queue.c
|
||||
+++ b/server/queue.c
|
||||
@@ -1715,7 +1715,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
@@ -1716,7 +1716,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
struct hardware_msg_data *msg_data;
|
||||
struct message *msg;
|
||||
unsigned int i, time, flags;
|
||||
@ -21,9 +21,9 @@ index 941fcb6a307..ee8e5255848 100644
|
||||
|
||||
static const unsigned int messages[] =
|
||||
{
|
||||
@@ -1821,13 +1821,13 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
@@ -1822,13 +1822,13 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
/* specify a sender only when sending the last message */
|
||||
if (!(flags & ((1 << sizeof(messages)/sizeof(messages[0])) - 1)))
|
||||
if (!(flags & ((1 << ARRAY_SIZE( messages )) - 1)))
|
||||
{
|
||||
- if (!(wait = send_hook_ll_message( desktop, msg, input, sender )))
|
||||
+ if (!(hooked = send_hook_ll_message( desktop, msg, input, sender )))
|
||||
@ -37,7 +37,7 @@ index 941fcb6a307..ee8e5255848 100644
|
||||
}
|
||||
|
||||
/* queue a hardware message for a keyboard event */
|
||||
@@ -1839,7 +1839,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
|
||||
@@ -1840,7 +1840,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
|
||||
struct message *msg;
|
||||
unsigned char vkey = input->kbd.vkey;
|
||||
unsigned int message_code, time;
|
||||
@ -46,7 +46,7 @@ index 941fcb6a307..ee8e5255848 100644
|
||||
|
||||
if (!(time = input->kbd.time)) time = get_tick_count();
|
||||
|
||||
@@ -1972,10 +1972,10 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
|
||||
@@ -1973,10 +1973,10 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
|
||||
msg_data->flags |= (flags & (KF_EXTENDED | KF_ALTDOWN | KF_UP)) >> 8;
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@ index 941fcb6a307..ee8e5255848 100644
|
||||
}
|
||||
|
||||
/* queue a hardware message for a custom type of event */
|
||||
@@ -2493,7 +2493,7 @@ DECL_HANDLER(send_hardware_message)
|
||||
@@ -2494,7 +2494,7 @@ DECL_HANDLER(send_hardware_message)
|
||||
{
|
||||
struct thread *thread = NULL;
|
||||
struct desktop *desktop;
|
||||
@ -69,5 +69,5 @@ index 941fcb6a307..ee8e5255848 100644
|
||||
|
||||
if (!(desktop = get_thread_desktop( current, 0 ))) return;
|
||||
--
|
||||
2.13.1
|
||||
2.19.1
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9d905c79b5b646eb46058f76cc1983b3adedc49b Mon Sep 17 00:00:00 2001
|
||||
From 65db555c42f4f114cba9f22fbec969f971e853ef Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Wed, 24 Sep 2014 21:13:59 +0200
|
||||
Subject: [PATCH] winemenubuilder: Create desktop shortcuts with absolute wine
|
||||
@ -15,7 +15,7 @@ wine, and so on ...).
|
||||
2 files changed, 13 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/programs/winemenubuilder/Makefile.in b/programs/winemenubuilder/Makefile.in
|
||||
index 07e2702..a4e28ad 100644
|
||||
index 07e2702843..a4e28adc4b 100644
|
||||
--- a/programs/winemenubuilder/Makefile.in
|
||||
+++ b/programs/winemenubuilder/Makefile.in
|
||||
@@ -1,6 +1,7 @@
|
||||
@ -27,7 +27,7 @@ index 07e2702..a4e28ad 100644
|
||||
C_SRCS = \
|
||||
winemenubuilder.c
|
||||
diff --git a/programs/winemenubuilder/winemenubuilder.c b/programs/winemenubuilder/winemenubuilder.c
|
||||
index dd69ff9..239502f 100644
|
||||
index 26710e9e92..c0834e54af 100644
|
||||
--- a/programs/winemenubuilder/winemenubuilder.c
|
||||
+++ b/programs/winemenubuilder/winemenubuilder.c
|
||||
@@ -107,6 +107,14 @@ WINE_DEFAULT_DEBUG_CHANNEL(menubuilder);
|
||||
@ -55,7 +55,7 @@ index dd69ff9..239502f 100644
|
||||
+ wine_get_config_dir(), wine_path, path, args);
|
||||
fprintf(file, "Type=Application\n");
|
||||
fprintf(file, "StartupNotify=true\n");
|
||||
if (descr && lstrlenA(descr))
|
||||
if (descr && *descr)
|
||||
@@ -2505,7 +2513,8 @@ static BOOL write_freedesktop_association_entry(const char *desktopPath, const c
|
||||
fprintf(desktop, "Type=Application\n");
|
||||
fprintf(desktop, "Name=%s\n", friendlyAppName);
|
||||
@ -67,5 +67,5 @@ index dd69ff9..239502f 100644
|
||||
fprintf(desktop, "StartupNotify=true\n");
|
||||
if (openWithIcon)
|
||||
--
|
||||
1.9.1
|
||||
2.19.1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user