diff options
| author | Yuuki Harano | 2021-05-05 19:00:37 +0900 |
|---|---|---|
| committer | Yuuki Harano | 2021-05-05 19:00:37 +0900 |
| commit | 5b97b98daa7f61311c3662beecbeca7037505992 (patch) | |
| tree | fc86c0a5fd61fdbd97451eae10ff081f2293eb86 /src | |
| parent | 704b765eaaee82176e26ab084c26d65311fd46d3 (diff) | |
| parent | 58b0bcd16df83d914fe4d538e6be88cac9574906 (diff) | |
| download | emacs-5b97b98daa7f61311c3662beecbeca7037505992.tar.gz emacs-5b97b98daa7f61311c3662beecbeca7037505992.zip | |
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk
Diffstat (limited to 'src')
| -rw-r--r-- | src/buffer.c | 9 | ||||
| -rw-r--r-- | src/callproc.c | 13 | ||||
| -rw-r--r-- | src/gtkutil.c | 2 | ||||
| -rw-r--r-- | src/indent.c | 5 | ||||
| -rw-r--r-- | src/nsterm.m | 36 | ||||
| -rw-r--r-- | src/verbose.mk.in | 2 | ||||
| -rw-r--r-- | src/xfns.c | 9 | ||||
| -rw-r--r-- | src/xterm.c | 86 |
8 files changed, 108 insertions, 54 deletions
diff --git a/src/buffer.c b/src/buffer.c index 9e417bf555c..df302db0e52 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -5673,9 +5673,12 @@ Linefeed indents to this column in Fundamental mode. */); | |||
| 5673 | DEFVAR_PER_BUFFER ("tab-width", &BVAR (current_buffer, tab_width), | 5673 | DEFVAR_PER_BUFFER ("tab-width", &BVAR (current_buffer, tab_width), |
| 5674 | Qintegerp, | 5674 | Qintegerp, |
| 5675 | doc: /* Distance between tab stops (for display of tab characters), in columns. | 5675 | doc: /* Distance between tab stops (for display of tab characters), in columns. |
| 5676 | NOTE: This controls the display width of a TAB character, and not | 5676 | This controls the width of a TAB character on display. |
| 5677 | the size of an indentation step. | 5677 | The value should be a positive integer. |
| 5678 | This should be an integer greater than zero. */); | 5678 | Note that this variable doesn't necessarily affect the size of the |
| 5679 | indentation step. However, if the major mode's indentation facility | ||
| 5680 | inserts one or more TAB characters, this variable will affect the | ||
| 5681 | indentation step as well, even if `indent-tabs-mode' is non-nil. */); | ||
| 5679 | 5682 | ||
| 5680 | DEFVAR_PER_BUFFER ("ctl-arrow", &BVAR (current_buffer, ctl_arrow), Qnil, | 5683 | DEFVAR_PER_BUFFER ("ctl-arrow", &BVAR (current_buffer, ctl_arrow), Qnil, |
| 5681 | doc: /* Non-nil means display control chars with uparrow. | 5684 | doc: /* Non-nil means display control chars with uparrow. |
diff --git a/src/callproc.c b/src/callproc.c index 5aa2cbafb4c..e44e243680d 100644 --- a/src/callproc.c +++ b/src/callproc.c | |||
| @@ -276,6 +276,9 @@ usage: (call-process PROGRAM &optional INFILE DESTINATION DISPLAY &rest ARGS) * | |||
| 276 | else | 276 | else |
| 277 | infile = build_string (NULL_DEVICE); | 277 | infile = build_string (NULL_DEVICE); |
| 278 | 278 | ||
| 279 | /* Remove "/:" from INFILE. */ | ||
| 280 | infile = remove_slash_colon (infile); | ||
| 281 | |||
| 279 | encoded_infile = ENCODE_FILE (infile); | 282 | encoded_infile = ENCODE_FILE (infile); |
| 280 | 283 | ||
| 281 | filefd = emacs_open (SSDATA (encoded_infile), O_RDONLY, 0); | 284 | filefd = emacs_open (SSDATA (encoded_infile), O_RDONLY, 0); |
| @@ -439,9 +442,15 @@ call_process (ptrdiff_t nargs, Lisp_Object *args, int filefd, | |||
| 439 | current_dir = encode_current_directory (); | 442 | current_dir = encode_current_directory (); |
| 440 | 443 | ||
| 441 | if (STRINGP (error_file)) | 444 | if (STRINGP (error_file)) |
| 442 | error_file = ENCODE_FILE (error_file); | 445 | { |
| 446 | error_file = remove_slash_colon (error_file); | ||
| 447 | error_file = ENCODE_FILE (error_file); | ||
| 448 | } | ||
| 443 | if (STRINGP (output_file)) | 449 | if (STRINGP (output_file)) |
| 444 | output_file = ENCODE_FILE (output_file); | 450 | { |
| 451 | output_file = remove_slash_colon (output_file); | ||
| 452 | output_file = ENCODE_FILE (output_file); | ||
| 453 | } | ||
| 445 | 454 | ||
| 446 | display_p = INTERACTIVE && nargs >= 4 && !NILP (args[3]); | 455 | display_p = INTERACTIVE && nargs >= 4 && !NILP (args[3]); |
| 447 | 456 | ||
diff --git a/src/gtkutil.c b/src/gtkutil.c index 81033b2b12b..7760c8ed0a2 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -93,8 +93,6 @@ typedef struct pgtk_output xp_output; | |||
| 93 | gtk_font_selection_dialog_set_font_name (x, y) | 93 | gtk_font_selection_dialog_set_font_name (x, y) |
| 94 | #endif | 94 | #endif |
| 95 | 95 | ||
| 96 | #define gdk_window_get_geometry(w, a, b, c, d) \ | ||
| 97 | gdk_window_get_geometry (w, a, b, c, d, 0) | ||
| 98 | #define gtk_box_new(ori, spacing) \ | 96 | #define gtk_box_new(ori, spacing) \ |
| 99 | ((ori) == GTK_ORIENTATION_HORIZONTAL \ | 97 | ((ori) == GTK_ORIENTATION_HORIZONTAL \ |
| 100 | ? gtk_hbox_new (FALSE, (spacing)) : gtk_vbox_new (FALSE, (spacing))) | 98 | ? gtk_hbox_new (FALSE, (spacing)) : gtk_vbox_new (FALSE, (spacing))) |
diff --git a/src/indent.c b/src/indent.c index 6246b544fbd..de6b4895616 100644 --- a/src/indent.c +++ b/src/indent.c | |||
| @@ -1967,9 +1967,13 @@ line_number_display_width (struct window *w, int *width, int *pixel_width) | |||
| 1967 | struct it it; | 1967 | struct it it; |
| 1968 | struct text_pos startpos; | 1968 | struct text_pos startpos; |
| 1969 | bool saved_restriction = false; | 1969 | bool saved_restriction = false; |
| 1970 | struct buffer *old_buf = current_buffer; | ||
| 1970 | ptrdiff_t count = SPECPDL_INDEX (); | 1971 | ptrdiff_t count = SPECPDL_INDEX (); |
| 1971 | SET_TEXT_POS_FROM_MARKER (startpos, w->start); | 1972 | SET_TEXT_POS_FROM_MARKER (startpos, w->start); |
| 1972 | void *itdata = bidi_shelve_cache (); | 1973 | void *itdata = bidi_shelve_cache (); |
| 1974 | |||
| 1975 | /* Make sure W's buffer is the current one. */ | ||
| 1976 | set_buffer_internal_1 (XBUFFER (w->contents)); | ||
| 1973 | /* We want to start from window's start point, but it could be | 1977 | /* We want to start from window's start point, but it could be |
| 1974 | outside the accessible region, in which case we widen the | 1978 | outside the accessible region, in which case we widen the |
| 1975 | buffer temporarily. It could even be beyond the buffer's end | 1979 | buffer temporarily. It could even be beyond the buffer's end |
| @@ -1998,6 +2002,7 @@ line_number_display_width (struct window *w, int *width, int *pixel_width) | |||
| 1998 | *pixel_width = it.lnum_pixel_width; | 2002 | *pixel_width = it.lnum_pixel_width; |
| 1999 | if (saved_restriction) | 2003 | if (saved_restriction) |
| 2000 | unbind_to (count, Qnil); | 2004 | unbind_to (count, Qnil); |
| 2005 | set_buffer_internal_1 (old_buf); | ||
| 2001 | bidi_unshelve_cache (itdata, 0); | 2006 | bidi_unshelve_cache (itdata, 0); |
| 2002 | } | 2007 | } |
| 2003 | } | 2008 | } |
diff --git a/src/nsterm.m b/src/nsterm.m index 6e7ab1266ba..bb20886ab1d 100644 --- a/src/nsterm.m +++ b/src/nsterm.m | |||
| @@ -7303,16 +7303,34 @@ not_in_argv (NSString *arg) | |||
| 7303 | 7303 | ||
| 7304 | NSTRACE ("[EmacsView viewDidResize]"); | 7304 | NSTRACE ("[EmacsView viewDidResize]"); |
| 7305 | 7305 | ||
| 7306 | #ifdef NS_DRAW_TO_BUFFER | ||
| 7307 | /* If the buffer size doesn't match the view's backing size, destroy | ||
| 7308 | the buffer and let it be recreated at the correct size later. */ | ||
| 7309 | if ([self wantsUpdateLayer] && surface) | ||
| 7310 | { | ||
| 7311 | NSRect surfaceRect = {{0, 0}, [surface getSize]}; | ||
| 7312 | NSRect frameRect = [[self window] convertRectToBacking:frame]; | ||
| 7313 | |||
| 7314 | if (!NSEqualRects (frameRect, surfaceRect)) | ||
| 7315 | { | ||
| 7316 | [surface release]; | ||
| 7317 | surface = nil; | ||
| 7318 | |||
| 7319 | [self setNeedsDisplay:YES]; | ||
| 7320 | } | ||
| 7321 | } | ||
| 7322 | #endif | ||
| 7323 | |||
| 7306 | neww = (int)NSWidth (frame); | 7324 | neww = (int)NSWidth (frame); |
| 7307 | newh = (int)NSHeight (frame); | 7325 | newh = (int)NSHeight (frame); |
| 7308 | oldw = FRAME_PIXEL_WIDTH (emacsframe); | 7326 | oldw = FRAME_PIXEL_WIDTH (emacsframe); |
| 7309 | oldh = FRAME_PIXEL_HEIGHT (emacsframe); | 7327 | oldh = FRAME_PIXEL_HEIGHT (emacsframe); |
| 7310 | 7328 | ||
| 7311 | /* Don't want to do anything when the view size hasn't changed. */ | 7329 | /* Don't want to do anything when the view size hasn't changed. */ |
| 7312 | if ((oldh == newh && oldw == neww) | 7330 | if (emacsframe->new_size_p |
| 7313 | || (emacsframe->new_size_p | 7331 | ? (newh == emacsframe->new_height |
| 7314 | && newh == emacsframe->new_height | 7332 | && neww == emacsframe->new_width) |
| 7315 | && neww == emacsframe->new_width)) | 7333 | : (oldh == newh && oldw == neww)) |
| 7316 | { | 7334 | { |
| 7317 | NSTRACE_MSG ("No change"); | 7335 | NSTRACE_MSG ("No change"); |
| 7318 | return; | 7336 | return; |
| @@ -7321,16 +7339,6 @@ not_in_argv (NSString *arg) | |||
| 7321 | NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); | 7339 | NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); |
| 7322 | NSTRACE_SIZE ("Original size", NSMakeSize (oldw, oldh)); | 7340 | NSTRACE_SIZE ("Original size", NSMakeSize (oldw, oldh)); |
| 7323 | 7341 | ||
| 7324 | #ifdef NS_DRAW_TO_BUFFER | ||
| 7325 | if ([self wantsUpdateLayer]) | ||
| 7326 | { | ||
| 7327 | [surface release]; | ||
| 7328 | surface = nil; | ||
| 7329 | |||
| 7330 | [self setNeedsDisplay:YES]; | ||
| 7331 | } | ||
| 7332 | #endif | ||
| 7333 | |||
| 7334 | change_frame_size (emacsframe, neww, newh, false, YES, false); | 7342 | change_frame_size (emacsframe, neww, newh, false, YES, false); |
| 7335 | 7343 | ||
| 7336 | SET_FRAME_GARBAGED (emacsframe); | 7344 | SET_FRAME_GARBAGED (emacsframe); |
diff --git a/src/verbose.mk.in b/src/verbose.mk.in index 085a05a2fa6..50d6ea32000 100644 --- a/src/verbose.mk.in +++ b/src/verbose.mk.in | |||
| @@ -38,7 +38,7 @@ ifeq ($(HAVE_NATIVE_COMP),yes) | |||
| 38 | ifeq ($(NATIVE_DISABLED),1) | 38 | ifeq ($(NATIVE_DISABLED),1) |
| 39 | AM_V_ELC = @echo " ELC " $@; | 39 | AM_V_ELC = @echo " ELC " $@; |
| 40 | else | 40 | else |
| 41 | AM_V_ELC = @echo " ELC+ELN " $@; | 41 | AM_V_ELC = @echo " ELC+ELN " $@; |
| 42 | endif | 42 | endif |
| 43 | else | 43 | else |
| 44 | AM_V_ELC = @echo " ELC " $@; | 44 | AM_V_ELC = @echo " ELC " $@; |
diff --git a/src/xfns.c b/src/xfns.c index 2c95065d3ea..782e0a483c4 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -1608,13 +1608,15 @@ x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) | |||
| 1608 | 1608 | ||
| 1609 | /* Set the number of lines used for the tab bar of frame F to VALUE. | 1609 | /* Set the number of lines used for the tab bar of frame F to VALUE. |
| 1610 | VALUE not an integer, or < 0 means set the lines to zero. OLDVAL | 1610 | VALUE not an integer, or < 0 means set the lines to zero. OLDVAL |
| 1611 | is the old number of tab bar lines. This function changes the | 1611 | is the old number of tab bar lines. This function may change the |
| 1612 | height of all windows on frame F to match the new tab bar height. | 1612 | height of all windows on frame F to match the new tab bar height. |
| 1613 | The frame's height doesn't change. */ | 1613 | The frame's height may change if frame_inhibit_implied_resize was |
| 1614 | set accordingly. */ | ||
| 1614 | 1615 | ||
| 1615 | static void | 1616 | static void |
| 1616 | x_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) | 1617 | x_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) |
| 1617 | { | 1618 | { |
| 1619 | int olines = FRAME_TAB_BAR_LINES (f); | ||
| 1618 | int nlines; | 1620 | int nlines; |
| 1619 | 1621 | ||
| 1620 | /* Treat tab bars like menu bars. */ | 1622 | /* Treat tab bars like menu bars. */ |
| @@ -1627,7 +1629,8 @@ x_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) | |||
| 1627 | else | 1629 | else |
| 1628 | nlines = 0; | 1630 | nlines = 0; |
| 1629 | 1631 | ||
| 1630 | x_change_tab_bar_height (f, nlines * FRAME_LINE_HEIGHT (f)); | 1632 | if (nlines != olines && (olines == 0 || nlines == 0)) |
| 1633 | x_change_tab_bar_height (f, nlines * FRAME_LINE_HEIGHT (f)); | ||
| 1631 | } | 1634 | } |
| 1632 | 1635 | ||
| 1633 | 1636 | ||
diff --git a/src/xterm.c b/src/xterm.c index 189e3a47eea..9edaed9a34b 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -8178,6 +8178,12 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 8178 | 8178 | ||
| 8179 | f->output_data.x->has_been_visible = true; | 8179 | f->output_data.x->has_been_visible = true; |
| 8180 | inev.ie.kind = DEICONIFY_EVENT; | 8180 | inev.ie.kind = DEICONIFY_EVENT; |
| 8181 | #if defined USE_GTK && defined HAVE_GTK3 | ||
| 8182 | /* If GTK3 wants to impose some old size here (Bug#24526), | ||
| 8183 | tell it that the current size is what we want. */ | ||
| 8184 | xg_frame_set_char_size | ||
| 8185 | (f, FRAME_PIXEL_WIDTH (f), FRAME_PIXEL_HEIGHT (f)); | ||
| 8186 | #endif | ||
| 8181 | XSETFRAME (inev.ie.frame_or_window, f); | 8187 | XSETFRAME (inev.ie.frame_or_window, f); |
| 8182 | } | 8188 | } |
| 8183 | else if (!not_hidden && !FRAME_ICONIFIED_P (f)) | 8189 | else if (!not_hidden && !FRAME_ICONIFIED_P (f)) |
| @@ -8232,33 +8238,36 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 8232 | if (!FRAME_VISIBLE_P (f)) | 8238 | if (!FRAME_VISIBLE_P (f)) |
| 8233 | { | 8239 | { |
| 8234 | block_input (); | 8240 | block_input (); |
| 8235 | SET_FRAME_VISIBLE (f, 1); | 8241 | /* The following two are commented out to avoid that a |
| 8236 | SET_FRAME_ICONIFIED (f, false); | 8242 | plain invisible frame gets reported as iconified. That |
| 8237 | if (FRAME_X_DOUBLE_BUFFERED_P (f)) | 8243 | problem occurred first for Emacs 26 and is described in |
| 8244 | https://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00133.html. */ | ||
| 8245 | /** SET_FRAME_VISIBLE (f, 1); **/ | ||
| 8246 | /** SET_FRAME_ICONIFIED (f, false); **/ | ||
| 8247 | |||
| 8248 | if (FRAME_X_DOUBLE_BUFFERED_P (f)) | ||
| 8238 | font_drop_xrender_surfaces (f); | 8249 | font_drop_xrender_surfaces (f); |
| 8239 | f->output_data.x->has_been_visible = true; | 8250 | f->output_data.x->has_been_visible = true; |
| 8240 | SET_FRAME_GARBAGED (f); | 8251 | SET_FRAME_GARBAGED (f); |
| 8241 | unblock_input (); | 8252 | unblock_input (); |
| 8242 | } | 8253 | } |
| 8243 | else if (FRAME_GARBAGED_P (f)) | 8254 | else if (FRAME_GARBAGED_P (f)) |
| 8244 | { | 8255 | { |
| 8245 | #ifdef USE_GTK | 8256 | #ifdef USE_GTK |
| 8246 | /* Go around the back buffer and manually clear the | 8257 | /* Go around the back buffer and manually clear the |
| 8247 | window the first time we show it. This way, we avoid | 8258 | window the first time we show it. This way, we avoid |
| 8248 | showing users the sanity-defying horror of whatever | 8259 | showing users the sanity-defying horror of whatever |
| 8249 | GtkWindow is rendering beneath us. We've garbaged | 8260 | GtkWindow is rendering beneath us. We've garbaged |
| 8250 | the frame, so we'll redraw the whole thing on next | 8261 | the frame, so we'll redraw the whole thing on next |
| 8251 | redisplay anyway. Yuck. */ | 8262 | redisplay anyway. Yuck. */ |
| 8252 | x_clear_area1 ( | 8263 | x_clear_area1 (FRAME_X_DISPLAY (f), |
| 8253 | FRAME_X_DISPLAY (f), | 8264 | FRAME_X_WINDOW (f), |
| 8254 | FRAME_X_WINDOW (f), | 8265 | event->xexpose.x, event->xexpose.y, |
| 8255 | event->xexpose.x, event->xexpose.y, | 8266 | event->xexpose.width, event->xexpose.height, |
| 8256 | event->xexpose.width, event->xexpose.height, | 8267 | 0); |
| 8257 | 0); | ||
| 8258 | x_clear_under_internal_border (f); | 8268 | x_clear_under_internal_border (f); |
| 8259 | #endif | 8269 | #endif |
| 8260 | } | 8270 | } |
| 8261 | |||
| 8262 | 8271 | ||
| 8263 | if (!FRAME_GARBAGED_P (f)) | 8272 | if (!FRAME_GARBAGED_P (f)) |
| 8264 | { | 8273 | { |
| @@ -8351,7 +8360,8 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 8351 | the frame was deleted. */ | 8360 | the frame was deleted. */ |
| 8352 | { | 8361 | { |
| 8353 | bool visible = FRAME_VISIBLE_P (f); | 8362 | bool visible = FRAME_VISIBLE_P (f); |
| 8354 | /* While a frame is unmapped, display generation is | 8363 | |
| 8364 | /* While a frame is unmapped, display generation is | ||
| 8355 | disabled; you don't want to spend time updating a | 8365 | disabled; you don't want to spend time updating a |
| 8356 | display that won't ever be seen. */ | 8366 | display that won't ever be seen. */ |
| 8357 | SET_FRAME_VISIBLE (f, 0); | 8367 | SET_FRAME_VISIBLE (f, 0); |
| @@ -8426,11 +8436,20 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 8426 | x_set_z_group (f, Qbelow, Qnil); | 8436 | x_set_z_group (f, Qbelow, Qnil); |
| 8427 | } | 8437 | } |
| 8428 | 8438 | ||
| 8429 | SET_FRAME_VISIBLE (f, 1); | 8439 | if (not_hidden) |
| 8430 | SET_FRAME_ICONIFIED (f, false); | 8440 | { |
| 8431 | f->output_data.x->has_been_visible = true; | 8441 | SET_FRAME_VISIBLE (f, 1); |
| 8442 | SET_FRAME_ICONIFIED (f, false); | ||
| 8443 | #if defined USE_GTK && defined HAVE_GTK3 | ||
| 8444 | /* If GTK3 wants to impose some old size here (Bug#24526), | ||
| 8445 | tell it that the current size is what we want. */ | ||
| 8446 | xg_frame_set_char_size | ||
| 8447 | (f, FRAME_PIXEL_WIDTH (f), FRAME_PIXEL_HEIGHT (f)); | ||
| 8448 | #endif | ||
| 8449 | f->output_data.x->has_been_visible = true; | ||
| 8450 | } | ||
| 8432 | 8451 | ||
| 8433 | if (iconified) | 8452 | if (not_hidden && iconified) |
| 8434 | { | 8453 | { |
| 8435 | inev.ie.kind = DEICONIFY_EVENT; | 8454 | inev.ie.kind = DEICONIFY_EVENT; |
| 8436 | XSETFRAME (inev.ie.frame_or_window, f); | 8455 | XSETFRAME (inev.ie.frame_or_window, f); |
| @@ -8808,10 +8827,16 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 8808 | goto OTHER; | 8827 | goto OTHER; |
| 8809 | 8828 | ||
| 8810 | case FocusIn: | 8829 | case FocusIn: |
| 8830 | #ifndef USE_GTK | ||
| 8811 | /* Some WMs (e.g. Mutter in Gnome Shell), don't unmap | 8831 | /* Some WMs (e.g. Mutter in Gnome Shell), don't unmap |
| 8812 | minimized/iconified windows; thus, for those WMs we won't get | 8832 | minimized/iconified windows; thus, for those WMs we won't get |
| 8813 | a MapNotify when unminimizing/deconifying. Check here if we | 8833 | a MapNotify when unminimizing/deconifying. Check here if we |
| 8814 | are deconizing a window (Bug42655). */ | 8834 | are deiconizing a window (Bug42655). |
| 8835 | |||
| 8836 | But don't do that on GTK since it may cause a plain invisible | ||
| 8837 | frame get reported as iconified, compare | ||
| 8838 | https://lists.gnu.org/archive/html/emacs-devel/2017-02/msg00133.html. | ||
| 8839 | That is fixed above but bites us here again. */ | ||
| 8815 | f = any; | 8840 | f = any; |
| 8816 | if (f && FRAME_ICONIFIED_P (f)) | 8841 | if (f && FRAME_ICONIFIED_P (f)) |
| 8817 | { | 8842 | { |
| @@ -8821,6 +8846,7 @@ handle_one_xevent (struct x_display_info *dpyinfo, | |||
| 8821 | inev.ie.kind = DEICONIFY_EVENT; | 8846 | inev.ie.kind = DEICONIFY_EVENT; |
| 8822 | XSETFRAME (inev.ie.frame_or_window, f); | 8847 | XSETFRAME (inev.ie.frame_or_window, f); |
| 8823 | } | 8848 | } |
| 8849 | #endif /* USE_GTK */ | ||
| 8824 | 8850 | ||
| 8825 | x_detect_focus_change (dpyinfo, any, event, &inev.ie); | 8851 | x_detect_focus_change (dpyinfo, any, event, &inev.ie); |
| 8826 | goto OTHER; | 8852 | goto OTHER; |
| @@ -11823,12 +11849,14 @@ x_make_frame_visible (struct frame *f) | |||
| 11823 | poll_suppress_count = old_poll_suppress_count; | 11849 | poll_suppress_count = old_poll_suppress_count; |
| 11824 | #endif | 11850 | #endif |
| 11825 | 11851 | ||
| 11826 | if (CONSP (frame_size_history)) | 11852 | if (!FRAME_VISIBLE_P (f)) |
| 11827 | frame_size_history_plain | 11853 | { |
| 11828 | (f, build_string ("x_make_frame_visible")); | 11854 | if (CONSP (frame_size_history)) |
| 11855 | frame_size_history_plain | ||
| 11856 | (f, build_string ("x_make_frame_visible")); | ||
| 11829 | 11857 | ||
| 11830 | if (! FRAME_VISIBLE_P (f)) | 11858 | x_wait_for_event (f, MapNotify); |
| 11831 | x_wait_for_event (f, MapNotify); | 11859 | } |
| 11832 | } | 11860 | } |
| 11833 | } | 11861 | } |
| 11834 | 11862 | ||