Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
9c93676d
Commit
9c93676d
authored
May 02, 2024
by
Rémi Bernon
Committed by
Alexandre Julliard
May 07, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
win32u: Return STATUS_ALREADY_COMPLETE from UpdateDisplayDevices.
When no display cache update is needed.
parent
d525da59
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
39 additions
and
29 deletions
+39
-29
driver.c
dlls/win32u/driver.c
+3
-3
sysparams.c
dlls/win32u/sysparams.c
+12
-9
init.c
dlls/wineandroid.drv/init.c
+4
-2
display.c
dlls/winemac.drv/display.c
+4
-4
macdrv.h
dlls/winemac.drv/macdrv.h
+1
-1
display.c
dlls/winewayland.drv/display.c
+5
-3
waylanddrv.h
dlls/winewayland.drv/waylanddrv.h
+1
-1
display.c
dlls/winex11.drv/display.c
+7
-4
x11drv.h
dlls/winex11.drv/x11drv.h
+1
-1
gdi_driver.h
include/wine/gdi_driver.h
+1
-1
No files found.
dlls/win32u/driver.c
View file @
9c93676d
...
...
@@ -761,9 +761,9 @@ static INT nulldrv_GetDisplayDepth( LPCWSTR name, BOOL is_primary )
return
-
1
;
/* use default implementation */
}
static
BOOL
nulldrv_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
manager
,
BOOL
force
,
void
*
param
)
static
UINT
nulldrv_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
manager
,
BOOL
force
,
void
*
param
)
{
return
FALSE
;
return
STATUS_NOT_IMPLEMENTED
;
}
static
BOOL
nulldrv_CreateDesktop
(
const
WCHAR
*
name
,
UINT
width
,
UINT
height
)
...
...
@@ -1166,7 +1166,7 @@ static void loaderdrv_UpdateClipboard(void)
load_driver
()
->
pUpdateClipboard
();
}
static
BOOL
loaderdrv_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
manager
,
BOOL
force
,
void
*
param
)
static
UINT
loaderdrv_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
manager
,
BOOL
force
,
void
*
param
)
{
return
load_driver
()
->
pUpdateDisplayDevices
(
manager
,
force
,
param
);
}
...
...
dlls/win32u/sysparams.c
View file @
9c93676d
...
...
@@ -1888,7 +1888,7 @@ static BOOL add_virtual_source( struct device_manager_ctx *ctx )
if
(
!
write_source_to_registry
(
&
virtual_source
,
&
ctx
->
source_key
))
{
WARN
(
"Failed to write source to registry
\n
"
);
return
FALSE
;
return
STATUS_UNSUCCESSFUL
;
}
ctx
->
source
=
virtual_source
;
...
...
@@ -1916,18 +1916,21 @@ static BOOL add_virtual_source( struct device_manager_ctx *ctx )
add_monitor
(
&
monitor
,
ctx
);
add_virtual_modes
(
ctx
,
&
current
,
&
initial
,
&
maximum
);
return
TRUE
;
return
STATUS_SUCCESS
;
}
static
BOOL
update_display_devices
(
BOOL
force
,
struct
device_manager_ctx
*
ctx
)
static
UINT
update_display_devices
(
BOOL
force
,
struct
device_manager_ctx
*
ctx
)
{
if
(
user_driver
->
pUpdateDisplayDevices
(
&
device_manager
,
force
,
ctx
))
UINT
status
;
if
(
!
(
status
=
user_driver
->
pUpdateDisplayDevices
(
&
device_manager
,
force
,
ctx
)))
{
if
(
ctx
->
source_count
&&
is_virtual_desktop
())
return
add_virtual_source
(
ctx
);
return
TRUE
;
return
status
;
}
return
default_update_display_devices
(
force
,
ctx
);
if
(
status
==
STATUS_NOT_IMPLEMENTED
)
return
default_update_display_devices
(
force
,
ctx
);
return
status
;
}
BOOL
update_display_cache
(
BOOL
force
)
...
...
@@ -1936,7 +1939,7 @@ BOOL update_display_cache( BOOL force )
{
'_'
,
'_'
,
'w'
,
'i'
,
'n'
,
'e'
,
's'
,
'e'
,
'r'
,
'v'
,
'i'
,
'c'
,
'e'
,
'_'
,
'w'
,
'i'
,
'n'
,
's'
,
't'
,
'a'
,
't'
,
'i'
,
'o'
,
'n'
,
0
};
HWINSTA
winstation
=
NtUserGetProcessWindowStation
();
struct
device_manager_ctx
ctx
=
{
0
};
BOOL
ret
;
UINT
status
;
WCHAR
name
[
MAX_PATH
];
/* services do not have any adapters, only a virtual monitor */
...
...
@@ -1950,10 +1953,10 @@ BOOL update_display_cache( BOOL force )
return
TRUE
;
}
ret
=
update_display_devices
(
force
,
&
ctx
);
status
=
update_display_devices
(
force
,
&
ctx
);
release_display_manager_ctx
(
&
ctx
);
if
(
!
ret
)
WARN
(
"Failed to update display devices
\n
"
);
if
(
status
&&
status
!=
STATUS_ALREADY_COMPLETE
)
WARN
(
"Failed to update display devices, status %#x
\n
"
,
status
);
if
(
!
update_display_cache_from_registry
())
{
...
...
dlls/wineandroid.drv/init.c
View file @
9c93676d
...
...
@@ -269,7 +269,7 @@ LONG ANDROID_ChangeDisplaySettings( LPDEVMODEW displays, LPCWSTR primary_name, H
/***********************************************************************
* ANDROID_UpdateDisplayDevices
*/
BOOL
ANDROID_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
)
UINT
ANDROID_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
)
{
if
(
force
||
force_display_devices_refresh
)
{
...
...
@@ -295,9 +295,11 @@ BOOL ANDROID_UpdateDisplayDevices( const struct gdi_device_manager *device_manag
current
.
dmFields
|=
DM_POSITION
;
device_manager
->
add_modes
(
&
current
,
1
,
&
mode
,
param
);
force_display_devices_refresh
=
FALSE
;
return
STATUS_SUCCESS
;
}
return
TRU
E
;
return
STATUS_ALREADY_COMPLET
E
;
}
...
...
dlls/winemac.drv/display.c
View file @
9c93676d
...
...
@@ -1110,7 +1110,7 @@ static BOOL is_same_devmode(const DEVMODEW *a, const DEVMODEW *b)
a
->
dmDisplayFrequency
==
b
->
dmDisplayFrequency
;
}
BOOL
macdrv_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
)
UINT
macdrv_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
)
{
struct
macdrv_adapter
*
adapters
,
*
adapter
;
struct
macdrv_monitor
*
monitors
,
*
monitor
;
...
...
@@ -1120,7 +1120,7 @@ BOOL macdrv_UpdateDisplayDevices( const struct gdi_device_manager *device_manage
DEVMODEW
*
mode
,
*
modes
;
DWORD
len
;
if
(
!
force
&&
!
force_display_devices_refresh
)
return
TRU
E
;
if
(
!
force
&&
!
force_display_devices_refresh
)
return
STATUS_ALREADY_COMPLET
E
;
force_display_devices_refresh
=
FALSE
;
if
(
macdrv_get_displays
(
&
displays
,
&
display_count
))
...
...
@@ -1133,7 +1133,7 @@ BOOL macdrv_UpdateDisplayDevices( const struct gdi_device_manager *device_manage
if
(
macdrv_get_gpus
(
&
gpus
,
&
gpu_count
))
{
ERR
(
"could not get GPUs
\n
"
);
return
FALSE
;
return
STATUS_UNSUCCESSFUL
;
}
TRACE
(
"GPU count: %d
\n
"
,
gpu_count
);
...
...
@@ -1198,7 +1198,7 @@ BOOL macdrv_UpdateDisplayDevices( const struct gdi_device_manager *device_manage
macdrv_free_gpus
(
gpus
);
macdrv_free_displays
(
displays
);
return
TRUE
;
return
STATUS_SUCCESS
;
}
/***********************************************************************
...
...
dlls/winemac.drv/macdrv.h
View file @
9c93676d
...
...
@@ -129,7 +129,7 @@ extern LONG macdrv_ChangeDisplaySettings(LPDEVMODEW displays, LPCWSTR primary_na
extern
BOOL
macdrv_GetCurrentDisplaySettings
(
LPCWSTR
name
,
BOOL
is_primary
,
LPDEVMODEW
devmode
);
extern
INT
macdrv_GetDisplayDepth
(
LPCWSTR
name
,
BOOL
is_primary
);
extern
LRESULT
macdrv_ClipboardWindowProc
(
HWND
hwnd
,
UINT
msg
,
WPARAM
wp
,
LPARAM
lp
);
extern
BOOL
macdrv_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
extern
UINT
macdrv_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
);
extern
BOOL
macdrv_GetDeviceGammaRamp
(
PHYSDEV
dev
,
LPVOID
ramp
);
extern
BOOL
macdrv_SetDeviceGammaRamp
(
PHYSDEV
dev
,
LPVOID
ramp
);
...
...
dlls/winewayland.drv/display.c
View file @
9c93676d
...
...
@@ -24,6 +24,8 @@
#include "config.h"
#include "ntstatus.h"
#define WIN32_NO_STATUS
#include "waylanddrv.h"
#include "wine/debug.h"
...
...
@@ -275,7 +277,7 @@ static void wayland_add_device_modes(const struct gdi_device_manager *device_man
/***********************************************************************
* UpdateDisplayDevices (WAYLAND.@)
*/
BOOL
WAYLAND_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
UINT
WAYLAND_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
)
{
struct
wayland_output
*
output
;
...
...
@@ -283,7 +285,7 @@ BOOL WAYLAND_UpdateDisplayDevices(const struct gdi_device_manager *device_manage
struct
wl_array
output_info_array
;
struct
output_info
*
output_info
;
if
(
!
force
&&
!
force_display_devices_refresh
)
return
TRU
E
;
if
(
!
force
&&
!
force_display_devices_refresh
)
return
STATUS_ALREADY_COMPLET
E
;
TRACE
(
"force=%d force_refresh=%d
\n
"
,
force
,
force_display_devices_refresh
);
...
...
@@ -318,5 +320,5 @@ BOOL WAYLAND_UpdateDisplayDevices(const struct gdi_device_manager *device_manage
pthread_mutex_unlock
(
&
process_wayland
.
output_mutex
);
return
TRUE
;
return
STATUS_SUCCESS
;
}
dlls/winewayland.drv/waylanddrv.h
View file @
9c93676d
...
...
@@ -332,7 +332,7 @@ void WAYLAND_DestroyWindow(HWND hwnd);
void
WAYLAND_SetCursor
(
HWND
hwnd
,
HCURSOR
hcursor
);
void
WAYLAND_SetWindowText
(
HWND
hwnd
,
LPCWSTR
text
);
LRESULT
WAYLAND_SysCommand
(
HWND
hwnd
,
WPARAM
wparam
,
LPARAM
lparam
);
BOOL
WAYLAND_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
UINT
WAYLAND_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
);
LRESULT
WAYLAND_WindowMessage
(
HWND
hwnd
,
UINT
msg
,
WPARAM
wp
,
LPARAM
lp
);
void
WAYLAND_WindowPosChanged
(
HWND
hwnd
,
HWND
insert_after
,
UINT
swp_flags
,
...
...
dlls/winex11.drv/display.c
View file @
9c93676d
...
...
@@ -23,6 +23,9 @@
#endif
#include "config.h"
#include "ntstatus.h"
#define WIN32_NO_STATUS
#include "x11drv.h"
#include "wine/debug.h"
...
...
@@ -493,7 +496,7 @@ BOOL X11DRV_DisplayDevices_SupportEventHandlers(void)
static
BOOL
force_display_devices_refresh
;
BOOL
X11DRV_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
)
UINT
X11DRV_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
)
{
struct
x11drv_adapter
*
adapters
;
struct
gdi_monitor
*
monitors
;
...
...
@@ -503,13 +506,13 @@ BOOL X11DRV_UpdateDisplayDevices( const struct gdi_device_manager *device_manage
DEVMODEW
*
modes
;
UINT
mode_count
;
if
(
!
force
&&
!
force_display_devices_refresh
)
return
TRU
E
;
if
(
!
force
&&
!
force_display_devices_refresh
)
return
STATUS_ALREADY_COMPLET
E
;
force_display_devices_refresh
=
FALSE
;
TRACE
(
"via %s
\n
"
,
debugstr_a
(
host_handler
.
name
)
);
/* Initialize GPUs */
if
(
!
host_handler
.
get_gpus
(
&
gpus
,
&
gpu_count
,
TRUE
))
return
FALSE
;
if
(
!
host_handler
.
get_gpus
(
&
gpus
,
&
gpu_count
,
TRUE
))
return
STATUS_UNSUCCESSFUL
;
TRACE
(
"GPU count: %d
\n
"
,
gpu_count
);
for
(
gpu
=
0
;
gpu
<
gpu_count
;
gpu
++
)
...
...
@@ -558,7 +561,7 @@ BOOL X11DRV_UpdateDisplayDevices( const struct gdi_device_manager *device_manage
}
host_handler
.
free_gpus
(
gpus
,
gpu_count
);
return
TRUE
;
return
STATUS_SUCCESS
;
}
void
X11DRV_DisplayDevices_Init
(
BOOL
force
)
...
...
dlls/winex11.drv/x11drv.h
View file @
9c93676d
...
...
@@ -217,7 +217,7 @@ extern BOOL X11DRV_SystrayDockRemove( HWND hwnd );
extern
LONG
X11DRV_ChangeDisplaySettings
(
LPDEVMODEW
displays
,
LPCWSTR
primary_name
,
HWND
hwnd
,
DWORD
flags
,
LPVOID
lpvoid
);
extern
BOOL
X11DRV_GetCurrentDisplaySettings
(
LPCWSTR
name
,
BOOL
is_primary
,
LPDEVMODEW
devmode
);
extern
INT
X11DRV_GetDisplayDepth
(
LPCWSTR
name
,
BOOL
is_primary
);
extern
BOOL
X11DRV_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
extern
UINT
X11DRV_UpdateDisplayDevices
(
const
struct
gdi_device_manager
*
device_manager
,
BOOL
force
,
void
*
param
);
extern
BOOL
X11DRV_CreateDesktop
(
const
WCHAR
*
name
,
UINT
width
,
UINT
height
);
extern
BOOL
X11DRV_CreateWindow
(
HWND
hwnd
);
...
...
include/wine/gdi_driver.h
View file @
9c93676d
...
...
@@ -306,7 +306,7 @@ struct user_driver_funcs
LONG
(
*
pChangeDisplaySettings
)(
LPDEVMODEW
,
LPCWSTR
,
HWND
,
DWORD
,
LPVOID
);
BOOL
(
*
pGetCurrentDisplaySettings
)(
LPCWSTR
,
BOOL
,
LPDEVMODEW
);
INT
(
*
pGetDisplayDepth
)(
LPCWSTR
,
BOOL
);
BOOL
(
*
pUpdateDisplayDevices
)(
const
struct
gdi_device_manager
*
,
BOOL
,
void
*
);
UINT
(
*
pUpdateDisplayDevices
)(
const
struct
gdi_device_manager
*
,
BOOL
,
void
*
);
/* windowing functions */
BOOL
(
*
pCreateDesktop
)(
const
WCHAR
*
,
UINT
,
UINT
);
BOOL
(
*
pCreateWindow
)(
HWND
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment