Bug 13954 - Checkboxes/RadioButtons not displaying selected state
Summary: Checkboxes/RadioButtons not displaying selected state
Status: RESOLVED FIXED
Alias: None
Product: Mageia
Classification: Unclassified
Component: Installer (show other bugs)
Version: Cauldron
Hardware: x86_64 Linux
Priority: Normal major
Target Milestone: ---
Assignee: Olav Vitters
QA Contact:
URL: https://bugs.kde.org/show_bug.cgi?id=...
Whiteboard:
Keywords: Junior_job
: 13940 14060 (view as bug list)
Depends on:
Blocks:
 
Reported: 2014-08-20 16:34 CEST by Frank Griffin
Modified: 2014-09-17 13:48 CEST (History)
11 users (show)

See Also:
Source RPM: oxygen-gtk3
CVE:
Status comment:


Attachments
simple test case (2.24 KB, text/plain)
2014-08-21 12:35 CEST, Philippe Makowski
Details
Fixes the issue, as well as progressbar rendering (7.56 KB, patch)
2014-08-25 10:23 CEST, Hugo Pereira Da Costa
Details | Diff

Description Frank Griffin 2014-08-20 16:34:59 CEST
In current cauldron (and this has happened in the last month or so), checking a checkbox (e. g. multiple language selection) or clicking a radio button (e. g. disk layout selection) causes the checkmark or the bullseye to appear briefly and then disappear.  The check seems to take effect, but you can't tell by looking.

For instance, on the Choose Repositories panel, if you click Tainted Release, the check will appear and disappear, but Tainted Updates will be un-greyed.

This is particularly nerve-wracking when you are presented with a list of partitions to format and you can't be sure which are selected (I crossed my fingers and assumed it was just root, as usual).

Probably more gtk3 fun and games.

Reproducible: 

Steps to Reproduce:
Comment 1 Manuel Hiebel 2014-08-20 19:23:28 CEST
(keeping one in installer and one in soft)

See Also: (none) => https://bugs.mageia.org/show_bug.cgi?id=13929
Assignee: bugsquad => thierry.vignaud

Thierry Vignaud 2014-08-20 20:06:53 CEST

CC: (none) => olav

Comment 2 Barry Jackson 2014-08-21 12:31:07 CEST
I just noticed this in drakrpm-edit-media - all checkboxes unchecked in GUI but are enabled in urpmi.cfg. This is after the update to gtk+3.0-3.13.7-1 which I did last night.

To confirm the cause I just downgraded to:
  gtk+3.0                        3.13.6       1.mga5        x86_64  
  lib64gtk+3.0-devel             3.13.6       1.mga5        x86_64  
  lib64gtk+3_0                   3.13.6       1.mga5        x86_64  
  lib64gtk-gir3.0                3.13.6       1.mga5        x86_64

All checkboxes are back.

So this is definitely a problem in in gtk+3.0-3.13.7-1

CC: (none) => zen25000

