Opened 10 years ago

Closed 10 years ago

#6612 closed bug (fixed)

[Terminal] switching terminals via Alt+Tab stops working after several seconds

Reported by: diver Owned by: jackburton
Priority: normal Milestone: R1
Component: Applications/Terminal Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All


This is hrev38658.

  • Open 2 Terminal windows
  • Hold Alt+Tab for several seconds
  • Several seconds later terminals should stop switching and won't react on Alt+Tab anymore until you close all Terminal windows.

Attachments (1)

kdl_session.txt (19.7 KB ) - added by diver 10 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 by diver, 10 years ago

It seems that it's reproducible in VirtualBox only.

comment:2 by diver, 10 years ago

Correction, terminal cannot be closed, it will stay in the Deskbar.

comment:3 by bonefish, 10 years ago

I don't have VirtualBox, but at least on real hardware and in VMware I couldn't reproduce the issue with hrev39515. Please provide stack traces of all threads of both Terminals. To do that enter KDL, get a team listing with teams, and for both Terminal teams do threads <team id> and for each thread bt <thread id>.

comment:4 by diver, 10 years ago

Still reproducible in hrev39530. I'll try to post more info.

by diver, 10 years ago

Attachment: kdl_session.txt added

comment:5 by bonefish, 10 years ago

Thanks! Both application threads are in TermApp::_IsSwitchTarget() waiting for a reply from the respective other team's application. A timeout might already help. Can you try and see if replacing

	BMessage reply;
	if (app.SendMessage(MSG_TERM_WINDOW_INFO, &reply) != B_OK)


	BMessage message(MSG_TERM_WINDOW_INFO);
	BMessage reply;
	if (app.SendMessage(&message, &reply, 100000, 100000) != B_OK)

there improves the situation?

comment:6 by diver, 10 years ago

Yep, that's fixed it.

comment:7 by bonefish, 10 years ago

Resolution: fixed
Status: newclosed

Fixed in hrev39562, though differently.

Note: See TracTickets for help on using tickets.