Up to Lgi...
About
Changes:
- [Linux] Clipboard contents are new persisted beyond the lifetime of the original window by assigning ownership to some other window once the source window is destroyed.
- [Linux] Sub menus of sub menus now send their command when you click them.
- [Linux] Fixed a crash drawing text on to a GMemDC. It appears that XPutImage and XGetSubImage are so badly written (at least in XFree86) that they can't cope with clipping to their src/dest rects, so the user application has to do it otherwise they crash. Flaming hopeless.
- [Linux] Fixed disabled menu items showing a mouse over highlight.
- [Linux] Fixed Xft fonts being drawn in the wrong place, instead of y + height - 1, it is now y + ascent. Which moves all the fonts up into place, esp for larger font sizes where ascent diverges from the height. I've also fixed basic underlining support.
- [Linux] Fixed not being able to type capital letters (older versions of X11 expose this bug).
- [Linux] Implemented a basic GSlider.
- [Linux] Moved font ascent and descent calulation into the QFont object so that it's done just once on font creation and not every time someone wants metrics.
- [Linux] Removed fallback support for native X11 fonts. They suck, and well frankly if an LGI app can't access Xft, then it's not worth running anyway.
- [Linux] Removed the ugly hack to make 24bit devices contexts work on 32bit data. Now when Xlib returns 24 as the screen's depth I convert it to 32 (which is what it means) and all the normal Lgi device context stuff works properly. Pixel32 now has a different r/b ordering but that shouldn't effect anything.
- Added a 24->32 bit depth converter inside the PNG read code for OS's that don't support 24bit memory DC's directly. Calling GMemDC->Create(...) doesn't garentee that you'll get the bit depth your asking for. This fixes loading 24bit PNG's in Linux.
- [Linux] Reduced the number of Xlib calls to create and operate windows, by combining parameters and reducing redundant calls. This is part of an initial effort to optimize the speed of openning complex dialogs (current really sucky).
- [Linux] Menus now cancel when you click some non-LGI window.
- [Linux] Added arrows on menu items with sub menus attached.
- [Linux] Fixed GDateTime serialization.
- [Linux] Fixed the possibility of multiple context menus being open at once. And the resulting chaos that ensues afterwards.
- [Linux] Removed some unnecessary repainting when various control's values and properties are set to their existing setting. i.e. if there is no change, why repaint the screen?
- [Linux] Fixed tilde (~) and numpad enter key processing.
- [Linux] Check boxes and buttons now have keyboard handlers so that the spacebar and enter activate them.
- [Linux] Fixed an off by one error when updating an area of the screen. A single pixel edge along the right and bottom wouldn't be updated.
- [Linux] Fixed the spacebar key to emit a space even when the shift button is down.
- [Win32] Added IME composition window positioning to the GTextView3 (the editor) control. This also fixes the IME composition window font, as a side effect. IME now works at a basic level.
- Fixed ObjProperty lists to be thread safe for reading at least.
- [Linux] Fixed DoEvery to wait the correct time.
- [Linux] Ported to Cygwin.
- [Linux] Changed from using hard coded KDE paths to calling 'kde-config' to get the info I need for MIME <-> App lookups.
- [Linux] Fixed menus looking through the font settings every time they draw, which resulted in very painfully slow drawing.
- [Linux] Added support for reading out the current KDE font settings for the system, menu and toolbar fonts.
- Fixed alpha compositing in 16 bit.
- [Linux] Fixed the checkboxes allowing you to changed their state even when disabled. Also they paint correctly when disabled too.
- [Linux] Fixed GRadioGroup passing on notifications. Child radio buttons have to send the group as the notifing control, whereas other controls (like buttons) should always send themselves.
- [Linux] Fixed the clipping of display output to the changed area of screen. This elimiates a fair bit of flicker and reduces the work load. I should probably do some simple clip region testing so that primitives don't do the xserver round trip just to be clipped anyway.
- [Linux] Added support for setting the icon of GWindow's.
- [Linux] Fixed shift-tab so it scrolls backwards through the tab stops.
- [Linux] Fixed IDOK to be the default button.
- [Linux] Fixed enter triggering IDOK notifications and escape triggering IDCANCEL notifications by default.
- [Linux] Added code to set the initial focus to a child of a newly visible GWindow/GDialog.
- [Linux] Fixed some scroll bar rendering and interaction bugs. Made them 14 px wide instead of 16, I like UI's that don't oversize everything. Something which has been the bane of Linux since someone wrote an X11 port, to this day (ie KDE/Gnome wasting criminal numbers of pixels and the fonts! Don't get me started).
- [Linux] Added support for system tray icons, with a right click menu.