Commit Graph

13002 Commits

Author SHA1 Message Date
Axel Dörfler
96e01a27bf * Merged vm_virtual_map with vm_address_space - there was no reason to have
them apart (this even saves a pointer from vm_virtual_map to its address space)
* aspace -> address_space
* vm_create_address_space() did not check if creating the semaphore succeeded
* Removed team::kaspace - was not really needed (introduced a new vm_kernel_address_space()
  function that doesn't grab a reference to the address space)
* Removed vm_address_space::name - it was just a copy of the team name, anyway,
  and there is always only one address space per team
* Removed aspace_id - the address space is now using the team_id
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15609 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 13:29:11 +00:00
Waldemar Kornewald
470dbda0b0 Last libnetwork.so commit. Added DEVNOTES to socket interface. libnetwork.so now compiles fine and the source is shared with libbind.so.
NEXT: port the FreeBSD netstack
I need volunteers for this huge task. And I don't have much time left for coding, anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 11:18:31 +00:00
Waldemar Kornewald
45b03b39c4 Also deleted TLSInit.cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 10:59:34 +00:00
Waldemar Kornewald
5af343b54b Removed unneeded sources.
Just noticed that VI did not like my copy-pasted commit log. It should be: we _need_ better pthread/mutex support. Here is the important part, again:
Cleaned up native part of libbind.so a little bit more. Though, the ugly hack remains. We need better pthread/mutex support. Added TODO that we also should move sysctl() into the kernel and libroot.so.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 10:58:47 +00:00
Waldemar Kornewald
ce823541ec Removed #ifdef __cplusplus from networking headers. The check is already done in cdefs.h (__BEGIN_DECLS) which I committed yesterday.
Committed libnetwork.so. I actually wanted to port BSD's libc/net resolver, but that one uses too many unsupported functions, so I basically merged libbind.so and libsocket.so into one library.

Moved the libbind.so sources to libnetwork/dns.

Cleaned up native part of libbind.so a little bit more. Though, the ugly hack remains. We nbetter pthread/mutex support. Added TODO that we also shousctl() into the kernel and libroot.so.

Improved DEVNOTES a little bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15605 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 10:54:58 +00:00
Waldemar Kornewald
5d7cf21bdf More preparations for libnetwork.so. SVN does not let me commit everything at once.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 10:48:12 +00:00
Waldemar Kornewald
ffcb4cfc98 Preparations for libnetwork.so commit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15603 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 10:43:54 +00:00
Rudolf Cornelissen
c0f6162783 updated scaled_filtered_blit code and fixed NV1_RENDER_SOLID_LIN setup. Scaled blit might still be down, but we are getting there.. (in progress)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 09:42:06 +00:00
Stephan Aßmus
de0283f0f1 forgot to commit the heart of the new drawing_mode implementation. Sorry about that, guys. Thou shalt use svn status after doing huge changes...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 08:16:04 +00:00
Jérôme Duval
3b41fbe463 replaced #include <> with #include "" to fit the build system
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 23:35:46 +00:00
Jérôme Duval
e619df91e4 added init of HPSEL and LOSEL bits of register 0x76 for some AD codecs
Should fix speaker output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 23:08:22 +00:00
Axel Dörfler
9d845483cf Got rid of two ToDo-items: instead of clearing the PAGE_MODIFIED flag after having
written the page, we now do it before, so that it cannot lose any changed data
anymore; it doesn't matter if the page is written to while writing it back, the
worst thing that can happen is that we write the same page twice. Also, we don't
rely on the PAGE_MODIFIED bit anymore, we now check all mappings of that page
to find all modified pages, no matter how far the (currently disabled) page
daemon had come.
Also, destroying an area will now result in writing back changed pages - this
is only really important for memory mapped files, though, and should probably
be avoided for other vm_store types.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 23:01:11 +00:00
Stephan Aßmus
8d7b8e8ce7 complete rework of the drawing_modes implementation... I achieved a speedup of 8 to 9 times, tested with text rendering. Believe it or not, but the Haiku text rendering is now faster than R5 for B_OP_COPY at least. And there is quite some room for improvement yet. (faster text bounding box calculation, avoiding the double UTF8 conversion, etc)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 21:22:03 +00:00
Stephan Aßmus
270b7f58b6 removed unnecessary locks
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 21:18:23 +00:00
Stephan Aßmus
1bcc09f226 small improvements here and there
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 21:18:01 +00:00
Stephan Aßmus
ce8ae4d8c2 _TriggerContentRedraw is now given the dirty region, so ProcessDirtyRegion does not have to be called for triggering window local redraws
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 21:16:23 +00:00
Stephan Aßmus
85e1d00d58 small style cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15592 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 21:14:16 +00:00
Ingo Weinhold
44c11fdbc1 Added console support functions required for the generic textual boot
menu. The menu basically works, but has a couple of problems. The
harmless ones are graphical: we get cursor artifacts when the colors
are changed, and the item selection doesn't quite look as it should.
More serious is the lack of Home/End, Page Up/Down keys. All I read from
the console is a '\0' byte when such a key is pressed. The cursor keys
work fortunately. I mapped the functionality of Page Up/Down
additionally to the Left/Right cursor keys. So the menu should be usable
at least. I guess, I'll leave it in that state; Axel wants a graphical
menu anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 13:49:45 +00:00
Ingo Weinhold
b821cecc36 Added of_interpret for interpreting arbitrary Forth code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15588 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 13:40:15 +00:00
Ingo Weinhold
4c62b0919f Pulled platform independent part of the BIOS boot menu out into
platform/generic/...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15587 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 13:35:01 +00:00
Ingo Weinhold
59d0807e01 Missing newline in output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 13:31:19 +00:00
Waldemar Kornewald
f7a223fa1b Removed unneeded libbind files (were never compiled, anyway).
Moved some headers around and cleaned them up.

Fixed threading code in libbind.so. Don't know why I hadn't noticed this before. Now it is reliable, but uses an even uglier hack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 13:26:54 +00:00
Axel Dörfler
39cc80346c * Implemented automatic font_directory creation for font_mappings.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 12:02:17 +00:00
Stefano Ceccherini
cbe65c2e73 Don't ask me how, but I apparently fixed the weird bug I had introduced.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 11:06:20 +00:00
Axel Dörfler
7a3fa7d368 * Followed Ingo's suggestion and removed the now superfluous "length" correction
in ConsoleHandle::WriteAt().
* Updated license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15581 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 09:44:52 +00:00
Axel Dörfler
1bd3bb1d58 * Added fallback mappings for the default fonts - since we don't save the
mappings yet, that's a good way to test this functionality.
* Turns out the directory of the mappings must be known already - they
  should be added automatically, but I've added them manually for now
  (which is okay for the default system directory).
* Having more than one style with the same family in the mappings didn't
  work as planned - it now does.
* On my current system, time spend in the font manager constructor went
  down from 1.5 secs to around 12000 usecs (and I have only a moderate
  number of fonts installed, or so I thought - looks like the mappings
  were a good idea :-)) - and that directly cuts down the boot time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 01:01:04 +00:00
