Commit Graph
100 Commits
Author SHA1 Message Date
Stephan Aßmus fb36570967 * added a simple seeking slider for Marcus to play with...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-08 19:18:19 +00:00
Stephan Aßmus 19f441e575 the drawing code was optimized for bugs in Painter, no longer
necessary


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 09:04:14 +00:00
Stephan Aßmus 65abd9dff0 * Painter switches back correctly from using B_OP_COPY for text to
using the "normal" B_OP_COPY for lines and such that works more
  like B_OP_OVER actually (for example, the slider in VLC will look
  much better, but also other stuff)
* combined Stroke and FillEllipse() into DrawEllipse() and fixed
  some longstanding issues, ellipses are now correctly placed
  (aligned) and of the correct size
* removed locking in the DrawingEngine drawing functions, since
  you need to have the DrawingEngine locked anyways for the
  clipping to stay what it is (and that's already the case elsewhere
  in the code)
* simplified ConstrainClippingRegion, the NULL version was never
  useful and also locking is removed, see above

summary: slight speed improvements, cleanup and bugfixes...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 09:03:09 +00:00
Stephan Aßmus e6b19d1f40 removed unnecessary call to ConstrainClipping(), the drawing functions that take a color are reserved for the server and ignore clipping
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 08:56:59 +00:00
Stephan Aßmus ee24641fee removed large chunks of dead code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 08:55:28 +00:00
Stephan Aßmus 7e07723e68 added tracking the usage of the special B_OP_COPY version for text
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 08:54:15 +00:00
Stephan Aßmus 022cdecc8f simplified polygon and bezier drawing methods, made them more efficient
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 20:34:27 +00:00
Stephan Aßmus d96389c199 fixed BView::Stroke/FillPolygon(), the bounds were not converted to screen and the clipping decision was based on it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 20:33:18 +00:00
Stephan Aßmus a9efee3047 * removed left over debug output, sorry about that
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 11:09:37 +00:00
Stephan Aßmus 6a8e3decde * compile fix for the test environment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 11:08:52 +00:00
Stephan Aßmus d6aecd8934 should have fixed BView::StrokeBezier() and BView::FillBezier(), thanks to jan__64 for reporting
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-03 10:08:23 +00:00
Stephan Aßmus e1fcb5e4b8 added Carwyn Jones to the list of contributors, he seems to have been involved in writing BDirectWindow
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-01 10:18:52 +00:00
Stephan Aßmus 114752ff21 In FFM mode, clicking a window will not bring it to front
immediately. Only if the mouse is released within a certain
time window (half a sec) and if it was not dragged (as on R5).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-01 10:17:34 +00:00
Stephan Aßmus e647873a03 implemented TODOs from Desktop::ActivateWindow():
* If the window is on another workspace, the workspace will be
  activated or the window will come to the current workspace
  or nothing will happen depending on the windows flags. Tested
  with WonderBrush, but I just now realise that it will also
  fix activating a window in the Deskbar, which is on a different
  workspace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-01 10:14:51 +00:00
Stephan Aßmus aaff012f00 Rudolf convinced me to enable WaitForRetrace() again, the ATI driver should be fixed instead (not to export the retrace semaphore when interrupts are disabled)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-30 10:48:02 +00:00
Stephan Aßmus 4da35ea940 * added IFS screen saver
* added Installer app
* added all Translators


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 20:14:26 +00:00
Stephan Aßmus 1224ddd152 whoops, accidentally had a broken makefile left there
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 20:10:51 +00:00
Stephan Aßmus bc679b6077 added a cool looking xscreensaver port, featuring BDirectWindow usage - looks smoother than the original
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 20:08:44 +00:00
Stephan Aßmus a075725845 another long overdue fix... CopyBits() is now taking
children of the view in question into account. Neither
are they included in the region being copied, nor are
views overdrawn by the copied contents. Also, the update
region is calculated from the region having been copied,
so that holes from children views are invalidated
correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 18:19:54 +00:00
Stephan Aßmus 5ec797a76f * improved getting the retrace semaphore, now the PrivateScreen
will not try to retrieve the retrace semaphore again and again
  if the graphics cards doesn't support it for some reason
