PR# 10692 Ctrl+Tab key does not work in Project Settings "Edit File pattern" dialog

Problem Report Summary
Submitter: peter_gummer
Category: EiffelVision
Priority: Medium
Date: 2006/07/19
Class: Bug
Severity: Non-critical
Number: 10692
Release: 5.7.61376
Confidential: No
Status: Open
Responsible: misterieking
Environment: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Synopsis: Ctrl+Tab key does not work in Project Settings "Edit File pattern" dialog

Description
On Windows, it is normal to be able to navigate between tab pages via Ctrl+Tab and Ctrl+Shift+Tab. A typical example is the Control Panel's Display Properties dialog.

Ctrl+Tab does not work in the Project Settings "Edit File pattern" dialog.
To Reproduce

										
Problem Report Interactions
From:peter_gummer    Date:2007/05/28    Download   
The implementation of focused_widget that I submitted yesterday was Windows-specific and did not compile on GTK. The following implementation is portable:


	focused_widget: EV_WIDGET
			-- The currently focused widget, if any.
		do
			Result := parent_app.focused_widget

			if not has_recursive (Result) then
				Result := Void
			end
		ensure
			focused: Result /= Void implies Result.has_focus
			in_this_window: Result /= Void implies has_recursive (Result)
		end

From:peter_gummer    Date:2007/05/27    Download   
This is a serious problem, because in order to achieve operating-system standard behaviour, I have to duplicate the same solution in every window that I write. Given that other GUI frameworks (e.g., Delphi VCL and .NET WinForms) do this automatically for me, it makes EiffelVision look weak.

The solution that I'm using is as follows:


feature {NONE} -- Initialization

	user_initialization is
		do
			add_shortcut (agent step_focused_notebook_tab (1), {EV_KEY_CONSTANTS}.key_tab, True, False)
			add_shortcut (agent step_focused_notebook_tab (-1), {EV_KEY_CONSTANTS}.key_tab, True, True)
		end

	add_shortcut (action: PROCEDURE [ANY, TUPLE]; key: INTEGER; ctrl, shift: BOOLEAN)
			-- Create a keyboard shortcut to execute `action'.
		require
			action_attached: action /= Void
			valid_key: (create {EV_KEY_CONSTANTS}).valid_key_code (key)
		local
			accelerator: EV_ACCELERATOR
		do
			create accelerator.make_with_key_combination (create {EV_KEY}.make_with_code (key), ctrl, False, shift)
			accel
....
Output truncated, Click download to get the full message

From:patrickr    Date:2006/08/01    Download   
Looks like a vision2 problem