diff options
| author | Stefan Monnier | 2014-03-20 10:09:37 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2014-03-20 10:09:37 -0400 |
| commit | caecb91c581d4ec0fc008a35005d8009f43087ee (patch) | |
| tree | a1ec19db2c583f3dfea1c53b26c6936f978bbad9 /src/xterm.c | |
| parent | 7b9cb5448748b75a15840b7fba080cdcb341d0f7 (diff) | |
| download | emacs-caecb91c581d4ec0fc008a35005d8009f43087ee.tar.gz emacs-caecb91c581d4ec0fc008a35005d8009f43087ee.zip | |
* src/frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date.
* src/xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame.
* src/frame.c (frame_garbaged): Make "docstring" more precise.
Diffstat (limited to 'src/xterm.c')
| -rw-r--r-- | src/xterm.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/src/xterm.c b/src/xterm.c index 8ae26344f95..1136b671822 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -5667,7 +5667,7 @@ static struct input_event *current_hold_quit; | |||
| 5667 | 5667 | ||
| 5668 | /* This is the filter function invoked by the GTK event loop. | 5668 | /* This is the filter function invoked by the GTK event loop. |
| 5669 | It is invoked before the XEvent is translated to a GdkEvent, | 5669 | It is invoked before the XEvent is translated to a GdkEvent, |
| 5670 | so we have a chance to act on the event before GTK. */ | 5670 | so we have a chance to act on the event before GTK. */ |
| 5671 | static GdkFilterReturn | 5671 | static GdkFilterReturn |
| 5672 | event_handler_gdk (GdkXEvent *gxev, GdkEvent *ev, gpointer data) | 5672 | event_handler_gdk (GdkXEvent *gxev, GdkEvent *ev, gpointer data) |
| 5673 | { | 5673 | { |
| @@ -5696,9 +5696,9 @@ event_handler_gdk (GdkXEvent *gxev, GdkEvent *ev, gpointer data) | |||
| 5696 | if (! dpyinfo) | 5696 | if (! dpyinfo) |
| 5697 | current_finish = X_EVENT_NORMAL; | 5697 | current_finish = X_EVENT_NORMAL; |
| 5698 | else | 5698 | else |
| 5699 | current_count += | 5699 | current_count |
| 5700 | handle_one_xevent (dpyinfo, xev, ¤t_finish, | 5700 | += handle_one_xevent (dpyinfo, xev, ¤t_finish, |
| 5701 | current_hold_quit); | 5701 | current_hold_quit); |
| 5702 | } | 5702 | } |
| 5703 | else | 5703 | else |
| 5704 | current_finish = x_dispatch_event (xev, xev->xany.display); | 5704 | current_finish = x_dispatch_event (xev, xev->xany.display); |
| @@ -6142,14 +6142,6 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 6142 | if (f) | 6142 | if (f) |
| 6143 | { | 6143 | { |
| 6144 | bool iconified = FRAME_ICONIFIED_P (f); | 6144 | bool iconified = FRAME_ICONIFIED_P (f); |
| 6145 | /* wait_reading_process_output will notice this and update | ||
| 6146 | the frame's display structures. | ||
| 6147 | If we where iconified, we should not set garbaged, | ||
| 6148 | because that stops redrawing on Expose events. This looks | ||
| 6149 | bad if we are called from a recursive event loop | ||
| 6150 | (x_dispatch_event), for example when a dialog is up. */ | ||
| 6151 | if (!iconified) | ||
| 6152 | SET_FRAME_GARBAGED (f); | ||
| 6153 | 6145 | ||
| 6154 | /* Check if fullscreen was specified before we where mapped the | 6146 | /* Check if fullscreen was specified before we where mapped the |
| 6155 | first time, i.e. from the command line. */ | 6147 | first time, i.e. from the command line. */ |
| @@ -6700,7 +6692,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 6700 | 6692 | ||
| 6701 | #ifdef USE_GTK | 6693 | #ifdef USE_GTK |
| 6702 | /* GTK creates windows but doesn't map them. | 6694 | /* GTK creates windows but doesn't map them. |
| 6703 | Only get real positions when mapped. */ | 6695 | Only get real positions when mapped. */ |
| 6704 | if (FRAME_GTK_OUTER_WIDGET (f) | 6696 | if (FRAME_GTK_OUTER_WIDGET (f) |
| 6705 | && gtk_widget_get_mapped (FRAME_GTK_OUTER_WIDGET (f))) | 6697 | && gtk_widget_get_mapped (FRAME_GTK_OUTER_WIDGET (f))) |
| 6706 | #endif | 6698 | #endif |