GNOME Bugzilla – Bug 764542
ECalendar next/previous month arrows oversized in gtk+ 3.20
Last modified: 2016-04-06 17:18:17 UTC
http://i.imgur.com/Bs0YLf4.png Notice the arrows overlap the day numbers in the screenshot. It is just a visual glitch but it would be nice to have it fixed since gtk+ 3.20 is already released. Thank you.
Thanks for a bug report. The problem is that this had been addressed recently (bug #692713) and works just fine with gtk+ 3.18.6 (the one I have currently installed), but is broken with gtk+ 3.20.0. I tend to call this a regression on the gtk+ side, but I do not know how much it is a true.
The problem with 3.20.x is that it defines minimum size for the button, which doesn't fit the UI of the ECalendar. I fixed it, but with a compile time check, because the runtime check didn't work here. The 3.18.6 doesn't know about these CSS properties, thus it claimed runtime warnings, which was the reason for the compile time gtk+ version check. Created commit afb752e in evo master (3.21.1+) Created commit 643189c in evo gnome-3-20 (3.20.1+)
It sometimes looks like this now: http://i.imgur.com/NGGcY00.png The arrows around the year are misplaced. The next arrow should be after the year. This randomly happens. Sometimes it looks OK. I can mostly reproduce it by starting evolution in mail view then switching to Calendar view.
Thanks for the update and testing the change. Is it related to the width of the calendar widget? I think if you make is smaller or larger, then it'll start working properly. This is not meant as a workaround, I'm just trying to isolate the cause. Before you start playing with the width, please run this from a terminal: $ gsettings get org.gnome.evolution.shell folder-bar-width It returns your current setting for the left panel width. mine is around 265 pixels (I already moved with it) and the calendar looks fine.
gsettings get org.gnome.evolution.shell folder-bar-width 318 You are right. While resizing the calendar widget, the arrows sometimes show in the wrong place then back to the correct place.
It seems that not only gtk_widget_queue_resize() is ignored inside the size-allocate signal handler, because I see that the values are set properly, only internal widgets inside the GtkLayout (GnomeCanvas) are not repositioned as set inside the handler. I made the reposition done in the timeout, very short one, which seems to fix the issue. Again, this is new with the gtk 3.20, I do not see it with gtk 3.18.6. Please note that I used GObject user data, to not change ABI. Created commit 3d76af7 in evo master (3.21.1+) Created commit 7c0fb47 in evo gnome-3-20 (3.20.1+)
Looks good now. Thank you.