Commit Graph

25115 Commits

Author SHA1 Message Date
Ingo Weinhold
52b1d543e8 Terminal changes. This is still work in progress, some features
are disabled, lots of commented debug code is still in there,
and quite a bit of cleanup is needed, but basically things work
at least as well as before with several improvements:
* Changed TerminalBuffer from an interface to a complete
  implementation. Removed all related code from TermView. Removed
  the now obsolete TermBuffer. TermParse uses TerminalBuffer instead
  of TermView, and TerminalBuffer asynchronously notifies TermView.
  This avoids potential deadlocks, fixing #1918. It also speeds
  up tty-output-bound programs. E.g. a "seq 10000" is about twice
  at fast with the default terminal size in my setup, now. It's
  still horribly slow compared to e.g. Konsole, though.
* Replaced CurPos by a more compact and fully inline class TermPos.
* Removed the offset feature (that insets the used text area) from
  TermView, thus simplifying the code. Instead put the view into a
  new parent view which provides the insets. This also fixes
  artifacts that could sometimes be observed in the insets area.
* Scrolling related changes:
  - When scrolling fully down, the (80x25 or whatever) terminal
    screen is seen. It is not possible to scroll below the screen as
    in Be's Terminal. Scrolling in Haiku's Terminal was weirdly
    broken in this respect. As a side effect this fixes #2070.
  - When not scrolled fully down, further output won't cause any
    scrolling. It is thus possible to read earlier output while
    something is still going on. Fixes #1772.
  - Particularly to avoid unnecessary scrolling in the not scrolled
    fully down case, TermView no longer actually scrolls. It only
    sets an internal offset and manually uses CopyBits() as needed.
    Introduced a (hacky) BScrollView subclass using a BScrollBar
    subclass to make that possible.
* Selection related changes:
  - Double/triple click plus dragging allows for selecting multiple
    words/lines.
  - Word selection no longer selects ranges of non-space characters.
    Instead it knows that words are made of alpha numerical chars and
    a certain set of other chars, and selects a range of commonly
    classified characters (word chars, non-word non-whitespace chars,
    whitespace chars). The non-alpha-num word characters should be
    made user-settable. Due to missing multi-byte character
    classification multi-byte whitespace is not recognized.
  - Beyond the end of the line there no longer are invisible spaces.
    Trying to select the region selects the end of the line (i.e.
    line break). This is similar to how Konsole and xterm work.
  - Added auto-scrolling when selecting with the mouse. Formerly the
    Terminal scrolled only while moving the mouse. The scroll speed
    might need some fine-tuning.
  - Don't know what change exactly did that (likely the switch to
    non-end-inclusive text ranges used internally), but the
    occasional selection artifacts are gone.
* Resizing the terminal window re-wraps soft-wrapped lines.
* The find functionality seemed to be completely broken. At least it
  never found anything for me. Should work now, though multi-byte
  characters are not matched correctly in case-insensitive mode.

Regressions:
* Printing is disabled.
* Cursor blinking is disabled. Do we want it anyway?
* In several cases full-width characters are not handled correctly
  (in more cases than before).
* Shrinking the terminal width doesn't work very well with "less"
  (and probably other full-screen terminal apps), due to line
  re-wrapping. "less" expects them to be truncated only. When
  supporting an alternate screen buffer re-wrapping should be
  disabled for it, which should solve the problem.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 17:04:26 +00:00
Stephan Aßmus
80f4a4f272 The given updateRect in screen coords (_Draw()/_DrawAfterChildren()) should
no longer extend outside the view after r25879.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 16:09:20 +00:00
Stephan Aßmus
581e67867c * Change the protocol for sending the affected view tokens during an update
session to also include each view's individual update rect (in screen coords).
  Should actually not be mush slower than the old version, and hopefully makes
  it possible to have smarter BView::Draw() implementations which should make
  more than up for any potential speed loss.
* Removed unused version of View::AddTokensForViewsInRegion().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 16:07:18 +00:00
Rudolf Cornelissen
50d3d63701 updated settings file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 15:36:54 +00:00
Rudolf Cornelissen
179645d635 removed nv_agp.c
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25877 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 15:25:03 +00:00
Rudolf Cornelissen
9c6e0a8061 renamed nvidia.settings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25876 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 15:17:02 +00:00
Rudolf Cornelissen
abeca8acc6 kerneldriver for nvidia gpgpu driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 14:54:32 +00:00
Rudolf Cornelissen
0ddc7716d4 headers for nvidia_gpgpu driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25874 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 14:53:17 +00:00
Rudolf Cornelissen
dcdc3ec9ed copied nvidia driver over to nvidia_gpgpu driver. Does nothing but compile. I hope to be fidding around with a EN8500GT soon. If for some reason I shouldn't be creating these folders, feel free to remove it again, and let me know :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25873 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 14:37:03 +00:00
Axel Dörfler
a7b8e0f267 * Slightly improved invalid suffix removal from URLs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 13:01:58 +00:00
Ingo Weinhold
258fd455bc Also do fast mouse wheel scrolling when Command or Control is pressed
(was Option only).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 23:47:32 +00:00
Michael Lotz
ca7b0f375e Patch by Olivier Coursiere that removes unneeded special characters.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 21:48:23 +00:00
Jérôme Duval
9f3408f86f build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 20:34:49 +00:00
Michael Lotz
ea963c10d1 * Adding a driver for the not quite standard IT8211 single channel IDE
controller. The device doesn't use the PCI_ide subclass (but
  PCI_mass_storage_other) and requires not using compatibility mode. Otherwise
  it's pretty much the generic_ide_pci driver.
