Commit Graph

2661 Commits

Author SHA1 Message Date
Michael Lotz
f82c11c079 bonefish+mmlr:
* Move most of MIME database support out of libbe and into registrar
* Use the (async) MessageDeliverer instead of a synchronous SendMessage in _SendMonitorUpdate

This fixes a deadlock when the message port of a MIME database watching
application gets full as documented in bug #1311.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 22:45:06 +00:00
Axel Dörfler
45d0ea5605 Fixed two dirty region problems of the workspace switching code:
* If two intersecting windows didn't change their position but their 
  order, the dirty region wouldn't contain the region that would need
  to be updated because of that order change. This fixes bug #827.
* When a hidden window was on the new workspace (but not on the old one),
  its region would be included in the dirty region, but shouldn't have
  been. This caused the app_server to update a larger region than 
  necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 14:04:53 +00:00
Axel Dörfler
737ce1c03c * The keyboard target was always the first menu in the window list - no matter if that was hidden or not.
This fixes the bug described by Stefano in r23343.
* Therefore, I enabled cached menu windows again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-10 21:26:55 +00:00
Stephan Aßmus
826ea6b6f1 * the change to support B_DRAW_ON_CHILDREN broke ViewLayer::ViewAt(), ie
mouse events would not be passed to the correct children of views with
  B_DRAW_ON_CHILDREN flag set -> fixed. (fixes #1673)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-09 11:37:05 +00:00
Stephan Aßmus
052ae287b0 * made transfering the pending to the current update session a bit faster
by toggling pointers instead of assigning/transfering regions


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 20:20:37 +00:00
Stephan Aßmus
c177064158 * removed no longer valid TODOs
* cleanup the code in a few places
* fixed a bug where the border region would not be made empty if there
  was a decorator previously, but there is no new one
* slight improvement for memory footprint of WindowLayer by using bit fields
  for more of the flags


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 20:09:55 +00:00
Stephan Aßmus
92c779bd11 patch by Alexandre Deckner (aldeck):
* improve the placement of text in the shutdown window
* define constants for the width of the "stripe" and icon size

Thanks! Fixes #1697.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 19:02:00 +00:00
Stephan Aßmus
1c05a4100f patch by Anthony Lee:
* fixed bitmap fonts for real (applied the wrong patch last time)

* some cleanup for coding style by myself (in other places)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 18:01:47 +00:00
Stephan Aßmus
0e4fdb4f97 applied patch by Anthony Lee:
* fixed rendering of certain chinese fonts

(I think it fixes rendering of bitmap fonts in general, but it should not
support rotated text AFAIKT, since that is only supported for vector fonts)

Nice work, Anthony, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-05 16:46:53 +00:00
Jérôme Duval
4cbcdf6e54 added an error message when no replicant can be found
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23240 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-04 13:40:06 +00:00
Axel Dörfler
9a2d0cf6ff Applied patch by Anthony Lee: the user was attached to the font manager too
late, therefore, the DesktopSettings couldn't access user fonts. This fixes
bug #1691, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-03 10:13:21 +00:00
Stefano Ceccherini
691b2922a6 The parameter passed to BInputServerMethod:SetIcon() can be NULL. Patch
by Anthony Lee. Thank you! Fixes bug #1686. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-01 14:42:27 +00:00
Stephan Aßmus
a4d578c4cb * small cleanups for more coding style consistency
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-26 14:12:12 +00:00
Stephan Aßmus
099fb2d3be * removed declarations for methods which are not used/implemented in View.h
* improved naming of some private BView functions and used our underscore
  prefix
* added a _DrawAfterChildren method to BView which does the necessary setup
  and calls the DrawAfterChildren hook
* call the new _DrawAfterChildren method in the BWindow implementation, this
  was easy since the view tokens are already hierachically sorted
* implement support for B_DRAW_ON_CHILDREN in the app_server's ViewLayer, it
  simply means that children are ignored for the views clipping region, any
  drawing methods will paint over children (therefor the B_DRAW_ON_CHILDREN
  flag is even properly named)

With these changes, support for B_DRAW_ON_CHILDREN and the DrawAfterChildren()
hook are implemented and behave exactly as on R5 as far as I can tell, also
for the view background painting.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-25 14:47:06 +00:00
Stefano Ceccherini
d246d9be88 Some old changes I forgot to commit... BInputServerDevice::InitCheck()
now checks if the fOwner allocation went fine (and returns B_NO_MEMORY 
in case it didn't). Since it can fail, inherited classes should call it 
as well (I modified MouseInputDevice's and KeyboardInputDevice's 
versions for now)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-10 21:20:25 +00:00
Stephan Aßmus
48882cec96 * lock pattern drawing to the true view origin, independend of the views
position on screen (fixes drawing glitches in patterns when the view
  was moved on screen (for example because the parent window got moved))


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-08 22:59:04 +00:00
Stefano Ceccherini
46f29e60b4 Also update the ui_color for menu backgrounds, when using set_menu_info.
Update the menu_info neverthless, when setting the ui_color for menu 
backgrounds. Fixes bug #550.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-06 21:09:35 +00:00
François Revol
2e3233d74e Propagate set_ui_color() up to the DesktopSettingsPrivate class.
Still needs code to save the values.
Also needs a way to access them from Decorator::UIColor(), but the DesktopSettings passed to the ctor can't be cached.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-30 01:21:19 +00:00
Axel Dörfler
bade8d7b70 The MediaAddonServer destructor was never called, thanks Stippi!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-26 14:29:55 +00:00
Axel Dörfler
3891a797aa * Now checks if the media_server is running in ReadyToRun(), and quits itself
if not. This fixes bug #323.
* Now uses find_directory() instead of hard-coded add-on paths.
* A few more error checks.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22997 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-26 12:22:53 +00:00
Axel Dörfler
349ba1a53c * IsDoubleBuffered() was not correct - fModeList has nothing to do with the
back buffer. This fixes bug #1631.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22971 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-21 15:45:12 +00:00
Axel Dörfler
1dec1e5786 display_mode::[hv]_display_start fields were not set when using a certain
Screen::SetMode() method, thanks to Gerald Zajac for reporting this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22967 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-20 21:34:59 +00:00
Axel Dörfler
7301a7fbdb bonefish+axeld:
* The debug_server now sends the registrar messages whenever the debug alert
  is shown, and also, if the user wants to debug the team.
* In the latter case, the registrar will now cancel a shutdown process.
* Also, it will now wait with the shutdown process until the user has
  acknowledged the debugger alert.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-14 01:28:47 +00:00
Axel Dörfler
5b1f301a11 * _FindBestMode() can now also take the aspect ratio into account.
* Reduced rating of the color space - after all, the resolution is more
  important.
* The EDID detailed modes are now scanned for the best mode available, this
  could be done in various ways, so please report any problems you have with
  it.
* Ignore resolutions below 640x350 - this should also fix bug #1615.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-12 11:44:55 +00:00
Jérôme Duval
8bef760f81 create media settings directory before saving default nodes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22837 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-05 21:54:12 +00:00
Axel Dörfler
b289dec88c * Factored out a _FindBestMethod() from _SetFallbackMode() - it now also takes
the timing of the original mode into account (I haven't tested if the computed
  score makes that much sense, though).
* GetPreferredMode() now also works correctly for EDID data): it now returns
  the correct status, and also constructs the mode correctly. Furthermore, it
  will now search for the mode in the mode list, instead of using that mode
  directly (so that it can take hardware limits into account).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-31 14:05:24 +00:00
Jérôme Duval
9bfd424271 replaced '_RRC' with B_REFS_RECEIVED
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-29 19:25:04 +00:00
Jérôme Duval
69e65f2f57 replaced misc values with respective constants
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22762 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-29 19:10:30 +00:00
Axel Dörfler
6ae06ef86a Implemented AS_IDLE_TIME, this closes bug #1593.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22758 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-29 09:11:25 +00:00
Stephan Aßmus
42a2db3602 * track the fact if Painter is attached to a frame buffer, incorporate
this information in the fValidClipping flag... which should prevent
  any drawing code to run if Painter is not attached properly


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-26 15:31:27 +00:00
Stephan Aßmus
cf91c9e850 * some disabled code that was supposed to reveal more info on why
it can happen that a view's background region is outside the
  framebuffer... for some weird reason, it doesn't get triggered
  though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22725 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-25 18:20:03 +00:00
Axel Dörfler
ce78b3653a Now only removes a default route for a domain in case a new one is specified;
this fixes bug #1423, the loop interface removed the default route for the
other interface (didn't happen previously, as routes were bound to devices).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-25 15:15:25 +00:00
Stephan Aßmus
ff85245718 * fixed the crashing result of bug #634, check if the supplied region
falls within the frame buffer bounds. This should not happen, and
  I am going to search for the cause next, but at least app_server
  dosn't crash anymore in this context. Left a comment on my findings
  so far.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-25 15:11:58 +00:00
Stefano Ceccherini
09a4122e4c Moved initialization of the system color map from AppServer to Desktop
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-22 14:07:26 +00:00
Stefano Ceccherini
37b83b1a2d The system palette was defined in two files. Moved to a private header,
included by the two.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-22 13:44:37 +00:00
Axel Dörfler
15ab0bcf01 * int32_t, uint32_t are now of type "int", and no longer of type "long".
This should help to reduce the number of warnings imported code will throw
  during compilation (helps a lot with tcpdump, for example).
* Since long is 64 bit on 64 bit platforms, we might want to think about doing
  that change for the Haiku types int32 and uint32 as well.
* Fixed several occurences of hidden type problems.
* Fixed build of the stack and TCP under BeOS.
* Fixed incorrect typedef in socket_interface.h.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-21 20:10:43 +00:00
Axel Dörfler
9db35b6825 Revised named configurations a bit:
* Named settings are only overwritten if they were an exact match (ie. it's
  the very same monitor).
* The unnamed settings retrieval now has two passes, on the first it will
  now ignore named settings. It will also only remove unnamed settings now.
* Added some TODO commments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-21 11:00:30 +00:00
Axel Dörfler
4ee81443c3 * The app_server now stores the whole display_timing structure of a mode, not
just the frequency.
* Previously saved modes are no longer supported, though.
* Screen modes are now stored with the monitor info it belongs to, IOW the
  app_server will now choose a mode from the settings that fit your monitor
  description. Driver support is required for this to work as intended.
* The changes are completely untested at this point, though, sorry (shouldn't
  harm anyone, though) :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-19 16:47:06 +00:00
Jérôme Duval
5a9e9581c1 clean up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22618 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-18 20:44:20 +00:00
Axel Dörfler
dd84f111b9 Fixed a few potential deadlocks:
* in r22410 the unlock/relock was removed accidently from ServerWindow::_Hide()
  before calling a desktop method.
* Desktop::ActivateWindow() no longer calls SetWorkspace() with the window lock
  held.
* WorkspacesLayer::MouseUp() now uses the asynchronous version of SetWorkspace().
* AFAICT AS_HIDE_WINDOW, AS_SHOW_WINDOW, and AS_MINIMIZE_WINDOW don't need the
  all window lock, reverted to standard single window lock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-18 13:49:36 +00:00
Axel Dörfler
643801426c As the commit says, don't do this at this place.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-18 13:41:18 +00:00
Axel Dörfler
89d522a443 AccelerantHWInterface should no longer rely on GetModeList() being called before
working with it. The app_server would have crashed before if a graphics driver
could directly return a preferred display mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-17 14:20:58 +00:00
Axel Dörfler
f6e4cbb952 * Rewrote BeBuild.h which had "a few" consequences (got rid of all those class
definitions).
* Minor cleanup here and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-15 20:13:55 +00:00
Axel Dörfler
c278448653 * Introduced a monitor_info structure and means to let it be filled by the
accelerant (or the app_server via EDID info). It's still experimental
  API, and opinions are welcome.
* Moved BPrivateScreen into the BPrivate namespace.
* Rewrote Screen.h.
* Introduced a BScreen::GetMonitorInfo() method, and implemented it in the
  app server as well (ie. AS_GET_MONITOR_INFO).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-15 11:41:47 +00:00
Axel Dörfler
7e9f5d25d3 * WindowLayer::InWorkspace() was actually nowhere used the way it was
implemented; it now only returns wether or not the window is part of the
  list specified by the index. This fixes bug #195 and #1553.
* HasInSubset() would report "true" for app-floating windows vs. modal app
  windows which was wrong.
* Removed SameSubset() as it isn't needed at all.
* SubsetWorkspaces() now take the front window into account for floating
  windows.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-14 11:03:57 +00:00
Ingo Weinhold
190e377976 ppInfoList deletes its elements on destruction, and we didn't clear our
temporary list after deleting its elements manually.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22534 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-13 16:15:49 +00:00
Axel Dörfler
4191a211aa * Started accelerant extension to be able to get the preferred mode from
the accelerant, as well as its EDID info. B_GET_PREFERRED_DISPLAY_MODE and
  B_GET_EDID_INFO are both optional. The preferred mode will be taken from the
  EDID info if only the latter hook is implemented, or the former returned an
  error.
* Currently, the app_server should correctly set the preferred mode on start,
  but no accelerant supports that yet, so it's not really tested.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-12 16:50:24 +00:00
Stephan Aßmus
4d1c422802 * added a way for the ServerWindow message loop to determine the required type
of locking before processing the message (single/all window lock)
  -> in most message cases, I could comment out the unlocking/locking which
  switched to the different lock, because the required lock is now already held,
  this removes some race conditions which were commented in the code already
* EventDispatcher::SetDragMessage() didn't lock the object, this would have
  been bad if multiple windows tried to set a drag bitmap at once
* the Desktop object keeps track of mouse position and pressed buttons, so
  that it doesn't need to lock the EventDispatcher for sending fake mouse
  moves to windows on show/hide of windows (solves some cases of possible
  dead locks with the new locking strategy)
* the keyboard EventFilter switches the current workspace asynchrnously from
  the Desktop thread (another source of possible deadlocks)
* the "reader is trying to become writer" check in MultiLocker is only used
  in DEBUG mode now

As a summary: It would be nice if ServerWindow used a readlock for all messages
it processes itself, and forwards all messages for which it needs a write lock
to the Desktop thread. All cases where either the Desktop or the ServerWindow
mess with the EventDispatcher are possible sources of deadlocks. This is solved
right now by making sure that the lock is released before using the
EventDispatcher.

I have not observed any deadlocks while switching workspaces and launching
many apps anymore, neither crashes. But I have not tested extensively except
for in the test environment. That being said, I could reproduce the problems
on first try before in Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-02 14:09:11 +00:00
Axel Dörfler
e2693621b6 Correctly implemented the missing BBitmap::GetOverlayRestrictions() on the
client and the server. This should fix bug #1490, but I haven't tested it yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-30 16:03:53 +00:00
Axel Dörfler
64fd7c1a00 This fixes the problem of launching more than one document with one application
at once with Tracker (eg. launching several text documents) - only the first one
would have been opened, and an error B_BAD_VALUE would have been reported for the
others:
* HandleAddApplication() did not return the correct token in case of a
  pending registration; therefore, BRoster::_LaunchApp() would try to
  check the registration with invalid arguments.
* HandleIsAppRegistered() put the pending registration requests into
  the fIARRequestsByToken map using the wrong key, so that they could
  not be found again.
* Minor cleanup (fixed indentation of not so temporary debug code).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-24 21:48:06 +00:00
Stephan Aßmus
158001f57d * fractional rects need to be aligned if not drawing in subpixel precise mode,
by now, I feel there is too much code involved in this... I guess I should
  really move this to stuff to ViewLayer::ConvertToScreenForDrawing()...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-12 08:18:09 +00:00
Stephan Aßmus
72c9d31ec4 * transmit correct type in BView::BeginRectTracking()
* put message codes for Begin/EndRectTracking() into giant switch... not
  actually implemented though


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-11 21:23:07 +00:00
Stefano Ceccherini
945d8d11cd Sync the drawing engine state in set_scale. The pen size, for example,
needs to be recalculated when the scale changes.
Also call ResyncDrawingState() in exit_state_change(). This fixes the 
pen size test in FlattenTestPicture.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-10 11:56:28 +00:00
Stefano Ceccherini
b1af0a7a24 Setting the font shear in a BPicture didn't work, because the value was
treated as uint32 in some places, when it's a float.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-10 10:20:26 +00:00
Stefano Ceccherini
af02a9a71c Use DrawState::PenSize() to set the drawing engine pen size, since it
returns the scaled value.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-10 09:43:02 +00:00
Axel Dörfler
8a3cfa2cf3 * Made menu windows behave differently than others: before, they were just
always put between window screens and modal all windows (before floating
  all ones), so a BWindowScreen couldn't have menus at all.
  Now, they behave more like floating app windows, just that they float above
  all other application windows, such that all window feels (also BWindowScreen)
  can now have menus.
* Reenabled keyboard redirection to the top most window in case it's a menu;
  bug #1152 no longer applies due to the above change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-02 12:16:28 +00:00
Axel Dörfler
a632458d8e The wonders of signals:
* Since the app_server launched the input_server, it would also get notified
  when the latter died via a signal - but LinkReceiver could return B_INTERRUPTED
  in that case (it didn't check the return value of port_buffer_size()) which
  the app_server misinterpreted and quit itself... this fixes the hanging part
  of bug #1298.
* But the input_server still wasn't restarted, because the Registrar had it
  still listed as being running. Now, the Registrar checks not just periodically
  for died teams, it will also check for it when a new application registers
  itself. This fixes the rest of bug #1298.
* Removed the old (disabled) R5 style input_server launch mechanism from the
  app_server.
* MessageLooper now prints a bit more information when a port is supposed to
  have been deleted.
* The default implementation of MessageLooper::_GetLooperName() is now
  returning the name of the semaphore of its BLocker instead of "unnamed
  looper".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 00:09:43 +00:00
Stephan Aßmus
e749c485ed * this fixes the second part of #1426, unfortunately, the clipping checks
have become more expensive, so maybe it is better to do what I proposed
  in the ticket comments, and move the rounding of drawing command coordinates
  into ViewLayer::ConvertToTopForDrawing() instead of handling it in
  DrawingEngine and Painter


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 14:31:49 +00:00
Stephan Aßmus
561844529d * implement FillRect() with B_OP_INVERT using hardware acceleration like
FillRegion() is already doing (untested)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 14:23:06 +00:00
Stephan Aßmus
307d439902 * reenabled implementation of "false bold width" font feature
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-22 14:15:07 +00:00
Stephan Aßmus
c5c3b078e7 * clarified comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-22 14:14:30 +00:00
Stephan Aßmus
15a6a1bd6d * more pleasing insets/offsets and the proportion of the zoom button scales
with the font size


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 16:24:01 +00:00
Stephan Aßmus
f7e1df7560 * get rid of RGBColor usage where it is not needed, this simplified many things,
possibly making them a little faster too
* mess with decorator button size calculation to make the whole layout scale
  more agreeable with the font size (no more fixed offsets/insets), but it
  is work in progress
* DefaultDecorator no longer allocated the border color array, it is part of
  the object now
* small memory footprint optimizations in ViewLayer, Decorator and WindowLayer


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 12:56:20 +00:00
Michael Pfeiffer
1623ec9289 Bug fixes:
* origin is given in "outer" coordinate system therefore if there is a
 previous state it has to be transformed. Please review if this is
 required in OffsetOrigin() too.
* in Transform() we have to scale relative to the view origin not (0 /
  0).

- optimized SetScale: saved one division


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 07:04:46 +00:00
Stefano Ceccherini
422fadc829 Moved the dummy table local to the PicturePlayer::Play() function since,
as Marcus pointed out, having it outside wasn't thread safe. Moved 
PicturePlayer into the BPrivate namespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 14:40:03 +00:00
Stefano Ceccherini
46b4e48998 Added some debug output to PicturePlayer. Since checking the table size for every op is very slow, now we do that only at the beginning, and use a custom op table if needed. The best case (which is the one used when drawing a picture with BView::DrawPicture()) is very fast since it only requires one check.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 09:14:03 +00:00
Stephan Aßmus
91d0586a7d * it should be better to lock before accessing the data, even if reading only
* after this change, I have not spotted "left behind" cursors again, but it
  might just be bad luck...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 19:06:11 +00:00
Ithamar R. Adema
3b1dcc1e09 Fix GCC4 compilation issue.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21950 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 18:38:47 +00:00
Stefano Ceccherini
253d42a602 Implemented SetClipping op, but it's not working yet (looks like it's
never written into the data stream)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 15:21:15 +00:00
Stefano Ceccherini
796e4e4552 Implement calling the exit_xxx hooks. Thanks to Marc Flerackers for the
help.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 12:45:42 +00:00
Stefano Ceccherini
9cc1cb3cae Disabled writing the font shear, since this results in missing font in
Chart's BPictureButton. Needs some investigation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 09:43:19 +00:00
Stefano Ceccherini
feb557a6d1 Implemented WriteSetFontFamily() and WriteSetFontStyle(). Only the
server side functions are missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 09:17:21 +00:00
Stefano Ceccherini
2f99607b77 My last commit broke setting fonts in BPictures. Added a comment in
PicturePlayer to explain what we need to do. Don't write the 
B_PIC_ENTER_STATE_CHANGE and B_PIC_ENTER_FONT_STATE ops until we fix the 
problem (we don't care about them in our server side 
implementation anyway). Font changes and state syncing work again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21940 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 08:40:13 +00:00
Stefano Ceccherini
c00e6e3f89 Implement more bpicture font methods, now PicturePlayer checks the size
of the function table, so if someone passes a smaller table, we avoid
 
calling invalid pointers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 08:05:05 +00:00
Stefano Ceccherini
8e503a70c8 Also set the font properties for BPictures. Some of them, at least.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 07:37:51 +00:00
Stefano Ceccherini
37033892c5 Implemented SetPattern op. Reduced the buffer size to 4096 again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 06:39:37 +00:00
Stephan Aßmus
8f4f70a56d * implemented a lock up table for drawing text in B_OP_COPY,
maybe this is too resource hungry, feel free to critisize... :-)
* the speedup is there, but not overwhelming


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 17:09:20 +00:00
Stefano Ceccherini
38daa5cd6e Also upload/download subpictures
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 14:52:02 +00:00
Stefano Ceccherini
690c7474a4 Implemented BPicture's SetPenLocation() op, also nested
AppendToPicture() (but still doesn't work :( ). Moved some functions 
around in PictureDataWriter.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 14:07:12 +00:00
Stefano Ceccherini
b1b69140a1 Don't delete the subpictures in the ServerPicture destructor. They are
kept in a list by ServerApp, and deleted by its destructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 13:52:16 +00:00
Stephan Aßmus
ea6280b6d5 * maybe I fixed the sometimes weird decorator buttons, I have not spotted them again with this change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 09:27:18 +00:00
Stephan Aßmus
a2d6475360 * fixed usage of hardware accelerated inverting, of course we shouldn't do it again in software after we have done it in hardware...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 09:26:27 +00:00
Stefano Ceccherini
edac8f06a8 Implemented drawing of pictures inside pictures. Thanks to Marc
Flerackers for clarifying some things.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 09:19:30 +00:00
Stefano Ceccherini
ac5fdd8a6d Fixed drawing of arc and ellipse in a BPicture.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 07:38:44 +00:00
Stefano Ceccherini
ed5de868df Implemented the following BPicture ops: fill region, stroke/fill arc,
stroke/fill polygon, stroke/fill bezier. some work towards drawing of 
nested pictures.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 07:20:43 +00:00
Ingo Weinhold
ac7fc18b09 Always allow debugging a team, even if it wasn't possible to get its
executable path. It seems, gdb doesn't produce very helpful stack traces
then, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-12 23:49:38 +00:00
Ingo Weinhold
7e8ac2903b * Prefixed the variables NETWORK_LIBS, NETAPI_LIB, and
SELECT_UNAME_ETC_LIB with TARGET_ and introduced HAIKU_* and HOST_*
  counterparts.
* Use HOST_NETWORK_LIBS for building remote_disk_server.
* Also got rid of {R5,BONE,DANO,HAIKU}_COMPATIBLE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-12 22:15:10 +00:00
Stephan Aßmus
5a626bd963 * removed code duplication in BView::check_lock() and do_owner_check(),
* revised use of check_lock() versus do_owner_check() (do_owner_check()
  is supposed to drop you into the debugger if there is no owner, otherwise
  it behaves like check_lock())
* ConstrainClippingRegion() no longer transmits empty regions to the
  app_server. I would have thought that my fix to ServerLink would have
  solved the issue I was investigating, but only this commit fixes it.
  Maybe the last commit would have fixed it if I did a "jam clean"...
* WonderBrush draws the icons again on mouse over...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-12 13:14:09 +00:00
Stephan Aßmus
8c1a98d8d4 * there was a complete mixup of "drawing origin" and "scrolling offset" in the
BView implementation (client side)
* introduced some private methods for _Convert*(BPoint*) methods which avoid
  doing the check_lock() thing in the recursion, also Origin() would likely
  have communicated with the app_server all the time, since the origin bit
  was needlessly invalidated, so some speedup should be achieved
* this should fix ticket #98


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-12 09:52:25 +00:00
Stephan Aßmus
95baf31294 * view accepting bitmaps are now cleared to white
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21895 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-11 15:56:37 +00:00
Stephan Aßmus
aadc09c665 * fix the mixup of charCount (glyphs) versus bytes. The new font cache
implementation takes the byte count, even though it looks like this is
  less efficient when the glyph count is already known (I tested to
  optimize it away but it was not faster)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-11 13:34:09 +00:00
Stephan Aßmus
b595496d03 * minor cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-11 13:31:59 +00:00
Stephan Aßmus
e4273662d2 * this function might be called with a NULL FontCacheEntry, handle that
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-11 13:16:07 +00:00
Jérôme Duval
6f922173d2 missing ctype.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-09 21:53:36 +00:00
Stephan Aßmus
fe914c98b4 * added a version of SetFont() that takes a DrawState* to DrawingEngine and
Painter, that is needed to be able to tell if anti-aliasing is to be used,
  since the flags in the font can be overruled by the flags in the view...
* fixes aliased fonts reliably, tested with FontDemo


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-09 09:48:28 +00:00
Stephan Aßmus
05357ae700 Fixed an interesting bug in the app_server, after beating my head against
this for a long time... what happens when the app_server has requested a
redraw, but the client sends some drawing commands before starting the
redraw session? This would be the case, for example, when TextViews got
notified of their parent window becomming active (they would invert the
selection outside of any update session). When there was an additional
expose event, the app_server would already have the background cleared, so
the lonely "invert" command would invert the freshly painted background. Then
the normal Draw() of the TextView would be called because of the expose event.
By the time the text was rendered, it was rendered on the inverted background,
then the normal Draw() contained another "invert" command to invert the
region of the selection. Thus inverting just the text, and the background
twice. Solution:
* introduced a special handling for drawing commands arriving between
  requested update session and beginning of that session: the pending
  update region is clipped from the region the client is allowed to draw in.
* fixes funny text rendering in the selected part of text views. For example
  ticket #908.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-09 00:33:50 +00:00
Stephan Aßmus
e83f8dc9a0 Didn't I have a bad feeling because of code duplication?
* fixed a bug in the font cache, the signature was generated in one way
  (rendering type) while the initialization of the font engine could
  use another way
* should fix non-antialiased straight text
* weird non-transformed text in FontDemo
* generally not using vector glyphs when it was supposed to use them (rotated
  or sheared text, or non-antialiased text)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21866 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-09 00:25:52 +00:00
Stephan Aßmus
bbc424771b * convert shape coordinates to screen at the time of playing the picture
(fixes ticket #1367, stefano I thought you knew that I meant this in an
  earlier mail)
* move_pen_by() looked wrong in ServerPicture, have not tested though
* make sure the pen location is adjusted after stroke_line() and draw_string()
  in ServerPicture
* set_pen_location() does not need to update the Painter drawing state
* ServerWindow AS_LAYER_SET_PEN_SIZE needs to set the resulting pen size of
  the drawing state stack, not the one set on the current state
* ServerWindow AS_LAYER_GET_PEN_SIZE needs to return the current state's
  size, not the result of the stack
* small cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21855 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 18:36:23 +00:00
Stephan Aßmus
a748b927a5 * make sure that the pattern used for line arrays is B_SOLID_HIGH
and that the previous pattern is restored after execution


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21853 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 18:30:28 +00:00
Stephan Aßmus
aaa42c7e22 * added a way to get the unscaled pensize (ie that of the current draw state
of a view)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21852 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 18:29:09 +00:00
Axel Dörfler
277bea40a3 rectArray can only be NULL in case fAsString is true, not the other way around; this fixes
ServerFont::GetBoundingBoxesForStrings() (ScreenSaver no longer crashes as reported by Brian
Verre on the mailing list).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-07 01:24:09 +00:00
Stephan Aßmus
4971740e39 * in FillRegion(), check if the current drawing mode is B_OP_INVERT,
and then use hardware acceleration... found out this is what our
  BTextView is actually using, that's why it never used hardware
  acceleration for invert rect/region before. Have not tested this on
  real hardware yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 18:50:44 +00:00
Stephan Aßmus
90ad4da30d * small cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 18:49:11 +00:00
Stefano Ceccherini
e9d1494da3 Nevermind Stephan, in the end I found it out. Fixed shape drawing inside
a BPicture, though I'm not yet sure if I should do it there on when 
playing the picture...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21836 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 11:55:29 +00:00
Stefano Ceccherini
1f8ea6a98d Set the origin before playing the picture, so DrawPicture() with an
offset works correctly. Drawing a BShape using a BPicture is currently 
broken. Stephan, any insight on what it's changed about shape drawing ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 11:41:18 +00:00
Stefano Ceccherini
2671c0bf0a Since AS_DRAW_STRING doesn't attach the escapement delta anymore,
drawing a string inside a picture and then playing that picture 
triggered a debugger call. Fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21823 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 14:34:47 +00:00
Stephan Aßmus
c9d2046fe5 * after my last changes to font rendering, it was about 15% slower than
before (although there should be much less lock contention)
* with this change, there is quite a bit of cleanup, text drawing is now
  about 20% faster than before the original changes to font caching,
  mostly due to turning off the kerning feature, which at the moment
  gives absolutely no benefit. The correct way of doing it might be to
  use kerning depending on the provided glyph spacing mode
* removed fPenLocation from Painter, the usage should be more correct now,
  since it is now consistently applied before the coordinate transformation
  from view to screen (also for DrawShape() now, before any view scaling
  and origin offset)
* Painter no longer has it's own instance of a ServerFont, instead it uses
  its AGGTextRenderer instance, which was per Painter again after the
  last change, and not global anymore, made _UpdateFont() useless
* When using GlyphLayoutEngine, it supports a second pass with the same
  FontCacheEntry through the introduction of a FontCacheReference. This
  speeds up DrawString a little, since it needs to calculate the bounding
  box for the string, and then draw the string in a second pass. This is
  now done with only one FontCacheEntry lookup
* I also tried to optimize the on-the-fly conversion of UTF8->CharCode away,
  since it was done four times per DrawString, but surprisingly, it proofed
  to be a slight slowdown.
* introduced a shortcut in DrawingEngine::DrawString() which avoids
  calculating the bounding box, we are now a tiny bit faster to figure
  out that we don't need to draw any string than Dano

In the test environment (drawing to offscreen bitmap and blitting to
screen eventually), text rendering is now about 3.7 times _faster_ than Dano
text rendering (directly to screen), for untransformed text. Unfortunately
I cannot test on the same machine in accelerant using version of the test
environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21822 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 11:37:16 +00:00
Stephan Aßmus
94a48ae276 * use a different message code for DrawString() with escapement delta
and DrawString() without
* this change also includes adding the penlocation to the shape to-screem
  coordinate conversion (temporarily breaks shape rendering, will be fixed
  in next commit)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21821 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 11:22:47 +00:00
Stephan Aßmus
7c1cb28850 * cache the tab highlight and shadow color
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-04 11:18:21 +00:00
Stephan Aßmus
25a7061652 * moved AGGTextRenderer alongside it's pal, Painter, it felt lonely,
removed font_support folder
* ServerApp can use ServerFont::StringWidth() directly again
* more ServerFont functions implemented via GlyphLayoutEngine and
  custom consumer
* extended GlyphCache data structure to hole the left/right insets
  of the glyph shape between its advance width, took it from the earlier
  ServerFont implementation, have not tested if that gives same result
  as R5
* TODO: implement GetGylphShapes via GlyphCache, although it might not
  look as clean as it does now


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-03 01:11:27 +00:00
Stephan Aßmus
4389b7028c * TransformBounds() takes a const BRect&
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 21:05:34 +00:00
Stephan Aßmus
1a6914c517 * fixes the build, forgot to include in r21797
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21800 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 21:05:01 +00:00
Stephan Aßmus
2222864eed * complete overhaul of the font/glyph caching
* the previous AGG implementation is superfluous
* the new implementation is based on that one, but in a way that allows
  read/write locking to the list of cache entries (fonts) as well as
  read/write locking to the cached glyphs per individual font cache entry
* new GlyphLayoutEngine.h, which is to be the central place for layouting
  glyphs along the baseline.
  It handles the locking for getting the font cache entries.
  It works by giving it a template class GlyphConsumer which does the
  actual work.
* changed AGGTextRenderer to use the new font cache
* changed ServerFont::StringWidth(), and the bounding box stuff to use it
* changed DrawingEngine, it doesn't need the global font lock anymore
* our BFont thought that GetBoundingBoxesAsGlyphs and GetBoundingBoxesAsString
  is the same, which of course it isn't, hence the two separate functions...
  AsGlyphs just gets the bounding box of each glyph in a string, not treating
  the string as an actual word
  AsString adds the offset of the glyph in the word to the bounding box
* changed ServerProtocol.h accordingly for the different bounding box meaning


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21797 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 19:10:38 +00:00
Stephan Aßmus
78f1b0e97c * added IsLocked() method to AutoWriteLocker
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 13:04:27 +00:00
Axel Dörfler
2851dbad53 * Moved Referenceable.cpp to src/kits/support (private libbe API), and its header to
private/shared.
* Made AddReference() and CountReferences() inlines.
* The registrar is now using the private Referenceable version in libbe.so.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 16:20:37 +00:00
Michael Pfeiffer
820f5fa5a5 Undo last change (Search spool folder by name stored in attribute
'Printer Name'). In other parts of the print_server we had assumed that
printer spool directory name = printer name. So the change broke some
things.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21753 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-30 17:41:06 +00:00
Michael Pfeiffer
620f852c78 Search printer spool folder by name stored in attribute 'Printer Name'.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-29 09:03:25 +00:00
Michael Pfeiffer
da0bbaed22 Updated copyright year.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21726 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-28 06:15:01 +00:00
Axel Dörfler
6a05ab0186 My ClientMemoryAllocator implementation wasn't complete and badly leaked memory.
It now at least frees all memory when the object is deleted. Reported by Jonas - thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 23:50:34 +00:00
Stephan Aßmus
5286819920 * last commit broke rendering dots (though it should have been just more
work and no visual change... don't know why) -> fixed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 20:04:14 +00:00
Stephan Aßmus
38287e02af * completed my changes to DrawState handling, the current DrawingState
of the active ViewLayer is now always mirrored in the Painter instance
  of a ServerWindow, so that it doesn't need to be synced on every drawing
  command, this was previously incomplete for font handling
* removed the DrawState parameter from all the DrawingEngine functions
* adjusted ServerWindow and ServerPicture accordingly
* made sure that string related functions used by non-drawing related
  parts (ServerApp, Decorator) don't interfere with the current drawing
  state
* moved AS_SYNC handling from _DispatchViewMessage to _DispatchMessage,
  it is actually a window message and doesn't require fCurrentLayer to
  be valid
* fixed bug #1300, fCurrentLayer was not updated when a ViewLayer was
  deleted by client request which happened to be fCurrentLayer (I am now
  handling it so that the parent becomes the current layer, could be
  wrong)
* AGGTextRenderer is no longer using it's own scanline, which should save
  a few bytes RAM, the Painter already had such an object
* StringWidth() in AGGTextRenderer is now taking the escapement_delta into
  account
* Painter::StrokeLine() doesn't need to check the clipping as much, since
  that is already done in DrawingEngine
* if a ServerWindow message is not handled because fCurrentLayer is NULL,
  a reply is sent in case the messages needs it (client window could
  freeze otherwise, waiting for the reply for ever)
* removed unused AS_SET_FONT and AS_SET_FONT_SIZE
* added automatic RGBColor -> rgb_color conversion to RGBColor.h
* minor cleanup for 80 char/line limit



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 19:48:27 +00:00
Stephan Aßmus
7223defe3f * removed unused function
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-22 13:34:54 +00:00
Stephan Aßmus
779b52e5d0 * fix some issues with line placement, now it should be as close to R5
as possible without unacceptable overhead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-21 16:06:22 +00:00
Stephan Aßmus
582da17386 * complete reimplementation of BRegion and it's backend
I "ported" the region implementation from XOrg to work on BRegion data.

This resulted in pretty much the same code structure as before, with 
RegionSupport.cpp containing the messy details. Only now it _is_ really messy
from a code beauty point of view. I didn't exactly feel like cleaning it
up right now... but I guess I will have to.

So what does this mean - our BRegion implementation was very slow (no offense!),
and on top of that it scaled very badly with more and more rects. The new
implementation seems to be on par with the very fast R5 implementation and
the data looks exactly the same too. BRegion is very performance critical
for the app_server, and I cannot wait to try this on my slow computer...

Some changes are noteworthy: The right and bottom coordinates of
BRegion internal data are now exclusive! I inherited that from the
XOrg implementation and didn't feel like changing the code, seeing it
is probably tested quite well. The conversion is handled transparently.

Secondly, constructing a BRegion with just one rect is not invoking
malloc anymore for the member data, this makes it much more efficient
to use temporary BRegions with just one rect, both externally and internally
in the BRegion implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 17:06:28 +00:00
Ingo Weinhold
bd03cdc1f6 axeld:
Don't print a message that couldn't be written to the syslog to stdout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 13:38:12 +00:00
Ryan Leavengood
5f43b49ba0 When I added my BuyNow screen saver to the image and ran it, the app_server
crashed. Turns out a call I use, BFont.GetBoundingBoxesForStrings was not 
implemented, and worse, there was bug in how the ServerApp read the parameters
from the link. This was easy to fix to stop app_server from crashing, but it 
took me a while to figure out how to implement GetBoundingBoxesForStrings.

Anyhow I implemented an initial version which works fairly well for now. I
don't think the width is quite right, but it seems to match StringWidth(), so
I guess it is good enough for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-19 02:06:32 +00:00
Stephan Aßmus
eb9f93f347 * cleanup, removed use of pointers and allocations
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 17:02:44 +00:00
Stephan Aßmus
6369b909b2 * fix comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 17:02:03 +00:00
Stephan Aßmus
33ab66d539 * check the overlay of the child being removed, instead of the view's own
overlay (Axel please review)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 17:01:34 +00:00
Stephan Aßmus
41b487e43c * accidentally left the profiling on in last commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 13:22:26 +00:00
Stephan Aßmus
67f3be42b0 * added ProfileMessageSupport.h/cpp to translate server message codes to
a string
* fixed profiling of message processsing in ServerWindow (didn't take batch
  processing into account)
* accelerated ViewLayer::RebuildClipping() by a factor of two by avoiding
  BRegion::Exclude(clipping_rect) for each child, and instead building
  one region with all children, and excluding that. RebuildClipping() is
  quite a common operation and is quite slow for views with many children


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 12:59:05 +00:00
Stephan Aßmus
da819d069e * performance optimization, getting the bounding box of a text is about 10%
faster


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 12:29:44 +00:00
Stephan Aßmus
0896fce5fb * since every window has it's own Painter instance, the drawing state does
not need to be "set" (transfered from the "current" view to the painter)
  for each singly drawing command. Now, painter is synchronized whenever
  the client changes the drawing state of the current view, or when the
  current view changes.
* the screen offset of the current view has become part of the Painter state,
  in the PatternHandler. This fixes a bug in which moving or scrolling a view
  which used patterns for drawing, resulted in visual glitches (seams in the
  pattern).

NOTE: this patch is a bit work in progress, most importantly, it is not
complete with regards to text rendering. More specifically, the server
applications and other parts of the appserver might set a font on the Painter
and this might mess up the synchronization. But this happens on the Desktop's
Painter instance (only?), and so it is not a problem. I did observe some
drawing bugs with this patch though, so bug reports are welcome, particularily
how to reproduce these bugs reliably.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-18 09:35:40 +00:00
Stephan Aßmus
0794971822 * one can now specify and "offset" which will be taken into account when
looking up the color in the pattern, this is needed because before,
  patterns were always drawn with the virtual origin in screen coordinate
  space, but they need to be drawn with view coordinate origin taken into
  account (will be implemented in a forthcomming commit)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 20:52:47 +00:00
Stephan Aßmus
5fdc05c105 * make sure that the 80 chars per line limit is not exceeded
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 20:48:54 +00:00
Stephan Aßmus
fd5d46e099 * separated FontStyle and FontFamily into different .h/cpp, before they shared
FontFamily.h/cpp (just for the reason that this is how we do it mostly
  everywhere)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 20:48:06 +00:00
Jérôme Duval
d57634f732 the keymap is now saved when key locks or key modifiers are changed
this fixes bug #1282


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-16 18:40:32 +00:00
Axel Dörfler
81cd4ad0ec Accidently left in some debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-05 12:24:11 +00:00
Axel Dörfler
f6ad6dd6a6 * Now a service is quit when it is removed from the settings file.
* When deleting the Services handler, it will now also stop all running services,
  and close the command pipe (since it's only quit when the net_server quits, that
  wasn't much of a problem, though).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-05 12:16:22 +00:00
Axel Dörfler
9047804645 Optionally allows a different settings format; now you can write:
interface /dev/net/... { ... }
instead of:
	interface {
		device /dev/net/...
		...
	}

This will also work with service::name, and address::family.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-04 19:42:16 +00:00
Axel Dörfler
43d946d6d6 * Now uses BPathMonitor instead of the node monitor; this fixes several issues with
changes to settings files that were ignored (for example, watching "services" did
  only work if "interfaces" existed).
* On services update, Services::_Update() accidently compared the pointers of the
  service objects, instead of the objects themselves.
* Implemented comparison of address changes in service objects; IOW when you change
  the addresses a service should bind itself to, but leave the rest of the service
  unchanged, this will now be detected as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-04 18:53:51 +00:00
Axel Dörfler
470ca87e4d * _Update() was called too early in the constructor of class Service; that caused
incorrect values in fSet, and fMinSocket which also resulted in select() never
  to return (in would only work for settings you changed after the net_server
  was run).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-04 16:47:20 +00:00
Axel Dörfler
1e5e237d6e No longer avoids switching the workspace when a window one clicked on is not movable.
This fixes bug #1229.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-03 00:48:52 +00:00
Axel Dörfler
ef636873ad Fixed the overlay I accidently broke with the last commit - sometimes, but only
sometimes, testing seems like a good idea 8-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-28 20:05:39 +00:00
Axel Dörfler
117b384e5e * Implemented the overlay suspend/resume protocol on mode changes; not really tested
yet. Also, BBitmap::LockBits() should probably fail when the Bits() are NULL.
* The downside is that many more classes now know of each other.
* Cleaned up the work divided between the BitmapManager and the Overlay class.
* Fixed a memory leak in AS_CREATE_BITMAP in case the bitmap could not be added to
  the ServerApp's bitmap list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-27 11:29:20 +00:00
Axel Dörfler
ca13bd31a7 * The Deskbar tray icon menu "Check Mail" and the status window "Check Now" button
are now only enabled if there are any inbound accounts.
* BMailSettings::StatusWindowFrame() now returns some useful defaults.
* Minor cleanup.
* The MDR kit needs some serious overhaul before it can be part of R1.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21493 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-22 00:15:17 +00:00
Axel Dörfler
b9c1e099e2 The Workspaces layer will now also be updated when the window hidden/shown is not on
the current workspace - this fixes bug #1191.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-21 22:42:39 +00:00
Ingo Weinhold
3ff21b6bf7 libasdrawing.a was including a plethora of libraries. Not sure, what ar
made of this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-07 01:50:50 +00:00
Ingo Weinhold
4ee595e300 Fix the build. IMHO it's really ugly to use syscalls without even including
<syscalls.h>.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-07 01:38:58 +00:00
Ingo Weinhold
9e0276b75d Also include <syscalls.h> where _kern_get_safemode_option() is declared.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-06 19:24:20 +00:00
Stefano Ceccherini
189360b5d8 Initialize all variables in the constructor
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-04 14:09:16 +00:00
Axel Dörfler
4fc538a920 No longer allow the shutdown window being closed using the shortcut. Patch by Jonas Sundstrom, thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-03 21:43:20 +00:00
Axel Dörfler
b2ed0e7acf Implemented "fail_safe_video_mode" boot option; if you're using it, the app_server
will not load any graphics driver (other than VESA).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-03 20:20:19 +00:00
Stephan Aßmus
1ad1713ad2 * applied patch by Jonas Sundström,
makes the Escape key cancel the restart/shutdown dialog


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-03 08:18:34 +00:00
Axel Dörfler
d6f8cacab9 Moved the (currently very simplistic) code to check if a display_mode is valid into
it's own (static) method. In case setting the display mode fails, the returned mode
is now checked for validity as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-31 22:39:16 +00:00
Stephan Aßmus
7ce678aa5f * implement conversion of absolute mouse coordinates (0..1) in device
messages to normal screen coordinates



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-29 20:21:33 +00:00
Stephan Aßmus
10e5f892a3 * created alert icons in vector format (idea icon is missing yet)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-25 08:07:48 +00:00
Michael Pfeiffer
f1bbbce435 Fixed bug #1232. Report "Add new printer" cancellation correctly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-20 20:31:37 +00:00
Jérôme Duval
34bd8bf599 cleanup, fixed some warnings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-13 17:47:23 +00:00
Jérôme Duval
c0d5509623 remove filters and methods from their lists when unregistering
fixes bug #1215


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-10 19:54:18 +00:00
Stefano Ceccherini
0d478eeb6f Avoid sending an extra (useless) B_DIRECT_MODIFY notification to the
client, when the connection is stopped. But cache the "reason" of the 
notification, and join it with the next one, when B_DIRECT_START is 
notified. Experimental, could be reverted. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-07 21:26:33 +00:00
Stefano Ceccherini
ff32e5158c ServerPicture now uses a BPositionIO object as internal storage instead
of BMallocIO. Added an additional constructor to handle a file. This is 
in preparation of implementing BView::SetDiskMode().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-03 14:52:13 +00:00
Jérôme Duval
3499cb7591 now creates the monitored directories if they don't exist (0755)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-02 19:05:57 +00:00
Michael Pfeiffer
ce3a2228e7 Changed __ZETA__ to B_BEOS_VERSION_DANO as suggested by Axel.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20977 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-02 15:46:25 +00:00
Jérôme Duval
48cc07ffa7 added a commented option to activate input_server serial log
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-01 18:34:45 +00:00
Marcus Overhagen
19ca4fb578 insert the missing space
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-01 18:10:12 +00:00
Michael Pfeiffer
f57432d8c2 Support building on Zeta with BeIDE or make.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-05-01 07:54:40 +00:00
Axel Dörfler
4231541414 * Implemented atomic commit support to the clipboard as described by #1187.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-30 10:50:15 +00:00
Jérôme Duval
68ed0a8e97 get rid of the BHandler used in DeviceManager
DeviceManager wasn't run


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-30 09:50:12 +00:00
Marcus Overhagen
e27964028e Made maximum syslog size and inclusion of timestamps configureable in kernel settings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-29 17:06:54 +00:00
Jérôme Duval
6b6537f153 clean unused includes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20761 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-19 22:02:13 +00:00
Jérôme Duval
22b3307b23 Sound events are now played with a BSoundPlayer, because it's more easy to handle restart and have a correct name displayed in the mixer. Sound players are reused when possible
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20760 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-19 21:59:55 +00:00
Stephan Aßmus
8d184de1da * bugfix in ScrollBy (it could scroll the screen area of hidden views)
* test the actually visible view area against dirty region,
  (this avoids making the client window call the Draw() function of views,
  even though all the drawing would get clipped on the server side)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-19 19:36:36 +00:00
Jérôme Duval
2006a80079 now plays the file found for the selected event
reclaim and reuse of sounds ressources still to be implemented


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-17 23:14:13 +00:00
Jérôme Duval
d444ac5b51 updated license header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-17 18:07:37 +00:00
Axel Dörfler
e93d736dac We should not pass the mouse down event to the window in case it has B_AVOID_FOCUS set; found by Stefano as described in bug #670 comment 5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-17 14:40:29 +00:00
Stefano Ceccherini
19ebf74dc6 Call RemoveToken() in the destructor
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-17 10:05:56 +00:00
Ingo Weinhold
d619e89985 Fixed incorrect use of the sort() function. It expects a "less than"
compare function with bool return value, not a -1/0/1 returning
compare function. Fixes bug #1158 (registrar crash on shutdown).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-17 05:39:33 +00:00
Jérôme Duval
31ebfe61e4 added default sound events
implemented system_beep() by sending an event to the media addon server


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-16 19:15:46 +00:00
Jérôme Duval
33c487a43e implemented add_system_beep_event()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-15 20:40:12 +00:00
Jérôme Duval
1cafa90eda code style
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-15 14:17:02 +00:00
Jérôme Duval
88ec4b1dbe fixed some warnings
code style of MMediaFilesManager.* 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-15 13:59:59 +00:00
Stefano Ceccherini
ba4918e74c Menu windows are no longer the preferred keyboard events target (for
now, at least). This feature wasn't used yet anyway, and turning it 
off cures bug #1152.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-12 12:28:13 +00:00
Axel Dörfler
f01106c3cf * Moved the network status replicant into its own application, similar to what
ProcessController and PowerStatus are doing.
* Currently polls for info only - later, the stack should support listeners for
  interface related changes.
* Also works under BONE (although it doesn't make much sense to use it there).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-11 16:01:02 +00:00
Axel Dörfler
d7e473d310 The network status icons are now correctly read from the resources (I even
forgot to add them to the server before :-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-03 12:24:32 +00:00
Axel Dörfler
3eb30a22b2 * Implemented loading icons from resources - doesn't seem to work yet, though.
* Fixed leaking menu items in StatusReplicant::_PrepareMenu().
* Renamed private methods to have an underscore prefix.
* Some minor style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20531 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-03 11:55:03 +00:00
Stephan Aßmus
48e0491d5a * added icon for "connecting" status
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-03 10:42:48 +00:00
Stephan Aßmus
4467a70250 * created icons to inform about network connectivity status
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-03 10:39:38 +00:00
Hugo Santos
02a6d07927 small gcc 4 compilation fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20526 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-03 06:59:55 +00:00
Hugo Santos
a3e4e4f762 also update configured devices' status, but ignore the loopback interface.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-03 05:59:16 +00:00
Hugo Santos
90d110b64c tiny cleanups
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-03 05:47:00 +00:00
Hugo Santos
37c50abfaf net_server: initial replicant version.
* Still picture-less and thus ugly.
 * It provides updated information on what the net_server is doing in terms of interface configuration.
 * It is also able to show simplistic address information for configured interfaces.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-03 05:38:45 +00:00
Axel Dörfler
65186fec5a Removed duplicated information (the PARAMETER_* constants were already expressed in form
of the OPTION_* constants).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-02 09:22:22 +00:00
Hugo Santos
a073ba1aa8 DHCP: since we are only installing routes while handling an OFFER, request gateway in DISCOVER. Fixes an issue where the gateway address is not configured.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20506 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-01 23:46:24 +00:00
Hugo Santos
5d4d5313c7 DHCP: explicitly request the gateway address and domain name servers to the DHCP server. This fixes an issue some people reported regarding obtaining such information.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20505 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-01 22:05:35 +00:00
Stephan Aßmus
d2e5bdb4e8 * re-enabled rendering of vector glyph shapes (when text is rotated,
sheared or put to "false bold"), the actual problem was resolved
  with the last revision


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-31 18:23:11 +00:00
Axel Dörfler
19b0fb934c The MessageLooper class did not initialize its fThread member, causing ServerWindow
to rename arbitrary threads. This fixes bug #1122.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-25 12:43:13 +00:00
Axel Dörfler
4b661a956f Fixed a stupid bug that prevented DHCP from trying again if a request was lost
(always happened here with my laptop :-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-20 22:09:53 +00:00
Jérôme Duval
a1394a90ad fixed bug #637:
"Shutdown window didn't draw fancy gray box where closing app's icons are shown
as in BeOS."


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-19 20:46:01 +00:00
Axel Dörfler
91d6453948 * Added a new Workspace::GetPreviousWindow() method to allow traversing the window
list in the other direction.
* Since WorkspacesLayer now cuts out the current window from the clipping region,
  the window order was upside down; it now uses the new Workspace::GetPreviousWindow().
  This fixes bug #1105.
* WorkspacesLayer::MouseDown() now also uses GetPreviousWindow() which prevents it
  from needing to scan the whole window list for the top window at every click.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-13 16:53:19 +00:00
Ingo Weinhold
9781d591cb Include <util/kernel_cpp.h> in DoublyLinkedList.h only when compiling
for the kernel. Added missing includes in userland code that uses the
header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-11 13:56:45 +00:00
Marcus Overhagen
0690e6bc16 added fast path to BPicture polygon drawing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-02 00:33:23 +00:00
Marcus Overhagen
0b0ecfab90 Added "const" to many parameters.
Removed most data allocations/copying from PicturePlayer, ServerPicture now has to do this when converting coordinates.
Added additional functions to ViewLayer to copy&convert multiple BPoint, BRect, BRegion to Screen coordinates, those should be further optimized.
Removed some function call overhead.
Note: some functions of PicturePlayer don't appear to be implented by PictureDataWriter,


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 23:17:40 +00:00
Marcus Overhagen
533b9a69a7 removed unnecessary use of const_cast
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 19:14:19 +00:00
Stefano Ceccherini
caae1184ab When creating a picture with data, the app_server was writing beyond the
allocated memory, without telling anyone. That was causing bad things to 
happen. Flattening and unflattening BPictures now works, and 
consequently, printing works too. Bug #1014 is fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-01 14:47:10 +00:00
DarkWyrm
fa73ff0d14 Moved the decorator function declarations into DecorManager (which is the only place which uses them) to allow add-on decorators to build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-23 23:35:01 +00:00
Axel Dörfler
cf2aeb201f * Implemented BDragger::{Show|Hide}AllDraggers() and its backend in the app_server.
This fixes bug #242. The value is currently stored in a separate file.
* Removed some unused codes from ServerProtocol.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-21 07:57:21 +00:00
Ingo Weinhold
38979f27b0 * All "GUI servers" (app server, input server, and registrar) will now be
debugged automatically in a consoled session, when they crash. Note,
  that after a recoverable error (like a debugger() call) one can
  "detach" the debugged team in gdb, "quit", and continue as if
  nothing happened. 8-O
* The input server will no longer be killed when starting the debugger
  in a consoled session. Not sure why it was done; it simply works as it
  is now.
* Replaced all printf()s and fprintf()s by debug_printf() or TRACE(()).
  The debug server prints little enough anyway. In fact only when something
  crashes or an unexpected error occurs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-16 17:03:34 +00:00
Ingo Weinhold
f20962103f We catch exceptions in Registrar::MessageReceived() and main() and
invoke the debugger. At the moment the ultimate effect is the same as
before (the registrar terminates), but it does at least cause some
output in the serial debug output. And as soon as the scheduler and
keyboard stuff is fixed, I can commit my debug server changes and the
registrar should become debuggable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-15 23:10:33 +00:00
Ingo Weinhold
d09c136a8c Send out B_SOME_APP_LAUNCHED/QUIT messages only for fully registered
apps. This fixes bug #948.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-03 12:23:03 +00:00
Axel Dörfler
4d1fd46cdf * Replaced DEBUG MultiLocker with an implementation that actually helps debugging
locking problems (instead of debugging the locker class).
* MultiLocker::IsReadLocked() is now only exported with DEBUG mode turned on, as
  it only works correctly in this case.
* Made MultiLocker safe against B_INTERRUPTED, ie. it now just tries to lock again
  instead of failing for no obvious reason.
* Removed bogus arguments to acquire_sem_etc() in MultiLocker (like B_DO_NOT_RESCHEDULE).
* Applied coding style to MultiLocker.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-02 19:16:18 +00:00
Axel Dörfler
cb134e2550 Resolved a TODO: WorkspacesLayer must take the whole workspaces frame into account, not
just the one of the first screen. This also solves a locking bug, as the HWInterface
is already read-locked when WorkspacesLayer::Draw() is called.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-02 18:14:25 +00:00
Axel Dörfler
89eb4cd6c9 Now checks the screen mode to be set if it is already the active one (and do nothing if
that's the case).
Accidently this also fixes bug #1010.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-02 16:20:16 +00:00
Michael Pfeiffer
24a0bfcb01 Fix bug #1004. The directory B_USER_PRINTERS_DIRECTORY does not exist in
haiku.image. It is now created when print_server or the Printers preflet
is started.
Applied coding style.
"Flattened" some nested if statements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-01 20:39:20 +00:00
Ingo Weinhold
ee202d50bc Fixed access of deleted object in out of resources situation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-30 13:09:15 +00:00
Jérôme Duval
b2f8cb2ef4 it seems fRegisteredApps also lists not fully running apps, so we add a check for the state APP_STATE_REGISTERED.
this fixes the ticket #627.
Ingo, could you review ? This check might also be needed at other places.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-29 23:36:15 +00:00
Axel Dörfler
2617d83e76 Damn, forgot to include these two in r19968. This should fix the build again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-26 16:48:02 +00:00
Michael Pfeiffer
fcccd8b759 Some printing related improvements:
* libprint based drivers can now show a preview window and show progress
  window while printing contributed in part by Hartmut Reh.
* Libprint and PCL6 driver bug fixes.
* Code clean-up (removed code duplications, coding style, copyright text)

Builds under Linux. Not tested under BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-20 15:52:37 +00:00
Axel Dörfler
e30afed439 As per Ingo's request, I moved calling BRoster::Private::UpdateActiveApp() into
the app_server (and updated all comments that said otherwise).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19865 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-19 16:41:58 +00:00
Axel Dörfler
c2f641f2e5 Turns out the whole "active app" mechanism in the registrar wasn't used at all; the
Switcher now works as expected.
* Renamed TRoster::ActivateApp() to UpdateActiveApp(), as the app is already activated
  at that point (the registrar only keeps track of it).
* BWindow::DispatchMessage() now calls the new BRoster::Private::UpdateActiveApp()
  method when it receives a B_WINDOW_ACTIVATED message.
* Added BRoster::_UpdateActiveApp() which calls the new B_REG_UPDATE_ACTIVE_APP.
* Removed now unused B_REG_ACTIVATE_APP.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19857 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-18 17:45:08 +00:00
Axel Dörfler
bbaa26a490 The net_server is now a BServer instead of a BApplication, IOW it doesn't rely on the
app_server being started anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19816 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-15 16:51:27 +00:00
Axel Dörfler
2d75f771bf Fixed minor ugliness (only visible on slow systems, such as Qemu): the mouse cursor
was drawn before the background got cleared.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-09 23:33:57 +00:00
Axel Dörfler
625f8abdb0 * The networking stack now removes all invalid interfaces during startup (those
where there is either no address or MAC address [ethernet only]).
* _ConfigureInterfaces() now notices if a network device that has a configuration
  is gone and memorizes this configuration.
* If a new device pops up, and there is an existing configuration for a device
  no longer available, that configuration will be used for the new device, allowing
  you to easily move your Haiku image to a new system without losing its network
  settings - it does not yet test if the IP address is already in use in the local
  network, though (in which case a configuration using DHCP would be preferrable).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-08 16:04:16 +00:00
Axel Dörfler
ccf137b886 BWindow::IsFront() was implemented incorrectly - we actually need to query the
app_server for this; added a new AS_IS_FRONT_WINDOW command for this.
For example, clicking on the menu bar to bring windows to front in FFM mode
does work now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19725 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-06 17:08:19 +00:00
Axel Dörfler
167c61fce4 Turns out drawing text using the outline path always results in an endless loop.
Since I have no clue about AGG at this point, I just disabled rendering the glyphs;
instead, their bounding boxes will be shown.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-06 13:26:46 +00:00
DarkWyrm
98969dd0a4 Added app restart capabilities
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19720 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-06 13:20:01 +00:00
Axel Dörfler
2ca64e4886 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19712 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-05 19:53:45 +00:00
Axel Dörfler
efe7244436 Added a comment that should make clear my last accidental commit doesn't fix anything.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-04 12:32:44 +00:00
Axel Dörfler
c6f9f65dff At least temporary fix for the Deskbar not updating additional items (unless you resize it).
The problem was that the view's screen clipping was not updated if its frame did not change
because of a resized parent - but that might be needed if the new parent frame reveals a new
portion of that view.
I added a TODO so that if there is a way to test for this case, we only need to invalidate
the clipping if really needed. For now, we always do it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-04 12:28:31 +00:00
Axel Dörfler
6b97dd4e51 Looks like DrawingEngine::ContrainClippingRegion() no longer copies the region
passed in, but references it. This broke drawing the workspaces window background.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-03 16:36:04 +00:00
Axel Dörfler
16aceec16e Put the new server into its own session.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-31 16:33:21 +00:00
Axel Dörfler
c30e35eb9b Actually launching services should work now:
* ServiceSocketMap now maps directly to service_address objects which now have
  gotten a pointer to their owner.
* now uses listen(), and accept() for SOCK_STREAM sockets
* fMinSocket could be wrong.
* use FD_CLOEXEC on all sockets, and the communication pipe.
* removed unused service::type and service::protocol.
* if no family is specified, we now default to AF_INET.
* uses fork()/exec() to actually spawn the servers to not clobber the net_server's
  input/output streams.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-31 16:21:19 +00:00
Ryan Leavengood
db9fbf8e9d Changed the new menu item's text to be more user friendly, thanks to DarkWyrm.
Added a Japanese translation for this item, thanks to Koki.
Now the old queries are deleted before adding new ones, thanks to AGMS.

Though the last item was not actually a memory leak (the destructor would
eventually get all the added queries), this would cause weird behavior which I
did notice (multiple queries existed which all sent the same notifications.)
Either way, good catch AGMS :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-30 17:50:48 +00:00
Ryan Leavengood
1f2e7f93df I was sick of the mail_daemon deskbar replicant always showing the wrong count
of new messages so I added a new menu item to refresh the new mail query. I
wrapped the addition of the menu item in an #ifdef since it should not be
needed on Haiku.

While testing this I saw some pretty crazy behavior which I can only assume
means the R5 query notification is really, really buggy. Or the mail_daemon is
doing something weird.

Unlike the others this menu item does not have a Japanese translation and
probably doesn't need one, but if someone really wants to add it feel free :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-30 03:24:41 +00:00
Axel Dörfler
b5a8a89b5d * Removed the debugger() call when the input_server couldn't be started - it's not
a critical error, and definitely no reason to take the server and all GUI apps
  down. You could also still log in remotely.
* Now opens and uses the syslog in some rare cases (should become the primary error
  channel over time).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-28 14:11:08 +00:00
Axel Dörfler
c42ca72638 Work-in-progress on the "services" implementation: it now reads the configuration
message, parses it, and stops/starts the services as needed - it doesn't launch
any actual servers yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-28 13:58:58 +00:00
Jérôme Duval
dde7916d62 gcc4 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-26 18:06:46 +00:00
Michael Lotz
3379428150 * Made UTF8 functions overflow safe
* Unified UTF8CountChars and UTF8ToLength and removed the latter
* Rewrote UTF8CountBytes to use the more safe algorithm from UTF8CountChars
* Removed the unsafe count_utf8_bytes() function

This should fix bug #839. Marcus can you please review?

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19624 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-25 21:58:00 +00:00
Ryan Leavengood
6869c8a59a The app_server now starts and restarts (if needed) the input_server. The use of
a debugger call in _LaunchInputServer may be overkill, but at least you could
conceivably cleanly restart the machine in the debugger (I think.) Because
without the input_server the machine is pretty useless.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19615 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-23 22:59:06 +00:00
Ryan Leavengood
87719fdb8f Added a needed header for the recent ioctl() call addition. Lack of this caused
the libbe_test environment build to fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19610 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-22 22:44:07 +00:00
Axel Dörfler
fc398fa2ab * Added "services" to the network settings, and refactored the settings class a bit
to be easier extendable with more classes.
* Fixed a bug in the settings that caused updated settings to be appended to the
  existing ones (missing BMessage::MakeEmpty()).
* Started services system, doesn't do anything useful yet (inetd replacement).
* Fixed the bug that caused the loopback default netmask to be incorrectly chosen;
  removed the temporary fix Bruno introduced before. The same bug has been in
  ifconfig where I copied the code from (but wrote it there, too) :-).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19609 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-22 20:53:08 +00:00
DarkWyrm
d2980e876d Removed the testing-only restart messages -- daemon now silently relaunches servers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-22 19:07:37 +00:00
Bruno G. Albuquerque
eaeb7fd4f5 The loopbacl interface has a fixed netmask.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-22 15:30:37 +00:00
DarkWyrm
9710088cc3 Increased timeout to 2 seconds before firing the alert - 1 second wasn't long enough to get through shutdown without complaining about the Deskbar
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 23:24:52 +00:00
DarkWyrm
ce7fd13b0d Initial checkin. Works fine for me so far, but YMMV. Bug reports appreciated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 21:12:58 +00:00
DarkWyrm
5cb03f9fb9 Fixed some copyright year entries I accidentally mangled in the header updates. Thanks korli!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 15:58:51 +00:00
DarkWyrm
314167cd80 Header updates
Tweaked a couple BAlerts to be a bit more standardized


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 15:18:09 +00:00
DarkWyrm
bdb64116e9 Accidentally removed large icon with last patch. Fixed. <Puts on trout-proof suit> :^)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19587 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 14:12:50 +00:00
DarkWyrm
16785e2a19 Unmangled lines clobbered by the resource compiler (I think I got everything)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 13:39:36 +00:00
DarkWyrm
db5fdafdc7 Added some config buttons that both look better and also look clickable (like buttons should)
Updated the layout code to be font sensitive


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-21 13:04:05 +00:00
Axel Dörfler
7da584bb64 * Looks like setting the first 16 palette entries is not enough.
* Tested a bit more, and there seems to be some minor drawing problems.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-19 23:01:58 +00:00
Axel Dörfler
0c6f77951e * Moved VGA planar mode blitting into the VESA kernel driver.
* In grayscale mode, the AccelerantHWInterface now sets the palette correctly.
* HWInterface now has a fVGADevice set by AccelerantHWInterface which will be used
  to talk to the VESA driver.
* Completed planar blitting for all 4 planes; we now have a perfect 16 color
  grayscale mode when you choose "Standard VGA mode" in the boot loader with
  an unsupported graphics card (such as in Qemu).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-19 22:57:56 +00:00
Axel Dörfler
c46eb09e8f * The 4-bit VGA planar mode is now advertized as B_GRAY8 to the app_server.
* The app_server now detects that this mode is being used, and at least correctly copies
  the 32bit data to the first plane, meaning we have a monochrome output for now
  (it crashed before, as Stefano reported).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-19 18:45:40 +00:00
Stephan Aßmus
10f6ed940b * implemented "false bold" for text rendering. It is a new property
of BFont. You can BFont::SetFalseBoldWidth(float) a width on a
  BFont object, and it will cause the glyph shapes to be run through
  an AGG "contour converter" so that they become thicker or thinner.
  IIRC, this is commonly referred to as "false bold". The "width" value
  is the distance in pixels that the new glyph outline will be offset
  from the original outline.

It would be nice if someone could look at my change to View.h with
regards to the B_FONT_ALL flag.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-18 05:22:13 +00:00
DarkWyrm
1080834a69 Made the Quit menu item in the system tray appear only when the icon is clicked on with the Shift key and renamed it to Shutdown Mail Services (which is clearer)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19537 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-16 20:04:31 +00:00
Stephan Aßmus
b93f9f1371 * now the Decorator uses the DrawingEngine instance of the WindowLayer,
so that we can draw the window borders using parallel access too.
  Seems to improve things even further, using the app_server environment
  with direct accelerant access on R5 looks pretty decent now, but
  of cause still far from perfect. The global font lock could actually
  be the problem now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-15 23:05:35 +00:00
Stephan Aßmus
527b4ad1b3 Gracious me, I forgot to actually turn on parallel frame buffer access!
Seems to make some difference too. Nothing dramatic though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-15 22:43:15 +00:00
Stephan Aßmus
2ba6b3a649 * minor cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19526 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-15 22:41:35 +00:00
Ryan Leavengood
908b5c2034 Removed the dependency in the registrar on an input_server header file which I
had previously inroduced. It is not needed anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-14 07:07:30 +00:00
Ryan Leavengood
d6ead04161 Removed some debugging lines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-14 05:20:18 +00:00
Ryan Leavengood
970014a60a Improved the shutdown process some more. Systems apps are allowed to ignore the
quit request and are simply removed from the list of apps to close if this
happens. This is primarily designed for the input_server.

I also corrected the MIME type of the debug_server which was causing it to be
incorrectly killed at shutdown.

I did some other clean-up and removed the code I unintentionally submitted
yesterday.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-14 05:15:47 +00:00
Axel Dörfler
46ff54007d * Made the implementation more state driven.
* Now should adhere to the specs with regard to filling the DHCP_REQUEST messages
  in BOUND/RENEWAL/REBINDING states.
* Now take over the times for renewal/rebinding state from the DHCP server, if any,
  or falls back to 2/3 and 5/6 of the original lease time.
* The lease time was accidently shortened twice (to compute the renewal time, in
  case that was missing).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-13 13:57:57 +00:00
Axel Dörfler
5782c5a3e2 * Added support for setting the broadcast address as well (option 28).
* Now prints out the domain name as suggested by DHCP (option 15).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-13 11:58:54 +00:00
Axel Dörfler
1a4e8e7b49 Since VMware seems to have some ridiculuous low lease times, I added some code
that prints out the renewal/rebinding times as well - maybe those should be
preferred when they are there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-13 10:22:34 +00:00
Ryan Leavengood
a26cf893d0 This removes some of the accidental submissions from my last commit.
For those wondering "mark_as" is the directory for the MarkAsRead and MarkAsNew
Tracker add-ons I'm planning to add (for email.) If anyone is violently 
opposed to this idea, speak now.

The WorkspacesLayer change was mostly an update to existing and ifdef 0'd
code so it would compile under ifdef 1. I left those changes and just set the
ifdef back to 0 here.

The other changes below were debugging and build changes that definitely were
not needed in the repository.

The undocumented changes in the last submission include some new keyboard
shortcuts in ShowImage as well as various changes to the input server and
roster as part of my ongoing work on those. I will clean this up some more 
and make another submission in a few hours.

Note to self: never submit from a high-level directory...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-13 00:43:13 +00:00
Ryan Leavengood
252f476782 Added some needed stdio.h includes. I don't know what magic was used to compile
these for other people, but they wouldn't compile for me when building the
app_server test environment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-13 00:15:56 +00:00
Axel Dörfler
6cc7630f36 * Implemented lease time renewal.
* The DHCPClient is now added to its looper before doing the negotiation, so that
  it's BMessenger is already valid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 17:55:48 +00:00
Axel Dörfler
a552ec1396 * If DHCP reports DNS addresses, we'll now rewrite /etc/resolv.conf for now.
* minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 16:11:16 +00:00
Axel Dörfler
ef8ff79cdb * A copy and paste bug prevented the gateway to be added (worked before the
previous commit).
* Removed the acceptance of a missing DHCP acknowledge message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19470 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 02:56:23 +00:00
Axel Dörfler
0cf5e6ac7d Removed the automatic endian conversion in PutOption() - it was confusing and
the actual cause that my router didn't send an acknowledgement (qemu didn't care) :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 02:18:51 +00:00
Axel Dörfler
10cc12da06 Now delays configuring the interface until we got the DHCP acknowledge message - this
might fix the missing message from my router.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19468 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 01:49:47 +00:00
Axel Dörfler
e2e290db9b Forgot to add the "auto config" settings parameter to the BMessage template conversion.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 01:18:09 +00:00
Axel Dörfler
0ce7725e1c * An interface can now also be configured to be "auto config" (which means DHCP for now).
* Some minor cleanup in the DHCP client.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19465 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 01:16:28 +00:00
Axel Dörfler
df3624c10e * DHCP will now actually acknowledge a successful negotiation.
* The lease time wasn't printed correctly.
* if the DHCP acknowledge message never comes, we won't try
  forever, but will just stop early and assume the IP address
  we have is okay (looks like my router doesn't send DHCP_ACK).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-12 00:32:05 +00:00
Axel Dörfler
f9af65667d * Work-in-progress of DHCP - the interface should now be correctly configured.
* Lease times are currently ignored, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-11 23:58:16 +00:00
Axel Dörfler
2e31a85d7f The DHCP message must be send as a link-level broadcast for an unconfigured interface.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-11 16:54:49 +00:00
Axel Dörfler
fb81684f81 The beginnings of automatic configuration of network devices using DHCP; this is
currently only triggered when there is no configuration file - it can't be configured
this way yet.
All DHCP currently does is to send a UDP broadcast DHCP discover message. More to come.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-06 19:00:00 +00:00
Stefano Ceccherini
8071d85b5a fixed the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-05 13:34:14 +00:00
Stephan Aßmus
2cfe93e780 * renamed HWInterface locking to LockParallelAccess() and
LockExclusiveAccess() (meaning more or less access to the
  frame buffer)
* extracted the AGGTextRenderer to be a global instance used
  by each Painter instance (currently, it is thread safe because
  of the global font lock, so there is some work left in this
  regard)
* gave every ServerWindow it's own DrawingEngine instance, this
  is work in progress. So far, there doesn't seem to be a regression,
  but less fighting over the exclusive access to the frame buffer, now
  each ServerWindow thread can draw in parallel. There is room for
  improvement, plus I think I'm leaking the DrawingEngine...
* changed the locking for the software cursor. ShowSoftwareCursor()
  can only be called if HideSoftwareCursor(BRect) returned true, or
  if you called the generic HideSoftwareCursor(), since it needs
  to keep the cursor lock and unlocks in Show...!
* some clean up and renaming in Decorator and friends
* moved PatternHandler.h to live along with the .cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-04 22:25:17 +00:00
Axel Dörfler
5131b5bcf6 The window and application server threads now run at B_DISPLAY_PRIORITY, too; this
was a stupid oversight, and should improve the responsiveness of the UI under load
a lot. Thanks Stefano!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-30 13:15:15 +00:00
Stephan Aßmus
54c22262f6 * cleanup (it is still used btw, at least in ServerFont)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 20:29:03 +00:00
Stephan Aßmus
67491d2adc * introduced a listener mechanism to be notified of frame buffer
changes in the HWInterface (ie on mode switch)
* initialization and shutdown of the HWInterface instance no longer
  go through DrawingEngine, which had nothing to do with it in the
  first place
(this is in preparation of giving each ServerWindow it's own
DrawingEngine instance)
* small performance improvement in ViewLayer::ScrollBy()
* some cleanup in ServerConfig.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 09:27:23 +00:00
Stephan Aßmus
264fe59ded * introduced IntPoint and IntRect, which are just like BPoint and BRect,
but use integer coordinates. These are now used in ViewLayer for the
  coordinate system (layout, scrolling offset, view bitmap layout)
* modest performance improvements by inlining some very often used
  methods, and by preventing to go down the entire layer tree too often,
  for example InvalidateScreenClipping was always called in the deep
  mode, therefor it is save to assume that the tree does not have to
  be traversed as soon as the clipping is already invalid


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:20:07 +00:00
Stephan Aßmus
ba688f3640 * small fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:16:51 +00:00
Stephan Aßmus
4d83ef04a2 * something was giving me trouble, don't know if this fixed it
or something else, but I don't think the change is bad (changed
  ServerProtocol.h from a local header to a system header)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:16:10 +00:00
Stephan Aßmus
5288f0a48d * use exit() instead of exit_thread(), makes profiling even possible
with the built-in GCC profiling (thanks Axel)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:14:15 +00:00
Stephan Aßmus
64792e619e * small fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 03:13:15 +00:00
Stefano Ceccherini
0c48fc7c74 Enable state synching for ServerPictures. Fixes bug 520
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-28 14:52:51 +00:00
Michael Lotz
8449c78396 Fixing build of the printing package for BONE and hopefully R5 too.
Now printing to that old HP LaserJet 2100 over an even older LPR print server from R5 with the PCL5 driver and LPR transport...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-25 20:06:18 +00:00
Stephan Aßmus
fa4cfdbf62 * use B_RGBA32 icons in shutdown process window (untested)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-17 09:56:42 +00:00
Ryan Leavengood
499aacdd0a Fixed bugs #177 and #180 by adding code to notify the input_server that the
system is shutting down.

For the protocol between the Registrar and input_server I decided to just
re-use the message constant already defined in the input server headers
(SYSTEM_SHUTTING_DOWN.)

The code in the input server to notify the InputServerDevices about the
shutdown was pretty trivial.

For the code in the Registrar I'll let some gurus review it to make sure it
fits in with the rest of the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-15 08:19:12 +00:00
Stefano Ceccherini
420fe80e5c Moved picture data writing to its own class, thus simplifying code in
various places. Implemented SetLineMode op for BPicture, fixed shape 
drawing (I accidentally broke it in the previous commit).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-12 20:00:36 +00:00
Axel Dörfler
fd5c02b25c * The recent files list now also preserves the case of the MIME strings.
* STL allocations are guarded by a try/catch block.
* As in RecentApps, Get() did not properly populate an error condition.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-12 17:46:34 +00:00
Axel Dörfler
ddacfc7ff0 * The recent app list now filters out Tracker & Deskbar, as reported by Korli.
* The application signatures now preserve the case; this is better for querying
  after the app, and has no disadvantage.
* Adding an item to the list is now guarded by a try/catch block - allocations
  can fail, and the registrar shouldn't get down because of this. We need to
  proof-read all of registrar (and storage kit) for this :-/
* Get() did not populate an eventual error while adding items to the provided
  list (such as B_NO_MEMORY).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-12 17:16:13 +00:00
Stefano Ceccherini
ab757c7a3a our BPicture stream format wasn't compatible with R5 one.
Hopefully fixed all the problems. Reported by 
Marc Flerackers. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-09 21:53:45 +00:00
Stefano Ceccherini
8f38753043 ReadString() actually allocates memory... fixed that and another memory
leak


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-31 11:24:58 +00:00
Axel Dörfler
8e963d88f0 The app_server did not reset keyboard focus on B_INPUT_METHOD_EVENT messages.
This should fix bug #658.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-31 01:24:05 +00:00
Stefano Ceccherini
2f9eca855a moved Shape related defines to their own header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-30 21:20:38 +00:00
Stefano Ceccherini
34633cab94 patch by Lucasz Zemczak which adds BShape drawing support to BPicture. Actually we should use a ShapeIterator subclass (like Lucasz did here) in Painter too instead of having duplicating code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19153 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-30 20:42:54 +00:00
Axel Dörfler
07dc2c6972 * The app_server now gives top-most menus the keyboard focus.
* BMenuWindow now makes its menu focus view, so that it can receive key events.
* Keyboard navigation doesn't work as it should though, that is bug #670 is
  still valid - there should even be another recently opened bug about this,
  but Trac obviously ate it :-/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19152 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-30 14:21:28 +00:00
Axel Dörfler
158893b903 The input_server now removes all B_INPUT_METHOD_EVENTS when the target view is
not input method aware.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19147 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-29 19:12:29 +00:00
Axel Dörfler
7430a5bea6 Removed the superfluous (doubled) AS_MOVEPENTO as well. Also removed those old constants
from the ServerProtocol.h header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-26 22:48:31 +00:00
Stefano Ceccherini
0e683ed9aa ServerPicture was using the wrong StrokeRect call (the one which ignored
the pen size). Added scale handling. Removed duplicated AS_SETPENSIZE 
handler in ServerWindow


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-26 19:49:02 +00:00
Axel Dörfler
b735e46de3 Extended input method protocol a bit: you can now set "be:inline_only" to true, which
means that no bottomline window will be opened in case the current view is not input
method aware.
Instead, only the confirmed B_INPUT_METHOD_CHANGE event will be translated to a message
the view will understand - this message must be part of the event in the "be:translated"
member.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-25 10:45:45 +00:00
Stefano Ceccherini
467dbaa9e2 Fill/StrokeArc support for BPicture, courtesy of Lucasz Zemczak
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-23 11:54:44 +00:00
Stefano Ceccherini
0c40a6370e added part of a patch by Lukasz Zemczak which adds ellipse
filling/stroking support to BPictures. 
Thank you!"


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-23 09:50:22 +00:00
Stefano Ceccherini
3ffcd64e5c updated headers
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-23 09:29:30 +00:00
Axel Dörfler
8a93edb60c Made all server version and signatures consistent, and thus closing bug #909.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-22 17:56:02 +00:00
Axel Dörfler
37ec4f04fe * Cleanup of signatures and version infos - this is part of a fix to bug #909.
I've done all preferences apps for now, and some related.
* Some other related cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-22 14:55:44 +00:00
Axel Dörfler
c04f283d6a Fixed the bug noticed by Philippe - we might not only be able to open the
"interfaces" file in the future :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 21:37:31 +00:00
Axel Dörfler
b01a3a33a6 * Implemented node monitoring: if you change the interfaces settings file, the
networking stack is reconfigured automatically.
* The previous default route is now removed before installing a new one.
* "gateway" was missing in the driver settings to BMessage conversion template,
  and thus, it was only set to a default value in case there was no settings
  file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 13:37:13 +00:00
Axel Dörfler
535df2cff3 Now also supports setting a gateway through the configuration.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 12:20:44 +00:00
Axel Dörfler
53d1802e02 Now checks if a valid configuration was found, and if that's not the case, it
will automatically configure the stack - without DHCP for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 12:11:19 +00:00
Axel Dörfler
1a2ad4cb2c * Moved settings stuff into its own file.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 11:24:57 +00:00
Axel Dörfler
919c897b98 Started writing the new networking server. Right now, it'll configure the
networking stack according to some settings file. Doesn't do anything beyond
that yet, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-19 10:45:11 +00:00
Axel Dörfler
122a163324 The mouse event window will already be reset in RemoveWindow() (through HideWindow());
doing it here is not only superfluous, it would also cause to lose the window when switching
to a workspace where the window is not visible and back while dragging it around.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-17 20:52:03 +00:00
Axel Dörfler
8c68eab694 Fixed two different bugs that could cause bug #896:
* the app's Activate() method was called unsafely; the ServerApp pointer could
  have become invalid in the mean time.
* when hiding a floating window (because its parent got hidden) that had focus
  or even was the mouse event window (was currently dragged over the screen)
  the focus was not moved to another window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-17 20:44:13 +00:00
Axel Dörfler
7dfa04527c Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-17 20:40:26 +00:00
Jérôme Duval
6bb2fbd521 inherited is a private typedef of BWindow, said gcc4
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-14 15:18:57 +00:00
Axel Dörfler
6edab6011e We must not have the font manager locked when locking the desktop (no matter
if read or write); there are some methods that cause a locking of the font
manager (like ServerFont::SetFamilyAndStyle()).
This fixes bug #885.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-12 12:34:19 +00:00
Stefano Ceccherini
c585b1f46d GetEscapements() didnt' take the font spacing into account. Looks like the spacing is ignored by the font backend, though, am I correct?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-10-03 11:46:55 +00:00
Axel Dörfler
8b4fbcf3ad * Now dumps a message to the serial debug output in case a GUI server died; if the
registrar or the input_server died, you didn't get any notification before.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-28 15:47:44 +00:00
Jérôme Duval
ee670e9ce2 simplified syntax
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-21 13:05:39 +00:00
Stephan Aßmus
fd49bce12e * For DrawBitmap(), the bitmap rect needs to be aligned onto pixels
just like the view rect. This fixes bug 721.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-17 11:55:23 +00:00
Stephan Aßmus
d39634ce4d * on R5, the meaning of B_CONSTANT_ALPHA is a bit different
with regards to drawing bitmaps with alpha channel, instead
  of ignoring the bitmap alpha channel, it is further multiplied
  with the high color alpha channel, so basically, you can
  use the high color alpha as a "global" alpha value to
  draw the bitmap with
* removed some duplicate code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:07:02 +00:00
Stephan Aßmus
846cc588f2 * a fix for the bug where clicking a window decor button drew
over the mouse cursor. The problem is actually something else:
  non-straight lines extend a little past the calculated rectangle 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:03:39 +00:00
Stephan Aßmus
ae540011ed * when the layout branch was merged, the same problem
got fixed twice, any unoptimized lines were drawn at
  a (0.5, 0.5) offset


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 18:00:09 +00:00
Stephan Aßmus
a907e70198 * a hack to support transparent CMAP8 color in bitmaps
(this would fix the white background on disabled looking
   icons if Tracker would still use B_CMAP8 icons)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 17:57:37 +00:00
Stephan Aßmus
af957c251b * don't read the frame buffer a second time when no
blending has to take place


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-14 17:55:55 +00:00
Stephan Aßmus
4423855cbd This is the kind of bug you can search for hours. At first, I suspected
a concurency problem in the DrawingEngine, so there is some debugging
stuff added, as well as some unnecessary locking removed there. The
problem was in Painter though, in that certain functions adjusted clipping
at the "rasterizer level", while some other functions didn't care about
that. Now the clipping is consistently set at the rasterizer level (rough
estimate to avoid scanline generation outside real clipping region bounds).
There are a number of bugs fixed by this, I'm going to find out later,
what their ticket numbers are... Mouse preflet draws the mouse now,
Backgrounds preflet draws the screen reliably... probably more, anything
to do with bitmaps, round rects and possibly ellipses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18828 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-09-13 20:02:00 +00:00
Ingo Weinhold
6bfd06d1ff BRoster::Launch() eventually launches the application in question
in several steps:
1. early pre-registration with the registrar ("I wanna launch the
   app, make sure noone interferes.")
2. load the app image
3. finish pre-registration with the registrar ("I have launched
   the app, here is its team ID.")
4. start app main thread
5. send "on launch" messages to the app (argv, refs, others)

If the app is already running or being launched, 1. fails with a
conclusive error code and returns the team ID and the pre-registration
token of the app. Steps 2 - 4 are skipped and only the messages are
delivered using the team ID returned by 1.

This change fixes a race condition: The failed early pre-registration
request obviously cannot return the team ID, if the other thread
launching the app has not finished step 3 yet. Thus the argv/refs
message would not get delivered and Launch() would not return the
correct team ID.

Now we wait for the pre-registration to be finished in this case, using
the former _IsAppPreRegistered() mechanism, which already provided
such a waiting feature for one request. It has been extended to
accomodate an arbitrary number of waiting requests and renamed to
_IsAppRegistered().

This fixed bug #763.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-31 17:54:16 +00:00
Stephan Aßmus
7fb6186f3c * integration of vector icons with the registrar and the mime data base
* additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType
  and BAppFileInfo, which handle flat vector icon data
* changes in Tracker to support scalable icons (currently broken for
non-vector icons and needs cleanup) and drawing icons correctly with alpha
channel (large parts of this work done by Michael Lotz)

If someone feels like looking over the changes, that would be much
appreciated! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 17:06:23 +00:00
Axel Dörfler
7ee49d9f64 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-29 15:04:42 +00:00
Ingo Weinhold
9ecf9d1c1d Merge from layout management branch.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 16:21:15 +00:00
Axel Dörfler
a17c3a48b8 Changed the way DesktopSettings work:
* Removed the DesktopSettings lock itself - it's not really needed at all,
  and causes some trouble with a clean locking design. This may even have
  fixed bug #757, at least I couldn't reproduce it anymore.
* There is now a class for read-only access that requires you to have locked
  the desktop (either read or write).
* There is now another class LockedDesktopSettings that allows you to set
  settings (and only that) - when you're changing the settings, you must not
  have read locked the desktop (ie. hold the single window lock). The class
  will obtain a write lock, but write locks can be nested.
* Moved SetWorkspacesCount() into the Desktop class.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-26 15:13:08 +00:00
Axel Dörfler
17c6d00009 Parameter "window" is now allowed to be NULL (this fixes a crashing bug I introduced earlier).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 20:45:22 +00:00
Stefano Ceccherini
1ff0b28a93 Uncommented invalidation of the area occupied by the views when they are added/removed from the tree. This fixes a couple of problems, I can't say the bug # because bugzilla is down ATM. Why was this code commented out? Stephan ?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 14:09:15 +00:00
Axel Dörfler
5c87242ea3 Improved the fake mouse-moved mechanism quite a bit:
* EventDispatcher now adopts the cursor position from the HWInterface upon
  assignment, so that even the initial cursor reports match the on screen
  visuals.
* The message was never sent because "target" in Desktop::_SendFakeMouseMoved()
  was never set.
* EventDispatcher::SendFakeMouseMoved() now accepts an EventTarget and no
  longer a BMessenger (fits better to the rest of the API).
* EventDispatcher::SendFakeMouseMoved() now sends out the exit transit message
  to the previous target directly (doesn't wait until the next actual mouse
  move), and updates the previous target as well, so that scrolling now
  works in that new window.
* This only partially fixes bug #762, though, as GetMouse() can still steal
  this mouse message (BTextViews do that in WindowActivated()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 08:49:21 +00:00
Axel Dörfler
524c811b5d Renamed HWInterface::GetCursorPosition() to CursorPosition() to match
the usual style.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-24 08:40:44 +00:00
Axel Dörfler
d479fa7ae4 Floating windows no longer flicker when moving a window to another workspace
using the shortcut keys (Alt-Fn).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 21:49:59 +00:00
Axel Dörfler
6474795008 SetWorkspace() now also move the subset windows of the mouse event window to
the new workspace - this fixes bug #755. Unlike floating windows, they aren't
even redrawn :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18592 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 21:21:45 +00:00
Axel Dörfler
85e2542930 Shouldn't try to move windows to top that aren't yet in the workspace
(a.k.a. floating windows) in SetWorkspace().
This fixes bug #211.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 20:11:36 +00:00
Axel Dörfler
258d8a3380 When building the update region on workspace switch, the mouse event window was
ignored even if it was not visible on the previous workspace (only normal windows
can be moved this way).
This fixes bug #765.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-23 12:20:28 +00:00
Axel Dörfler
93d0415885 * If a BView::SetMouseEventMask() arrived in the app_server after the mouse buttons
have already been released again, the temporary listener was still added.
  This fixes bug #727.
* No longer removes temporary listeners if there are mouse buttons left pressed; ie.
  if you press two buttons at once, the listeners are now only removed after you've
  released them both. This is not only more logical, it's also how BeOS behaves :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-08-11 14:24:42 +00:00
Jérôme Duval
e2d5e00981 applied a patch from barber for bug #661. Thanks! This fixes a weird behavior when using the menu
minor cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-10 22:12:40 +00:00
Jérôme Duval
8703696801 input_server saves its settings on change, sending itself a 'Save' request message
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-07 15:38:53 +00:00
Jérôme Duval
c8bb68e11b when drawing a line, we check if the line is only one point, to even draw a line
this fixes bug #709, but it's not quite good in my opinion (Stephan, please could you review?)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-06 18:58:47 +00:00
Jérôme Duval
38f9b78d6c seems I was wrong here : no overflow happens since the comparison is done on the fly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-05 13:09:44 +00:00
Jérôme Duval
63e9b45d9d tentative fix for B_OP_ADD
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18039 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-05 12:56:25 +00:00
Jérôme Duval
98662fad6d apply the changes to the viewRect with the right scale
this fixes the scale bug I had


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-03 23:37:38 +00:00