* disabled BScreen::WaitForRetarce() for now, since it will just
  hang on ATI Radeon at least


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:46:21 +00:00
Stephan Aßmus 9ac741b2d2 * small cleanup in AS_DIRECT_WINDOW_GET_SYNC_DATA
* added handling of AS_DIRECT_WINDOW_SET_FULLSCREEN
  (returns B_ERROR for now)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:40:29 +00:00
Stephan Aßmus 9d8ea7e417 modestly added myself to the authors of View.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:37:10 +00:00
Stephan Aßmus f87b5b9803 long overdue fix for BScrollBar. fValue is now set in SetValue()
instead of ValueChanged(). This fixes BScrollBar implementations
which don't call the inherited version of ValueChanged(). All kinds
of weird behaviour seems to be fixed by this: StyledEdit window
resizing, scrolling in Pe, WonderBrush, eXposer and maybe more.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:36:31 +00:00
Stephan Aßmus a1a536495a corrected slightly weird passing on of flags to the BControl constructor
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:34:10 +00:00
Stephan Aßmus 2e964229ed removed a tiny bit of code duplication
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-29 16:31:59 +00:00
Stephan Aßmus 109d4881b5 changed translator name to JPEG[2000] Images to be in line with all the other image translators
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-27 22:42:15 +00:00
Stephan Aßmus c98821ac71 * added GUI classes for the transport control panel implementation
* as noted by the headers, these originate from Be Sample Code or
  code that was written by myself alone for VLC (they have been
  updated in the meantime though)
* seek slider is missing yet as well playback position info view
  (could be taken from VLC as well, I still have the implementation
  that contains only my own code)
* fixed application quitting when only one of multiple player
  windows is closed (not it quits when the last player is closed
  or MediaPlayer->Quit is selected from the menu)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-24 16:49:19 +00:00
Stephan Aßmus 3ca1310ac7 * cleaned up and optimized a lot setting the font in Painter and
AGGTextRenderer (when switching the DrawState for font stuff)
* removed unused stuff from the font signature generation that
  is used to synchronize the font cache
* finally nailed that bug that made glyphs of the wrong size appear
  within lines of text (the problem basically was that outside code
  messed with the freetype library instance while our glyph cache
  thought the library was last setup by itself)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 21:50:05 +00:00
Stephan Aßmus 9d35303f63 added a "reset()" function so that kerning can start clean
and has no left overs from a previous text run


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 21:45:20 +00:00
Stephan Aßmus 8087170c53 * a bit of code clean up
* some fixes to make screen_blanker wait_for_thread() instead of
  killing the screen saver thread, BScreenSaver::Stop() is now called
  as well as its destructor


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-22 20:18:52 +00:00
Stephan Aßmus bc692d448e encoded Jérôme in UTF8
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-22 20:16:13 +00:00
Stephan Aßmus 3a8e8e427b * Archive() should have been broken, because it didn't add the
class name. Also returns the actual error from the
  BMessage::AddData() if there was any. Please people, correct
  code like that if you spot this elsewhere and don't write
  such code anymore.
* the BMessage constructor should be more robust.
* the copy constructor takes the possibility into account
  that BitsLength() does not match.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 10:14:35 +00:00
Stephan Aßmus 0c4d8bc572 * added TODO in DragMessage about using an area for the message
* removed TODO in DragMessage about reference counting, since
  it already happens
* use _FlushIfNotInTransaction when moving/resizing a view
  programmatically, so that it usually happens instantly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 10:09:53 +00:00
Stephan Aßmus 2fdf723b60 * replaced BeOS logos in boot disk and BeOS folder icon with
a (hopefully) cute rocket. It's not quite as readible as
  the other overlays, so I might work on it some more. Also
  note that it is a manned rocket, as per the window, so I
  hope it cannot be mistaken for a missile. :-)
