From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: martin rudalics <rudalics@gmx.at>
Cc: 44180@debbugs.gnu.org
Subject: bug#44180: 28.0.50; Emacs frames won't redisplay unless resized
Date: Tue, 27 Oct 2020 11:11:26 -0700 [thread overview]
Message-ID: <87sg9z1qup.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <f9caf206-5eff-9373-e892-32d11eb39f86@gmx.at> (martin rudalics's message of "Tue, 27 Oct 2020 10:08:18 +0100")
[-- Attachment #1: Type: text/plain, Size: 1976 bytes --]
On 10/27/20 10:08 AM, martin rudalics wrote:
>>> Do you get the corresponding focus events (whatever they are now) when
>>> you make another frame the fullscreen one? If so, we should probably
>>> redraw the frame in that case.
>>
>> I'm still not at the offending computer, but I think there's a high
>> likelihood of confusing myself with conflicting terminology here so,
>> just to be clear: this isn't proper fullscreening in the X11 sense.
>
> I didn't expect it to be but thanks for confirming.
>
>> i3
>> also does that, but I hardly ever use it since the stacked layout is
>> close enough to full screen. In X11 terms I think all that's happening
>> is switching of focus between windows, it's just that i3's layout means
>> that the unfocused windows are always completely obscured. For some
>> reason Emacs now thinks that a window being obscured means that it's now
>> an icon. Switching focus back to that window does not un-iconify it.
>
> Always keep in mind that Emacs has no idea about whether and how a
> window has been iconified or focused. It just waits for the
> corresponding information from the window manager, believes what the
> latter tells and acts (redrawing a frame, for example) accordingly.
Okay, thanks.
I think I'm going to need more help here, though. I have built master
with optimizations off, I start GDB in a controlling emacs, set a
breakpoint at xdisp.c:34381 at the beginning of expose_frame, and then
"run -Q".
That pops up a new frame, and we hit the breakpoint. I run "bt" and have
attached the resulting backtrace. Something tells me you need more
information than this, though. I went up a frame, to handle_one_xevent,
where there are a bunch of local values I can print, but the values of
dpyinfo and event are enormous structures.
What variables exactly would you need to see?
Again, this is on misbehaving master. Once I know exactly what you need
I'll do the same for a build with the commit reverted.
Thanks,
Eric
[-- Attachment #2: master.txt --]
[-- Type: text/plain, Size: 3618 bytes --]
#0 expose_frame (f=0x555556313f00, x=1900, y=1030, w=16, h=34) at xdisp.c:34381
#1 0x00005555556f2711 in handle_one_xevent (dpyinfo=0x55555604c400, event=0x7fffffffcd90, finish=0x555555e1f6fc <current_finish>, hold_quit=0x7fffffffd0a0) at xterm.c:8243
#2 0x00005555556f13dd in event_handler_gdk (gxev=0x7fffffffcd90, ev=0x555555fe8ca0, data=0x0) at xterm.c:7768
#3 0x00007ffff75c654f in () at /usr/lib/libgdk-3.so.0
#4 0x00007ffff75ca10b in () at /usr/lib/libgdk-3.so.0
#5 0x00007ffff756e15b in gdk_display_get_event () at /usr/lib/libgdk-3.so.0
#6 0x00007ffff75c9e44 in () at /usr/lib/libgdk-3.so.0
#7 0x00007ffff6f8d914 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#8 0x00007ffff6fe17d1 in () at /usr/lib/libglib-2.0.so.0
#9 0x00007ffff6f8c121 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#10 0x00007ffff781d597 in gtk_main_iteration () at /usr/lib/libgtk-3.so.0
#11 0x00005555556f5491 in XTread_socket (terminal=0x555555f94dd8, hold_quit=0x7fffffffd0a0) at xterm.c:9395
#12 0x000055555574f92d in gobble_input () at keyboard.c:6890
#13 0x000055555574ff5b in handle_async_input () at keyboard.c:7127
#14 0x000055555574ff7a in process_pending_signals () at keyboard.c:7141
#15 0x000055555581e182 in maybe_quit () at eval.c:1549
#16 0x0000555555829f94 in list_length (list=XIL(0x555555f2dc63)) at fns.c:98
#17 0x000055555582a106 in Flength (sequence=XIL(0x555556832353)) at fns.c:126
#18 0x000055555582baf9 in concat (nargs=1, args=0x7fffffffd318, target_type=Lisp_Cons, last_special=false) at fns.c:666
#19 0x000055555582b8d6 in Fcopy_sequence (arg=XIL(0x555556832353)) at fns.c:598
#20 0x00005555557492b0 in timer_check () at keyboard.c:4398
#21 0x0000555555746f69 in readable_events (flags=1) at keyboard.c:3405
#22 0x000055555574f743 in get_input_pending (flags=1) at keyboard.c:6805
#23 0x00005555557591e4 in detect_input_pending_run_timers (do_display=true) at keyboard.c:10366
#24 0x0000555555891fa5 in wait_reading_process_output (time_limit=0, nsecs=0, read_kbd=-1, do_display=true, wait_for_cell=XIL(0), wait_proc=0x0, just_wait_proc=0) at process.c:5702
#25 0x0000555555747f1b in kbd_buffer_get_event (kbp=0x7fffffffd920, used_mouse_menu=0x7fffffffdf2d, end_time=0x0) at keyboard.c:3874
#26 0x0000555555742678 in read_event_from_main_queue (end_time=0x0, local_getcjmp=0x7fffffffdd30, used_mouse_menu=0x7fffffffdf2d) at keyboard.c:2160
#27 0x0000555555742a88 in read_decoded_event_from_main_queue (end_time=0x0, local_getcjmp=0x7fffffffdd30, prev_event=XIL(0), used_mouse_menu=0x7fffffffdf2d) at keyboard.c:2224
#28 0x0000555555744cd2 in read_char (commandflag=1, map=XIL(0x5555568323b3), prev_event=XIL(0), used_mouse_menu=0x7fffffffdf2d, end_time=0x0) at keyboard.c:2834
#29 0x0000555555757125 in read_key_sequence (keybuf=0x7fffffffe110, prompt=XIL(0), dont_downcase_last=false, can_return_switch_frame=true, fix_current_buffer=true, prevent_redisplay=false) at keyboard.c:9552
#30 0x000055555573fd76 in command_loop_1 () at keyboard.c:1354
#31 0x000055555581db25 in internal_condition_case (bfun=0x55555573f8dc <command_loop_1>, handlers=XIL(0x90), hfun=0x55555573eed0 <cmd_error>) at eval.c:1359
#32 0x000055555573f4c5 in command_loop_2 (ignore=XIL(0)) at keyboard.c:1095
#33 0x000055555581cf79 in internal_catch (tag=XIL(0xd710), func=0x55555573f498 <command_loop_2>, arg=XIL(0)) at eval.c:1120
#34 0x000055555573f464 in command_loop () at keyboard.c:1074
#35 0x000055555573e9b9 in recursive_edit_1 () at keyboard.c:718
#36 0x000055555573ebb0 in Frecursive_edit () at keyboard.c:790
#37 0x000055555573a984 in main (argc=2, argv=0x7fffffffe598) at emacs.c:2047
next prev parent reply other threads:[~2020-10-27 18:11 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-23 18:17 bug#44180: 28.0.50; Emacs frames won't redisplay unless resized Eric Abrahamsen
2020-10-23 18:25 ` Eli Zaretskii
2020-10-23 19:07 ` Eric Abrahamsen
2020-10-23 19:38 ` Eli Zaretskii
2020-10-23 21:07 ` Eric Abrahamsen
2020-10-24 6:55 ` martin rudalics
2020-10-24 8:36 ` Eli Zaretskii
2020-10-24 20:19 ` Eric Abrahamsen
2020-10-25 15:08 ` Eli Zaretskii
2020-10-25 16:01 ` Eric Abrahamsen
2020-10-25 16:16 ` Eli Zaretskii
2020-10-25 16:28 ` Eric Abrahamsen
2020-10-25 16:55 ` Eli Zaretskii
2020-10-25 18:26 ` Eric Abrahamsen
2020-10-26 18:24 ` martin rudalics
2020-10-26 19:51 ` Eric Abrahamsen
2020-10-27 9:08 ` martin rudalics
2020-10-27 18:11 ` Eric Abrahamsen [this message]
2020-10-27 18:45 ` Eli Zaretskii
2020-10-27 19:48 ` Eric Abrahamsen
2020-10-31 8:28 ` Eli Zaretskii
2020-11-06 1:52 ` Eric Abrahamsen
2022-04-24 14:08 ` Lars Ingebrigtsen
2022-04-24 15:26 ` Eric Abrahamsen
2022-04-24 15:27 ` Lars Ingebrigtsen
2020-10-25 16:26 ` Sascha Sadeghian
2020-10-25 16:57 ` Eli Zaretskii
2020-10-24 8:03 ` Eli Zaretskii
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87sg9z1qup.fsf@ericabrahamsen.net \
--to=eric@ericabrahamsen.net \
--cc=44180@debbugs.gnu.org \
--cc=rudalics@gmx.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).