Commit Graph

2372 Commits

Author SHA1 Message Date
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