BTW - talk about self contained development, the icon was
done on Haiku!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 10:07:13 +00:00
Stephan Aßmus dd98ed8dfc * implemented view bitmap options (B_BITMAP_TILE...) in
ViewLayer (for example, fixes NetPositive rendering
  HTML with a background image)
* use BRegion pool everywhere in ViewLayer
* WindowLayer update sessions distinguish between
  different reasons for the update: exposed and requested -
  on expose updates, the view backgrounds are cleared
  immidiately (as on R5), to keep the time previous stuff
  keeps showing as short as possible, while on requested
  updates, the background clearing is delayed until the
  client draws something, to keep the time until the client
  fills a view with content as small as possible to reduce
  flickering (might need more work, could be buggy yet)
* HWInterface and DrawingEngine support delayed syncing to
  the graphics hardware at least for FillRect/Region. The
  speed up gained by this is minor though.
* HWInterface cursor rendering uses a bit of rounding to
  avoid the slight transparent shadow around the cursor
  (I don't know if it is fully correct though, at least the
  shasow disappeared)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-19 14:12:57 +00:00
Stephan Aßmus 8165fa3936 * fix bug 414 by Sync()ing in UpdateIfNeeded() to make
sure all messages that could trigger an update have
  actually arrived at the server
* small clean ups here and there, some clarifications in
  comments
* check for the return value of Lock() in DisableUpdates()
  and EnableUpdates()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-17 20:42:22 +00:00
Stephan Aßmus b57f2b537e * added handy BBitmap::Flags() method
* added NOTE to BBitmap::LockBits(), has anybody some insight into this?
  Otherwise we need to write a test app to discover its secrets... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-13 13:15:00 +00:00
Stephan Aßmus b6a33e1d41 * removed the special font renderer which was actually
the same as the normal one (one less renderer to update
  the color of)
* added a special B_OP_COPY implementation for text, which
  is in fact what the implementation was until now, so
  just like on R5, you have to specify the correct low color
  or you will see artifacts for the anti-aliased pixels
* implemented B_OP_COPY just like B_OP_OVER (only it draws
  the low color too like it should). So all apps that
  used B_OP_COPY to draw anything can continue to do so
  without having to worry about the low color, it will
  be anti-aliased against the actual background instead of
  the low color (which made especially no sense when drawing
  with the low color). Although this change makes it a bit
  slower to use B_OP_COPY, Haiku is now much more compatible.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-12 21:02:59 +00:00
Stephan Aßmus 196144a56c the dark border is now drawn without holes at the edges, as on R5, also fixed the BBox being used as separator, like NetPositive does
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-12 16:51:40 +00:00
Stephan Aßmus f775a1fea7 forgot to remove debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 21:15:41 +00:00
Stephan Aßmus a5a38476ea fixed a couple of issues, but lots of work remains, doesn't crash with up side down BMPs in Windows format anymore... could someone provide me with a BMP that actually uses the alpha channel? I could not make one in Windows with Adobe Photoshop Elements.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-11 21:11:44 +00:00
Stephan Aßmus a089120898 enabled the crisp hinter for now... before release, we might have to reevaluate the patent issue thing... anyways it just looks SOOOOO much better now, I couldn't resist. You need to jam -a libfreetype.so, because a changed header doesn't trigger it (headers are included via MACRO in freetype)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-10 22:37:30 +00:00
Stephan Aßmus 995303fab0 synced with rev 1.11 from OpenTracker cvs, ignore read only volumes when building the navigation menu for the unified Trash folder
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-08 16:56:38 +00:00
Stephan Aßmus 39c9925fcf * implemented a BRegion pool per WindowLayer which is supposed
to cut down on BRegion related allocations, cannot really tell
  if it speeds things up
* used the new BRegion pool in WindowLayer and ViewLayer whereever
  a BRegion was used on the stack