* Directly adding the driver to the image.

This driver could either be merged into the generic ide driver so it supports
not quite standard devices, or this could be made into a driver that collects
all those non standard devices. Either way, this works for now and lets my
machine boot off the IDE drive :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 20:09:12 +00:00
Michael Lotz
9079144ace * The bus value of child devices are not necessarily the same as the one of
the parent bus. It is possible that there are other busses below the root
  bus and we must therefore always iterate through the child devices when
  searching for a device with a bus unequal to our own. Otherwise devices for
  non-null busses could not be found which would lead to crashes in operations
  involving them.
* Adding a panic in case finding a device failed as this should clearly not
  happen.

This probably fixes bug #2293 and might affect #2284 too.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 19:57:44 +00:00
Jérôme Duval
631d09ac07 gcc4 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25866 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 16:32:07 +00:00
Fredrik Modeen
eb1e733512 Work in progress, now the Joystick pref should show the right text and error (that I can reproduce without joystick)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25865 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 16:30:58 +00:00
Fredrik Modeen
1ac8a0b5cb Added some part from BSerialPort and some missing things R5 Joystick Pref app reports as missing, with this R5 Joystick Pref App starts in Haiku
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 15:42:29 +00:00
Michael Lotz
6236138e25 Lock the control pipe mutex before destroying it to ensure that a possibly
still open transfer has enough time to cleanly exit with error. Fixes a crash
when removing a device while a control transfer on the device endpoint was
open and would have timed out otherwise.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 14:27:00 +00:00
Michael Lotz
139e442a62 Update the driver path and set binary_updated when we encounter a driver with
the same name but different path. In case of usb_disk that is now loaded as
a boot module the driver got registered with a different path, which prevented
later rescans from working. USB mass storage should now work again.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25862 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 14:09:51 +00:00
Michael Lotz
4ca876701d When canceling transfers, do not call the callbacks with the lock held. This
prevents deadlocks in cases where a new transfer is scheduled from within the
cancel callback. This is an edge case, as generally you don't want to schedule
anything when explicitly canceling transfers, but there are a valid use cases
when you cancel because of a timeout and then have to reset the device for
example. Note that this hides bug #2353, where the cancel case is probably
not handled correctly.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25861 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 13:19:33 +00:00
Jérôme Duval
53ad1814cb * show EULA before the Installer window
* this fixes #2332


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25860 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 12:09:10 +00:00
Jérôme Duval
f7c655c7e0 find_nearest() now saves a solution when reaching the max number of solutions and not near enough
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25859 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 01:11:29 +00:00
Michael Lotz
cfbfa8bade Add french KDL keymap contributed by Olivier Coursiere, thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 00:32:14 +00:00
Michael Lotz
5e760150c2 * Add read, write and total count to the ports KDL command so one can see
what the ports of a team are up to without having to go through each port
  individually.
* Enlarge the port id column so even large ids fit nicely.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 00:23:17 +00:00
Michael Lotz
ea2bcbf4af * Fix leaking the user and combined screen and user clipping.
* Fix using fScreenAndUserClipping directly in CopyBits() that could crash
  when in fScreenAndUserClipping wasn't used (when there's no user clipping
  for example).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 23:49:04 +00:00
Michael Lotz
3c905d812f Adding DrawingDebugger app that creates a port listening for BRects that then
get drawn into a window with random colors. With that one can for example add
code to the app_server or interface kit classes that push through rects or
regions to see what exactly is going on in drawing operations. Code examples
of how to use are at the top of the file. Has fixed window dimensions though
as I was lazy :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25855 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 23:37:58 +00:00
Michael Lotz
f0c3c996cd * Decouple local and user clipping into normal local clipping and a user
clipping region pointer.
* Provide _ScreenClipping() that only includes local and screen clipping but
  not user clipping.
* Provide ScreenAndUserClipping() that returns screen clipping if no user
  clipping is present, or returns a combined region that is then cached.
* Adapt all places where the former methods are used and decide which one to
  use depending on the relevance of user clipping.

