[PATCH 7/7] winemac.drv: Handle display device change events.
Zhiyi Zhang
zzhang at codeweavers.com
Mon Apr 22 07:14:11 CDT 2019
Signed-off-by: Zhiyi Zhang <zzhang at codeweavers.com>
---
dlls/winemac.drv/display.c | 6 ++++--
dlls/winemac.drv/macdrv.h | 2 +-
dlls/winemac.drv/macdrv_main.c | 2 +-
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/winemac.drv/display.c b/dlls/winemac.drv/display.c
index 8b1ae523ee..2b6f671140 100644
--- a/dlls/winemac.drv/display.c
+++ b/dlls/winemac.drv/display.c
@@ -1460,6 +1460,8 @@ void macdrv_displays_changed(const macdrv_event *event)
free_display_mode_descriptor(desc);
CGDisplayModeRelease(mode);
+ macdrv_init_display_devices(TRUE);
+
if (is_original && retina_enabled)
{
width *= 2;
@@ -1759,7 +1761,7 @@ static void cleanup_devices(void)
*
* Return FALSE on failure and TRUE on success.
*/
-BOOL macdrv_init_display_devices(void)
+BOOL macdrv_init_display_devices(BOOL force)
{
struct macdrv_gpu *gpus = NULL;
struct macdrv_adapter *adapters = NULL;
@@ -1781,7 +1783,7 @@ BOOL macdrv_init_display_devices(void)
goto fail;
/* Ensure only one thread is initializing the registry and avoid unnecessary reinit */
- if (disposition != REG_CREATED_NEW_KEY)
+ if (!force && disposition != REG_CREATED_NEW_KEY)
{
ret = TRUE;
goto fail;
diff --git a/dlls/winemac.drv/macdrv.h b/dlls/winemac.drv/macdrv.h
index dca89b04f0..8519a1607f 100644
--- a/dlls/winemac.drv/macdrv.h
+++ b/dlls/winemac.drv/macdrv.h
@@ -223,7 +223,7 @@ extern CGImageRef create_cgimage_from_icon_bitmaps(HDC hdc, HANDLE icon, HBITMAP
extern void macdrv_status_item_mouse_move(const macdrv_event *event) DECLSPEC_HIDDEN;
extern void check_retina_status(void) DECLSPEC_HIDDEN;
-extern BOOL macdrv_init_display_devices(void) DECLSPEC_HIDDEN;
+extern BOOL macdrv_init_display_devices(BOOL force) DECLSPEC_HIDDEN;
/**************************************************************************
* Mac IME driver
diff --git a/dlls/winemac.drv/macdrv_main.c b/dlls/winemac.drv/macdrv_main.c
index 0779952e9a..7d82e6fd3f 100644
--- a/dlls/winemac.drv/macdrv_main.c
+++ b/dlls/winemac.drv/macdrv_main.c
@@ -299,7 +299,7 @@ static BOOL process_attach(void)
return FALSE;
}
- if (!macdrv_init_display_devices())
+ if (!macdrv_init_display_devices(FALSE))
return FALSE;
return TRUE;
--
2.15.2 (Apple Git-101.1)
More information about the wine-devel
mailing list