ahlstromcj / sequencer64

A major reboot of Seq24. Current release 0.97.0 (2021-05-13), native JACK MIDI, Song recording, playlists, and a Windows/Qt version. For fresher code, see the Seq66 project. Note that trigger and mute-group-in-MIDI-file formats have evolved! Back up your work!
GNU Affero General Public License v3.0
237 stars 28 forks source link

crash on trying to enter File or Edit menu (not View or Help) "Invalid borders specified for theme pixmap", Breeze theme #126

Closed mxmilkiib closed 6 years ago

mxmilkiib commented 6 years ago
** (seq64:25277): WARNING **: Invalid borders specified for theme pixmap:
        /usr/share/themes/Breeze/gtk-2.0/../assets/line-h.png,
borders don't fit within the image
zsh: trace trap (core dumped)  seq64
Sequencer64 0.94.1
Native JACK/ALSA (rtmidi) * = ON
ALSA-only MIDI support * = off
PortMIDI support * = off
Event editor * = ON
Event multimap (vs list) = off
Follow progress bar = ON
Highlight edit pattern * = ON
Highlight empty patterns = ON
JACK session * = ON
JACK support * = ON
LASH support * = off
MIDI vector (vs list) = ON
Pause support * = ON
Save time-sig/tempo = ON
Seq32 chord generator * = ON
Seq32 LFO support * = ON
Seq32 menu buttons = ON
Seq32 transpose * = ON
Solid piano-roll grid = ON
Main window scroll-bars = off
Multiple main windows * = ON
Box song selection = off
Statistics support * = off
Windows support * = off
Debug code * = ON
64-bit support enabled

I'll try another theme shortly but AFAIK Breeze is isn't that relatively uncommon a theme, or at least a crash might possibly be a rash action :)

mxmilkiib commented 6 years ago

It doesn't crash using the Adapta theme. Still no numbers though.

ahlstromcj commented 6 years ago

I installed the Breeze GTK theme on this laptop, and it does replicate the crash. Pretty weird!! I suspect it's an issue with the theme itself, but I will look into further later today. Thanks!

ahlstromcj commented 6 years ago

After some investigration, I believe this is a Breeze theme issue, where the border setting for the menu separator line doesn't work with the 20x1 pixel line-h.png file. I couldn't figure out how to fix the theme locally. The workaround is to comment out the code in mainwnd that adds the SeparatorElem (horizontal lines) in the menu. I might provide a macro for that, but fixing the theme would be better.

ahlstromcj commented 6 years ago

Okay, I found an edit to the theme that prevents the crash. However, instead of a line separator in menus that have a separator, you will see just some extra vertical space. To implement the workaround:

As root, edit /usr/share/themes/gtk-2.0/Breeze/gtkrc (or gtk-3.0/gtkrc?). Find the second occurrence of "../assets/line-h.png", in the "separator_menu_item" section, and comment out the "file" and "border" lines.

You might try playing with editing the PNG file and tweaking the border sections, if you're keen to dig into Gtkrc settings :-D

ahlstromcj commented 6 years ago

I ran this scenario through valgrind, and the segfault (SIGTRAP) stack trace shows no code from seq64. I'm tempted to close it. @milkmiruku what do you mean by "still no numbers though"? Thanks!

mxmilkiib commented 6 years ago

@ahlstromcj that was just my misinterpretation of the config, but this issue is resolved with the latest tempo_track build :)

Edit; maybe I was mistaken, thinking about another issue. Editing the theme does resolve, though my thought was that a crash might be avoidable, but maybe it's not. It seems the theme is incorrect, though maybe the moving target of the GTK API/versions is also a factor. ¯\_(ツ)_/¯

mrlinuxfish commented 5 years ago

I am also having a similar problem. Editing the breeze theme does not seem like a reasonable solution to this issue. Whenever a new update to the breeze theme comes out it will probably cause issues again. If this is a problem with breeze, the issue should be sent upstream for resolution.

ahlstromcj commented 5 years ago

Unfortunately, the only thing we can do on seq64's end is add a krufty option to not add separators to seq64 menus.

Another option is to use the Qt version of seq64 instead. That will ultimately become the main version, but it currently still has a few issue that will be fixed in a few more revisions of the 0.96 series in the qt5_reconcile branch.

I think somebody said they'd reported the breeze issue upstream. For me, it is easier to avoid that theme, nice though it looks. There's also a freeze-up issue with Gtk when using hot-keys for the menu before clicking in the GUI. These issues are part of the reason why we're moving to Qt.