If, for example, you want to change the colour of a Form's background and select the 'Free' option and then use the picker to select a colour on the screen, it always used to show a magnified view of the screen in the area marked in red below. Since Gambas 3.19 this is not working for me. I also notice that if you create a program using the ColorChooser the same issue is repeated. Is this just me, or do others have this issue?
Colour picker issue.
- BruceSteers
- Posts: 1877
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Colour picker issue.
Benoit changed the color picker to use desktop portal
And changed the code.
Here is the code from FColorChooser in gb.form ...
As you can see the desktop portal method is not as involved.
the commented out old code uses grab and stuff to monitor the mouse movement.
the Desktop.PickColor does not.
And changed the code.
Here is the code from FColorChooser in gb.form ...
Public Sub txtHexa_Click()
Dim iColor As Integer
Component.Load("gb.desktop")
iColor = Desktop.PickColor()
If iColor <> Color.Default Then
SetColor(iColor)
RaiseActivate
Endif
' hTimer.Stop
' $hZoom = Null
' panColor.Refresh
' panGrab.Mouse = Mouse.Cross
' 'panGrab.Cursor = New Cursor(txtHexa.Picture, 0, txtHexa.Picture.H - 1)
' panGrab.Show
' panGrab_MouseMove
' panGrab.Grab
' $hZoom = Null
' panColor.Refresh 'SetColor(hPict.Image[0, 0])
' panGrab.Hide
End
As you can see the desktop portal method is not as involved.
the commented out old code uses grab and stuff to monitor the mouse movement.
the Desktop.PickColor does not.
If at first you don't succeed , try doing something differently.
BruceS
BruceS
- cogier
- Site Admin
- Posts: 1160
- Joined: Wednesday 21st September 2016 2:22pm
- Location: Guernsey, Channel Islands
Re: Colour picker issue.
I'm not sure I understand what the 'desktop portal' means. How do I pick the specific pixel I want and what is the point of an empty box?Benoit changed the color picker to use desktop portal
- BruceSteers
- Posts: 1877
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Colour picker issue.
Desktop portal Is a DBus interface supposed to be the next xdg-utils thing.
And I agree, it not as good like that, Maybe ask Ben to put it back as it was.
I'm pretty sure portal ScreenShot does not work on all systems (Fedora iirc)
And I agree, it not as good like that, Maybe ask Ben to put it back as it was.
I'm pretty sure portal ScreenShot does not work on all systems (Fedora iirc)
If at first you don't succeed , try doing something differently.
BruceS
BruceS
- BruceSteers
- Posts: 1877
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Colour picker issue.
I've fixed it here...
https://gitlab.com/bsteers4/gambas/-/co ... 9688e6c354
I do not know if Benoit removed the feature for a reason (possibly it does not work on wayland)
I messaged the M/L pointing to that commit, maybe Ben will add it or do it his own way or not do it because of wayland?
Only time will tell.....
https://gitlab.com/bsteers4/gambas/-/co ... 9688e6c354
I do not know if Benoit removed the feature for a reason (possibly it does not work on wayland)
I messaged the M/L pointing to that commit, maybe Ben will add it or do it his own way or not do it because of wayland?
Only time will tell.....
If at first you don't succeed , try doing something differently.
BruceS
BruceS
- cogier
- Site Admin
- Posts: 1160
- Joined: Wednesday 21st September 2016 2:22pm
- Location: Guernsey, Channel Islands
Re: Colour picker issue.
Thanks for that. We will see what happens...
- BruceSteers
- Posts: 1877
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Colour picker issue.
Looks like a no.
because of how crap wayland is.
Screenshot and PickColor from desktop portal do not work the same,
they have very few options and demand interaction.
like the screenshot method that with x11 can get any bit of the screen , with portal all it does is open a screenshot dialog.
then Ben has worked around it by copying part of the image after grabbing the whole screen.
so basically the color being seen as you move the mouse in ColorChooser.class has been ruined by wayland because each call to Desktop.Screenshot to get the pixels will now open the screenshot dialog
It will still work on x11 but Benoit says any x11 specific code in gb.desktop will slowly disappear and use desktop portal instead!
God I hate wayland, it sucks so very badly that now it's even making gambas worse.
Damn that's sucky , really really sucky
because of how crap wayland is.
Screenshot and PickColor from desktop portal do not work the same,
they have very few options and demand interaction.
like the screenshot method that with x11 can get any bit of the screen , with portal all it does is open a screenshot dialog.
then Ben has worked around it by copying part of the image after grabbing the whole screen.
Static Public Sub Screenshot(Optional X As Integer, Y As Integer, Width As Integer, Height As Integer) As Picture
Dim hScreenshot As Image
If Desktop.Platform <> "x11" Then
hScreenshot = DesktopPortal.Screenshot()
If Width <= 0 Then Width = Desktop.Width - X
If Height <= 0 Then Height = Desktop.Height - Y
Return hScreenshot.Copy(X, Y, Width, Height).Picture
Endif
Try Return Super.Screenshot(X, Y, Width, Height)
End
so basically the color being seen as you move the mouse in ColorChooser.class has been ruined by wayland because each call to Desktop.Screenshot to get the pixels will now open the screenshot dialog
It will still work on x11 but Benoit says any x11 specific code in gb.desktop will slowly disappear and use desktop portal instead!
God I hate wayland, it sucks so very badly that now it's even making gambas worse.
Damn that's sucky , really really sucky
If at first you don't succeed , try doing something differently.
BruceS
BruceS
- BruceSteers
- Posts: 1877
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Colour picker issue.
Right so i tried another merge request.
https://gitlab.com/gambas/gambas/-/merge_requests/337
This one uses the method to show the color in the color box only if using x11 as currently gb.desktop is set to use desktop.portal ONLY if on wayland.
The desktop portal PickColor method shows a nice little magnifying glass for the cursor that displays the color as you move.
So currently if using wayland you CAN see the color in the cursor but if using x there is nothing
So if Ben accepts this then it will work again for X11 systems.
Or if he changes x11 to use portal then we'll have the magnifying glass for a cursor showing color anyway.
https://gitlab.com/gambas/gambas/-/merge_requests/337
This one uses the method to show the color in the color box only if using x11 as currently gb.desktop is set to use desktop.portal ONLY if on wayland.
The desktop portal PickColor method shows a nice little magnifying glass for the cursor that displays the color as you move.
So currently if using wayland you CAN see the color in the cursor but if using x there is nothing
So if Ben accepts this then it will work again for X11 systems.
Or if he changes x11 to use portal then we'll have the magnifying glass for a cursor showing color anyway.
If at first you don't succeed , try doing something differently.
BruceS
BruceS
- BruceSteers
- Posts: 1877
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Colour picker issue.
Does not look like Ben wants to make this change.
He's not commented on the merge request. (i just gave him a nudge)
If you want your gambas to do it and you compile then you could replace this file in your branch's /comp/src/gb.form/.src/Color folder and recompile.
https://gitlab.com/gambas/gambas/-/blob ... oser.class
He's not commented on the merge request. (i just gave him a nudge)
If you want your gambas to do it and you compile then you could replace this file in your branch's /comp/src/gb.form/.src/Color folder and recompile.
https://gitlab.com/gambas/gambas/-/blob ... oser.class
If at first you don't succeed , try doing something differently.
BruceS
BruceS