[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4668: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3815)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4670: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3815)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4671: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3815)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4672: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3815)
XWidgetSoft Forum • View topic - Bug: Transparent areas of PNGs to be excluded Pt1

XWidgetSoft Forum

XWidget & XLaunchpad , Desktop customization
It is currently April 16th, 2024, 5:14 am

All times are UTC - 8 hours




Post new topic Reply to topic  [ 11 posts ] 
Author Message
PostPosted: July 29th, 2013, 12:33 pm 
Offline
User avatar

Joined: July 29th, 2013, 9:13 am
Posts: 609
Currently, when you click on the transparent part of an image then Xwidget recognises it as a valid event. This is a problem where you may have an odd-shaped image acting as a control. When the user clicks upon the transparent area around the control thinking they are pressing on the item layered behind it, then the click event is actually for the layer above.

I suggest that Xwidget excludes transparent areas and treats them as if they are not part of the layer.
In this way you can click on an item where it appears to exist in the image, the user would simply know that he was clicking on the things he could see.

Other widget engines do act in this way, sampling the layers in turn to see if they are transparent and allowing the click event to occur on the opaque layer beneath the mouse.

It could be controlled by a switch, allowing current behaviour to continue.


Last edited by yereverluvinuncleber on June 16th, 2017, 4:23 am, edited 2 times in total.

Top
 Profile  
 
PostPosted: July 29th, 2013, 1:40 pm 
Offline
User avatar

Joined: July 9th, 2012, 1:14 pm
Posts: 112
Perhaps you could try "Mouse Through".
mouse_through.png
mouse_through.png [ 19.49 KiB | Viewed 6421 times ]


Top
 Profile  
 
PostPosted: July 29th, 2013, 1:51 pm 
Offline
User avatar

Joined: July 29th, 2013, 9:13 am
Posts: 609
[Edited by me in the light of further testing]
Thanks for your help. Getting to know the IDE slowly.

I should think I'll be making a lot more daft recommendations and asking silly questions before I know what I am doing. Coming from YWE background where there is no IDE means I have a lot to learn.


Last edited by yereverluvinuncleber on July 29th, 2013, 2:03 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: July 29th, 2013, 2:01 pm 
Offline
User avatar

Joined: July 29th, 2013, 9:13 am
Posts: 609
Nope that's no good, the layer is a control. It needs to function and the "mouse through" causes all events such as mouse functions to go through to the layer below regardless of whether the layer above is transparent or opaque.

I may not have made it clear enough.

Only the transparent areas need a "mouse through", the opaque areas of the image act as per normal.

Look at the slider control on this widget and you may see the issue:



The slider is a non-standard shape and it must only move when it is clicked and dragged. Clicking on any other part of the widget must not cause the slider to slide.

The YWE version of this is here if it helps to get a demo:


Top
 Profile  
 
PostPosted: July 30th, 2013, 10:24 am 
Offline
User avatar

Joined: July 9th, 2012, 1:14 pm
Posts: 112
Hi,
I think there is no need for any layer at all. I 've made the widget just now and it works fine (used some script from "Volume bar 3" by Blaezer http://www.deviantart.com/art/Volume-ba ... -322692337). The only thing I couldn't get is a simple hand cursor for the thumb. Maybe someone else knows how to get it.
steam_volume.gif
steam_volume.gif [ 40.42 KiB | Viewed 6407 times ]

steam_volume.rar [76.54 KiB]
Downloaded 335 times


Last edited by Dagedee on July 31st, 2013, 12:08 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: July 30th, 2013, 1:57 pm 
Offline
User avatar

Joined: July 29th, 2013, 9:13 am
Posts: 609
You lovely chap - you beat me to it. A bit clever using a progress bar instead of the cable image.

Mine will be out soon. Differently done.

Still though, my feature request is not about this particular widget, it is about the concept of image layers with transparent parts and whether a click should "click through" these areas.


Top
 Profile  
 
PostPosted: July 31st, 2013, 12:07 am 
Offline
User avatar

Joined: July 9th, 2012, 1:14 pm
Posts: 112
:) ... When I created it, I also learned something new - and now I'm curious about your solution!


Top
 Profile  
 
PostPosted: July 31st, 2013, 1:56 am 
Offline
User avatar

Joined: June 10th, 2012, 5:57 am
Posts: 313
the transparent part doesn't active event in my widget.


Attachments:
transparent_area.XWidgetPkg [179.75 KiB]
Downloaded 307 times
Top
 Profile  
 
PostPosted: August 7th, 2013, 4:54 pm 
Offline
User avatar

Joined: July 29th, 2013, 9:13 am
Posts: 609
Yes, your example shows that a transparent area should have a click-through BUT...

Try the slightly modified version of your package that I have modified so that it has an extra layer below, you can click on the top layer and slide the top layer from right to left within the borders of the widget, the underneath layer stays still. That's how it should work.

Now, when you click on the transparent area above my additional image then I would expect the click to click-through down to the layer below, it doesn't. You can click on a transparent area above the pipes and it ignores the click-through and responds with a click event on the layer above. You can click on the transparent areas and slide them from right to left.

Try it and see. This is unexpected behaviour to me as I expect a transparent are not to register a click regardless of how you manipulate it. It should only register a click event when an opaque section is clicked upon.


Attachments:
transparent_area.XWidgetPkg [212.43 KiB]
Downloaded 279 times
xwidgetbug01.jpg
xwidgetbug01.jpg [ 31.16 KiB | Viewed 6310 times ]
Top
 Profile  
 
PostPosted: August 7th, 2013, 8:36 pm 
Offline
User avatar

Joined: June 10th, 2012, 5:57 am
Posts: 313
Yes, you are right.
i will tell Tony about this bug.
Thank you very much.


Top
 Profile  
 
PostPosted: May 29th, 2014, 1:30 pm 
Offline
User avatar

Joined: July 29th, 2013, 9:13 am
Posts: 609
Any news on this bug?


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 11 posts ] 

All times are UTC - 8 hours


Who is online

Users browsing this forum: No registered users and 19 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron

Powered by phpBB® Forum Software © phpBB Group