User clipping is now ignored for background clearing and when determining
whether or not to call Draw() on a view. This should make Haiku behaviourally
compatible with BeOS (confirmed by the ClippingAndRedraw test app) and should
also fix the Firefox redraw issues. Stephan please review!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25854 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 23:09:21 +00:00
Michael Lotz
680a35bbdb Add a simple test that demonstrates that the Haiku app_server incorrectly
(or at least incompatibly) uses the user set clipping region when determining
whether or not to call Draw() on a view. Under BeOS when a some part of a view
is exposed it will always trigger a Draw(), even if the current clipping region
disallows drawing in the supplied update rect. Under Haiku however the view is
not considered for an update when the current clipping region does not
intersect with the newly exposed area.
Running this test app from the Terminal this behaviour can be seen. When
clicking inside the window a floating window pops up. When clicking again it
goes away and triggers a redraw. When hitting a key, a clipping region is set
that does not overlap with the floating window. After this clipping is set,
the view does not get any Draw() call anymore when the floating window goes
away.
This is the reason for the redraw issues in firefox, as firefox uses the
clipping region to constrain its asynchronous drawing, but does never reset
the clipping to NULL. As firefox just collects the update rects in Draw() and
then draws the contents itself, once the clipping region is set, many of the
Draw() calls don't get called and the interface parts are never redrawn.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25853 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 21:53:08 +00:00
Rudolf Cornelissen
f31163e967 probably/hopefully fixed auich driver for many systems: note that the codec_access_semaphore will NOT be reset on certain systems if an illegal/non existing register was accessed before. We need to do the access anyway to get such systems working. I hope someone can create a more extensive entry in syslog here to identify the offending access as that can be done AFAICT. This will help improve the driver later on because the non-existing-register accesses could be removed. Anyhow: I think the change I just did should remain, as it makes the driver more fault-tolerant to faults in itself (or hardware). Lowered the wait time to 1mS btw as that should suffice big_time. My Dell Inspiron C610 laptop with ICH3-M and Crystal CS4205 now works perfectly. No sound at all before.. Fix found in Linux-2.6.17/sound/pci/intel8x0m.c. Hope no-one is offended by my 'intrusion' here. Bye.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 19:28:27 +00:00
Jérôme Duval
765e53019a acpi_ns_dump was merged into acpi_busman
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25851 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 18:39:30 +00:00
Jérôme Duval
22dcb7a5bf Converted acpi_thermal to new driver architecture
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 18:33:58 +00:00
Stephan Aßmus
e4ddc13a40 Revert the bad part of my previous change. Wasn't supposed to exchange
the modifier key.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25849 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 17:19:19 +00:00
Rene Gollent
ef83ae3e0b Remove BOutlineListView's home-brew quicksort implementation in favor of a comparator that hooks into the STL's sort algorithm as suggested by Ingo. Tested and seems to work nicely.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 16:14:30 +00:00
Stephan Aßmus
636427b614 Axel!! Since _Thursday_ I am trying to track this down. "MediaPlayer wouldn't
play any more clips." Of course I was searching in my own commits. In the
end, I resorted to binary searching revisions for when this broke. Turns out
it is your change r25793/r25794, in which you forgot to attach the colorspace
to the app_server message. Which of course makes it lock up. Another of those
instances where you think passing data structures between client and app_server
instead of this "protocol" would be the better idea...

* Fixed bitmaps_support_space() retrieving the currently supported overlay
flags for a given color space. This makes MediaPlayer play files again, the
media node connection would time out because of the broken app_server
communication. (I have not tested this change yet, but I will in a minute, on
a different computer.)
* Also retrieve the overlay supported flag for YCbCr colorspaces.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 15:14:00 +00:00
Stephan Aßmus
5f01a858b2 * Check return code.
* Make check slightly more readable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:50:37 +00:00
Stephan Aßmus
99327c079d Fixed typo in script.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:46:50 +00:00
Stephan Aßmus
68cbefe99b Fixed typo in printf output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:46:29 +00:00
Stephan Aßmus
76a50eaab1 * Fixed typo in "pretty name".
* Improved debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:46:07 +00:00
Stephan Aßmus
293ccd77f9 Honor 80 char line width, not complete.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:45:17 +00:00
Stephan Aßmus
7554633d60 Improved tracing output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:44:39 +00:00
Stephan Aßmus
1dedfc14ae More specific tracing output when rejecting partitions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:43:59 +00:00
Stephan Aßmus
cf7e57ef10 Small coding style fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:39:56 +00:00
Stephan Aßmus
3d4b8c879e Added one more define that helps when host headers are included.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:39:14 +00:00
Stephan Aßmus
896d01df1e Removed trailing white space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25837 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 12:38:28 +00:00
Michael Lotz
8047041d7c Put the USB stack components and usb_disk in the boot module symlinks. This
should make default images bootable from USB automatically. DDing one to a
USB stick should work out of the box then (but this wipes the stick of course).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25836 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 10:48:49 +00:00
Rene Gollent
fed7414a59 A view shouldn't be able to RemoveChild a view that it isn't in fact the parent of.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-07 07:10:08 +00:00
Jérôme Duval
c9ca11bf43 added B_FIND_MULTIPLE_CHILDREN on acpi devices as suggested by Axel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25834 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-06 22:32:29 +00:00
Jérôme Duval
75d2085651 fixed listdev and device_manager syscalls
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25833 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-06 22:23:25 +00:00
Rene Gollent
bf319ba31d Remove stray debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25832 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-06 21:03:37 +00:00