* fixed the debugging stuff in MultiLocker - it will get you into
  the debugger if you
    - try to nest read locks
    - try to write lock when your are a reader already
    - don't match up nested locks when your a writer
    -> but only if you #define DEBUG 1 in the .cpp, is off by default now
* went over WindowLayer, ServerWindow, Desktop and a few other places
  and fixed the locking for use with the MultiLocker, the "a reader can
  not become a writer" is especially tricky, feel free to review the
  changes
* activated the MultiLocker, I tested this quite a bit, if there are
  problems simply turn on DEBUG and you should drop into the debugger
  right where the problem is... hope all is good


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-07 19:14:25 +00:00
Stephan Aßmus 835a7ebdf0 no need to contact the server for this, transaction means that drawing commands are not immediately flushed, which is handled entirely on client side
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-07 19:04:51 +00:00
Stephan Aßmus b9e275a6a5 app_server remembers the font settings now
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-01 22:03:44 +00:00
Stephan Aßmus 600fbd78e4 * BView::FillRegion() sends the BRegion data instead of decomposing
it and rebuilding it on the server side (that causes a huge speed
  up for regions containing many rects)
* There is a method in ServerLink that could have been used, but I
  actually needed to add the direct BRegion support to LinkReceiver
* added LinkReceiver as a friend to BRegion class
* ServerApp and ServerWindow keep the CursorManager locked after they
  have retrieved a cursor until they have called Acquire() on the
  cursor. (Axel: what good is using atomic* stuff in Acquire() and
  Release() if we have to protect this by a lock anyways?)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-01 16:56:10 +00:00
Stephan Aßmus b22badf221 added TODO comment about writing an AGG Vertex Source for BShape data
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-01 16:49:18 +00:00
Stephan Aßmus 5d0c78f416 skip hardware acceleration for small regions, should speed up rendering of small regions in the same way it helped small rects
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-01 16:48:28 +00:00
Stephan Aßmus 306e92084c * small cleanup of Draw (less usage of ui_color() which currently
takes a trip to the server!)
* changed look of mark and submenu symbol to better fit the rest
  of the already changed controls
* the actual background color is passed to DrawMarkSymbol() and
  DrawSubmenuSymbol()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-27 18:20:06 +00:00
Stephan Aßmus cc7c040b56 * Renamed occurrences of "Reboot" to "Restart".
* Added TODO regarding the mismatch of shutdown phase names, comments,
  and the actually executed actions. The phase names and comments say that
  the background apps are terminated before the non-application processes,
  while in reality things are done the other way around. I suppose the
  latter order is correct though.  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-27 12:05:40 +00:00
Stephan Aßmus 2297a36b5b * added functions to improve binary compatibility with old apps
-> Guido (for which there is source available though) is now
  running fine on Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16860 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-22 20:33:02 +00:00
Stephan Aßmus 4ec7e19751 * fixed filling B_CMAP8 bitmaps with white (255 was the wrong
color index)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-19 22:35:20 +00:00
Stephan Aßmus d7e9392e25 forgot I made this change... added locking to
the lookup of a cursor


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-19 22:34:05 +00:00
Stephan Aßmus 8e56a3ff2e * some cleanup (removed unsued functions, regrouped others)
* FillRect() doesn't use the HW acceleration if the rects
  are too small (< 100 pixel area, about the sweet spot on
  my box) -> the same change should be used for FillRegion as
  well. (4x speed up of rendering large amounts of small rects)
* replaced dynamic allocation and freeing of blit_params and
  fill_rect_params in the accalerant based HWInterfaces on the
  heap with caching to make using the accelerated functions a
  little less expensive
* fixed a bug in bypassing Painter for B_OP_OVER when the
  pattern was B_SOLID_LOW (nothing should be rendered)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-19 22:33:00 +00:00
