PR# 3617 EV_APPLICATION.process_events overrides mouse cursor

Problem Report Summary
Submitter: gobobe
Category: EiffelVision
Priority: Medium
Date: 2005/08/22
Class: Bug
Severity: Serious
Number: 3617
Release: 5.5.0105
Confidential: No
Status: Analyzed
Responsible:
Environment: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.2) Gecko/20030208 Netscape/7.02
Synopsis: EV_APPLICATION.process_events overrides mouse cursor

Description
It looks like when `disable_sensitive' has been called on a window,
then calling EV_APPLICATION.process_events makes the mouse cursor
lose its shape and sets it to its standard arrow shape instead.
Is it the intended behavior? Note that when the window is not
disable_sensitive then the cursor keeps its original shape.
To Reproduce
Compile this application. You should have a window and the
cursor should be a Wait cursor. Click on the hidden button
in the toolbar. The cursor loses its Wait shape. If you 
uncomment the two lines in MY_TEST.refresh and run the
application again, then the cursor keeps it shape.




class MY_TEST

inherit

	EV_APPLICATION

create

	make_and_launch

feature

	make_and_launch is
			-- Create and launch.
		do
			default_create
			prepare
			first_window.show
			launch
		end

	prepare is
			-- Initialize world.
		local
			l_tool_bar: EV_TOOL_BAR
			l_button: EV_TOOL_BAR_BUTTON
		do
				-- Tool bar.
			create l_tool_bar
			l_tool_bar.disable_vertical_button_style
			first_window.upper_bar.extend (l_tool_bar)
			create l_button
			l_button.set_tooltip ("Do it")
			l_button.select_actions.extend (agent on_action)
			l_tool_bar.extend (l_button)
		end

	first_window: EV_TITLED_WINDOW is
			-- The window with the drawable area.
		local
			l_pixmaps: EV_STOCK_PIXMAPS
		once
			create Result
			Result.set_size (800, 400)
			create label.make_with_text ("Hello")
			Result.extend (label)
			create l_pixmaps
			Result.set_pointer_style (l_pixmaps.Wait_cursor)
		end

	label: EV_LABEL

	on_action is
		local
			i: INTEGER
		do
			first_window.disable_sensitive
			from until False loop
				label.set_text ("Hello " + i.out)
				i := i + 1
				refresh
			end
		end

	refresh is
		local
			l_pointer_style: EV_CURSOR
		do
--			l_pointer_style := first_window.pointer_style
			process_events
--			first_window.set_pointer_style (l_pointer_style)
		end

end

system
	my_test

root 

	MY_TEST: "make_and_launch"

default

	assertion (require)
	multithreaded (no)
	console_application (no)
	dynamic_runtime (no)
	dead_code_removal (yes)
	profile (no)
	line_generation (no)
	debug (no)
	array_optimization (no)
	inlining (no)
	inlining_size ("4")

cluster 

		-- Root cluster
	root_cluster: "."

		-- EiffelBase
	all base: 			"$ISE_EIFFEL\library\base"
		exclude
			"table_eiffel3"
		end

		-- WEL
	all wel:			"$ISE_EIFFEL\library\wel"

		-- Vision2
	all vision2:		"$ISE_EIFFEL\library\vision2"
		exclude 
			"gtk"
			"EIFGEN"
			"tmp"
			"temp"
			"release"
			"obsolete"
			"bench_used"
		end

external

	include_path:		"$(ISE_EIFFEL)\library\vision2\spec\include",
					"$(ISE_EIFFEL)\library\wel\spec\windows\include"

	object: 			"$(ISE_EIFFEL)\library\vision2\spec\$(ISE_C_COMPILER)\lib\vision2.lib",
					"$(ISE_EIFFEL)\library\wel\spec\$(ISE_C_COMPILER)\lib\wel.lib",
			 		"$(ISE_EIFFEL)\library\vision2\spec\$(ISE_C_COMPILER)\lib\libpng.lib",
			 		"$(ISE_EIFFEL)\library\vision2\spec\$(ISE_C_COMPILER)\lib\zlib.lib"

end
Problem Report Interactions
From:gobobe    Date:2005/08/22    Download   
==== Julian: Mon Aug 22 11:45:30 PDT 2005 ===============================

Dear Eric,

Thank you for the bug report concerning `process_events' with disabled
widgets. We have tested the code that you sent, and it appears not to
occur. Can you confirm if this issue has been fixed?

==== Julian: Mon Aug 22 11:45:30 PDT 2005 ===============================
From: "Eric Bezault" <ebezault@axarosenberg.com>
To: <bugs@support.eiffel.com>
Cc: 
Subject: EiffelVision_2/3617: EV_APPLICATION.process_events overrides mouse cursor
Date: Mon, 22 Aug 2005 14:41:18 -0700

 > Thank you for the bug report concerning `process_events' with disabled
 > widgets. We have tested the code that you sent, and it appears not to
 > occur. Can you confirm if this issue has been fixed?
 
 No, it's not fixed with ISE 5.6.1204. I just tried the example that
 I provided in my bug report under Windows 2000. Note that as indicated
 in the bug report, you should click on the hidden toolbar button
 (at the top left corner of the window) in order t
....
Output truncated, Click download to get the full message