Make Cmd+Left and Cmd+Right work the same as Option+Left and
Option+Right, that is, they do word-wise navigation.
Make Option+Up go to beginning of paragraph and Option+Down go to end
of paragraph like Cmd+Left and Cmd+Right used to.
Unfortunately option shortcuts are currently eaten by S&T until #9431
gets fixed.
This undoes the partial fix to #9431, both sets of shortcuts are supported
for the time being. This mirrors the functionality of ctrl+arrows and
ctrl+tab/ctrl+shift+tab to cycle through apps and windows via Twitcher.
We really need system keybinding settings to fix#9431 properly.
Partially fixes#9431
Cycle through tabs in current S&T group with option+tab and backwards
with option+shift+tab
Cycle through S&T groups with option+PgDn and backwards with option+PgUp
This change allows apps to once again use option+arrows when inside of a S&T group
The problem isn’t truely fixed though, just moved to different shortcuts that hopefully will
conflict in fewer applications.
I also made some improvements to how S&T cycling works.
A single window is now considered to be part of a S&T group for the purposes
of cycling through S&T groups.
We loop around when you get the last tab/group.
When you cycle through S&T groups it remembers the active tab in the group
instead of always activating the first tab.
* 80 char limit fixes
* remove leading tabs/spaces
* Add some helpful pragmas
* Add some newlines to separate stuff
* Compare pointers to NULL explicitly
Pass Cmd+Left/Right to the BTextView base class if the URL bar is focused.
This allows us to make use of the navigation shortcuts in BTextView when we
are focused on the URL bar, and activates back and forward navigation
otherwise.
Unfortunately this doesn't also work for text fields inside webpages.
Also make modifierKeys signed.
* Command+Left goes to beginning of line, ignoring softwrap
* Command+Right goes to the end of line, ignoring softwrap
* Home goes to beginning of line, accounting for softwrap
* End goes to end of line, accounting for softwrap
* Option+Left goes to previous word
* Option+Right goes to next word
* Command+Home and Command+Up go to beginning of document
* Command+End and Command+Down go to end of document
Shift with any of the above also selects the text.
This is similar to how the text editor Eddie works.
* Screenshot always used B_RGBA32 color space, but did not care about the
alpha channel at all. Now it only uses that space when "includeBorder"
is used.
* Utility::_MakeTabSpaceTransparent() now also makes sure that the rest
of the bitmap has the correct alpha channel set. This fixes bug #10491.
* Minor cleanup.
* Added cards need testing.
* 3dfx, ati, neomagic, and s3 still don't build due to some
more complex pointer size issues. (and I don't have hardware
to test on)
* Give DrawState a real copy constructor, handle deriving in PushState().
(Although clipping region and alpha mask are not cloned, which is on the
other hand just what's needed for now.)
* Combining alpha masks from previous states is not yet handled.
* Remove SetAlphaMask() from DrawingEngine and Painter. It is now done in
SetDrawState().
... both vector and bitmap based. Sub-pixel text rendering not yet handled,
I think the scanline is used differently in this case, in that three times the
horizontal resolution is used, while the alpha map doesn't match this
increase.
* agg_clipped_alpha_mask is a modified version of agg alpha mask class,
allowing us to offset the mask bitmap to follow the view position, and
also allows "inverse" clipping, where everything outside the bitmap is
considered inside the clipping region.
* AlphaMask is a container class keeping the ServerPicture, it's bitmap
rendering, and other relevant information. It will be used to save and
restore the clipping picture as part of the view state.
* Because these classes introduce more coupling within app_server, it's
not possible anymore to split out tst_app_server from
libtestappserver.so. Instead, move everything to libtestappserver.so,
except the things that actually need to not be there (to avoid
interferences with the host API). As a result, the previously introduced
stub cpp file to work around this problem isn't needed anymore.
The design for all this (and the previous commit) is Stippi's work.
Thanks for the advice and implementation hints!
Use AGG to implement ClipToPicture in a faster and better way.
There are things missing in this initial implementation:
* No support for PushState/PopState saving and restoring the picture.
* No support for nested clipping through PushState
* The clipping doesn't happen where you expect it when using SetScale()
* There are artifacts when scrolling and resizing clipped views
* The implementation uses more memory than it needs, as the clipping
bitmap is stored as RGBA32, yet only the alpha channel is used
* The clipping bitmap is rendered more times than it needs to. We need
some caching here.