Stephan Aßmus af3ac4e80f replaced usage of floor() and ceil() to convert from
BRect to clipping_rect with simple C casts. I think this
is more adequate, since clipping_rects are used for
pixel indices. This change fixes some graphics problems too,
it appears that cursor coords are fractional on Haiku, even
with a normal mouse. In Playground, this resulted in the
hit points being rendered wrongly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-19 22:26:17 +00:00
Stephan Aßmus 420379aef6 I should have finally fixed those app_server crashes
in HWInterface::_DrawCursor(). Axel, even though we
understood the problem, we didn't really fix it back
then: When the sync flag was set to true in
BView::SetViewCursor(), the link was only flushed,
which means that the function still returned before the
ServerWindow thread processed the message. This means
that the race condition (the cursor being immediately
deleted after SetViewCursor returns, which might be
processed in ServerApp thread before the SetViewCursor
request in ServerWindow thread) still existed. I changed
SetViewCursor now to do a real sync (wait for the
ServerWindow reply) before returning. The alternative
would be to set the fPendingViewCursor flag in either case.
Anyhow, I could reproduce the error quite reliably before
this change, and now it is gone... here is to hoping!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16809 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-15 14:04:44 +00:00
Stephan Aßmus 1dec876930 * Micheals patch alone didn't fix the problem.
I'm also wondering where those exceptions are actually caught.
* when unflattening into a message, MakeEmpty() will be called
  on it first. This will actually fix the crashing bug I observed,
  but it makes me suspicious - there should be an error somewhere
  else. Something to do with initialization perhaps?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-13 12:28:20 +00:00
Stephan Aßmus e7df4a4829 add a small test that stress tests window creation and destruction
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:41:51 +00:00
Stephan Aßmus df29904e48 update error messages
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16720 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:40:49 +00:00
Stephan Aßmus 30ce5790f2 added two TODOs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16719 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:39:35 +00:00
Stephan Aßmus a587720a30 print something to stderr when window creation fails
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:39:03 +00:00
Stephan Aßmus a0cfff3e97 fix crash in case fTopLayer is NULL when the window is destructed, this will happen when the ServerWindow thread could not be run
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:38:20 +00:00
Stephan Aßmus d26af39650 actually add the converted rects to the region
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:37:28 +00:00
Stephan Aßmus 47c2c0f2c8 fix some memory leaks, please review
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:35:47 +00:00
Stephan Aßmus a9bee75b3e fix a problem in case the port id was indeed 0, which is very unlikely though
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:34:36 +00:00
Stephan Aßmus ecf9f94800 * cleaned up fPulseRunner stuff, I have no idea why fPulseEnabled was
useful... so I removed it
* fixed memory leak with SetPulseRate(0), fPulseRunner is now
  properly freed in the Window destructor
* fTitle is now freed as well
* fix some potential leaks in BView destructor as well

I wrote a stress test app, which I'm soon going to commit as well...
it shows that not all memory leaks are fixed by this patch, I could
use some help with this...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16713 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 19:32:53 +00:00
Stephan Aßmus 26f8325935 fix build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 19:04:26 +00:00
Stephan Aßmus 5891799085 * this should improve the performance of operator=
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 19:03:44 +00:00
Stephan Aßmus 907e89c6e8 * The EventDispatcher takes care of reference counting the ServerBitmap
used for the drag bitmap, see NOTEs on why that is...
* moved reference counting of the ServerCursor from Desktop into
  HWInterface where it is actually used
* I hope to have fixed the problems with _DrawCursor when dragging
  something. At least the reference counting of the ServerCursor was
  for real, since the HWInterface rejected changes to the cursor while
  something was dragged, which caused the old cursor to be Released() and
  deleted each time the mouse moved...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 19:02:20 +00:00
Stephan Aßmus 8e89843efc * when the client constrained the clipping on a view, the server used to
take an empty region as an indication to remove the clipping, but on R5,
  this is actually valid... this patch fixes the problem
