DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 47PEuNbm990377 Authentication-Results: delorie.com; dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=X8raW6Fg X-Recipient: archive-cygwin AT delorie DOT com DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 83C563861810 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com; s=default; t=1724597781; bh=t9qXXOKqpVkhW+zm8gu/A73SFI/YfAwVFYdFklmWXM8=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=X8raW6FgP1y3fnA8+z/z4h8bQPp1No8HIfzXmhXjQsE4Z/E5Px90EIzyxldMwCP4G byCGkecm9NhkS4gZr0ZF7iboaoIMC2YCoqxFN0GqbZkhyHB5/ZRUQ2rcS1of5XK5vy II6R9PeIvaH6BSR5FOu18Sx3XE+jPcEvIj0tNnHM= X-Original-To: cygwin AT cygwin DOT com Delivered-To: cygwin AT cygwin DOT com DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 32866386076A ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 32866386076A ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1724597717; cv=pass; b=UTKvV8eK2aFId4rfrGl/tRIPxUHt+Sxya1mu5/l5zKsURxb6+oDchVnqDCZMsZ34vxlNFmWSgaFJbk+l+LkClCJw5D1DHXo9zcltk59uQ/ih9AFwpAm2MmXv+k/Sec1vF507rGQEafqkT9q0dJcohzyaBAZKJUWzTlBeqOcTLls= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1724597717; c=relaxed/simple; bh=4bKbmlDrobk4m1erXHkEoLmltvMLrCaWLEin/a7RCvM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Pt/trfMoYnx3cuhx6jdeCn+0P8jZiHjCgQR5p6GrfASO6mMQzrz9GTH6JAuLM7kDtNV12mB66HcJNskKh8qQ7bP27CP0x3hbhtkCEYSUGSfywwk8BK9dEGKA4+5u5NIj67lCgeiXFwYrFsLUlUfi8YtpR+4tatjewzC6clkW4/o= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tKg0277fPoaCXez/roZGqR/Sjx4Yyotk09YzsVgTPgdQciiXdgsxtFt3uE2nXoxGXOjLUuaFRHRoNcByUjhpO0y2nHPeAgH9mpp0TdYixQiJHhqJ4VYq1XdxAwirh/W98+xDv3sgRkONWHshmr64LhKKgp66+fZ9gmjtuKRmsfcsieFHl7YG1ndMu4+MMHow6skAjAG0gUhrGYTHdIyPcxeA/epg0NyvznPoZvjE36rIA7HVKaSLqzhfgXHUKMEvxCtnZPMvoz6dEWZhNF1pzQOU3EZtHO8mwuVui74Cuqse7zdI9dyHqDzP/2I++Q4/R0774ddxk1sO91Jj+P5gvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4bKbmlDrobk4m1erXHkEoLmltvMLrCaWLEin/a7RCvM=; b=KB3p0iGFb0k4PZdeNZw9tVr5m6FNZhrEYMcOU5bQ40gzYwObsUEQD6jln6cD7pTsR3WCjze8XOdG+1SSaocMkMRKKti87DtCI/VVQ1MY+Cz9nGxpB/ZUGhu+1KW+lvhw2b/XxcM+oZwmdveFqcaH3kmsQBoof8Y/xsB6RP+xdvk2QfGerHE3Y7pJh1rG0jf0fstwuevq7jfp2Z10hfSAGieC5oBb5jfzrN93OlqafNB0MU2XwhIgz/avDizA/AVDheByh4ZrjHy6Sk6ILQS6ggXjD4Rsbp715pTDh+wDwis6rTPWTM/VdQo6nrqxaAh746z4tVC2mWu3NuVTVh3g/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none To: "cygwin AT cygwin DOT com" Subject: Improvements on handling DPI changed situations. Thread-Topic: Improvements on handling DPI changed situations. Thread-Index: AQHa9v3NgWuWzYp2AUe1czMD8mal7A== Date: Sun, 25 Aug 2024 14:55:09 +0000 Message-ID: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [CSlrxadqea6qVQ7ou9FYjBMPi7/g+dwc4UExRD7lEor8yEURovq9paZ5K1RA79ea] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR08MB3984:EE_|CH3PR08MB10289:EE_ x-ms-office365-filtering-correlation-id: 5ab5dc71-659d-4b85-3bbc-08dcc515ea34 x-microsoft-antispam: BCL:0; ARA:14566002|15080799006|15030799003|19110799003|8060799006|461199028|440099028|3412199025|102099032|3420499032|3430499032; x-microsoft-antispam-message-info: 4W75ULl3WScGQjJUXq209vlL3bWOSuLcnS9RTPRScy9xDjbrl1e5d5EzBIpkPOjDasXsNHGNiRC1p+kCD3yxhfL+Wq8M/bKDfraPbyLKSuqV4yooimbFhB1BJZB1pUaLYg69A/R+a5ng0uNgjY9Ns31x+WUIAkvRlvmTzgkJKb9TYHPd8dq48BwQpXLJgDVC5PvTlp+kMOZwdeKhAgtBnkG3dDekwz5mJsdzyvWWcp0f2cJH00bsrdfBiVjbWgcC5kVJyEztMR+N3cWMPHTvHKQGY4dpcfqH2HuADZmK2BjCLk5VyAe/Pz8Eiqaypgxt1sayPbXo+K0Htj0mSNc3EigWwwb/4ND9zfYk3n+Nkhd7+TSd+olZ7GIjnsrVAn6HZlyqFC8MKvz38YptkQA/16QBAet1WypZ/saUKNf16xuctgNYaMNpK4nEbXlkNM7Pcx8a49JRp2WCNhU1ttgYOvjVzLjOUfu+QUEuYO2c9n+FvSHl7+r2y5/oHkQwzaihG7+al5uFM/pHxGmdcPFJ4IcL7Exu6Yg+jSXUot1uzD2UrFrzcbDYfu9i/rQsExtd84v6cPriezYnm97brgupRX8KgQ6zOBLYHGKY7ulnaL9G6Ar/JpeL7IWvMHeaTieR7TO0gTx+MVKDiLr0X3fYalgBtm9nu+yCvWqU7fylcvAx0MvxFqRVRu1U1IKDDjfL0winrixqki5FUbDwdKQU2Q== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?RHRMTWJmQzZKbldhQStkMjVCS3cxdEdVenlBMHh1N1hGbWltdlB1UHNOTXNx?= =?gb2312?B?SUVxU1JMZWtFTUFKZHFwVVF4R1A2WjdpZE5nVnVsTkdzUFpTYzdGRTRrLzl1?= =?gb2312?B?MjEzcDJqSjRxYXVCclRldjFlZTlva1QzYk84SmdkVDRsWnRkcHpzZVMyVkRL?= =?gb2312?B?dmVhZ3UxaGpwbERMR1dSajN0THp2T1hscUZpcnc2RzdibG9LOFc2eVFXSndp?= =?gb2312?B?ZDJZbzVXM1JVMXNZTzRCZDBJQ29wazk2ZC9zMmNManNRdUt5Ym5HcnRpL2Q0?= =?gb2312?B?azg3bUtGVVh4aVpIVjhjMGVKUy9pMVBzRVMwM1dSM2FFUjNrNEdiVmRHUUNq?= =?gb2312?B?V1p1Q3VSQ0RLSVBPbm45NUV2aWlJWHQ4aVBlRldaSFhGai93dDlkZ1EwdVFj?= =?gb2312?B?d0hSL1RiSmhDRm9idzJ4RzJWQnNlQ1A3NTZKcmJ5NGV5ajNhOC82ZUFtUXV4?= =?gb2312?B?M0d0ZWQ4dzQ5TzR3TGZBaXQ1TFZzcWJCdjVieDFueHFHV0p3OFlHakVZQ1Ba?= =?gb2312?B?OW5iVDVDREIzNXNlMS9seUhnSDlYdTVVU2p2TzVOdVlxYytSR211U0xNTUUx?= =?gb2312?B?ZGk5M3hlSjQzS3MyTHNCN3ErSmxFMDhuVkVzSXg3WjcyMnpSelh5US9oTmhh?= =?gb2312?B?MlI0dWZJMVFsVkphYWpzektLcTJEaCtnZkZwVGZ5NCtHVnlsVEk2QTlldkpP?= =?gb2312?B?UkcxalRQTTBwSXdxdjBxMGJiKzRUUkJJdVhqTlpWNTVKMEp1N2FGRzR6andh?= =?gb2312?B?VHcrZkdSUG16YjkrUm1VUFJSNGtLaHFvOGJPUEd2eXFxY01WQ3pLdW8zNE1i?= =?gb2312?B?RyttclRkZVhBMHpTemc1c1NNdnZjVWlIMTJrSVgvdjJ5VG9DWjZ2SjZZTXRT?= =?gb2312?B?bkl4Z1ZyeWF5MVM3SlB5L0VIU09XTHpuQXNsWWpXTEhzRmxaVzI4NXdaSUw4?= =?gb2312?B?ak9BTjhGV1hzVUQzU1k2WE5Wa0xyUkkvc2ZyYUpGYXIwdXJISFNnSnk4M0NG?= =?gb2312?B?NDlmZWJyOW1oVlI5UmJ0ZkMxRFlOZGxVMlNzdlZNZ0RKS0NwS0tvb1AxTkZN?= =?gb2312?B?NkRmbnJ2dHowKytEc3NIb0trWEtaMktFTDBZNDJUQWZRNXNHbzdRWGNkU0ZY?= =?gb2312?B?emlVWE5KYmc5ZXB1dEJMVlA4R2oxRjFEUlYxYVlPRzkxaWIzSnJWOVNoeVJL?= =?gb2312?B?b2V5SGFNZEhWRjBXT21NTFUyTUVkOHpKSEVtTWxSTFF2MnBjbWRvTlFWcTdG?= =?gb2312?B?MTFoUUo0ZEFQQllRdVlnZW8vbWNpZ3JEc0hkV1RvMUhPRGJJYTRPV0pzc3p0?= =?gb2312?B?Y3BOdDhpSGtOaFJrNWJmY1pVaHdheC8wQ0x2TzFrUWViVWlUR3l6Y1l0MGJs?= =?gb2312?B?T0lrL3B5OFNCb1BzQVhRQS9LakpGV1ZtbUhWNVFVUEN5MjVjaEVTRUE3ODNO?= =?gb2312?B?dnVXYnNMQ0NaRXhwOE8vNVlLSkpGb1FXanRLY1JZR0dTVnRRcENvY2pEMVNp?= =?gb2312?B?MWpWZjRGSm1oNTArcXczOWh1QUo3R0U2SGVXb1NRcmluVDArTldHRHN1VWxI?= =?gb2312?B?V1Z4UE83TGREYm1MYjR5ZllUT1VEdEFUWFZaY0tFdXhkMVlkVVRZNXRJRXE0?= =?gb2312?B?bDBHcVFaVUs3bkREZ0pIbUJ6MklTU2dxWU9BMFhra1BWRk9FRHVKR0t0MGEv?= =?gb2312?B?ZWJDM21HKzFoTElKdzZNTnR6NVhGSU16cysycU5ubjZxd0JLWExTWnM5VnJk?= =?gb2312?Q?3Tju8rc1PznvEsDNzLKGj9G1D21gGkzv/Fgvw4T?= MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR08MB3984.namprd08.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 5ab5dc71-659d-4b85-3bbc-08dcc515ea34 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Aug 2024 14:55:09.3687 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR08MB10289 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, HTML_MESSAGE, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.30 X-BeenThere: cygwin AT cygwin DOT com X-Mailman-Version: 2.1.30 List-Id: General Cygwin discussions and problem reports List-Archive: List-Post: List-Help: List-Subscribe: , From: Xun Li via Cygwin Reply-To: Xun Li Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "Cygwin" After commit 64f8b310 enables the setup to handle DPI changed situation (e.g. Change the zoom of current display or move the window to another display with different zoom level), here is the extra code to better handling it. It is required to make the window size not too big or too small after DPI changed. From c8f8291b90fb538e10bc6b2fa2ddb801da5823fd Mon Sep 17 00:00:00 2001 From: Li Xun Date: Sun, 25 Aug 2024 22:44:54 +0800 Subject: [PATCH] Handle WM_DPICHANGED Since Per Moniter V2 DPI Awareness is declared in manifest, we need to handle it to make the size of window being correct. --- proppage.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/proppage.cc b/proppage.cc index d177f2d..76ec873 100644 --- a/proppage.cc +++ b/proppage.cc @@ -27,6 +27,11 @@ #include "Exception.h" #include "LogFile.h" +// Old version of Windows SDK doesn't define it. +#ifndef WM_DPICHANGED +#define WM_DPICHANGED 0x02E0 +#endif + bool PropertyPage::DoOnceForSheet = true; /* @@ -361,6 +366,21 @@ PropertyPage::DialogProc (UINT message, WPARAM wParam, LPARAM lParam) // similar delegation as with WM_MOUSEWHEEL return OnTimerMessage (message, wParam, lParam); + case WM_DPICHANGED: + { + // The following code is used to support the Per Monitor V2 DPI Awareness + // declared in manifest. Without this, the window will be too small + // or too big after DPI changed. + RECT* const prcNewWindow = (RECT*)lParam; + SetWindowPos(GetHWND (), + NULL, + prcNewWindow -> left, + prcNewWindow -> top, + prcNewWindow -> right - prcNewWindow -> left, + prcNewWindow -> bottom - prcNewWindow -> top, + SWP_NOZORDER | SWP_NOACTIVATE); + return TRUE; + } default: break; } -- 2.46.0.windows.1 -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple