Closed Bug 1269145 Opened 8 years ago Closed 6 years ago

Scrollbar buttons missing (GTK3)

Categories

(SeaMonkey :: UI Design, defect)

SeaMonkey 2.43 Branch
Unspecified
Linux
defect
Not set
normal

Tracking

(seamonkey2.49esr fixed, seamonkey2.50 wontfix, seamonkey2.51 wontfix, seamonkey2.52 wontfix, seamonkey2.54 wontfix, seamonkey2.55 wontfix, seamonkey2.56 fixed, seamonkey2.53 fixed)

RESOLVED FIXED
seamonkey2.56
Tracking Status
seamonkey2.49esr --- fixed
seamonkey2.50 --- wontfix
seamonkey2.51 --- wontfix
seamonkey2.52 --- wontfix
seamonkey2.54 --- wontfix
seamonkey2.55 --- wontfix
seamonkey2.56 --- fixed
seamonkey2.53 --- fixed

People

(Reporter: mrmazda, Assigned: frg)

References

(Blocks 1 open bug)

Details

(Whiteboard: [workaround see comments #11 and #17])

Attachments

(6 files, 1 obsolete file)

Environments in which observed:
A.Fedora 24, KDE Plasma:
1-default DE theme (Breeze)
2-Oxygen DE theme
openSUSE 42.1, KDE3, oxygen-gtk DE theme
B.same errant behavior whether using Default or Modern SM theme

Actual behavior (new in rv46):
1-scrollbutton-up and scrollbutton-down are missing
2-clicking above or below scroll grab button behaving as if shift key is held down, scrolling more the farther away from the scroll grab button the click is made

Expected behavior (same as in rv45):
1-working scrollbuttons in their usual locations
2-clicking above or below scroll grab button without shift key held down scrolls only ~one screen per click
More precise summary due to report.
Changed Version, OS due to report.

@reporter:
a) Your screenshot shows a problem with Chatzilla, what is not a genuine 
   SeaMonkey application, but a bundled add-on. Do you also observe the problem
   with email client, browser, addressbook, ...?
b) Also Your screenshot shows a problem with vertical scroll bar. Also
   horizontal scrollbar affected?
c) From what source did you download your SM? 
   <http://ftp.mozilla.org/pub/seamonkey/>?
d) The unexpected click-on-scrollbar-behavior might be a separate bug.
Please answer without citing, simply start your reply like
a): <answer>
Status: NEW → UNCONFIRMED
Ever confirmed: false
Flags: needinfo?(mrmazda)
OS: Unspecified → Linux
Summary: scrollbars fubared by upgrade from 2.42 to 2.43 → Vertical scrollbar buttons missing
Version: SeaMonkey 2.46 Branch → SeaMonkey 2.43 Branch
I did my own tests:

Effects are REPRODUCIBLE with  English SeaMonkey 2.43a1  (X11; Linux x86_64; rv:46.0)  Gecko/20100101 Firefox/46.0 Build 20160109003001  (Classic Default Theme AND ALSO Modern Theme) on VirtualBox Ubuntu 14.04 LTS

a): Also reproducible with Browser
b): also vertical scrollbar affected
c): no longer relevant
d): The suspect that the click-on-scrollbar-behavior-problem is plausible, 
    nevertheless I prefer to handle that in a separate Bug until it is crystal 
    clear that both bugs have the same roots.
e): A problem what is reproducible with all themes (or did I misunderstand 
    something?) is not a Theme Componet bug.
f) Same problem(s) reported as
   "Bug 1269149 - rv46 scrollbar UI bad in Linux/KDE", so probably a Core
   problem. 
g) I can't remember to have seen that with SeaMonkey on Windows, so probably
   related to OS "Linux"
Component: Themes → General
Flags: needinfo?(mrmazda)
Summary: Vertical scrollbar buttons missing → Scrollbar buttons missing
a) Yes in browser, which is where bug was first noticed. CZ, standard in SM, was the smallest open window demonstrating the problem. I don't use pre-releases for email, so mailnews and address book were not tested.

