diff options
| author | Jan Djärv | 2002-10-05 23:36:29 +0000 |
|---|---|---|
| committer | Jan Djärv | 2002-10-05 23:36:29 +0000 |
| commit | f7d4343819e4d205ce7c6c6115ed237ef454d7e9 (patch) | |
| tree | 389bb858e43c676a280f222ab4b8709ce2874150 /src | |
| parent | 928ef6d9867c347dcd346686d5b717563c7b7a6a (diff) | |
| download | emacs-f7d4343819e4d205ce7c6c6115ed237ef454d7e9.tar.gz emacs-f7d4343819e4d205ce7c6c6115ed237ef454d7e9.zip | |
* xterm.c (XTread_socket): Fix from 2002-10-03 didn't cover all
cases. The correct fix is to pass ReparentNotify to Xt.
The shell widget interprets ConfigureNotify differently depending
on if it has been reparented or not.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 7 | ||||
| -rw-r--r-- | src/xterm.c | 27 |
2 files changed, 8 insertions, 26 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9508a0daef4..a609251ed08 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2002-10-06 Jan D. <jan.h.d@swipnet.se> | ||
| 2 | |||
| 3 | * xterm.c (XTread_socket): Fix from 2002-10-03 didn't cover all | ||
| 4 | cases. The correct fix is to pass ReparentNotify to Xt. | ||
| 5 | The shell widget interprets ConfigureNotify differently depending | ||
| 6 | on if it has been reparented or not. | ||
| 7 | |||
| 1 | 2002-10-05 Markus Rost <rost@math.ohio-state.edu> | 8 | 2002-10-05 Markus Rost <rost@math.ohio-state.edu> |
| 2 | 9 | ||
| 3 | * editfns.c (Fformat_time_string): Doc fix. | 10 | * editfns.c (Fformat_time_string): Doc fix. |
diff --git a/src/xterm.c b/src/xterm.c index e457d6e4519..eded4c8d9fa 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -10443,6 +10443,7 @@ XTread_socket (sd, bufp, numchars, expected) | |||
| 10443 | x_real_positions (f, &x, &y); | 10443 | x_real_positions (f, &x, &y); |
| 10444 | f->output_data.x->left_pos = x; | 10444 | f->output_data.x->left_pos = x; |
| 10445 | f->output_data.x->top_pos = y; | 10445 | f->output_data.x->top_pos = y; |
| 10446 | goto OTHER; | ||
| 10446 | } | 10447 | } |
| 10447 | break; | 10448 | break; |
| 10448 | 10449 | ||
| @@ -11173,32 +11174,6 @@ XTread_socket (sd, bufp, numchars, expected) | |||
| 11173 | f->output_data.x->win_gravity = NorthWestGravity; | 11174 | f->output_data.x->win_gravity = NorthWestGravity; |
| 11174 | x_wm_set_size_hint (f, (long) 0, 0); | 11175 | x_wm_set_size_hint (f, (long) 0, 0); |
| 11175 | } | 11176 | } |
| 11176 | #ifdef USE_MOTIF | ||
| 11177 | /* Some window managers pass (0,0) as the location of | ||
| 11178 | the window, and the Motif event handler stores it | ||
| 11179 | in the emacs widget, which messes up Motif menus. */ | ||
| 11180 | if (event.xconfigure.x == 0 && event.xconfigure.y == 0) | ||
| 11181 | { | ||
| 11182 | Window child; | ||
| 11183 | int count; | ||
| 11184 | |||
| 11185 | /* We can get a ConfigureNotify because of a resize, | ||
| 11186 | so we can't just take x and y from the widget. | ||
| 11187 | Since this event may come on something else than | ||
| 11188 | the top level window, we can't use x_real_position | ||
| 11189 | either. So we get the root window x/y for 0/0 in | ||
| 11190 | the window in the event. */ | ||
| 11191 | count = x_catch_errors (FRAME_X_DISPLAY (f)); | ||
| 11192 | XTranslateCoordinates (FRAME_X_DISPLAY (f), | ||
| 11193 | event.xconfigure.window, | ||
| 11194 | FRAME_X_DISPLAY_INFO (f)->root_window, | ||
| 11195 | 0, 0, | ||
| 11196 | &event.xconfigure.x, | ||
| 11197 | &event.xconfigure.y, | ||
| 11198 | &child); | ||
| 11199 | x_uncatch_errors (FRAME_X_DISPLAY (f), count); | ||
| 11200 | } | ||
| 11201 | #endif /* USE_MOTIF */ | ||
| 11202 | } | 11177 | } |
| 11203 | goto OTHER; | 11178 | goto OTHER; |
| 11204 | 11179 | ||