I overlooked this problem in my last commit...
If you select the current angle (radian/degree) mode from the menu
it toggles the angle mode, fixed this to make it keep the current
mode.
Default is radian mode, You set the option in the right click menu
like the other options.
Note: degree mode does not affect hyperbolic trigonometric functions.
This is how Mac Calculator, Windows Calculator, and Google Calculator
work.
This reduces perceived latency. One day when I add a tab close undo stack, this
will be even better. But generally using the middle mouse button is not
accidental.
- When loading an image, we now check if it has a .gnu_debuglink section.
If so, we try to load the linked file for our symbolic debugging information.
The file is searched for with the following rules:
1) If self-contained app, app image is looked for in ./debug while
library/add-on images are looked for in ../debug/.
2) If the image in question is in one of the global locations
(/boot/{common,system,home/config}/{lib,add-ons}), we search
in develop/debug for the corresponding global dir.
Implements #8135.
The cookie is used to store the base address of the area that was just
visited. On 64-bit systems, int32 is not sufficient. Therefore, changed
to ssize_t which retains compatibility on x86 while expanding to a
sufficient size on x86_64.
Refactor the icon scaling code in IconUtils.cpp to avoid code
duplication. Basically create and delete the temp bitmap to
convert from B_CMAP8 to B_RGBA32 for scale2x/scale3x/scale4x
just one time instead of 3.
There was an off-by-one error in Deskbar which was causing
it to scale up the 16x16 Bitmap icon to 32x32 instead of just
using the 32x32 icon. This only affected BeOS bitmap-based
icons, not Haiku HVIF icons.
* The input loop can now wait on abstract events, which other threads
(or even the input loop thread itself) can signal.
* Use the new mechanism in QuitSession().
* Also (with the exception of the SIGINT part) implement
WaitForThreadOrUser().
* Move the libedit interface there and provide nicer to use methods.
* Also start adding utility methods for the input loop. It is going to
manage all interactions of the input loop with outside events.
* Fix the "quit" command. The user is now prompted what to do with the
debugged team and the input loop thread avoids reentering the input
loop.
* UserInterface::SynchronouslyAskUser() is now allowed to return -1 to
indicate that the user cannot be asked at this point for whatever
reason. The caller needs to handle that case.
* UserInterfaceListener::UserInterfaceQuitRequested(): Add new parameter
"quitOption" to specify what is supposed to happen. The previous
behavior (ask user) is only one of the options. The others are to kill
the debugged team or to resume it.
- When invoking ProcessController's menu, we now only show the "Live in Deskbar"
menu item if we're either running within Deskbar itself or from PC's standalone
window. This allows replicant PC instances to be usable in the case where
Deskbar is deadlocked for whatever reason (previously it would hang while trying
to query for the deskbar item's presence/status).
* You can code review it
* You can help developping
Uses libvterm as the backend for parsing ANSI escape sequences. The lib was
changed slightly to build with GCC2. It could be used by Terminal as well as
it seems cleaner and more reliable than our current parser.
- When the message filter would receive and process a mouse moved message,
if the message resulted in causing the deskbar to relocate or reorient
itself, it was possible for the expando view to become detached from
the looper. Consequently, if the intercepted mouse moved happened to have
come from the latter, when returning out of the filter the view would no
longer have a target looper, triggering a debugger condition in BLooper.
In order to prevent this situation, we now dispatch a message asking for
the layout change to occur asynchronously.
There's an input loop thread which reads and parses command lines and
the infrastructure for registering and executing commands. Currently
only "help" and "quit" commands are implemented.
- When a job needs to go dependent on another job, we no longer use recursion
to manage the execution stack. Instead the job is simply marked as waiting
and we execute other jobs with no dependencies in the meantime. When a job
completes, all dependents are moved back onto the unscheduled list and
executed as needed.
- Adjustments to ResolveValueNodeJob to handle the now asynchronous nature
of waiting.
- If the node we're looking at is a compound node, retrieve its location
and show that as the value with an indicator to clarify that it's an object.
- Minor tweaks to tooltip format.
- Style cleanups.
- When resolving its value, CStringValueNode now sets its node child's
address to the address of the string buffer rather than the location of
the originating pointer, which allows things like Inspect to pick that up.
- TableCellContextMenuTracker now supports menus that don't have a settings
submenu, since some variables won't have renderer settings but will still
have context actions.
- Add _GetContextActionsForNode() to retrieve the list of contextual actions
available for a given model node. Currently this is only adds an action
to inspect the memory address of the highlighted value, but will be extended
for other actions later.
- If we're asked to generate an entry for a tag we don't recognize,
return an error so don't then attempt to add a null/invalid entry into the
compilation unit's entry list and later crash dereferencing it.
- When asking for signed/unsigned, IntegerFormatter was previously
treating all value types as int64, which would result in much larger
than expected values in the variable list in some cases. Inspect the actual
integer type of the variable and adjust the format string accordingly in
order to deal with that.
- When binary searching functions in the source entry list,
comparing by name and location alone isn't sufficient, since
templates will match those for different instances, Fixes a crash on
exit where the wrong function would get removed from the list, while
the one we actually wanted to remove was still in the list, but then
had its source code cleared. This would later crash the comparison
function due to not being able to get its source location.
- When an image was unloaded, its corresponding image info was never
removed from TeamDebugInfo's list, leading to the latter containing
a deleted object, resulting in various random crashes.
- When attempting to unwind the call frame, we now search for the appropriate
FDE in both .debug_frame and .eh_frame. This mirrors gdb's behavior and
works around the ever-changing whims of the gcc developers as to which
section the requisite FDE/CIE resides in.
- The buffer that the debugger used to retrieve messages from
the debug port was slightly too small for the largest of the message
data structs (currently 1100 bytes), causing some types of debug events
to get truncated. This resulted in image creation/deletion events being
received with a truncated image_info struct, which would result in several
fields being returned with random values, most notably the text/data base
and size fields. Consequently, searching those images for an address within
them would fail, leading to #8709. It's possible but not yet confirmed
that this bug is also responsible for #8710, need to test further.
the registrar's type guessing feature, which we can (and should) trust
way more.
* Notify back the download objet when it's file location has changed.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@577 94f232f2-1747-11df-bad5-a5bfde151594
InvalidateLayout worked before, but it does not seem to now.
Also use a const for an empty BString instead of returning a local for the tab
label.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@573 94f232f2-1747-11df-bad5-a5bfde151594
While I was able to add this fairly easily by cutting and pasting, it was still
quite a bit of work. Seems like there should be a less-verbose way of doing
this. But it did work the first time I tested, so I can't complain too much.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@566 94f232f2-1747-11df-bad5-a5bfde151594
scrollbar) to the auto-complete list. This now also makes the scrollwheel work
but selection by mouse still needs implementing.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@561 94f232f2-1747-11df-bad5-a5bfde151594
key and using the scroll wheel will zoom in and out. Also made it so that the
scroll wheel only works when the mouse is over the view.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@560 94f232f2-1747-11df-bad5-a5bfde151594
It still needs a lot but this doesn't seem to break anything and it already is
making my browsing more productive. The hard-coding of Google will be fixed
when some proper search engine provider handling is added.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@557 94f232f2-1747-11df-bad5-a5bfde151594
knows the state changed. A good example of where using a controller-based
design can't be done halfway. It took me way too long to debug this (that
mostly being my fault.)
Fixes#6382.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@556 94f232f2-1747-11df-bad5-a5bfde151594
* Make sure that the BWebView for which a notification is received still exists.
This affected only the title changed notification, for which this was already
checked, and the icon received notification, which could actually lead to
a crash if the tab was closed before receiving the notification.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@522 94f232f2-1747-11df-bad5-a5bfde151594
preferred app for text/x-source-code. For remote pages, it will save a temporary
file and open the editor with that.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@517 94f232f2-1747-11df-bad5-a5bfde151594
allow to continue downloading.
* If the Downloads window is the only window, minimize on close instead of
hiding without any way to get the window back.
* Added menu item "New browser window" to Downloads window.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@512 94f232f2-1747-11df-bad5-a5bfde151594
* Load new files into the current tab, if the URL of that tab is either empty
or the URL for new tabs, instead of always opening a new tab.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@511 94f232f2-1747-11df-bad5-a5bfde151594
BMessageFilter to the BTextView to pre-process key down events) missed changes
to the BTextView via other means, for example by pasting, or simply when
SetText() is invoked on the BTextView. -> Introduced an alternative method
of making the TextViewCompleter aware of changes, by invoking new method
TextModified(). To bypass the old method, one has to call
SetModificationsReported(true). URLInput::URLTextView now uses the new method
in InsertText() and DeleteText(), which catches any and all changes to the
text. Since the BAutoCompleter framework also controls the editor view contents,
it needs to protect against re-entering some methods when the editor view
reports the changes (fIgnoreEditViewStateChanges). Since we want the
BAutoCompleter to always be aware of the current editor view contents, but not
necessarily also running the choice mechanism (i.e. when you enter
"www.google.com", you don't want the auto-completion kick back in when it is
programmatically changed to "http://www.google.com" later on), the
EditViewStateChange() method gets a boolean now "updateChoices". All
programmatic changes to the URL will then not trigger displaying the choice
pop-up, but the BAutoCompleter is always aware of the current editor view
contents.
All this fixes numerous issues and inconsistencies with entering text in the
URL text view.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@500 94f232f2-1747-11df-bad5-a5bfde151594
* Unhide the interface when the user invokes CMD-L (Open location).
* Make sure the progress bar is really hidden, sometimes it would be
visible again after unhiding the rest of the interface.
* Added a setting for the auto-hiding the mouse pointer feature. It defaults
to true, since I think it's useful for an app where the pointer would
usually be in the way.
* Hide the mouse pointer in any case as soon as the user begins typing, also
hide potentially showing tool tips in that case.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@496 94f232f2-1747-11df-bad5-a5bfde151594
were intercepting mouse messages even if the window was not showing. Now
secondary clicks are intercepted in DownloadWindow and the target view is found,
which makes this much cheaper.
* Offset context menus by 2 pixels, so the mouse does not start directly over
an item.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@488 94f232f2-1747-11df-bad5-a5bfde151594
"show tabs if single page only" option.
* Fixed problems with showing tabs when opening new tabs while the interface
was hidden. Introduced a new flag which tracks the hidden state to make
this easier.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@486 94f232f2-1747-11df-bad5-a5bfde151594
mouse cursor will automatically hide if you don't move it, unless it's over the
interface. The interface will disappear after three seconds if the cursor is
not above it. It will re-appear when you touch the top of the screen with the
mouse. I find this the best solution, since the mouse is also used for
navigation in the page, and showing the interface based on some virtual area
of the interface would just get in the way.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@485 94f232f2-1747-11df-bad5-a5bfde151594
objects are used for session and persistent storage of credentials with the
appropriate locking. Passwords are stored on disk insecurely. If the user
uses the checkmark in the authentication window to remember the credentials,
the persistent storage will be used, otherwise the session storage. In another
words, even if not asked to remember the credentials, the same user/pass never
needs to be entered more than once per session, unlike before. WebCore already
contains a CredentialStorage class, but we don't use it. It could be used via
the CURL networking backend implementation, only the CF backend uses it at all.
Since we don't have a "keyring" OS level service, this solution was more
convenient for the time being.
Note all this has nothing to do with storage of form data entered by the user.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@478 94f232f2-1747-11df-bad5-a5bfde151594
into Haiku. Added new file HashKeys.h which implements commonly used HashKey
classes. Additionally to the ones found in HashMap.h, it has a HashKeyString
class, which wraps a BString and provides the GetHashCode() method.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@477 94f232f2-1747-11df-bad5-a5bfde151594
was outside as well.
* Single tertiary click outside tabs opens new tab on mouse up.
* Reset fClickCount always when the click was inside a tab.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@474 94f232f2-1747-11df-bad5-a5bfde151594
Label and trailing label are only specified in the constructor or in Reset().
By using SetText(), we were modifying another part of the text, while we meant
to set the label. This fixes updates on node monitor messages.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@472 94f232f2-1747-11df-bad5-a5bfde151594
true, we need to recheck it in MouseUp(). This would fix the problem with the
middle mouse button click to close tabs if we didn't move closing to the mouse
up event, and it also fixes other situations, like clicking on one tab, moving
the mouse over another tab's close button, releasing the mouse and clicking
again without moving it inbetween.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@471 94f232f2-1747-11df-bad5-a5bfde151594
would be true, but the fLastMouseEventTab would have been reset when removing
the tab. Rather than fixing this problem, behave the same as Firefox and close
the tab on mouse up (when the mouse is still over the tab, which allows the
user a way back out). Avoids the above problem as a side effect.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@469 94f232f2-1747-11df-bad5-a5bfde151594
* Added necessary wiring in BWebSettings for proxy server configuration.
Actual proxy server usage untested, feedback welcome.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@468 94f232f2-1747-11df-bad5-a5bfde151594
* Icon view needs to update completely on resize.
-> Fixes graphics glitch when switching between icon and no icon.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@467 94f232f2-1747-11df-bad5-a5bfde151594
meant CurrentWebView(). This also fixed the focus restoration, since it
remembered the current focus for the wrong web view when the user data was
already stored.
* Refactored _TabChanged() so that this code is now executed in the now
virtual SetCurrentWebView(), which makes the features also work for new tabs.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@466 94f232f2-1747-11df-bad5-a5bfde151594
used to it, but also when only one page is open and tabs are not displayed as
per the user settings, the favicon would then not be visible.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@465 94f232f2-1747-11df-bad5-a5bfde151594
* Refactored setting the page icon so it always goes through the new
BrowserWindow::_SetPageIcon().
* Don't replace the PageUserData in _TabChanged() if it already exists
(which would forget the favicon).
* Write the favicon to the Bookmark file. At the moment, it writes the
32x32 icon as upscaled version of the 16x16 icon. Color reduction makes
the icons look not so nice, since Haiku does not yet support PNG icons...
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@464 94f232f2-1747-11df-bad5-a5bfde151594
not really useful. Neither is claiming support for text/*. Added support for
image/svg+xml, since I don't think anything else would handle it as good as
WebPositive (which will do better once BView supports affine transformations).
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@462 94f232f2-1747-11df-bad5-a5bfde151594
SettingsWindow::_RevertSettings().
* Made all necessary refactoring in order to support _CanApplySettings().
* Adjust the Apply and Revert button enabled state whenever settings change.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@458 94f232f2-1747-11df-bad5-a5bfde151594
* Allow specifying a start and a search page in the Settings window.
* Separated the "New page" policy into "New window" and "New tab" policies.
For a new window, the user can chose to "Open start page", "Open search page"
and "Open blank page". The default changed to "Open start page" and the
default start page points to the "Welcome" readme. For new tabs, there is
an additional choice "Clone current page". The default stayed with opening
a blank page.
* Implemented the new page policies in BrowserWindow.
* Listen for changes of the new settings in BrowserWindow.
* Added the new settings keys and default values to SettingsKeys.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@456 94f232f2-1747-11df-bad5-a5bfde151594
since we did not delete the BWebView directly, but in the application thread,
this was a race condition that would only crash sometimes (in _TabChanged(),
when we tried to attach user data to the current tab before switching it). This
should fix the last known (to me) crash.
git-svn-id: http://svn.haiku-os.org/webpositive/webkit/trunk@452 94f232f2-1747-11df-bad5-a5bfde151594