Commit Graph

1331 Commits

Author SHA1 Message Date
Axel Dörfler
16e938888d Some more debug output, so that you know which window is killed this way.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 22:40:01 +00:00
Axel Dörfler
806767ec21 It now deletes its message port (it was previously incorrectly deleted by the client).
Now handles it gracefully if someone deletes its message port (it will try to close
the client and quit).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 22:39:15 +00:00
Axel Dörfler
189ba7a9dc Tried to separate active WinBorder from front, but failed - it's now always
the focus border, and therefore, I probably broke floating windows (but that's
not that important right now).
Workspace::HideWinBorder() now sets focus to the next WinBorder, not always
the top one.
Workspace::MoveToFront() no longer changes focus, no longer calls ShowWinBorder()
when the window doesn't have to be moved (ie. for the desktop window).
Added Workspace::SetFocus() to change the focus explicetly.
Some other cleanup. This is an ugly patch, but refactoring/rewriting is coming
soon.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 20:19:22 +00:00
Stephan Aßmus
6c3f99cf46 the clipping in fLayerData is in screen space, so when getting/setting the user defined clipping, we need to convert to/from view space
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13505 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 18:05:56 +00:00
Axel Dörfler
063c980a2d Minor cleanup: we have a constant for the desktop window feel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13502 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 16:26:53 +00:00
Ingo Weinhold
935c0c3a12 Changed the shutdown process to match Be's: The user apps are not longer
asked to quit in parallel. Instead they are asked one after the other.
Played with the window to look more like the one in BeOS. The "shadow" on
the left side is still missing, but otherwise it's close.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13496 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 14:28:11 +00:00
Ingo Weinhold
0dbfed5b0c Clone() didn't copy the registration_time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13495 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 14:25:28 +00:00
Ingo Weinhold
4852c3cd50 Added Sort() functionality.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13494 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 14:25:05 +00:00
Axel Dörfler
7560d40290 Renamed "obos_registrar" to "haiku_registrar" - not just for fun, but because
the registrar no longer depends on the app_server to be running.
Added a "run_haiku_registrar" tool that is now used in the various "run" scripts.
It only start the registrar on demand, ie. if it's not yet running.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13493 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 13:50:43 +00:00
Stephan Aßmus
72fab80539 another quick change for Tracker which allows to click on the Deskbar window, for some reason the window manager implementation does not allow a B_SYSTEM_LAST window to become the focus, but this is clearly possible on R5. I tried to track the real problem, but it needs to at least appear to work tomorrow... so double clicking on the Haiku volume indeed opens a Tracker window, though there is nothing in there. Axel, when I launch Tracker, I'm getting a bunch of KDLs with PANIC: BFS where I can continue until finally seeing Tracker. Deskbar works even better, though displaying the BeOS Logo is IMHO unacceptable for the representation, so I'm intending to make a Haiku Deskbar logo ASAP.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 13:31:41 +00:00
Stephan Aßmus
25685e7e5f this quick change will make sure the Tracker Desktop window is opened behind all other windows and stays there, just to make life easier for Axel when I is representing the thing...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 13:25:43 +00:00
Ingo Weinhold
2a0de579c7 Missing loop exit in case of message sending failure. This could cause a
busy loop of the MessageDeliverer when the port was deleted while there
were still messages to send.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 11:16:57 +00:00
Ingo Weinhold
b285c0542c Implemented a shutdown window. Since we're quitting all user applications
in parallel, it displays the mini icons of all still running apps. Doesn't
look that great, though. Also, quitting the apps in parallel speeds up the
shutdown process, but has the disadvantage, that all apps will throw their
"Save changes...?" alerts at the user at once, which might not be a
desirable experience. I'll probably revert to the way Be did it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 10:29:42 +00:00
Ingo Weinhold
26ffd9e208 Missing break in switch statement.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13487 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 10:25:50 +00:00
Stephan Aßmus
101e7104ed fixed screenshots. Again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 10:21:23 +00:00
Axel Dörfler
c9299b3ce8 Instead of killing the ServerApps the hard way, the AppServer now quits
them if they didn't listen to B_QUIT_REQUESTED. This works much better
as how it was done before.
Now uses exit() instead of exit_thread() which makes sure no thread survives.
Note, there still is a race condition in case an application quits immediately
before shutting down the server - in that case, it doesn't participate in
the fShutdownSemaphore stuff, and therefore, the app_server could quit it
too early. Maybe I'll fix that one day, as well :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 04:57:57 +00:00
Axel Dörfler
c8e986230f Incorrectly used real_time_clock() instead of system_time() for the message time stamps
(change suggested by stippi).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 02:48:13 +00:00
Stephan Aßmus
8ffa3fb9fa the official system palette also has the 0xff entry (B_TRANSPARENT_MAGIC_CMAP8) with alpha = 0
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13474 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 01:46:37 +00:00
Stephan Aßmus
53a3e62c74 quick hack for alpha = 0 in B_OP_OVER, needs review, but for now, drawing all those B_CMAP8 bitmaps which have B_TRANSPARENT_MAGIC_CMAP8 pixels is working fine... IAW, icons look cool.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13473 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-06 01:43:49 +00:00
Axel Dörfler
5c228514df Made the border line darker for B_BORDERED_WINDOW_LOOK - menus look much better now
(but should still have their own look that includes the bevel, I think).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 23:10:08 +00:00
Axel Dörfler
34ce0e42d4 As it turns out, window_info::type is really the window's "feel".
Basic support for the desktop window feel: WinBorder will now resize
a window with kDesktopWindowFeel to span over the whole screen.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 20:28:40 +00:00
Axel Dörfler
2b1246d968 Renamed AS_WINDOW_TITLE to AS_SET_WINDOW_TITLE.
Fixed handling in ServerWindow as stippi's latest commit broke it.
It's now properly done with a separate ServerWindow::SetTitle() method,
that will also take care to rename the window's thread.
Changed naming the window thread in the app_server to "w:<team>:<title>".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13461 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 19:20:19 +00:00
Axel Dörfler
4902831aca Fixed the newly introduced hang when a menu item was selected (which was only one
of the consequences): a forgotten rootLayer->Lock()...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 18:46:59 +00:00
Axel Dörfler
0bb8508592 Stippi's commit accidently changed the initial screen size.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 18:38:12 +00:00
Axel Dörfler
6a0a0a80da Implemented AS_GET_WINDOW_LIST and AS_GET_WINDOW_INFO.
Renamed Desktop::FindWinBorderByServerWindowTokenAndTeamID() to FindWinBorderByClientToken().
Every ServerWindow now gets a server token.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 18:14:24 +00:00
Marcus Overhagen
184dd027c3 adjusted media kit library dependencies to allow compiling for R5
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 18:05:01 +00:00
Marcus Overhagen
38b7e756d2 spelling fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 17:26:52 +00:00
Stephan Aßmus
359c905c57 offscreen bitmaps work, tested on Haiku as well, supports all colorspaces that BBitmap::ImportBits() supports. It uses a fallback for non-B_RGB(A)32 bitmaps. Added support for B_SUB_PIXEL_PRECISION view flags, though it is a bit hacky, since I had to add it to LayerData, even though it is not a true part of stack data. Added Layer::SetFlags() to enforce code path and update fLayerData. Cleaned up DisplayDriverPainter and DisplayDriver API (changed some const BRect& rect to simply BRect rect in order to be able to reuse it in the code), moved Painter.h, the test environment only draws the changed part of the frame buffer again - this causes a lot less CPU overhead, Painter special cases stroke width of 1.0 to use square caps, which is similar to R5 implementation and removes a lot of problems with non-straight line drawing, ServerWindow uses the DisplayDriver from it's WinBorder instead of the one from the Desktop (needed for offscreen windows, which have their own DisplayDriverPainter), it also checks for GetRootLayer() == NULL, because offscreen layers are not attached to a RootLayer, there was a fix for scrolling which worked at least in the test environment, it is now defunced, because Adi moved _CopyBits to Layer... I need to reenable it later, LayerData has no more fEscapementDelta, also fixed fFontAliasing (which was thought to overriding the font flags, and now works as such again), Desktop initialises the menu_info and scroll_bar_info stuff, which makes ScrollBars work actually... hope I didn't forget something.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 16:17:16 +00:00
Stefano Ceccherini
205f8b0720 I obviously broke the r5 build with the last commit. Fixed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 12:11:32 +00:00
Stefano Ceccherini
715166d5b8 Fixed the build under haiku. Reported by Konrad.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 09:29:11 +00:00
Axel Dörfler
f5d8fa6e60 AS_LAYER_GET_CLIP_REGION missed a Flush() in case the view was not hidden,
and that put apps that used it to sleep (for example, Tracker is using it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 01:19:01 +00:00
Axel Dörfler
b1e04bcb5c The app_server now also quits fast in case there are no apps to quit... :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 01:02:32 +00:00
Ingo Weinhold
553ea30124 * Moved TRoster out of the BPrivate namespace. It does no longer appear in
any public header.
* Replaced a good deal of the MessageDeliverer's DeliverMessage() versions
  by more general ones using the new interface MessagingTargetSet to represent
  a set of targets. This simplifies the usage in cases where the caller doesn't
  already have the targets in a supported representation.
* Implemented a first approximation of the shutdown process. There is no
  GUI yet. Only superficially tested under R5.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-03 17:17:40 +00:00
Adi Oanca
be2eea8cf9 implemented hooks for resizing and moving operations. BViews now resize corectly in Playground app. Ignore the Convert*() stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-02 10:40:14 +00:00
Adi Oanca
4a9bbc7d20 addapted to new clipping code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-02 10:37:53 +00:00
Adi Oanca
b72bef8630 Added Flags(), ResizeMode(), made virtuals be prototypes only.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-02 10:36:24 +00:00
Axel Dörfler
bc1a7f9f09 Now prints out a message when the window title should be set.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 18:29:20 +00:00
Axel Dörfler
1b36d9d743 The TEST_MODE and non-TEST_MODE code is now the same, only the modifiers/keys
are different. Therefore, workspace changes should work on real hardware as
well now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 11:22:58 +00:00
Axel Dörfler
c030c6fa68 As the comment says, deleting the cursor is not necessary.
But since every single cursor is owned by a team - why the cursor manager?
I must overlook something...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 10:13:50 +00:00
Axel Dörfler
3870c9f18f Improved quit mechanism (for the last time): if an application had open
windows that wouldn't quit on demand, the app_server would have gotten
the kShutdownServer message anyway already (as the last app was quit).
Since that one removed things like gDesktop/gBitmapManager, it liked
crashing.
Now, there is a semaphore that will be send to each app on quit. Only
when this semaphore can be acquired, the shutdown message will be sent.
Removed unused semaphores (decorator, active app).
Replaced fAppListLock with a BLocker (just calling acquire_sem() without
error checking is very unsafe in userland, and should never be done).

BTW the bug was triggered by broken menu code that only sometimes
really quit the window; it leaves a whole lot of zombies around - Stefano,
any quick idea? :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 10:09:11 +00:00
Axel Dörfler
37fa302a92 Also commented some unimplemented message handler to not break the reply mechanism.
The ServerWindow did not even have such a mechanism anyway... (it now has).
Minor cleanup, replaced some "delete" with "delete[]" where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:50:45 +00:00
Axel Dörfler
1e1b96cdc1 Rather than a "case message: /* unimplemented */ break;", we should not
handle the case at all to give the server the possibility to send a
failure response - ifdef'd some code out.
Added comment to ServerApp::PingTarget(), because what it currently does
does not make any sense.
Minor cleanup (replaced fSignature.String() with Signature()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:48:51 +00:00
Axel Dörfler
1786706696 You're not supposed to delete bitmaps yourself; you have to let the
bitmap manager do the job.
This fixes a possible crashing bug on quit, a giant memory hole, and
probably also a possible crash during runtime.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 08:10:42 +00:00
Axel Dörfler
5712a788a1 WorkspacesLayer now makes use of DisplayDriver::ConstrainClippingRegion() in
order to flicker less (which works, but it's not really that nice yet, as
it currently only works for the background).
The workspaces layer is now also invalidated if a new window appears on the
screen or goes away (also when this happens in another workspace).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 07:58:22 +00:00
Axel Dörfler
24a146d4f6 Small hack to get to know the code a bit better.
A view-only workspaces window support (with lots of drawing flicker) - this
means you see what happens in the workspaces, but it doesn't do anything if
you click on it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 06:53:07 +00:00
Axel Dörfler
f598d348b1 A window thread is now called "w:<title>" instead of just "<title>".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-01 06:44:39 +00:00
Axel Dörfler
b7596f59ec AS_LAYER_GET_STATE no longer sends stuff that doesn't belong to the layer's state.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 23:03:28 +00:00
Axel Dörfler
3783821c25 Fixed B_CONTROL_HIGHLIGHT_COLOR/BORDER_COLOR. Changed highlight color from Dano value
to something for R5 (ie. what DiskProbe is using).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 21:52:32 +00:00
Axel Dörfler
80a230b10e Rewrote the push/pop state and ViewAttr stuff:
- it now seems to work finally correctly
- renamed ViewAttr to ViewState and put it into the BPrivate namespace
- some refactoring (moved some private BView methods to ViewState)
- renamed AS_LAYER_MOVETO/RESIZETO to *_TO (note the underscore)
- exchanged BView::originX/Y with fParentOffset (BPoint)
- divided AS_LAYER_GET_COLORS into separate ones for high/low/view color
- BView::SetPattern() now actually works as expected (ie. updates
  only if necessary)
- exchanged the ViewAttr::flags with ViewState::valid_flags which inverses
  the previous logic (which wasn't even used consistently)
- fState was initialized twice (incorrectly by the ViewAttr constructor,
  and then again correctly by initCachedState()) - now the ViewState
  constructor does the job alone, but correctly
- BView::PushState() no longer resets the state (it did so only locally
  anyway...)
- cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 18:56:55 +00:00
Adi Oanca
f97b5cb586 Moved CopyBits from ServerWindow to Layer. Also, made CopyBits code execute in RootLayer's thread
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 15:34:54 +00:00
Adi Oanca
1302949204 Layer::Show/Hide now works. Improved some invalidating calls. fixed some potential problems
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 14:57:16 +00:00
Ingo Weinhold
3c0a815896 The registrar now uses BServer instead of BApplication, which makes it
completely independent of the app server.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 14:55:57 +00:00
Adi Oanca
ecf3bc3eb4 moving and resizing windows works with the new clipping code. scrolling BViews also works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 12:25:32 +00:00
Axel Dörfler
a87826801c Added workaround for current stability problems of the app_server: giant lock,
say hello to RootLayer.
Adi will probably not like this, but that's definitely only a temporary solution :-)
This little fix greatly increases app_server stability under Haiku - ie. menus
are working now, the team monitor comes up regularly, etc. - how great is that?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 03:23:16 +00:00
Axel Dörfler
276aa135a7 The size limits are now correctly enforced on window creation, ie. the ResizeLimits
test application now works as it should.
DefaultDecorator::GetSizeLimits() did work correctly, there was no need
to have extra protection limits.
Enabled Stephan's automatic resize code on BWindow::SetSizeLimits() again, and
added a short comment why I think R5's behaviour is just a bug/leftover.
Moved guts of ResizeBy() into _ResizeBy() that doesn't send the update message
to the client, and is now called in the constructor to make sure the border
size is within limits. Also made it work there, as fTopLayer is NULL in that
environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13304 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 02:00:48 +00:00
Axel Dörfler
85bd83a710 AS_CREATE_WINDOW now also gets the actual frame width and size limits of
the window on server side - ie. if the app_server could not create a
window of the size requested, BWindow::fFrame will still be correct
(and the size limits will mirror actual decorator limits).
Renamed fMinWindHeight and friends to fMinHeight and so on.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 01:14:39 +00:00
Axel Dörfler
c17904c587 The B_WINDOW_RESIZED message now looks exactly like it does under R5, ie. has a "when" field, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 00:53:41 +00:00
Stephan Aßmus
f8570b7199 substract the border width from minSize, as that is the inner width of the window
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 00:34:51 +00:00
Stephan Aßmus
063f418c53 made room for a new meaning of BitmapBuffer, it will be used for a RenderingBuffer class that wraps arround a ServerBitmap. BBitmapBuffer on the other side is handy as well and wraps arround a BBitmap, as BitmapBuffer did before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 22:11:27 +00:00
Stephan Aßmus
203661c9d0 svn does not do what I want before I commit this... It's going to be renamed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 21:53:17 +00:00
Stefano Ceccherini
9f5ffc2c3c Fixed BFont's GetTunedCount() and IsFixed()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 15:44:47 +00:00
Axel Dörfler
08d9a6e30d Some minor work on minimum window sizes. A WinBorder now makes sure it has
a valid size on construction; DefaultDecorator should do that as well.
ServerApp AS_CREATE_WINDOW now makes sure it passes a valid rectangle to
ServerWindow's constructor.
Smaller default size for Layers that have been created with an invalid frame.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 02:06:15 +00:00
Stephan Aßmus
18cbc4ff3d Using the read locking in DisplayDriver was a bit early. Painter itself is not thread safe, so while we use the HWInterface lock for locking, we can only do read locking once each window has its own Painter instance. I'm still investigating this possibility. It depends on the memory foot print of painter, of which I don't have a clear idea yet. Anyways, this quick change fixes Adis problems and is required at this time anyways. Sorry for the inconvenience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 22:56:24 +00:00
Adi Oanca
e3fbc7752f integration of the new clipping code continues
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 15:45:58 +00:00
Stefano Ceccherini
d06e1bff11 Fixed array initialization.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 14:13:30 +00:00
Stefano Ceccherini
89d0b3cdad Safer code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 13:58:55 +00:00
Stefano Ceccherini
55b222b0b0 Stephan already implemented the needed support for dpms stuff too, so why not implementing the client methods too?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 13:53:48 +00:00
Adi Oanca
e603410b82 - simplified a little the update code/process.
- moved part of the update code from Layer to WinBorder. Fits better
there.
- renamed a couple members.
- some cleanup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 13:09:19 +00:00
Adi Oanca
b62270533e removed a printf
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 08:47:51 +00:00
Adi Oanca
94fa2bd256 inlined a few methods in header file, otherwise app_server would not build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 08:45:00 +00:00
Stefano Ceccherini
75de27f83b more BScreen related stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 06:30:09 +00:00
Stefano Ceccherini
583f6c3eba Added server side support for BScreen::ProposeMode(), fixed client side too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-25 05:58:43 +00:00
Stefano Ceccherini
c641898150 implemented client/server side support for BScreen::GetDeviceInfo() and WaitForRetrace(), and (only client side) support for Bscreen::ProposeMode()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 18:02:01 +00:00
Axel Dörfler
0ec4af2233 Improved AreaPool to have an initial size as well as well as a name that is
used for new area.
MemPool::AddToPool() now gracefully deals with NULL pointers (or a size of 0).
BitmapManager was deleting the area it transferred to AreaPool before - it
no longer needs an extra area, though.
Minor other cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 04:01:16 +00:00
Axel Dörfler
b5436616a3 Fixed some style related functions and other oddities in FontServer.
Also applied our style guide on that class.
Renamed some public globals to match our style guide.
Made BitmapManager inherit from BLocker instead of duplicating its
functionality (incorrectly, did not check for B_INTERRUPTED) locally.
Some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 03:31:41 +00:00
Axel Dörfler
5029b563fd Fixed pretty much broken AreaPool - I am not sure this class is that a good idea, anyway.
area_for() is not the cheapest call; the user better knows the area and deletes it directly.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 02:13:32 +00:00
Stephan Aßmus
2949ed1def Thou shalt compile before thou commitst.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-24 00:14:19 +00:00
Stephan Aßmus
3dcb3b079a Added some root layer locking in ServerWindow.cpp when accessing the layer tree. Moved HWInterface management out of DisplayDriverPainter and into Desktop. Removed all the directly hardware related functions from DisplayDriver API. They just called the same HWInterface functions. Now DisplayDriver is much cleaner and ready for being attached to a yet to be written BitmapHWInterface. Clean up of the display mode stuff in Screen and the View-/AccelerantHWInterface. Frequency is now regarded on Haiku. AccelerantHWInterface::GetModeList now works before SetMode has been called. Added MultiLocker from the sample code. HWInterface uses it now in preparation to being used from multiple instances of DisplayDriver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:46:17 +00:00
Axel Dörfler
1b53e8af26 The app_server now cleans up better after a team crashed; not only the
application and bitmaps are removed, the team's windows are now removed
as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:21:10 +00:00
Stephan Aßmus
c69d4b2719 clean up, bug fixes and more robustness
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:14:40 +00:00
Stephan Aßmus
ee9b01a01a made the pool allocator thread safe
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:13:09 +00:00
Axel Dörfler
ce1639b2bf Some more cleanup:
- replaced fMsgSender/Receiver with a BPortLink fLink
- moved message loop into non-static method _MessageLooper()
- renamed Zoom()/Minimize()/Quit()/ScreenModeChanged() to Notify*(), and
  Quit() to NotfiyQuitRequested() to make more clear what they do (they
  don't operate on ServerWindow, they just notify its client)
- less insane way to init a window: there is no longer the constructor
  and a separate method Init(); now there is the constructor (which
  fully sets up the window), InitCheck(), and Run() which runs the
  window's message loop
- moved the quitting stuff into a separate method Quit() and made
  it callable from other threads.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 22:43:11 +00:00
Adi Oanca
4801a9a97d Fixed the problem Axel signaled with hidden views
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 21:23:01 +00:00
Adi Oanca
8734d03e14 removed 3 printf(s) that I intruduced in my last checkin
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 19:30:29 +00:00
Axel Dörfler
a38e46a046 ServerApp now maintains a list of all windows, ServerWindow's AS_DELETE_WINDOW
will update it automatically.
Renamed ServerWindow::fName to fTitle, made it a pointer - it will now just
adopt the title pointer that came from AS_CREATE_WINDOW.
Just another cleanup round: renamed Layer::GetName() to Name(), no
more layer->fName->String() accesses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 18:48:10 +00:00
Axel Dörfler
fcb006dcf5 Rewrote how the app_server and ServerApp's quit. As a side effect, the server
can now quit instantly.
AppServer must no longer call ServerApp's destructor once it's running - it now
has to call Quit() in this case. The ServerApp is now destructed in its own thread.
Some cleanup (like renaming ServerApp::MonitorThreadID() to Thread()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 17:40:35 +00:00
Axel Dörfler
2e86adec11 Implemented AS_GET_MODE_LIST server side.
Fixed broken ViewHWInterface::GetModeList() - it did not correctly write into
the allocated memory. Also extended it to be more flexible, has better timing
values, and more resolutions.
ViewHWInterface::SetMode() will now check if the requested mode is in its
list of supported modes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-22 18:14:13 +00:00
Adi Oanca
3df649ecb3 managed to show/hide empty windows with the new clipping code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-21 20:11:44 +00:00
Stefano Ceccherini
3255e7df2c I hope no one believed that these methods could've really been inlined...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-20 10:33:34 +00:00
DarkWyrm
550d6a5375 Cleanup for decorator management code
Updated a couple headers
Moved all decorator code to ServerApp where it belongs
Modified AppServer::Broadcast to allow ServerApps send messages to all apps without having to have a global AppServer instance


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 19:10:15 +00:00
Axel Dörfler
1b5aeb312e Renamed class FMWList to SubWindowList. Cleaned up SubWindowList a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 16:34:22 +00:00
Stephan Aßmus
2734243aca Preparation of more correct support for state stack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-17 13:20:45 +00:00
Jérôme Duval
587e093725 reworked registrar launch wait, avoids snoozing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 22:30:50 +00:00
Adi Oanca
5fcce1f54b renamed a few members so that I don't have problems later. removed more methods/members
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 20:43:53 +00:00
Adi Oanca
e0911bbb29 yes, yes... removing unneeded methods/members.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 19:44:55 +00:00
Adi Oanca
83265d84db More work for integrating the new clipping code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 18:58:14 +00:00
Stephan Aßmus
faaa62c751 update cached HW acceleration flags on mode changes. Fixes HW acc on ATI after Axels changes. Axel, is it working on Matrox as well now?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 15:10:24 +00:00
Stephan Aßmus
54cc0f1b56 reverted some unintentional changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 13:07:36 +00:00
Stephan Aßmus
99b9d5ac8a a new state begins life as a copy from the previous state, fixed Scale(). Note that BoundsOrigin() (and therefor Scale()) is called _a lot_ so we should cache the value! I started to work on this, but our lack of encapsulation strikes again... Layer::fLayerData is used directly all over the place.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 12:32:42 +00:00
Axel Dörfler
53442520cc Fixed a bad bug in the app_server:
fCurrentLayer was used to determine to which layer a new one would be
added to, but BView::AddChild() would only set this correctly for the
current view, ie. all children of the new child were added to the
wrong layer in the app_server.
Now, AS_LAYER_CREATE sends the parent's token to the server, and the
server relies on this to build the layer hierarchy.
All of a sudden a lot of hidden views are visible now. I noticed the
bug while refactoring the task manager, but a lot of apps were affected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 00:46:02 +00:00