Comment 3 Philippe Makowski 2014-08-21 12:35:08 CEST
Created attachment 5351 [details]
simple test case
Comment 4 Barry Jackson 2014-08-21 13:13:14 CEST
(In reply to Philippe Makowski from comment #3)
> Created attachment 5351 [details]
> simple test case

Neat!

Yes, that works fine with my downgraded gtk+3.0 as in #2
Comment 5 Luc Menut 2014-08-21 13:41:44 CEST
probably related to

-------- Message original --------
Sujet: gtk+ 3.13.7
Date : Sun, 17 Aug 2014 02:02:38 +0000 (UTC)
De : Matthias Clasen <install-module@master.gnome.org>
Répondre à : desktop-devel-list@gnome.org
Pour : FTP Releases <ftp-release-list@gnome.org>

...

News
====

* To align better with css, button and menuitem subclasses now use a
  :checked state to indicate their checkedness, instead of :active or
  :selected.

* Deprecations: GtkStatusIcon, GtkThemingEngine

CC: (none) => lmenut

Comment 6 Barry Jackson 2014-08-21 14:38:24 CEST
(In reply to Philippe Makowski from comment #3)
> Created attachment 5351 [details]
> simple test case

Confirm that updating gtk+3.0 again breaks your test case.
Comment 7 Thierry Vignaud 2014-08-21 14:50:00 CEST
could you test with Adwaita theme?
It could be that gtk+ is breaking Oxygen-gtk again (our default theme)

Keywords: (none) => NEEDINFO
CC: (none) => hugo.pereira
Assignee: thierry.vignaud => olav
Source RPM: (none) => gtk+3.0-3.13.7-1.mga5

Comment 8 Hugo Pereira Da Costa 2014-08-21 14:55:25 CEST
@Thierry
From comment #5, yes, oxygen is likely broken again (most likely also in an non backward compatible way).
Talking about code stability ...
Comment 9 Barry Jackson 2014-08-21 17:08:05 CEST
(In reply to Thierry Vignaud from comment #7)
> could you test with Adwaita theme?

Can I do that in KDE?
Comment 10 Barry Jackson 2014-08-21 17:20:47 CEST
OK I found it - no change (no tick marks stay, but occasionally they do appear momentarily, so I doubt it's theme related?). I also tried Symbolic, again no change.

Running the test case produces the same warnings irrespective of icon theme:

$ python checkbutton3.py
checkbutton3.py:32: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "homogeneous, spacing" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  vbox = Gtk.VBox(True, 2)
checkbutton3.py:38: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "label" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  button = Gtk.CheckButton("check button 1")
checkbutton3.py:52: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "label" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  button = Gtk.CheckButton("check button 2")
checkbutton3.py:63: PyGTKDeprecationWarning: Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "label" or use a class specific constructor. See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
  button = Gtk.Button("Quit")
check button 1 was toggled ON
check button 2 was toggled ON
check button 1 was toggled OFF
check button 2 was toggled OFF
Comment 11 Laurent BRETON 2014-08-21 19:15:06 CEST
*** Bug 13940 has been marked as a duplicate of this bug. ***

CC: (none) => herman.viaene

Comment 12 Bit Twister 2014-08-22 00:51:57 CEST
Bumped Severity to major because any activity like remove/add software, create new user do not show if checked or not in mcc.

CC: (none) => junknospam
Severity: normal => major

Comment 13 Hugo Pereira Da Costa 2014-08-22 09:14:42 CEST
I'll give a shot at fixing it (on oxygen's side) some time today. Should not be too difficult. Hopefully I'll post a patch by the end of the day, before release later during next week.

Best,

Hugo
Comment 14 Hugo Pereira Da Costa 2014-08-22 09:45:18 CEST
ok interestingly, the whole gtk theming engine class is becomming deprecated, with no announced replacement. 
(in fact that was also in comment #5)

if this holds, this probably means a complete change of theming api. 
I fear it will be the end of oxygen@gtk3. This is the base class our code inherit from (and the documented/announced/enforced theming API. You just don't take that out in a release cycle. Right ?)
Comment 15 Hugo Pereira Da Costa 2014-08-22 09:49:09 CEST
oh. This gtk release also broke progress bars: 
http://wstaw.org/m/2014/08/22/plasma-desktopXV4066.png

Something that was working (and has not changed on our side), for the last 2 years.

... 
(frustration ...)
Comment 16 Hugo Pereira Da Costa 2014-08-22 09:49:55 CEST
I really really have no idea which kind of code developpement model this is.
Comment 17 Hugo Pereira Da Costa 2014-08-22 09:59:17 CEST
A last one, before I stop sending comments here:

Quoting:
https://developer.gnome.org/gtk3/unstable/GtkThemingEngine.html

GtkThemingEngine was the object used for rendering themed content in GTK+ widgets. It used to allow overriding GTK+'s default implementation of rendering functions by allowing engines to be loaded as modules.

GtkThemingEngine has been deprecated in GTK+ 3.14 and will be ignored for rendering. The advancements in CSS theming are good enough to allow themers to achieve their goals without the need to modify source code.

So basically they just dropped the whole API they were supporting since the beginning of gtk3, and putting all my efforts to have as much code in common between gtk2 and gtk3 to the waste.

Bottom line, if this statement remains, i'm done with oxygen @ gtk3 (and this bug, as well as the many others to come), will not be fixed.
(Understand: I will not rewrite oxygen all in CSS, because some devs decided all of a sudden to force me to do that. And CSS is not stable either anyway <- see all the regressions with Adwaita for instance)
Comment 18 Hugo Pereira Da Costa 2014-08-22 11:07:27 CEST
https://bugzilla.gnome.org/show_bug.cgi?id=735211
bug reports to gtk to kindly ask not to deprecate the API

Depending on what the outcome is, I'll adress the various oxygen issues against gtk+3.13.7 or not ... (no point to adress them if all is gone in 3.14 anyway)
Comment 19 Bit Twister 2014-08-22 13:55:20 CEST
(In reply to Hugo Pereira Da Costa from comment #18)
> https://bugzilla.gnome.org/show_bug.cgi?id=735211
> bug reports to gtk to kindly ask not to deprecate the API
> 
> Depending on what the outcome is, I'll adress the various oxygen issues
> against gtk+3.13.7 or not ... (no point to adress them if all is gone in
> 3.14 anyway)

So is changing theme to Adwaita the workaround or is there a user workaround?
Comment 20 Barry Jackson 2014-08-22 15:01:35 CEST
(In reply to Bit Twister from comment #19)
> 
> So is changing theme to Adwaita the workaround or is there a user workaround?

Changing to Adwaita fixes nothing here.
I have downgraded to gtk+3.0-3.13.6 and added gtk+3.0 to skip.list for now.
Comment 21 Hugo Pereira Da Costa 2014-08-22 15:04:25 CEST
@Barry
Did you change the widget style theme ? 
Or only the icon theme (which is what it seems in your comment)

To change the widget style you need something like kde-gtk-config rpm
And then in systemsettings->application appearance, you would get a gtk window from where you can change things.

Hugo
Comment 22 Laurent BRETON 2014-08-22 21:09:01 CEST
I installed kde-gtk-config and processed as explained in comment 21. I changed GTK2 and GTK3 themes to Adwaita
It does not fix the bug for me.

CC: (none) => laurent_breton_web

Comment 23 Bit Twister 2014-08-22 22:06:43 CEST
(In reply to Barry Jackson from comment #20)

> I have downgraded to gtk+3.0-3.13.6 and added gtk+3.0 to skip.list for now.

Any solution for current installs?

I just finished another clean install, updates, reboot, and still have the problem.
Comment 24 Barry Jackson 2014-08-22 22:15:17 CEST
(In reply to Hugo Pereira Da Costa from comment #21)
> @Barry
> Did you change the widget style theme ? 
> Or only the icon theme (which is what it seems in your comment)
> 
> To change the widget style you need something like kde-gtk-config rpm
> And then in systemsettings->application appearance, you would get a gtk
> window from where you can change things.
> 
> Hugo

I had only changed the icon theme, all very confusing this theme stuff.

I have now installed kde-gtk-config and selected Adwaita for gtk2 and gtk3.

Still no check marks in drakrpm-edit-media.

I then saw the option to set widget style and set it to gtk+

Still no check marks in drakrpm-edit-media.

However the test case python script from #3 does *sort of* work now, except that the checkmarks only appear after the mouse button is released and the pointer leaves the checkbox area.
Comment 25 Barry Jackson 2014-08-22 22:31:08 CEST
(In reply to Bit Twister from comment #23)
> (In reply to Barry Jackson from comment #20)
> 
> > I have downgraded to gtk+3.0-3.13.6 and added gtk+3.0 to skip.list for now.
> 
> Any solution for current installs?
> 
> I just finished another clean install, updates, reboot, and still have the
> problem.

Well yes, that is expected until this bug is fixed ;)
Comment 26 Thierry Vignaud 2014-08-25 09:03:09 CEST
Reported back to oxygen-gtk3

URL: (none) => https://bugs.kde.org/show_bug.cgi?id=338538
CC: (none) => thierry.vignaud

Comment 27 Hugo Pereira Da Costa 2014-08-25 10:23:34 CEST
Created attachment 5363 [details]
Fixes the issue, as well as progressbar rendering
Comment 28 Hugo Pereira Da Costa 2014-08-25 10:25:57 CEST
changes from patch attached will be in next oxygen-gtk3 release (within a week I hope)
in the meanwhile you should be able to patch the current release.
Please close the report once the patch is verified to fix
(tested here, but you never know)

Hugo

and please, don't ask me to fix all the DEPRECATED warnings you get at compile time for oxygen-gtk3 (nor at runtime in fact), these are pure gtk nonsense, basically all oxygen-gtk got deprecated at once. There is no way I can fix that.
Comment 29 Thierry Vignaud 2014-08-25 10:38:17 CEST
There seems to be more changes that necessary (and which do not came from http://quickgit.kde.org/?p=oxygen-gtk.git ?).
http://quickgit.kde.org/?p=oxygen-gtk.git&a=commitdiff&h=63fbf144e0ed98a9c33b7605f0cee979e6840319&o=plain should be enough

Anyway can anyone apply this patch to oxygen-gtk3?
Else I'll do it in ~10 hours

Source RPM: gtk+3.0-3.13.7-1.mga5 => oxygen-gtk3

Thierry Vignaud 2014-08-25 10:38:53 CEST

Summary: Checkboxes/RadioButtons not displaying selected state => Checkboxes/RadioButtons not displaying selected state (due to new :checked state)

Comment 30 Hugo Pereira Da Costa 2014-08-25 10:41:38 CEST
@Thiery,
yes there are: progress bars are also broken with current gtk3 and oxygen-gtk3
(because the way progressbars are rendered internally has been changed inside gtk)
the fix addresses this also.
Same thing for window dragging being broken (because of upstream change), and fixed.

now, since there are users that do not use latest gtk3, and because theses changes are (as usual) not backward compatible, I also had to add some ifdefs around all these changes. 

I'd recommand to add the full patch. They are all bug fixes (although not only this one and not all being reported yet)

Summary: Checkboxes/RadioButtons not displaying selected state (due to new :checked state) => Checkboxes/RadioButtons not displaying selected state

Comment 31 Hugo Pereira Da Costa 2014-08-25 10:43:12 CEST
(PS: All the commits from the diff are already pushed to git: 
http://quickgit.kde.org/?p=oxygen-gtk.git&a=shortlog&h=a734cebfd7c55b5e8e7124ef975c83134f0a3229
Comment 32 Thierry Vignaud 2014-08-25 11:13:14 CEST
OK.
Anyone can apply this patch?

Keywords: NEEDINFO => Junior_job

Comment 33 David GEIGER 2014-08-25 11:25:01 CEST
@ Thierry Vignaud

Yes I can apply this patch.

CC: (none) => geiger.david68210

Comment 35 Sander Lepik 2014-08-25 11:50:00 CEST
David, you only added one patch (for checkboxes), progress bar patch is missing. Check attached file from Hugo.

CC: (none) => mageia

Comment 36 David GEIGER 2014-08-25 11:57:00 CEST
Oops! Sorry I forget this one.

I'll add this one too.
Comment 37 Thierry Vignaud 2014-08-25 12:07:32 CEST
You can then rebuild drakx-installer-stage2 (just bump the release number) so that installer includes the fixed oxygen-gtk3.
Comment 38 David GEIGER 2014-08-25 12:24:06 CEST
Done for the second one!

http://svnweb.mageia.org/packages?view=revision&revision=667330

Done for drakx-installer-stage2 too!
Comment 40 Thierry Vignaud 2014-08-25 13:22:54 CEST
Just replace the 2 patches with that one.
And don't forget to rebuild stage2 after
Comment 41 David GEIGER 2014-08-25 15:04:32 CEST
Ok, this time it's really done!

All 4 commits are integrated into a single patch:

http://svnweb.mageia.org/packages?view=revision&revision=667348


Be careful though, the patch in comment #27 contains only 3 commits and not 4, 
so I've recreate a new one with this 4 commits.
Comment 42 Manuel Hiebel 2014-08-28 00:23:30 CEST
net-installer is ok, thanks

Status: NEW => RESOLVED
Resolution: (none) => FIXED

Comment 43 Rémi Verschelde 2014-09-17 13:48:54 CEST
*** Bug 14060 has been marked as a duplicate of this bug. ***

CC: (none) => kristoffer.grundstrom1983


Note You need to log in before you can comment on or make changes to this bug.