* the ViewState::clipping_region is now consistently used to memorize
  the user defined clipping of the view state instead of being sometimes
  used to cache the current view clipping


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 18:57:44 +00:00
Stephan Aßmus 8b41c21369 * B_BITMAP_WILL_OVERLAY bitmaps are currently not
supported. (makes VLC run without changes)
* B_BITMAP_CLEAR_TO_WHITE causes the server to
  clear the bitmap to white... :-)
* removed weird comment


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-03 20:24:13 +00:00
Stephan Aßmus 9a0c473378 * hopefully fixed the weird color inversion of
colors with full saturation in the part where
  the cursor is transparent
* fixed leakage of cursor data (placed making the
  copy it in the wrong bracket)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-27 11:43:10 +00:00
Stephan Aßmus 588259b66d various changes to handling custom cursors:
* all cursors owned by a team are visually different,
  or (iaw) an already existing cursor is reused when
  it is set by the client again
* changed various occurances of cursor data from "int8*"
  to "uint8*"
* ServerCursors also remember the R5 data from which
  they were created
* the reference counting and destruction of
  ServerCursors changed: The cursor knows it is attached
  to a CursorManager and one can simply use
  ServerCursor::Acquire() and Release() and the reference
  counting and everything is being taken care of
* destroying a ViewLayer will now correctly release a set
  ServerCursor
* fixed a race condition when setting a cursor through
  BView::SetViewCursor(): If the client code looks like this:

  BCursor cursor(cursorData);
  someView->SetViewCursor(&cursor, false);

  there is a relatively high chance the BCursor destructor
  told the ServerApp thread to destroy the cursor before
  the ServerWindow thread got to "acquire" the cursor for
  use by the view layer. The very same problem is likely the
  reason that SetViewCursor works to unreliably on R5, even
  when the "sync" flag is set to "true" (although it should
  theoretically work in that case).

all these fixes make WonderBrush work fine again with the
new support of custom cursors.... coded by axeld and myself
(the joys of pair programming :-)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 18:15:31 +00:00
Stephan Aßmus 2d8561e4c6 make it easier to get a stack crawl in case the server crashes after quitting in the test enviroment (code by axeld)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 18:03:00 +00:00
Stephan Aßmus 43307330ce the main inactive border color matches the now lighter tab color
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:59:20 +00:00
Stephan Aßmus 4aaa5aa100 * added a way to retrieve the view under the mouse
via token

(coded by axeld)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:58:03 +00:00
Stephan Aßmus c684b4ca64 oops, this completes the previous commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16517 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:56:59 +00:00
Stephan Aßmus 83fb1d46b1 limit the rate at which windows are moved to 50 fps, the various clients have now more time to redraw stuff
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:55:33 +00:00
Stephan Aßmus 81c5a58e04 * slightly adjusted coding style
* lightened up inactive window tab


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:53:57 +00:00
Stephan Aßmus d511c14bbd no longer needed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16514 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:52:16 +00:00
Stephan Aßmus 3afffe04bb the thumb is more visible when the ScrollBar has the disabled look... my girlfriend suggested that so you all just have to accept it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16513 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:48:34 +00:00
Stephan Aßmus 10443b3306 fixed mouse tracking to not initiate a drag after mouse up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:47:02 +00:00
Stephan Aßmus fb39ecb534 * Added an "iospace" debugger command.
* Fixed broken "full sem" mechanism.
* Fixed recycling of previously mapped IO space chunks. Should avoid the
  panic() call earlier introduced by Marcus.

(tracked down by axeld and bonefish over the course of three days
(in between skiing) and finally nailed on the bus back home)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:44:27 +00:00
Stephan Aßmus b270799715 * read_chunk_into_cache() might not have put back physical pages
in case of a read error.

(coded by axeld)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:41:38 +00:00
Stephan Aßmus 6106f57e21 * Didn't allow to write back attributes outside the inode block (they don't
have a user accessable stream, but they do have a file cache).
* removed superfluous dump_inode() version; the "bfsinfo" debugger
  command is now a bit more useful as well.
