View Single Post
Old 07-22-2018, 08:13 PM   #29
Matt Mayfield
Human being with feelings
 
Join Date: Aug 2016
Posts: 62
Default

Quote:
Originally Posted by Jack Winter View Post
I'm not 100% sure that I understand what you are asking for. REAPER was developed as a windows application. It has been ported to OS/X & Linux by implementing the win32 GUI calls in SWELL. It does use some GDK/Cairo calls right now, but mostly implements the drawing of everything, such as windows, dialogs, menus, bitmaps, etc. In fact the long term plan might be to uncouple it from GDK and just use XLIB/Cairo directly.
The OSX version uses SWELL, and there REAPER still doesn't manually draw its own menus with something other than the system font, and it doesn't force its menus into the local window, Windows-style. It correctly follows the OSX paradigm and puts its menus into the top global menubar, using the system font and style.

But on Linux, whether the desktop environment is GNOME, KDE, MATE, XFCE, LXDE, ... Compare the Linux-native REAPER's menus to any other application running on that DE and you'll see that they don't fit in. Here's what I mean.


Windows 10 - menus are correct font/size/style compared to other apps (obviously, since this is its native environment):




Mac OS - menus are correct font/size/style compared to other apps, and are correctly idomatic to macOS's global menubar (even though this is using SWELL):




Ubuntu Unity - menus are not correct font/size/style, and do not integrate into the global menubar as other apps do:




KDE - menus are not correct font/size/style:




MATE - menus are not correct font/size/style, and when Global Menu is enabled, they do not integrate as other apps do:




All of these Linux issues on all the desktop environments could potentially be resolved by using either GTK or Qt to handle the menus, instead of drawing them manually; just as the OSX version uses Apple's menu APIs instead of drawing them manually.

Some more info (a bit outdated) here; the relevant part about making menus in an application fit the Global Menu and other DE-specific features is

Quote:
Upstream Application Developers - If you use GTK or Qt menus without any custom widgets it should Just Work.
Matt Mayfield is offline   Reply With Quote