b) Yes

e) Only SM theme I use is Modern, except occasional brief tests to check if default SM theme behavior differs. The non-Gnome Linux DEs are what I tested using several of, which do theme variously, and provide varying adaptations to support GTK widgets. 

f) Bug roots for both are most likely in core, but it's hard to say completely missing buttons regardless of environment have no theme-related component.

g) I tested only on Linux, but multiple DEs (two distros, KDE3, KDE5, IceWM), to confirm problem not limited to a single environment. I would have checked Linux as platform if "the" Platform "field" wasn't disguised by having been split into two select lists in the input form. (Hardware and OS should be distinguished by separate labels instead of being combined as "Platform".)

This is indubitably fallout from switch to GTK3 toolkit. These things were discussed and confirmed in irc://moznet/seamonkey prior to filing.
Status: UNCONFIRMED → NEW
Ever confirmed: true
(In reply to Rainer Bielefeld from comment #3)
> fallout from switch to GTK3 toolkit

Sounds plausible
Yes, only releases are currently built with GTK2, development versions are built with GTK3 by default, thus I'm assuming that this is your own build or one grabbed from the nightly or tinderbox sites.

There should be a Core/Widget bug report on this (also applies to Firefox 46.0), thus likely a dupe.
Component: General → UI Design
(In reply to rsx11m from comment #6)
> There should be a Core/Widget bug report 

Probably "Bug 627699 - (gtk3) Port GTK2 to GTK3" due to Bug 1269149 comment #2 (by Loic)
See Also: → 1269149
Bug 627699 is just the meta bug with /lots/ of dependencies. I sure hope that SeaMonkey will keep shipping releases with GTK2 for a while, given the plenty of issues with GTK3 still being open...
Summary: Scrollbar buttons missing → Scrollbar buttons missing (GTK3)
NI jhorak@redhat.com We are missing the scrollbar buttons
Blocks: gtk3
Perhaps a dupe of bug 1271498?
User agent: Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0 SeaMonkey/2.47a1
Build identifier: 20160623050145
http://hg.mozilla.org/mozilla-central/rev/437fc937572dd344f58226d40ba9eccb4ffcaedb
http://hg.mozilla.org/comm-central/rev/a0fd317f89e2

Whether or not there are scrollbar buttons depends on the (complete) theme you use. I don't see them in Default or Modern but EarlyBlue has them. All of them have scrollbar _thumbs_ which are good enough for me. (Instead of clicking the buttons, hitting ↑ or ↓ on the keyboard gives the same result.) I haven't checked more themes but if you want buttons and don't like EarlyBlue (or LCARSTrek, with widgets similar to EarlyBlue's but colours extremely different) there are more themes available. IIUC MetalLion has buttons too.

Hint: At https://addons.mozilla.org/en-us/seamonkey/complete-themes/?sort=updated the themes still actively maintained are listed first.
Whiteboard: [workaround see comment #11]
In case it's not evident from simply looking at the attachment, I use exclusively the Modern theme that SeaMonkey ships with, which I have been using since before the Mozilla Suite reached version 1.0; and, I use it with many profiles, on many machines, most of them running some form of KDE, most often KDE3 or TDE (a KDE3 fork), and most often via systemsettings using (as noted in comment 0) oxygen-gtk in GTK applications.
In case it's not evident from reading comment #11, a workaround is not the same as a fix.
(Partial quote of Frank Lion from bug 1213152 comment #23)
> Just to, hopefully, clarify a couple of things. The non-appearance of
> scrollbar arrows is not a GTK3 bug, but the omission of just 2 lines of code
> in gtk.css by many Linux OS theme writers, especially Mint. It shows far
> more in browsers, but this omission is evident in other programs that have
> scrollbars and use GTK3, such as Nemo, a main file manager. As so many Linux
> theme writers have mucked this up (a 100% working default theme template
> would have helped) it is assumed by users to be a GTK3/OS or browser bug. It
> 'may' be possible to add the required 2 lines in SeaMonkey's
> chrome://global/content/bindings/scrollbar.xml#scrollbar.
(Yet another quote of Frank Lion from bug 1213152 comment #25)
> No problem. all that I wrote there is correct, but we can fix this! Add the
> following to SM's default scrollbars.css - 
> 
> scrollbarbutton[sbattr="scrollbar-up-bottom"],
> scrollbarbutton[sbattr="scrollbar-down-top"] {
>   display: none;
> }
> scrollbarbutton[sbattr="scrollbar-up-top"],
> scrollbarbutton[sbattr="scrollbar-down-bottom"] {
>   display: -moz-box !important;
> }
> 
> Quick Reproduce: Put this theme on -
> https://addons.mozilla.org/en-us/seamonkey/addon/metal-lion-sea-monkey/
> ?src=cb-dl-updated and any Linux OS theme that is known to vanish the
> scrollbar arrows. As expected, upon SM restart, arrows are gone and same
> with default, etc.
> 
> Now take the scrollbar.xpi that comes with that theme, which uses 'override'
> to, er, override the default scrollbar.css. Edit the scrollbars.css of the
> .xpi and add the above code around line 124. Save, restart, etc. the arrows
> are back and you're done. Putting a 'good' Linux theme on later has no
> adverse effect. 
> 
> Obviously, the code is added to default's scrollbar.css as a proper fix, but
> I'm spelling out the above method, so that other people can test this out
> for themselves. But, I've tested and can't break it. 
> 
> Lucky you linked to that scrollbar bug, I read the comments and picked up
> the fact that Early Bird was not getting whacked by this and that is where
> this fix comes from. :)
I've added Frank's code to toolkit/content/minimal-xul.css and the scrollbar buttons magically appeared in both the classic and modern. :-) The modern theme has suite/themes/modern/global/scrollbars.css but there is no counterpart for the classic theme, thus would need to find a feasible place somewhere.
Workaround not requiring extension or add-on:

Put the following in ~/.config/gtk-3.0/gtk.css

*{
-GtkScrollbar-has-backward-stepper: 1;
-GtkScrollbar-has-forward-stepper: 1;
-GtkRange-slider-width: 13;
-GtkRange-stepper-size: 13;
}
Whiteboard: [workaround see comment #11] → [workaround see comments #11 and #17]
Blocks: SM2.49-GTK3
Lets see if we can fix it for 2.49.2
Attached patch 1269145-scrollbar.patch (obsolete) — Splinter Review
Works fine for me in 2.49.2 under Cent OS 7.4. Windows and OSX are not affected. Any advise how we can get this into Linux Classic theme without pulling in the whole scrollbars.css. Putting the patch from Moderns scrollbars.css into Classic communicator.css seems not to work. Using DOM Inspector I only see the toolkits theme css files pulled in for content scrollbars.
Attachment #8937349 - Flags: feedback?(stefanh)
Attachment #8937349 - Flags: feedback?(iann_bugzilla)
Tried some other approaches but forking scrollbar.css was the only option getting it working for me in Classic. 2.56 is in bad share right probably because of the toolbar xbl removals but you can see the scrollbars in the error console.
Assignee: nobody → frgrahl
Attachment #8937349 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #8937349 - Flags: feedback?(stefanh)
Attachment #8937349 - Flags: feedback?(iann_bugzilla)
Attachment #8942713 - Flags: review?(stefanh)
ESR 52 version for next 2.49.x
I don't have any means of testing this, so I think Ian is a better choice here. That said, what style rules are you using to get the buttons to display? Forking the whole file makes me a bit sad... :-(
Comment on attachment 8942713 [details] [diff] [review]
1269145-scrollbar.patch

> That said, what style rules are you using to get the buttons to display?

Essentially the ones added in the Modern theme. Adding them in communicator.css didn't work probably because of the different namespace and including a new file with only the directives didn't do it either. Only minimal-xul.css and scrollbar.css were loaded for the bars in web content according to DOM Inspector.

> Forking the whole file makes me a bit sad... :-(

Well given the current rate with which the source is dumbed down it probably doesn't matter much and needs to be done anyway soon. But if you have another idea I am all ears. Couldf the original scrollbar.css be included and then overridden in a new file?
Attachment #8942713 - Flags: review?(stefanh) → review?(iann_bugzilla)
Comment on attachment 8942713 [details] [diff] [review]
1269145-scrollbar.patch

r=me
Attachment #8942713 - Flags: review?(iann_bugzilla) → review+
Comment on attachment 8942714 [details] [diff] [review]
1269145-scrollbar-52.patch

r/a=me for ESR52
Attachment #8942714 - Flags: review+
Attachment #8942714 - Flags: approval-comm-esr52+
Pushed by frgrahl@gmx.net:
https://hg.mozilla.org/comm-central/rev/4b11d994f023
Show gtk3 scrollbar buttons in SeaMonkey. r=IanN
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Fixed for 2.49.2

NI so I don't forget to file a followup bug to see if it can be done better.
Flags: needinfo?(frgrahl)
Target Milestone: --- → Seamonkey2.56

It seems the patch no more needed now. At least the part related to classic theme.

Currently, with classic theme there is just a rectangle instead of the floating button in the scrollbar. This annoys Linux users who prefer to use the same theme as in the other desktop applications.

Fortunately, when I revert the classic-related changes, all looks fine. Scrollbar looks like in other apps (as before the switch to gtk3).
Probably something is changed since 2.49.5 time, and now things work properly.

Note, that there are some gtk3 themes (ie. Adwaita), which do not use scrollbar top/bottom buttons at all. It is the theme feature, and it is intended to be -- ie. not SM only, but all the desktop apps have no such buttons.

The patch proposed.

Tested under Mate and KDE on CentOS-7.

(Since CentOS-7 is old enough, we can assume the problem gone in other Linuxes as well).

Have a positive feedback from Fedora users:
https://bugzilla.redhat.com/show_bug.cgi?id=1808197#c13

Comment on attachment 9130315 [details] [diff] [review]
seamonkey-2.53.1-classic.patch

I am a bit under water. Maybe IanN is able to check it first. 

Did you test it with 2.57 alpha too?
Flags: needinfo?(frgrahl)
Attachment #9130315 - Flags: feedback?(frgrahl)

(In reply to Frank-Rainer Grahl (:frg) from comment #32)

Did you test it with 2.57 alpha too?

No, but it seems an initial issue was fixed somewhere since 2.49.x time...

Flags: needinfo?(iann_bugzilla)

With this patch applied, the rectangle goes, but so do the scroll bar buttons which people do like. Anyway to rework to keep the buttons?

Flags: needinfo?(iann_bugzilla) → needinfo?(dmitry)

(In reply to Ian Neal from comment #34)

With this patch applied, the rectangle goes, but so do the scroll bar buttons which people do like.
Nope, the croll bar buttons do not disappear.

Classic theme under Linux uses the underlying desktop theme. There is a responsibility of such a theme whether to use scrollbar buttons or not.

If users prefer to have buttons, they just use a theme which provides them (for all the desktop). If not, they use desktop theme without buttons.

Flags: needinfo?(dmitry)

Screenshot of Linux Classic theme with desktop "Traditional" theme.

Note SM, terminal (from Mate) and editor (from Gnome3) all have the same scrollbar style with buttons.

Attached image Screenshot-adwaita.png

Screenshot of Linux Classic theme with "Adwaita" desktop theme.

Note SM, terminal (from Mate) and editor (from Gnome3) all do not have scrollbar buttons, because Adwaita just do not use it.

For Modern theme, no idea -- all works fine with Modern part of the initial patch preserved. Ie only changes for Classic seem to be required.

Flags: needinfo?(iann_bugzilla)
Blocks: 1625754

See Bug 1625754 for fix that will be part of 2.53.2b1

Flags: needinfo?(iann_bugzilla)
You need to log in before you can comment on or make changes to this bug.