* Inode::fAttributes was not initialized when it wasn't used.

(coded by axeld)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:40:41 +00:00
Stephan Aßmus 067c811fe8 * "Extra Attributes" can now be added as well.
* Moved AttributeListView and AttributeItem into its own file.
* Can now be compiled on R5 systems again.

(coded by axeld)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16506 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-26 17:37:42 +00:00
Stephan Aßmus f282009d15 * _BMCItem_ is no longer used, but I didn't remove it
yet, just commented it out in BMenuField. As was expected,
  nothing changed in any obvious way
* made the _BMCMenuBar_ draw the popup marked. I changed it
  a bit, inspired from some mockup I saw, sorry I don't
  remember where. I hope you like it (it is easily changed
  back if you don't).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16444 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-16 22:57:19 +00:00
Stephan Aßmus ccf81dc9d2 * made the button height proportional to the font
size instead of having a fixed spacing... should
  be more asthetical.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-16 22:55:02 +00:00
Stephan Aßmus 3dfd20c019 * made the font of the "Set Background..." button
a little smaller, to lessen the importance of this
  button.
* changed the "standard" frequencies. I hope this
  doesn't have any negative impact on anything.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-16 20:18:59 +00:00
Stephan Aßmus df3f5bac68 * enjoy a fully font sensitive Screen preflet
* the Radeon specific controls are now layouted below
  the other menu fields, it is easily changed back
  to the side by side layout by changing the default
  value of "sideBySide" for ScreenWindow::LayoutMenuFields()
* I added a "Set Background..." button, because I didn't
  like the hidden functionality of the monitor view too
  much. That is still there though.
* TODO: fix the awareness of changes to the workspace
  count and include those in "reverting" and "defaults"


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-16 15:25:25 +00:00
Stephan Aßmus c72e7319b2 * have the MenuBar resize to preferred in
ResizeToPreferred()
* fix and sanitize GetPreferredSize()... people,
  think "simple"


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-16 15:17:41 +00:00
Stephan Aßmus e10bfa7a59 * round the top border offset
* actually use it inside the control too


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-16 15:15:59 +00:00
Stephan Aßmus c81d2e7a59 * fixed window zooming/unzooming behaviour
* fixed FrameResized() and FrameMoved() not
  being called anymore in response to ResizeTo()
  and MoveTo() since I introduced a check in
  DispatchMessage() (fixes bug #123)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-09 16:39:46 +00:00
Stephan Aßmus ebae3c7d61 this fixes Chart leaving dirty stars in BDirectWindow mode... at least on my machine. Looks like BDirectWindow resizing is notably smoother on Haiku btw. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-09 15:07:56 +00:00
Stephan Aßmus d365e2039e small cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-09 15:05:33 +00:00
Stephan Aßmus 76cf2ec33f turn off the blitting based MoveBy version, until it works better. The problem is that resizing views with children can invalidate parts which could still be copied by blitting when the child is moved because of FOLLOW modes. Or the problem is only with views that are moved and resized at the same time. I will find out later...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-09 12:42:08 +00:00
Stephan Aßmus b5182fe099 don't blit stuff arround on screen when moving or resizing invisible windows, this bug was most visibly triggered when navigating menus, since the menu window was reused and moved and resized when it was invisible, weird things could happen on the screen...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-09 12:38:46 +00:00
Stephan Aßmus 6697289d80 some changes supposed to speed up VESA mode on real hardware, based on my experience with optimizations in other parts
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-06 19:36:30 +00:00
Stephan Aßmus 95e29889f4 This fixes the update problems that I could observe. The client might have been not in sync with the server regarding window position and size, which in turn messed up the ConvertFromScreen() functions and also the view Bounds(). Therefor the current window geometry is also added to the information the client gets when starting an update session. I think the problem was there before my previous changes, just maybe less likely to be observed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-06 19:34:36 +00:00