Opened 9 years ago

Closed 9 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:
Has a Patch: no Platform: All

Description

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 9 years ago.

Download all attachments as: .zip

Change History (8)

comment:1 Changed 9 years ago by diver

It seems that it's reproducible in VirtualBox only.

comment:2 Changed 9 years ago by diver

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

comment:3 Changed 9 years ago by bonefish

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 Changed 9 years ago by diver

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

Changed 9 years ago by diver

Attachment: kdl_session.txt added

comment:5 Changed 9 years ago by bonefish

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)

by

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

there improves the situation?

comment:6 Changed 9 years ago by diver

Yep, that's fixed it.

comment:7 Changed 9 years ago by bonefish

Resolution: fixed
Status: newclosed

Fixed in hrev39562, though differently.

Note: See TracTickets for help on using tickets.