Jérôme Duval
bd8c5981aa fixed midiplayer build for non haiku platforms
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15579 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-18 22:54:47 +00:00
Jérôme Duval
89f3467fa1 fixed midi interrupt handling, added logs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-18 22:53:55 +00:00
Ingo Weinhold
ccf56c61be Fixed PPC boot loader linker script.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-18 14:37:34 +00:00
Ingo Weinhold
8f75497433 Fixed endless loop.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15576 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-18 14:35:31 +00:00
Stefano Ceccherini
4c0af4a82e Cleanup. Removed the weird SingletonMouseDevice
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-17 21:46:37 +00:00
Stefano Ceccherini
4722c56e4c avoid code duplication
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-17 21:45:41 +00:00
Stefano Ceccherini
b8fe2d4ed5 some changes, fixed a possible segfault
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-17 21:45:18 +00:00
Waldemar Kornewald
5352d6baaa Updated DEVNOTES. It's finally complete, now.
Fixed headers:
- added checks for C++
- removed _REENTRANT checks


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-17 11:58:39 +00:00
Jérôme Duval
ec816dffe2 fixed build for non haiku platforms
fixed displayed names for some models
added untested support for CardBus models Indigo*, thanks to Patrick Lafarguette for his great help on this feature


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 23:44:40 +00:00
Waldemar Kornewald
c544064d35 Updated BIND resolver library (libbind.so) to version 9.3.1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 22:38:13 +00:00
Jérôme Duval
f6486d9d01 added some more headers from pcmcia-cs
fixed the build for non haiku platforms


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 19:06:45 +00:00
Axel Dörfler
89f5f72a15 * Added debug output to vm_low_memory.cpp.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 17:35:03 +00:00
Axel Dörfler
2058e6c1d4 Refactored MTRR code a bit: there is now a generic base that is used by
all CPU specific implementations as much as possible.
AMD and Intel are now separated again, even though they are currently
equivalent besides the CPU vendor detection.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 17:16:22 +00:00
Axel Dörfler
d0d37bdfd1 * vfs_init() is now called later in the startup sequence - since no core kernel
service depends on it, it doesn't make any sense to call it that early in the
  game.
* The VFS now has a low memory handler for vnodes as well. If there is enough
  memory left, it won't free any vnodes anymore.
* Potential crashing bug fix: some functions did not check if the FD passed
  in belonged to the right type; they just assumed it had a valid vnode, but
  it could have had a mount structure associated as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 16:11:36 +00:00
Axel Dörfler
4c0f46e2a3 The block_cache::LowMemoryHandler() must check if it could acquire the cache's lock;
it might have been deleted in the mean time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 15:50:13 +00:00
Axel Dörfler
182f88dda1 * block_cache_delete() now deletes the cache with with its lock held.
* the link were not initialized in cached_block, as its constructor were never called
  (was using malloc/free instead of new/delete).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 15:45:00 +00:00
Axel Dörfler
005108a262 Forget to remove debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 14:33:10 +00:00
Axel Dörfler
37bd67edb8 Now also flushes dirty blocks correctly (cannot happen if transactions are used,
ie. never happens with BFS).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 13:53:34 +00:00
Axel Dörfler
41e866f3ae The block cache now registers and uses a low memory handler that will flush
unused blocks when needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 13:49:23 +00:00
Axel Dörfler
af01805834 Implemented VIA specific MTRR functionality - untested, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 13:08:35 +00:00
Axel Dörfler
7d7f4675bb * Added some cpuid eax == 1 feature definitions to arch_cpu.h
* Renamed IA32_MTR_WRITE_COMBINED to IA32_MTR_WRITE_COMBINING.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 12:25:49 +00:00
Axel Dörfler
348c7214f5 Improved processor identification for some VIA C3 models.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 11:55:01 +00:00
Jérôme Duval
e4857dd34d fixed ico and jpeg2000 translators build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 11:12:07 +00:00
Jérôme Duval
38e07e8f22 fixed build for patch
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 10:13:12 +00:00
Jérôme Duval
23edb337cd fixed build for sharutils
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 10:06:11 +00:00
Jérôme Duval
2b68b87f87 fixed build for tar
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 09:59:46 +00:00
Stefano Ceccherini
579d1b23d7 Improved debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15553 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 23:14:13 +00:00
Axel Dörfler
ebdb9dfebf Blocks are now put into an unused list when they aren't used.
When memory gets low, the blocks on that list are also freed - but right now,
that only happens when a block is put back (not directly on demand, ie. via
a low memory handler).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15552 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 21:35:19 +00:00
Axel Dörfler
1534aa236c Added new function vm_low_memory_state() that returns the current low
memory status.
Added new B_NO_LOW_MEMORY constant for the usual case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 21:30:28 +00:00
Jérôme Duval
127e973b5d fixed build for non haiku targets
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15550 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 20:30:13 +00:00
Jérôme Duval
580b6319dc bc builds again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 19:13:26 +00:00
Jérôme Duval
9257239ca8 have Make built again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 19:05:32 +00:00
Axel Dörfler
d0abcc6fd2 Windows now receive B_WORKSPACE_ACTIVATED and B_WORKSPACES_CHANGED messages again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 16:42:12 +00:00
Axel Dörfler
b3e26f5b8f Documented the block cache allocator a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 16:23:30 +00:00
Rudolf Cornelissen
09116ce3bc removed the switch statement for determining number of CPU's in a system. This should fix CPU 'hlt' instruction not being executed in SMP systems idle loop. Thanks Axel and Ingo for pointing me at this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15544 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 12:25:11 +00:00
Rudolf Cornelissen
3fcc89d18b updated docs. Bumped version to 0.69. Warning: untested, overlay broken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 10:46:28 +00:00
Rudolf Cornelissen
010c640964 finished and enabled support for 2D acceleration function SCREEN_TO_SCREEN_SCALED_FILTERED_BLIT (DMA mode only). While still untested, the engine keeps running at least. Should work on all cards the driver supports. Note: overlay support is now broken: 2D engine freezes at some point. Will fix that asap (I hope)...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 10:45:34 +00:00
Rudolf Cornelissen
2a2d851212 fixed not asking cmd buffer for room for all items (scaled_fiterled_blit)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15541 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 08:46:27 +00:00
Jérôme Duval
4f9f2ee29d added a pcmcia bus raw driver compatible with R5
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15540 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-14 22:50:05 +00:00
Rudolf Cornelissen
0cb2429ad1 completed preliminary (untested) scaled_filtered_blit function, although it wont' work yet: the engine cmd define and fifo assignment has yet to be setup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15538 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-14 20:53:00 +00:00
Rudolf Cornelissen
9af6e789da more stuff for SCREEN_TO_SCREEN_SCALED_FILTERED_BLIT function. Not yet complete though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-14 18:37:02 +00:00
Axel Dörfler
e0e9a3e69f * We now support the global page feature of x86 processors that prevents
kernel TLBs from being flushed on context switch.
* new arch_cpu_user_TLB_invalidate() that now does what arch_cpu_global_TLB_invalidate()
  did before.
