diff options
| author | Eli Zaretskii | 2013-07-26 12:59:59 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2013-07-26 12:59:59 +0300 |
| commit | a8f93651727e5497cb8c0b992da0030f698afff4 (patch) | |
| tree | 823b21ee17c0ae49f26bc6f92ce5ad6f5a931b4e /src | |
| parent | 59070b327cdccefe52338abcdb7e3ec957fafef3 (diff) | |
| download | emacs-a8f93651727e5497cb8c0b992da0030f698afff4.tar.gz emacs-a8f93651727e5497cb8c0b992da0030f698afff4.zip | |
Fix bug #14841 with invisible frames on MS-Windows.
src/w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame
being re-exposed only if it didn't ask to become visible.
<WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it
was previously iconified.
(x_iconify_frame): Mark the frame iconified.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/w32term.c | 11 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 2b105e2405e..59eb16a81e9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2013-07-26 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * w32term.c (w32_read_socket) <WM_EMACS_PAINT>: Warn about frame | ||
| 4 | being re-exposed only if it didn't ask to become visible. | ||
| 5 | <WM_SIZE>: Under SIZE_RESTORED, only set the frame visible if it | ||
| 6 | was previously iconified. (Bug#14841) | ||
| 7 | (x_iconify_frame): Mark the frame iconified. | ||
| 8 | |||
| 1 | 2013-07-26 Paul Eggert <eggert@cs.ucla.edu> | 9 | 2013-07-26 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 10 | ||
| 3 | Fix minor problems found by static checking. | 11 | Fix minor problems found by static checking. |
diff --git a/src/w32term.c b/src/w32term.c index 2fe3fe07462..0b22fd178e4 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -4360,8 +4360,9 @@ w32_read_socket (struct terminal *terminal, | |||
| 4360 | SET_FRAME_VISIBLE (f, 1); | 4360 | SET_FRAME_VISIBLE (f, 1); |
| 4361 | SET_FRAME_ICONIFIED (f, 0); | 4361 | SET_FRAME_ICONIFIED (f, 0); |
| 4362 | SET_FRAME_GARBAGED (f); | 4362 | SET_FRAME_GARBAGED (f); |
| 4363 | DebPrint (("frame %p (%s) reexposed by WM_PAINT\n", f, | 4363 | if (!f->output_data.w32->asked_for_visible) |
| 4364 | SDATA (f->name))); | 4364 | DebPrint (("frame %p (%s) reexposed by WM_PAINT\n", f, |
| 4365 | SDATA (f->name))); | ||
| 4365 | 4366 | ||
| 4366 | /* WM_PAINT serves as MapNotify as well, so report | 4367 | /* WM_PAINT serves as MapNotify as well, so report |
| 4367 | visibility changes properly. */ | 4368 | visibility changes properly. */ |
| @@ -4819,7 +4820,8 @@ w32_read_socket (struct terminal *terminal, | |||
| 4819 | { | 4820 | { |
| 4820 | bool iconified = FRAME_ICONIFIED_P (f); | 4821 | bool iconified = FRAME_ICONIFIED_P (f); |
| 4821 | 4822 | ||
| 4822 | SET_FRAME_VISIBLE (f, 1); | 4823 | if (iconified) |
| 4824 | SET_FRAME_VISIBLE (f, 1); | ||
| 4823 | SET_FRAME_ICONIFIED (f, 0); | 4825 | SET_FRAME_ICONIFIED (f, 0); |
| 4824 | 4826 | ||
| 4825 | /* wait_reading_process_output will notice this | 4827 | /* wait_reading_process_output will notice this |
| @@ -6129,6 +6131,9 @@ x_iconify_frame (struct frame *f) | |||
| 6129 | /* Simulate the user minimizing the frame. */ | 6131 | /* Simulate the user minimizing the frame. */ |
| 6130 | SendMessage (FRAME_W32_WINDOW (f), WM_SYSCOMMAND, SC_MINIMIZE, 0); | 6132 | SendMessage (FRAME_W32_WINDOW (f), WM_SYSCOMMAND, SC_MINIMIZE, 0); |
| 6131 | 6133 | ||
| 6134 | SET_FRAME_VISIBLE (f, 0); | ||
| 6135 | SET_FRAME_ICONIFIED (f, 1); | ||
| 6136 | |||
| 6132 | unblock_input (); | 6137 | unblock_input (); |
| 6133 | } | 6138 | } |
| 6134 | 6139 | ||