[2/7] user32/edit: Invalidate if style changed after EM_SETREADONLY
Nikolay Sivov
bunglehead at gmail.com
Sun Sep 20 15:02:14 CDT 2009
Fixes http://bugs.winehq.org/show_bug.cgi?id=20040
Checked with ControlSpy on XP SP2.
Changelog:
- Invalidate if style changed after EM_SETREADONLY
>From c3b3b1d393a5604ae6da768c03e51f7eec94e76c Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Sat, 19 Sep 2009 22:32:04 +0400
Subject: Invalidate if style changed after EM_SETREADONLY
---
dlls/user32/edit.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/dlls/user32/edit.c b/dlls/user32/edit.c
index 5a62bc2..8ad945b 100644
--- a/dlls/user32/edit.c
+++ b/dlls/user32/edit.c
@@ -5011,6 +5011,9 @@ static LRESULT EditWndProc_common( HWND hwnd, UINT msg,
case EM_SETREADONLY16:
case EM_SETREADONLY:
+ {
+ DWORD old_style = es->style;
+
if (wParam) {
SetWindowLongW( hwnd, GWL_STYLE,
GetWindowLongW( hwnd, GWL_STYLE ) | ES_READONLY );
@@ -5020,8 +5023,13 @@ static LRESULT EditWndProc_common( HWND hwnd, UINT msg,
GetWindowLongW( hwnd, GWL_STYLE ) & ~ES_READONLY );
es->style &= ~ES_READONLY;
}
- result = 1;
+
+ if (old_style ^ es->style)
+ InvalidateRect(es->hwndSelf, NULL, TRUE);
+
+ result = 1;
break;
+ }
case EM_SETWORDBREAKPROC16:
EDIT_EM_SetWordBreakProc16(es, (EDITWORDBREAKPROC16)lParam);
--
1.5.6.5
More information about the wine-patches
mailing list