* arch_cpu_global_TLB_invalidate() will now flush all TLBs, even those from the
  kernel.
* some cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-14 17:07:37 +00:00
Axel Dörfler
484c80abd0 * Added missing prototypes for get_eflags() and set_eflags() to arch_system_info.h
* The boot loader now checks the CPU for the cpuid and rdtsc features, which we
  currently both rely on.
* Removed old and no longer used stage2_priv.h header


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15534 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-14 10:43:28 +00:00
Stephan Aßmus
c676b8fcc6 now has a special version of B_OP_OVER for solid patterns as well, accelerated the alpha blending for B_OP_OVER.... these are the first shy steps of rewriting the drawing mode stuff... :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 20:18:13 +00:00
Stephan Aßmus
2a867ee674 accelerated software cursor drawing 11 times
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15531 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 19:28:52 +00:00
Stephan Aßmus
040ce75726 added libbeadapter.so (used by the storage kit and the haiku regisrar) to the test libs, it just went unnoticed before
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15530 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 19:08:18 +00:00
Axel Dörfler
f104fa77bd Did not compile with tracing turned off.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 17:05:47 +00:00
Axel Dörfler
51a3c450be The short story: we now have MTRR support on Intel and AMD CPUs (the latter
has not yet been tested, though - I'll do this after this commit):
* Removed the arch_memory_type stuff from vm_area; since there are only 8 memory
  ranges on x86, it's simply overkill. The MTRR code now remembers the area ID
  and finds the MTRR that way (it could also iterate over the existing MTRRs).
* Introduced some post_modules() init functions.
* If the other x86 CPUs out there don't differ a lot, MTRR functionality might
  be put back into the kernel.
* x86_write_msr() was broken, it wrote the 64 bit number with the 32 bit words
  switched - it took me some time (and lots of #GPs) to figure that one out.
* Removed the macro read_ebp() and introduced a function x86_read_ebp()
  (it's not really a time critical call).
* Followed the Intel docs on how to change MTRRs (symmetrically on all CPUs
  with caches turned off).
* Asking for memory types will automatically change the requested length to
  a power of two - note that BeOS seems to behave in the same, although that's
  not really very clean.
* fixed MTRRs are ignored for now - we should make sure at least, though,
  that they are identical on all CPUs (or turn them off, even though I'd
  prefer the BIOS stuff to be uncacheable, which we don't enforce yet, though).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 16:34:29 +00:00
Waldemar Kornewald
57eab4408b Now we use the legacy headers when building our compatibility libraries. Fixed BuildSetup to use root instead of libroot.so because arp would not build otherwise. Command-line apps now don't build for R5, anymore. I hope nothing is broken.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 16:30:16 +00:00
Axel Dörfler
2ed21b8525 Some work in progress of the MTRR support. Shouldn't do any harm yet :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 00:06:52 +00:00
Axel Dörfler
b7e7814c79 Prints a warning if open_modules_list() or get_next_loaded_module_name() are
called before module_init(). Maybe it's even better to drop into the kernel
debugger.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 00:01:19 +00:00
Stefano Ceccherini
4fbc3f5803 Researched and implemented BDirectWindow::SupportsWindowMode() more
correctly, both for r5 and haiku


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 20:46:13 +00:00
Axel Dörfler
4f00613311 Added generic x86 CPU module.
Contains (emtpy) modules for Intel/AMD/VIA models.
Might be separated later, though, depending on how large they will get.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 17:20:32 +00:00
Axel Dörfler
97ec781e94 Added (empty) memory type functions to the PPC port.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 17:13:15 +00:00
Axel Dörfler
7c0a93573b Preparation for MTRR support, code is completely untested, though.
The CPU specific MTRR code will be in modules.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 17:04:36 +00:00
Axel Dörfler
381d6b57f6 Make sure system can continue after panic.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 17:00:46 +00:00
Axel Dörfler
b53cc465d6 Moved declaration of gBootDevice into its own header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 16:06:33 +00:00
Axel Dörfler
aa9d29ba97 Another SMP oversight: the TSS was not explicetly loaded for all CPUs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 14:38:26 +00:00
Axel Dörfler
1eed15a2d2 ServerApp no longer kills ServerWindows when they don't respond, but drops into
the debugger - killing them only very rarely works out anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 13:57:49 +00:00
Axel Dörfler
54527a9ad5 The ServerWindow now keeps the desktop (read) lock for up to 70 messages at once.
This should make drawing a bit smoother.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 13:53:35 +00:00
Jérôme Duval
61a4bac025 added ICH7/6300ESB ids, untested
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15514 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 13:50:49 +00:00
Axel Dörfler
706fb459d5 Oops, remaining messages in the link should be taken into account as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15513 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 13:50:34 +00:00
Axel Dörfler
1b974d07ee You can now test if there are more messages waiting in the link.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 13:45:09 +00:00
Axel Dörfler
58290b7b37 WindowLayer::ProcessDirtyRegions() no longer deadlock in case it can't send
the AS_REDRAW message.
The AS_REDRAW message is now only used as a notifier - it's arrival is not
critical anymore, IOW it's simply dropped when the queue is full.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 13:14:21 +00:00
Axel Dörfler
b02ce81171 You can now specify a timeout to MessageLooper::PostMessage().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 13:12:51 +00:00
Axel Dörfler
61fed21b04 Renamed Write[Un]lockWindows() to [Un]lockAllWindows(), and Read[Un]lockWindows() to
[Un]lockSingleWindow().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 10:41:31 +00:00
Axel Dörfler
5d93a13bb4 The registrar marks itself now as a B_BACKGROUND_APP application, so that it
is no longer visible in the Deskbar.
Changed registrar.rdef to match the same application flags, and added a comment
that those flags are actually ignored. Cleaned it up a bit, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 00:27:51 +00:00
Axel Dörfler
da4580a278 Fixed a crashing bug that occured when both, "sort running applications", and
"tracker always first" was selected, and the first app that was launched was not
Tracker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15507 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-12 00:24:52 +00:00
Stefano Ceccherini
56f2fa945f Removed duplicated status variable, which would've caused the wrong value to be returned
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15506 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 21:55:15 +00:00
Axel Dörfler
bff84e78b7 This enables BDirectWindow support again.
It also fixed a bug in the old code - the handshake semaphores were created
acquirable, causing the BDirectWindow::DirectDaemonFunc() to call DirectConnected()
with an uninitialized buffer and way too early - this probably didn't show up
before since it called it before the BDirectWindow constructor ran through,
so that DirectConnected() would still point to the BDirectWindow version, and
not to the implemented one of its subclass...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15505 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 21:46:35 +00:00
Axel Dörfler
bd09e99dbd Made the direct window test environment optional, since it crashes the Dano
app_server...
If you like to use it, define USE_DIRECT_WINDOW_TEST_MODE in the haiku_app_server
Jamfile.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15504 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 21:42:32 +00:00
Axel Dörfler
8126a5e7f4 Fixed debug build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15503 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 20:57:51 +00:00
Axel Dörfler
0f4fb801b0 BDirectWindow::DirectDeamonFunc() now exits in case it couldn't acquire or
release the direct buffer handshake semaphores.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15501 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 20:16:42 +00:00
Waldemar Kornewald
8a1a2b3aa9 Cleaned up the net_stack_driver a little bit, so it is more usable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 20:09:47 +00:00
Axel Dörfler
e68b762659 More GCC 4 fixes by Ingo Weinhold - appeared because of the recent removal
of new/typeinfo/exception from our headers.
Rearranged the IconCache node_ref hash computation to be padding-resistant
(at least on PPC, node_ref is 16 bytes long, not 12 as it is with x86 and GCC 2).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15498 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 19:37:18 +00:00
Ingo Weinhold
210c204d16 Do I miss something? Why explicitly use headers/cpp?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15496 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 16:26:54 +00:00
Ingo Weinhold
4612b9835c Directly use the atomic.S from libroot. This avoids needing to have a
file per architecture here.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15495 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 16:25:02 +00:00
Ingo Weinhold
bedeb04ec8 Forgot to check this in. GCC 4 fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15493 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 15:44:03 +00:00
Ingo Weinhold
998eb12d97 Ouch! Sometimes one simply doesn't find words... I wonder whether the
author ever checked the documentation for the function he was trying to
use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 14:09:30 +00:00
Ingo Weinhold
fad6687c9a Fixed PPC build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 14:01:46 +00:00
Ingo Weinhold
711f8274f3 BlankLogo is also needed on PPC.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 13:50:20 +00:00
Ingo Weinhold
d0769921ab Use atomic_set() instead of hard-coded x86 inline asm.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 13:44:40 +00:00
Ingo Weinhold
c6745ed536 Fix build for PPC.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15487 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 13:34:28 +00:00
Ingo Weinhold
6e040d83ea Added __swap_{float,double} for PPC. They are probably horribly
suboptimal (if working at all) -- review is appreciated.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 13:26:50 +00:00
Ingo Weinhold
d85fe0ec25 Compatibility functions. Actually not needed for PPC Haiku, but it's
easier to define them for now, since they are used unconditionally e.g.
in the Tracker sources.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 13:25:00 +00:00
Stephan Aßmus
60e12a12c5 no longer used
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 13:09:51 +00:00
Stephan Aßmus
3c2ffeb0d6 fixed one more drawing bug, it only showed because now the test environment uses hardware acceleration, FillRegion for the client irgnored the current clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 13:03:53 +00:00
Stephan Aßmus
1b13861833 included the wrong header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15482 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-11 13:00:29 +00:00
Ingo Weinhold
de69ef37bb Added a good deal of "#ifdef __INTEL__"s to allow compilation on PPC. As
one of the TODOs already says, the architecture specific parts should be
factored out into separate source files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 23:12:49 +00:00
Ingo Weinhold
fe14a904a8 * Implemented [sig]{set,long}jmp() for PPC. No idea, if it is any good,
but it compiles at least. :-)
* Pulled the architecture specific part out of <posix/setjmp.h> into
  <posix/arch/<arch>/arch_setjmp.h>.
* Moved setjmp_save_sigs.c from the x86 specific implementation into a
  "generic" sibling directory, since it is reusable (and actually used
  by the PPC implementation).
* Added generic/longjmp_return.c containing a function __longjmp_return,
  which is invoked at the end of siglongjmp(), resetting the signal mask
  and validating the return value. It is used by the PPC implementation,
  and should also be used by the x86 implementation, but I'll leave that
  to someone who's motivated enough to also test it. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 22:56:52 +00:00
Stephan Aßmus
62b965a65f * got the "cloned accelerant" based DWindowHWInterface to work, though without
using the clipping info from a BDirectWindow... I made it so that the window
  used stays on top always, until I can think of something better. The other
  problem is that you should not move the window, since Painter doesn't update
  it's pointer into the frame buffer.
* Now the test environment is running at pretty much the same speed as it would
  under Haiku, completely by-passing the BeOS app_server. It shows that Painter
  needs to be optimized for writing to graphics memory, and also that we need to
  figure out a way to distribute update sessions more equally. What happens is
  this: The first invalidation of a window triggers an update on the client
  side... the client cannot keep up with drawing, since it is pretty much
  blocked all the time because the desktop thread moves a window and because
  the clipping constantly changes. In the meantime, new update request are
  added to the pending session because the client has still not finished with
  the current session. Only when things settle a bit, the next update session
  can be startet. On the bright side of things, the earlier problems with
  scrolling seem to be fixed for good.
* some documentation updates on Painter


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 21:45:41 +00:00
Ingo Weinhold
901f399036 * Removed libroot/posix/math completely and added the respective
functions from glibc 2.3.2. Adding those one by one is extremely
  boring and time-consuming work. We should probably just remove the
  math stuff again, add a verbatim copy of the glibc directories, and
  shuffle things around afterwards.
* Note that for x86 holds sizeof(long double) == 96. I removed the
  generic 128 bit long double functions that were in use before and
  added respective 96 bit versions to arch/x86 (or left them out, if
  they weren't used). For PPC the System V ABI spec supplement specifies
  sizeof(long double) == 128, but I had trouble configuring gcc to
  actually use that setting (looks like there simply is no support for
  TI mode for PPC 32). So we have to live with sizeof(long double) ==
  sizeof(double) == 64 for the time being.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 20:39:04 +00:00
Ingo Weinhold
27de84142b Empty implementations of PPC stack trace functions to make the build
system happy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 20:17:49 +00:00
Ingo Weinhold
b4add623a4 Fixed gcc4 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15475 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 20:16:41 +00:00
Axel Dörfler
050bf31477 Minor fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15473 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 20:03:19 +00:00
Ingo Weinhold
a41a0db6f2 Solved linkage problems. Virtual destructors apparently shouldn't be defined
inline. Commented undefined virtual methods. BBitmapBuffer is still used, so
is ViewHWInterface.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15472 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 17:48:00 +00:00
Stephan Aßmus
c2270088dc build the DirectWindow/Accelerant based HWInterface instead - Axel, don't check this out, it doesn't work yet, this is for Ingo to investigate that linker problem
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 16:45:25 +00:00
Stephan Aßmus
17a4024ca9 classes needed for the new cloned Accelerant based test environment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15470 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 16:43:38 +00:00
Axel Dörfler
71b550889e Moved dw_sync_data to a private header DirectWindowPrivate.h and renamed it to direct_window_sync_data.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 15:36:38 +00:00
Axel Dörfler
ab6a6bed3a * Renamed direct window commands
* Removed unused cruft from ServerProtocol.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15468 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 15:23:02 +00:00
Axel Dörfler
fc70d6db87 * Renamed AS_LAYER_INVAL_{REGION|RECT} to *_INVALIDATE_*.
* Removed unused AS_LAYER_INVALIDATE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15467 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 15:12:28 +00:00
Axel Dörfler
55eeaa58a6 * Renamed test to DirectWindowStars.
* Some changes to make it run in the test environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 15:07:13 +00:00
Axel Dörfler
764ac9e5aa * A stripped down libgame.so is now added to the app_server test environment - it
contains code for BDirectWindow and BWindowScreen only.
* Updated BDirectWindow and BWindowScreen to no longer require the COMPILE_FOR_x
  defines - compilation for R5 is not likely to work anymore, though (the Jamfile
  didn't allow this anymore, anyway)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15465 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 14:58:39 +00:00
Stephan Aßmus
2b98735f6d forgot about the right side extra room for the focus indication
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 13:58:42 +00:00
Axel Dörfler
a447191925 The fWindowLock is now responsible for all window activities - no need to sometimes
lock the Desktop itself, and sometimes not - that also fixes some potential deadlock
situations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 13:47:13 +00:00
Stephan Aßmus
e76d86d5dd now directly banging the hardware by using a cloned accelerant, soon to be ported to the app_server test environment. Unfortunately deadlocks most of the time when quitting...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 12:43:19 +00:00
Stephan Aßmus
7be34d3eb2 * removed CopyRegionList, as it made no sense
* finally nailed that much hated bug where the
  wrong background underneath the cursor was restored.
  I always looked for this in the wrong place -
  of course, you cannot blit regions on top
  of the cursor and expect the backup of the
  background to be magically valid still... ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15461 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 10:42:26 +00:00
Stephan Aßmus
12b29b9f1a forgot to add a comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15460 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 08:21:50 +00:00
Stephan Aßmus
a80bd60522 through the methods of chaos programming, I hope I have finally got this right
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15459 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 08:19:35 +00:00
Stephan Aßmus
f3faa3c29d * renamed _MarkContentDirty() to _TransferToUpdateSession()
to avoid any confusion with MarkContentDirty()
* hopyfully fixed all drawing defects that could be
  observed with CopyBits()ing and ScrollTo()ing, the fix
  is definitely valid, and I cannot see any more problems
  in Tracker either... hopefully this is it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-10 08:05:25 +00:00
Stephan Aßmus
a04f5a1a5b Now the scrollbar works much more like the R5 scrollbar:
* prevents the target view from being scrolled out of range
 * handles Trackers completely confused usage of scrollbars

There is just one problem with Tracker's horizontal scrollbar
scrolling the title view much further than it should, which I
will look into tomorrow...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 23:27:35 +00:00
Axel Dörfler
4f9b08dffa Obviously, atan.c is needed after all. This should fix the build again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 20:48:44 +00:00
Stephan Aßmus
0f1d5a1af7 finally nailed that bug which prevented Tracker from showing the attribute column titles, I spent way too much time debugging this...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 17:53:55 +00:00
Stephan Aßmus
f056e688a3 now uses the same defaults as in the input_server when unable to contact the input_server
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 17:52:18 +00:00
Axel Dörfler
3ea966eee3 Some cleanup, removed some remaining RootLayer references.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 17:32:32 +00:00
Axel Dörfler
0b4b0f97ba Although it's not that clean, mouse clicks are now going through to the
WorkspacesLayer again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 17:25:32 +00:00
Axel Dörfler
ce8c4d79fc The Workspaces window is now updated again. Only mouse clicks don't work yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 16:20:01 +00:00
Axel Dörfler
52d2c710bf * Workspace offsets weren't correct (only for the first workspace).
* No longer draws hidden windows.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15450 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 16:19:18 +00:00
Axel Dörfler
9d34a4b6d7 * No longer activates a window on first click if B_WILL_ACCEPT_FIRST_CLICK is set.
* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15449 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 15:40:30 +00:00
Axel Dörfler
a7e201435f Now draws something again, it's just not updated on changes yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 15:39:20 +00:00
Axel Dörfler
e566030298 * SetFocusWindow() now makes sure no hidden window is taken as focus window...
* When switching workspaces, usually the focus switches to the front window.
  This no longer happens in case a floating window had focus and is still visible
  in the new workspace - in that case, focus is kept with the floating window.
* SetFocusWindow() now chooses the topmost window in case the specified window
  has either a modal or there is no front window.
Desktop::RemoveWindow() now makes sure the window is hidden before removing it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 14:23:51 +00:00
Ingo Weinhold
e695fe845d Removed atan.c. For PPC we're using the glibc implementation, for
x86 the Haiku image still builds, so it is apparently not used. I
guess it would be best to abandon our posix_math.o completely and
use the glibc math implementations instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 14:23:30 +00:00
Ingo Weinhold
379f146735 Added more missing math functions for PPC from glibc 2.3.2.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15445 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 14:16:39 +00:00
Ingo Weinhold
7c360a1007 Removed the x86 specific __compare_and_swap() implementation and
added a generic implementation using atomic_test_and_set().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15444 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 14:11:44 +00:00
Ingo Weinhold
0799002097 Added an unimplemented __arch_init_time() for PPC.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 14:09:42 +00:00
Axel Dörfler
159fdf2038 * added a fOriginalFlags that contains the unaltered flags as set by the client
* when changing feel, the original flags are now restored.
* added B_SAME_POSITION_IN_ALL_WORKSPACES to valid flags, so that they can be
  set by the user.
* fixed masking out invalid flags (actually all but the valid flags were kept...)
* everytime B_SAME_POSITION_IN_ALL_WORKSPACES can be set (either in SetFlags()
  or in SetFeel() the position is propagated to all window lists.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 14:06:30 +00:00
Axel Dörfler
ccfb624b7a Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 14:03:00 +00:00
Axel Dörfler
e62201bacd * not all possible flags were shown due to a stupid bug...
* added B_SAME_POSITION_IN_ALL_WORKSPACES for the build under Haiku (and libbe_test)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 13:44:54 +00:00
Axel Dörfler
aa203e8d5f If the focus window became invisible because of changing its feel, focus is now
reset to the front window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 13:30:47 +00:00
Axel Dörfler
c81a228fca * SetWindowFeel() now respects the position of the window, and changes it, if necessary.
* renamed workspaces_on_workspace() to workspace_in_workspaces() (was even wrong before).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 13:28:28 +00:00
Axel Dörfler
34227d2c34 A couple of changes related to modal and floating windows:
* Desktop::SetWindowFeel() is now working, but doesn't respect the window
  position yet (ie. floating windows would have to be moved to front).
* WindowLayer::Workspaces() now always reflects exactly the lists it's in
  (at least after Desktop::AddWindow() has been called). WindowList::AddWindow()
  and RemoveWindow() now update this flag to be correct at all times.
* Fixed Desktop::_ChangeWindowWorkspaces() to not set the current workspace
  for windows that are not on the current workspace, and vice versa.
  It also would hide windows that were already hidden, and tried to show
  windows that actually were hidden (did no other harm than triggering
  a rebuild of the global clipping).
* Floating windows now work as expected.
* Desktop::SetFocusWindow() won't give a window focus that has a modal.
* Renamed OnWorkspace() to InWorkspace().
* ServerApp::InWorkspace() now works correctly, added ServerApp::Workspaces()
  as well.
* WindowLayer::SubsetWorkspaces() returns the workspaces mask this modal or
  floating window should be in.
* New window flag B_SAME_POSITION_IN_ALL_WORKSPACES should work as well.
* Floating and modal windows now have always set this flag.
* Added a WindowList::HasWindow() method.
* Desktop windows (windows with the desktop feel) can now have focus again
  (I accidently broke that before).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 13:17:43 +00:00
Stefano Ceccherini
0efe29e09d There is a FillRegion() call after all
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 12:04:18 +00:00
Stefano Ceccherini
7042f1dd6e Mouse won't crash anymore if it can't find its bitmaps.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 11:15:05 +00:00
Stefano Ceccherini
78d0941945 small change, still commented out, though
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-09 09:10:34 +00:00
Stephan Aßmus
939fb4077c fix scrolling of BViews that rely on app_server painting the background, remove a forgotten debug output in ViewLayer, reimplemented setting the window title during runtime, fix Decorator redraw on pressing buttons - though I was lazy on that one... it works, but as the TODOs say, it would be better integrated directly in the Decorator class than being handled by WindowLayer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 22:15:12 +00:00
Stephan Aßmus
fcb6cbaa64 when attached to a BWindow, make sure that the window sets up pulse messaging, if the view has B_PULSE_NEEDED, fixes Tracker showing 0 items in CountView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 22:10:24 +00:00
Stephan Aßmus
1ba4d96326 take it easy when unable to contact the input_server, makes Tracker run much better in the test environment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 22:09:22 +00:00
Rudolf Cornelissen
a89d836024 adding DMA acc function SCREEN_TO_SCREEN_SCALED_FILTERED_BLIT (in progress). The videonode turns out to be a nice playground to test it with, so I can set it up. Also it looks like I'm going to need it because I can't get a B_YCbCr422 connection going on R5 or dano (negotiation seems to fail).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 20:01:52 +00:00
Stephan Aßmus
1cf70f2e66 use With() and Height() instead of right an bottom for the new frame size, fBounds contains the scrolling offset...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 15:30:15 +00:00
Stefano Ceccherini
70206143d0 Tested the new implementation, corrected a ton of bugs and wrong code, now Include and IntersectWith methods work. Exclude is still not working, and there are still a couple of hacks to remove
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 14:57:54 +00:00
Axel Dörfler
72994381f2 Windows currently being dragged now follow workspace switches.
Desktop::_ChangeWindowWorkspaces() and SetWorkspace() didn't lock the window list,
but should have.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 14:45:42 +00:00
Axel Dörfler
799c100e79 That would be a bug indeed.
* ShowWindow() and HideWindow() now also work correctly for windows not
  on the current workspace.
* Reverted WindowList::RemoveWindow() - if it is used wrongly, it should
  better crash the server for now, so that we can iron out the bugs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 13:32:54 +00:00
Axel Dörfler
e83820ed57 Merged app_server_new_clipping branch changes r15290 to 15418 back into trunk.
Also fixed Jamfile for the test environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 12:41:19 +00:00
Stephan Aßmus
af43bb3c94 a first and really naive implementation of drag&drop support, no visuals yet... Axel, no worries I'm going to clean this up and remove stuff from EventDispatcher again...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 12:13:22 +00:00
Stephan Aßmus
3f0aa1427c take care of resizing and cleaning up parent BMenuField in FrameResized(), fixes missing areas in Fonts and most likely other BMenuFields
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 12:04:51 +00:00
Axel Dörfler
7cc34f755b Removed cpuid.o from boot loader build for PPC.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 11:08:26 +00:00
Axel Dörfler
185a5a57cd Removed old PPC framebuffer console (this code is superseded by the on screen KDL). Updated files to match current arch API. This fixes the kernel build for PPC.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 11:03:24 +00:00
Axel Dörfler
1d44f6791d Now checks if locking the looper succeeded.
Now hides the window before removing itself to prevent a superfluous drawing update.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 10:46:54 +00:00
Axel Dörfler
ecc3280f6b Fixed build of the haiku_registrar test app.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 09:33:08 +00:00
Ingo Weinhold
8e17108ffa Add some more PPC math functions from glibc 2.3.2.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-08 00:27:03 +00:00
Ingo Weinhold
c1437015dd Moved architecture independent sources into new subdirectory "generic".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 23:14:51 +00:00
Ingo Weinhold
c729b01278 The <arch_config.h> header is needed in <syscalls.h>, since we're using
the atomic functions related macros.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 23:11:02 +00:00
Ingo Weinhold
e616992242 Fixed compilation with our PPC compiler.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 22:42:57 +00:00
Ingo Weinhold
8b150d6067 Added PPC specific and some generic glibc headers. Taken from
glibc 2.3.2, which seems to be the version used in other places,
though I also found older files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 22:41:39 +00:00
Ingo Weinhold
2034e20826 Added building of an empty posix_arch_ppc.o to make the build
system happy for the time being. We need real setjmp()/longjmp()
implementations for PPC eventually, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 22:37:25 +00:00
Ingo Weinhold
98d294ceb6 Added dummy makebootable for boot platform Open Firmware. Just
to make the build system happy for now. We'll see later what we
have to do.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 22:34:01 +00:00
Axel Dörfler
558242b3ac Fixed comment, thanks Jerome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 19:10:16 +00:00
Axel Dörfler
aa110a00e0 AttachedToWindow() could be called twice in case new views were added during
AttachedToWindow().
This fixes the double team entries in the Deskbar.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 18:04:43 +00:00
Axel Dörfler
ec17c60f5a Added a TODO why our bitmap code is currently pretty inefficient.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 10:50:01 +00:00
Stephan Aßmus
9584d7e45e hefty overall drawing speed optimizazion, the Draw() hook was called for every view down the hirarchy when one single child had to redraw, added some TODOs in _Draw about some stuff we need to think about
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 23:27:00 +00:00
Stephan Aßmus
9fe0cc5965 was there any particular reason why BAlerts were old style synchronous controls BWindows?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 23:25:28 +00:00
Axel Dörfler
715476b7ef The resize code now works correctly, finally - it temporarily did harm ;)
The BViews must be resized directly after every change in the window size - we
cannot wait until B_WINDOW_RESIZED, since subsequent calls have wrong view
sizes, then.
B_WINDOW_RESIZED is only really useful for app_server caused window resizing.
Added TODO to SetLook(): it may change the window size as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 23:15:48 +00:00
Axel Dörfler
e7a77b5b71 You also need to delete cloned areas - they are areas like any other (just their
contents are shared)!
Some cleanup. BBitmap::Cleanup() doesn't ask for a reply from the server anymore
(why should it care, anyway?).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 20:12:38 +00:00
Axel Dörfler
7d93e66823 Added the Deskbar to the libbe_test environment - I thought I had committed this already...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 19:28:12 +00:00
Stephan Aßmus
0a95bea66d fixed wrong usage of ConstrainClippingRegion() introduced by myself a couple months ago
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 16:56:31 +00:00
Stefano Ceccherini
bdac8966fa the signature in the resource didn't match with the one in the constructor. As a result, Fonts didn't start
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15372 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 16:51:08 +00:00
Axel Dörfler
dd344f7934 libtranslation.so was built for the libbe_test target, but wasn't part of the
test environment (the install-test-apps target).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 16:34:13 +00:00
Rudolf Cornelissen
4a856e1d8d overlay code now respects the B_OVERLAY_COLOR_KEY flag instead of forcing keying ON. Bumped version to 0.27.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 14:50:49 +00:00
Rudolf Cornelissen
d040001c7a overlay code now respects the B_OVERLAY_COLOR_KEY flag instead of forcing keying ON. I seem to have forgotten about that flag, but I was pointed at it again by testing with overlay in a consumer node. :) Bumped version to 0.68.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 14:46:10 +00:00
Stephan Aßmus
f41715436a remove left over debugging output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 13:47:16 +00:00
Stephan Aßmus
dde10e4519 fixes for various controls to remove or show focus indication when the window active status changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 13:46:50 +00:00
Stephan Aßmus
a2b387ad6e prevent applying zero offsets to all rects
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 13:45:15 +00:00
Stephan Aßmus
a289cd317f slightly improved look
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 13:44:38 +00:00
Stefano Ceccherini
8fed3280e7 removed some commented stuff. Declarations should be moved to the proper files, anyway...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 08:34:57 +00:00
Stefano Ceccherini
35a6c07857 Bitmaps are now owned (and deleted) by BitmapMenuItem, small changes. Added a check for NULL which cures the symptoms of a bug in resource loading. Even if we fix the bug, this is defensive programming
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 08:19:58 +00:00
Axel Dörfler
ac4fe990c9 * The client views are now automatically resized on B_WINDOW_RESIZED as they are in the
server.
  This saves overhead on both sides, the server doesn't need to build the update message
  for the client, and the client doesn't have to unflatten and parse another message.
* This code is actually needed for the new clipping code in the app_server, but shouldn't
  do much harm for the old app_server, either.
* Also disabled getting the bounds from the server, as that is just never needed (and would
  also break the code).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-06 01:22:02 +00:00
Stefano Ceccherini
9bd3f620bc More stuff, should be almost feature complete (but bugged as hell, probably), I should start real testing tomorrow, hopefully
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-05 20:12:18 +00:00
Axel Dörfler
82e9603fbf Disabled page daemon for now - it doesn't any good yet (but easily sucks up your CPU power).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-04 16:47:52 +00:00
Waldemar Kornewald
9ad01d8d1f Added the merged objects to LinkAgainst.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-03 21:10:53 +00:00
Stefano Ceccherini
503f85dc8a forgot to commit this file, I noticed after a revert
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-03 21:09:49 +00:00
Stefano Ceccherini
4f6f70e059 small change, use the public methods where possible
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-03 14:26:32 +00:00
Stefano Ceccherini
2b3861d601 some bugfixing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-03 14:12:53 +00:00
Stefano Ceccherini
eba7781c71 Now Region.h is binary compatible with R5's one
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-03 11:11:12 +00:00
Stefano Ceccherini
f76e95c4ee more stuff, still completely untested
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-03 11:08:45 +00:00
Axel Dörfler
c072e9f1f5 * BWindow::AddToSubset()/RemoveFromSubset() no longer send their team ID; this
is known by the server, anyway.
* B_MODAL_SUBSET_WINDOW_FEEL now also works as expected.
* Renamed AS_REM_FROM_SUBSET to AS_REMOVE_FROM_SUBSET.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-02 16:07:02 +00:00
Axel Dörfler
b2d24b66da * B_MODAL_APP_WINDOW_FEEL windows now also work correctly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-02 15:48:21 +00:00
Axel Dörfler
4c0269b979 * WindowLayer::OnWorkspace() should now work correctly for all window feels.
* introduced ServerApp::OnWorkspace().
* moved AS_CREATE_[OFFSCREEN_]WINDOW into its own method, ServerApp::_CreateWindow().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-02 15:42:28 +00:00
Axel Dörfler
48ccf5abef Some work to get modal/floating windows back:
* B_{FLOATING|MODAL}_ALL_WINDOW_FEEL now works as expected
* reintroduced the concepts of subsets of modal/floating windows - does only
  work correctly for subset "all" window feels.
* RootLayer::_SetFront() now deals correctly with modal windows
* renamed RootLayer *WindowLayer() methods to *Window()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-02 15:06:14 +00:00
Axel Dörfler
f5e1f2163f The feel can now be changed on the fly as well (only in the test app, of course,
the app_server is still dumb about it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-02 11:37:31 +00:00
Axel Dörfler
fc21e33e46 * B_NOT_H_RESIZABLE/B_NOT_V_RESIZABLE are now correctly supported by the decorators.
* Introduced methods WindowLayer::IsModal() and IsFloating().
* Invalid flags for the current feel are now filtered out, like B_AVOID_FOCUS for
  modal windows.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-02 10:35:01 +00:00
Stephan Aßmus
a825e4034c not in a nice way, but I hope to have fixed the deadlocking problems on program exit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-02 00:10:41 +00:00
Stephan Aßmus
0bbd104a7d don't allow the top view to be scrolled
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 21:32:45 +00:00
Stephan Aßmus
7943e1a86d scrolling seems to work nicely, dirty regions are tracked fine and shifted along with the scrolling if necessary
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 21:14:10 +00:00
Axel Dörfler
3d05db78ce Fixed compilation (at least under Zeta/Dano).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 19:09:53 +00:00
Stephan Aßmus
727653f7ab implemented invalidation triggered from the client side. 20 clients each displaying an animation in one view at 25 fps leaves the new clipping unimpressed, everything is fluent, also during moving and resizing windows
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 19:04:37 +00:00
Axel Dörfler
755ae3a961 The window is now resized to be high enough for its contents.
The buttons now span over the full width (and will be adapted on resize).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 18:58:44 +00:00
Axel Dörfler
42e1c25d01 "Oops, I did it again": AS_SET_FLAGS returned B_BAD_VALUE on valid flags
and B_OK on invalid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 18:35:38 +00:00
Stephan Aßmus
8c8275c2ea showing and hiding windows and views works now, views are not so heavily tested, but any problems should be easy to fix. the recursive IsHidden() is now avoided, there is only one recursion now, which is when the hidden status changes. in the simulation, double clicking a window will temporarily hide it and show it asynchronously from the window thread. looks like the locking model works out fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 17:24:47 +00:00
Axel Dörfler
2057d3c0aa If AddToSubset() fails, we now show an error alert.
B_QUIT_REQUESTED is no longer forwarded to the application too early.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 17:08:16 +00:00
Axel Dörfler
7ae647775e Completed functionality - you should now be able to test pretty much everything
with respect to look/feel/flags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 16:50:21 +00:00
Axel Dörfler
aecd5eefaf * the check for a valid feel was wrong, reported by Michael Lotz.
* also followed Michael's suggestion (more or less) and moved the
  look/feel/flags checks into separate methods.
* on construction, invalid look/feel/flags values are now corrected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 15:58:04 +00:00
Axel Dörfler
6b86db1c42 Changing window flags that affect the look does now also work more or less fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 15:02:11 +00:00
Axel Dörfler
05aea1dd4a Better app_server communication for SetFeel(), SetLook(), and SetFlags().
SetFeel() gets a status value back as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 14:56:44 +00:00
Axel Dörfler
85f8bb71c7 * You can now change the look of a window on the fly.
* renamed some Decorator functions like GetLook() to Look().
* renamed _look to fLook and _flags to fFlags.
* removed the feel from decorators - they don't need to know
  or care about the feel.
* the DefaultDecorator didn't allow resizing of modal windows.
* DefaultDecorator::SetTitle() no longer clears the passed
  in updateRegion, it just fills it (so that you can call
  more than one of these methods after the other, and still
  get a correct update region).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 14:56:01 +00:00
Axel Dörfler
57be286609 * when moving/resizing windows on another workspace, the Workspaces window
has to be udpated anyway.
* some work towards being able to set a window's look/feel/flags on-the-fly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 13:59:04 +00:00
Axel Dörfler
5c01706db6 Again, did only compile under BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 13:23:13 +00:00
Axel Dörfler
a7e6679b88 Beginning of a test application for look&feel (and flags, actually).
Only look & flags are tested right now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 13:21:33 +00:00
Axel Dörfler
5d32708515 Implemented B_AVOID_FOCUS support.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 12:31:05 +00:00
Axel Dörfler
85096c8acb Some cleanup:
* look/feel are now window_look/window_feel instead of int32.
* removed the level stuff, I don't think this is needed.
* some other minor stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 12:07:28 +00:00
Axel Dörfler
649e929c7a Added drawing the window titles to the Workspace window - but I disabled
it, as it slows down window moving noticeably.
To provide a good Workspaces window functionality, we should probably let
WindowLayer take care of the updates itself - that would simplify the whole
thing a lot.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 11:43:04 +00:00
Axel Dörfler
a1d0e588b9 Another use of clipping regions to eliminate flickering. Maybe I have to come
up with something better though, when the window titles are drawn as well...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 10:41:01 +00:00
Axel Dörfler
19d801a6b6 Moving/resizing is now routed over the desktop as well.
This also allows the workspaces layer for these actions, which is now done as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-01 10:31:30 +00:00
Ingo Weinhold
b22fc00fa8 Fixed invalid use of STL vector. I wonder, why I always involuntarily
shudder when looking into MDR code (and happily use Beam). Error
checking, anyone?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 23:55:02 +00:00
Ingo Weinhold
9a8ef58959 Build fixes for gcc 4 by Ilzu Siiteri. Small changes by myself.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 23:41:40 +00:00
Stephan Aßmus
d0e89d5302 I couldn't resist playing some more with ezprof. I don't know if I can trust it's results though, revealing as they are. Somebody should explain to me why forgetting a return *this; in an operator= method works in the first place, and why it results in the constructor being called.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 23:03:05 +00:00
Axel Dörfler
b32a299f2a Minor cleanup, mostly SERVER_TRUE -> B_OK.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 22:48:42 +00:00
Axel Dörfler
a8b49ab310 Implemented AS_COUNT_WORKSPACES and AS_SET_WORKSPACE_COUNT server side.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 22:48:13 +00:00
Stephan Aßmus
c8b8bbfca4 fix the update session operator=, temporarily enabled Flush()ing the underlying BView again in order to not distract with fake drawing bugs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 20:51:39 +00:00
Stephan Aßmus
7fd1af6f04 I did some profiling using Daniel Reinholds ezprof, which is quite nice actually. I optimized a bit, without spending too much time on that yet, and now the clipping is on average 7 times faster than the current app_server (the time spend in the root layer thread)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 20:35:47 +00:00
Axel Dörfler
5ca8477eca * the Workspace class is now hidden and put into Workspace::Private; the new
Workspace class is a simple accessor to this class that takes care about
  locking (currently, it's just the desktop lock, maybe it'll stay that way).
* WorkspacesLayer now displays the window thumbs again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 19:56:44 +00:00
Axel Dörfler
ed656a3a9b You must not have RootLayer locked when calling any method from EventDispatcher;
just another case of troublesome generic RootLayer locking in ServerWindow
(I'm looking forward to get rid of this).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 19:51:43 +00:00
Axel Dörfler
6aae81b3e1 Quick and dirty fix to allow our heap to allocate more than 64kB.
However, it will never free those allocations again.
This fixes the problems due to Rudolf's recent driver updates.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 19:28:46 +00:00
Stefano Ceccherini
983af123cd Obviously forgot to svn add
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 18:43:57 +00:00
Stefano Ceccherini
f505f1798d Added a jamfile for NewRegionTest. Small changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-30 18:43:26 +00:00