Commit Graph

2069 Commits

Author SHA1 Message Date
Axel Dörfler
258d8a3380 When building the update region on workspace switch, the mouse event window was
ignored even if it was not visible on the previous workspace (only normal windows
can be moved this way).
This fixes bug #765.


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


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


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


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


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-03 23:37:38 +00:00
Jérôme Duval
ae3b2d5af2 reverting part of previous change, this was breaking the working part of scaling, still some bugs though
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-03 22:51:57 +00:00
Jérôme Duval
b8fc177d9c * default source BRect is now offset to B_ORIGIN because Bitmap bounds lefttop could be something else than (0,0). This caused some bugs in Haiku SoundRecorder app
i* thus the NOTE in Painter isn't valid anymore
* in Painter::_DrawBimap() moved scale computation after potential changes to BRects
* fix typo : right => bottom. This caused a bug in Haiku Mouse preferences app


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-07-03 19:49:51 +00:00
Jérôme Duval
4894b87045 updated freetype to 2.2.1, tested ok, please forgive me for possible left issues :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-27 11:34:35 +00:00
Axel Dörfler
3a44e6e37d Fixed a big race condition in the server code:
* ServerApp was accessing ServerWindow::Window() (while having the app window
  lock held), but in fact, there was no guarantee it already existed, or was
  added to the Desktop.
* Therefore, the Window() semantics have changed to only return a window in
  case the window exists *and* has been added to the desktop (the latter
  constraint might be lifted again, though). Therefore, it doesn't work
  for offscreen windows, and should not be used within ServerWindow code
  anymore.
* This fixes bug #686 and maybe others as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-19 23:42:22 +00:00
Jérôme Duval
bafde775b9 made midi server beos compatible
fix binary compatibility for several classes (I missed this before)
the soft synth loads by default /boot/beos/etc/synth/big_synth.sy (which I locally linked to a General Midi sf2 bank
tested with MidiSynth 1.6 on Haiku


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-17 14:04:46 +00:00
Stephan Aßmus
e39da397f5 * long overdue update to AGG 2.4
* removed the useless parts of AGG (which are only needed for the
  interactive examples)
* make sure to jam -a libagg.a to solve any linking issues


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-14 14:30:17 +00:00
Jérôme Duval
89b35356db revert 17726, my change wasn't good
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-14 11:57:52 +00:00
Axel Dörfler
c29875897d Reduced the upper limit of ellipsis divisions as suggested by Stephan.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17833 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-14 10:49:27 +00:00
Axel Dörfler
66e114c429 BView::SetEventMask() had no effect when called before AttachedToWindow().
This also fixes bug #620.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17802 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-12 21:54:24 +00:00
Axel Dörfler
82584ab9c2 * Implemented AS_DIRECT_WINDOW_SET_FULLSCREEN so that it sets kWindowScreenFeel
when enabled, and B_NORMAL_WINDOW_FEEL when disabled. IOW when enabled, no
  other windows can interfere.
* Therefore, it's no longer necessary to have the screen_blanker window
  use kWindowScreenFeel - it will set its window to full screen as long
  as the blanker runs.
* Added a AS_APP_CRASHED notification in the app_server that will remove
  all kWindowScreenFeels from the windows of the crashed app.
* This is now used by the debugger to ensure that the debugger alert will
  be visible.
* Factored out a DesktopLink class out of the BRoster::_ActivateApp()
  method. This class is now also used in the new BRoster::_ApplicationCrashed()
  method as used in the debug_server (via BRoster::Private).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17785 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-09 21:46:40 +00:00
Ingo Weinhold
e4f35acf7c * Added new (currently private) API class BMimeSnifferAddon,
representing the interface for, well, MIME sniffer add-ons.
* Implemented the respective add-on manager and make use of it in
  the MIME database code. Unfortunately the MIME DB code completely
  lives in libbe.so and hence I had to put my code there too.
  IMHO we should (one day) remove the direct (read-only) MIME DB
  access from libbe and move everything into the registrar.
  Currently the add-on manager supports built-in add-ons only; it
  doesn't really load anything from disk ATM.
* Added a built-in text sniffer add-on to the registrar. It's based
  upon the BSD file tool code.

This closes bug #250 (plain text files are identified as such, now).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17784 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-09 20:48:50 +00:00
Jérôme Duval
1b4a4f541a changes the background color of CurrentAppIconView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17726 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-05 10:21:02 +00:00
Axel Dörfler
1434300528 As Stephan pointed out, I accidently misread the previous max_c() construct.
Apparently, there was an integer overflow of some kind with BePYRO, but this version
if safe as well, and should look much better.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-03 22:30:15 +00:00
Axel Dörfler
43d3560b25 * As the generated SystemKeymap source is used as a header, I renamed the
generated file from SystemKeymap.cpp to SystemKeymap.h.
* The keymap was even compiled into the input_server twice, as it was also
  listed as source file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-03 15:33:26 +00:00
Axel Dörfler
a17be10094 * "divisions" could be lower than 1. This fixes bug #510.
* Moved expensive computation out of the max_c() macro.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-03 14:14:59 +00:00
Axel Dörfler
c8467d6ba1 * Further improved error handling in class Keymap.
* Improved header output, it now looks a lot nicer.
* Fixed style issues of that header, too: replaced "s" prefix with the
  correct "k" prefix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-01 13:06:40 +00:00
Stephan Aßmus
86f902c3ed save and restore menu and mouse settings, fixes bug 607
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-31 19:23:26 +00:00
François Revol
f428e7ad4a Don't use a tab size that we might just later enlarge when calculating maxTabPos...
Fixes bug #643


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-30 15:03:02 +00:00
Axel Dörfler
bc201ef914 This fixes a possible broken placement of the tab - always happened with Magnify, for example.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-30 11:51:27 +00:00
Axel Dörfler
2815b65b04 This should allow you to switch into workspaces that are occupied with a BWindowScreen
by clicking into the workspace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-30 11:50:11 +00:00
Axel Dörfler
1cffe232de Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 23:58:45 +00:00
Axel Dörfler
0480cf1a60 * The (right-most moved) tab no longer goes away when resizing the window to a size
smaller than the tab size. This fixes bug #642.
* There are remaining issues while resizing the window, though.
* Fixed warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 19:00:20 +00:00
Axel Dörfler
fa3c08f073 The workspaces window is now updated when a tab is moved - this fixes bug #641.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-29 18:41:16 +00:00
Stephan Aßmus
d35ed1a6db fixed some remaining issues with tab sliding:
* the tab keeps the relative position when the
  window is resized (could be done nicer though,
  now it uses two members)
* tab offset is no longer reset in _DoLayout(), ie
  when any aspect of the decorator changes...
one issue that is left is sliding the vertical tab
of kLeftTitledWindowLook windows, but there might
be more... like when the look changes or stuff like
that


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-26 21:26:35 +00:00
Stephan Aßmus
b30e90211e added a way for BWindow to store and restore arbitrary decor settings,
currently those include only the tab location


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-25 12:01:28 +00:00
Stefano Ceccherini
a7dc54697c The drawstate is now synched when the recording of a BPicture starts. Some reordering of the function calls, implemented B_PIC_SET_BLENDING_MODE, some other cleanups
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-24 19:10:15 +00:00
Stephan Aßmus
46fb2d73be sorry, I couldn't resist...
* added a few very small changes to make the tab sliding work perfectly
* added a comment on the purpose of WindowLayer::fLastMousePosition and
  how it is supposed to be used to have the mouse cursor stick to what
  is being dragged
* TODO: the tab offset doesn't necessarily have to be on [0..1], as long
  as we update it during window resizing to keep the relative position


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-24 11:05:25 +00:00
François Revol
382084bd0a The return of the long awaited for Sliding Tabs, that even Linux users envy!
Needs some cleanup, passed values should be inside [0:1].
Need to make sure changing the title doesn't reset the tab to left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-24 00:42:34 +00:00
Axel Dörfler
4e65a2073d The shutdown window now uses the same placement method like BAlerts.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 18:21:33 +00:00
Stephan Aßmus
a7f936aa14 * cleanup
* fixed SetViewColor() - I have no idea why it compiled before
* changed SetHidden() to make less of a difference between
  the top view and other views, the clipping is now always
  rebuilt


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 10:05:17 +00:00
Stephan Aßmus
8dc6e23650 cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17526 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-22 10:03:24 +00:00
Axel Dörfler
b0bc48fbd3 Some more GCC 4 and PPC fixes.
* Mesa doesn't compile yet, as some PPC specific stuff seems to be
  missing, Philippe?
* Cortex and some other stuff has been marked x86-only, although
  it's more of a "GCC 2.95.3"-only.
* I'm not sure if it's a bug in GCC 4, or if that's what the C
  standard demands, but sizeof(some_type::some_field) is not
  valid anymore :-/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 15:52:21 +00:00
Stephan Aßmus
75b7acdac8 * commented out the code to invalidate a view when
it is added our removed to another view, this is
  taken care of in View.cpp until we find something
  better


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17511 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:55:56 +00:00
Stephan Aßmus
f5643345cd added an async version of MarkContentDirty(), which would clear the backgrounds in case an expose event had already happened earlier, however, it turned out I didn't need it yet, see next commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17510 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:53:01 +00:00
Stephan Aßmus
3e58cde6dc minor clean up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 09:51:38 +00:00
Axel Dörfler
3652a43917 * Accidently broke overlay (but BerliOS didn't let me commit yesterday :-/), since
ViewLayer::SetViewBitmap() did not show the overlay, only updated it.
* Simplified overlay handling a bit, removed Overlay::Show(), and IsVisible(),
  replaced Update() by Configure().
* Made similar changes in the HWInterface as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17504 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 08:42:46 +00:00
Axel Dörfler
cdd7c1fb44 This fixes that a window appears to lose focus when switching from borderless
to bordered window (ie. VLC when switching back from full screen mode).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17503 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-19 08:40:07 +00:00
Axel Dörfler
d41fb4db6e * Overlay::fVisible was not maintained correctly, but already used in ViewLayer.
* Overlay::SetView() no longer calls HWInterace::UpdateOverlay() if it's currently
  hidden.
* ViewLayer::UpdateVisibleDeep() now calls _UpdateOverlayView() before showing
  the overlay.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-17 12:46:56 +00:00
Marcus Overhagen
73dacb878d Allow invisible views with overlay to be properly updated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-16 20:16:31 +00:00
Axel Dörfler
8e2f6185f5 Overlay was not correctly updated when moving the window - it was only updated if
the overlay buffer changed. Found by Marcus.
As a result, the overlay window looks much smoother when moving it around (and it
even starts to move when you don't change the overlay bitmap at all...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17484 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-16 19:12:01 +00:00
Marcus Overhagen
4cf01e2ecc Fixed off-by-one error that prevented finding nodes using wildcard names, like DVB*
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17467 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-15 18:43:36 +00:00
Axel Dörfler
140e4f87c8 If you switched between a 32 bit mode and another, hardware acceleration was accidently
turned off - note also, that only the 32 bit mode is currently hardware accelerated!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-11 13:13:53 +00:00
Axel Dörfler
4eb16023d1 Marcus' change had a point, though: we now handle the first mode switch differently
in that we try really hard to let it succeed. If setting the desired mode failed,
we now try almost anything to get a working mode.
Since the kernel also knows the VESA mode, maybe we should better ask that one for
the current mode, as most drivers probably haven't got B_GET_DISPLAY_MODE implemented
in the we're using it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-07 18:07:37 +00:00
Axel Dörfler
ae219f104e Reverted the wrong part of Marcus' earlier patch. However, I made it a bit more
safe in the sense that it no longer clobbers fDisplayMode in case B_GET_DISPLAY_MODE
fails. This fixes bug #564 resp. #566.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-07 17:00:32 +00:00
Marcus Overhagen
cb9f2e8d34 Fixed the savety check to actually work.
Made sure that fDisplayMode is not modified if fAccSetDisplayMode failes,
as on my system fAccGetDisplayMode did return values that would crash 
because of a virtual_width beeing 0.
Generally, this whole class is pretty broken, as the functions modify *some*
class member variables before eventually failing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-07 09:33:59 +00:00
Axel Dörfler
db40254ac8 Floating windows are always closable, no matter if they have focus or not.
This fixes bug #558; Cortex floating windows have the B_AVOID_FOCUS flag set.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 17:04:16 +00:00
Axel Dörfler
95dfa2f806 For B_CMAP8 modes, the system palette is now set after the mode switch.
8 bit modes should now work fine under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-05 16:18:18 +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
Axel Dörfler
da09cca402 * Changed the way the overlay_view|window is maintained - it's now in Overlay.
* The overlay options as part of BView::SetViewOverlay() are now passed over
  to the graphics driver - looks like the color key stuff cannot be turned
  off (at least not via the Be API).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 20:25:19 +00:00
Axel Dörfler
458c9bfb2f The color key is now correct for other modes than B_RGB32 as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 14:53:05 +00:00
Axel Dörfler
fe19cff624 No longer invalidates the view when an overlay bitmap is updated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-04 11:21:36 +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
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
Axel Dörfler
6736b21a2a This should fix the wrong handling of BView::ClearOverlay() - probably, I haven't
tested it :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 21:22:56 +00:00
Axel Dörfler
4f4035561f Hacked AccelerantHWInterface::GetDriverPath() to call the accelerants
B_GET_ACCELERANT_CLONE_INFO (as that's what the caller actually wants).
Unfortunately, it's currently hard-coded to path names, that is, if there
is a driver out there that doesn't follow this quasi standard, it will
break this mechanism.
We should either change the driver interface to explicetly use path
names, or change the mechanism we're using (in BWindowScreen upwards to
the app_server) to the one as thought by Be.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 20:17:45 +00:00
Rudolf Cornelissen
7e96e63a20 added (fixed for now) enabling colorkeying and hor.and ver. filtering. Temporary, until SetViewOverlay()'s 'options' gets feeded here. The setting now in use should be perfectly safe and fixes the clipping and cursor (aparant) problems while using overlay on most gfx drivers. Axel, please review and update as needed ;-). Hope you don't mind this workaround for now..
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-05-02 14:50:16 +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
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
Axel Dörfler
93820f1ea7 Renamed moreUTF8.h to utf8_functions.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 10:16:19 +00:00
Axel Dörfler
e55d041b59 Finally removed SERVER_{TRUE|FALSE} and lots of other unused constants from ServerProtocol.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 09:33:08 +00:00
Axel Dörfler
23ae77aa56 * Removed ColorSet, it's no longer needed or used.
* The Decorator are temporarily using ui_color() - this needs to be changed
  to use the DesktopSettings (when the decorator stuff gets refactored); right
  now, the colors are fixed.
* Added B_WINDOW_TEXT_COLOR, B_WINDOW_INACTIVE_TAB_COLOR, and
  B_WINDOW_INACTIVE_TEXT_COLOR to the UI colors, B_WINDOW_TAB_COLOR is no
  longer deprecated. Note, however, that not every decorator may use these
  colors.
* Removed unused and wrong (ie. hard-coded paths) stuff from ServerConfig.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-26 09:03:28 +00:00
Axel Dörfler
583b05be46 Errors in Desktop::Init() and Desktop::Run() are now taken into account correctly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-25 20:18:01 +00:00
Axel Dörfler
6d5488e18a * There is now a server_read_only_memory structure that is placed in a (surprise!)
read-only area shared between the Desktop and all applications.
* Right now, this area only contains the desktop colors, ie. B_PANEL_BACKGROUND_COLOR
  etc.; ui_color() no longer needs to ask the server for these colors.
* The ui_colors are now maintained by DesktopSettings, though ColorSet is still there.
* The default colors are now hardcoded once and for everyone in InterfaceDefs.h, ie.
  the app_server uses them as well.
* Desktop::Init() can now also return an error (but that is not yet accounted for).
* Cleaned up InterfaceDefs.h.
* Fixed wrong include in moreUTF8.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-25 20:12:06 +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
Axel Dörfler
b793e7b72c No longer hide the "Application X has aborted the shutdown process" message when
that application quits; this just prevented us to see who the culprit is.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 18:15:05 +00:00
Axel Dörfler
621a832488 * Renamed ViewAux.h header to ViewPrivate.h.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 15:55:15 +00:00
Axel Dörfler
0ac013e66f * Some refactoring: renamed OverlayCookie to Overlay and put it in its own
source file.
* An overlay is now also hidden in case its is removed from the window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 15:45:35 +00:00
Axel Dörfler
f7c7883b9f * We now have working video overlay - even though the overlay_token handling
is currently broken, mode switches probably fail or result in sudden death
  (didn't try) it's good enough for Radeon cards and VLC (might work with
  others as well).
* Implemented follow modes for view bitmaps (wasn't taken into account at
  all before).
* Switched to a darker overlay color for now (dunno what exactly makes a
  good candidate there, but this one is good enough for now).
* Added TODO about a race condition in AS_LAYER_SET_VIEW_BITMAP.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17208 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-23 14:28:48 +00:00
Axel Dörfler
21c8c925d8 * With Rudolf's information about relocating overlays, I changed the way memory
is managed for those bitmaps:
  - the shared client memory mechanism is used to allocate a small overlay_client_data
    structure that contains the actual buffer and a semaphore that you have acquire in
    order to access it.
  - LockBits()/UnlockBits() now have a function: you need to call them before accessing
    the overlay buffer, and you need to keep that lock until you're done with it.
* The overlay cookie is now an extra member of the ServerBitmap class.
* Removed fInitialized from ServerBitmap - IsValid() now just checks the buffer associated
  with the bitmap.
* ViewLayer::Draw() will now handle overlay bitmaps specially and will draw the overlay
  color instead of any contents (this is currently in ugly pink, but will become some
  dark color later on).
* All what's missing from actually being able to use overlays now is to configure
  them so that they are shown on screen. VLC will now show an empty pink window when
  overlay video is enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-22 16:41:12 +00:00
Axel Dörfler
f33610f874 Fixed number 1 (or the only one? ;-)) crashing bug #306 in the app_server:
Since ServerWindow removed itself from its ServerApp in _PrepareQuit(), it could
happen quite easily that the ServerApp was deleted before the ServerWindow - and
since deleting WindowLayer as part of that referenced the ServerApp, it crashed.
Now, adding/removing is both done by the ServerWindow in Init() respectively
the destructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 22:43:23 +00:00
Axel Dörfler
aca37fccb5 Removed the check for B_SUPPORTS_OVERLAY in display_mode on bitmap creation - the
current display_mode doesn't matter, only the one where the overlay is shown later
does.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 21:19:15 +00:00
Axel Dörfler
68bf2de593 * Refined overlay support a bit: we now allow as many overlay bitmaps to be
created as the graphics driver does.
* Also, B_BITMAP_RESERVE_OVERLAY_CHANNEL should now work as expected.
* We're no longer using the B_OVERLAY_COUNT hook anymore - that one really
  looks like a misconception to me; I don't see how it can be useful.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 21:13:11 +00:00
Axel Dörfler
37b502f28b Implemented some more overlay support - the overlay bitmap is now allocated
via the graphics driver (but not yet shown on screen).
I probably got the meaning of the "overlay count" wrong - I guess that you
can allocate any number of overlay bitmaps, but can only see "overlay count"
on screen at a time (right now, I only allow to create "overlay count" bitmaps).
Stephan?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-21 20:14:41 +00:00
Stefano Ceccherini
b03deb09db Menu settings are now handled by the app_server. As a result, changing them does something, although they aren't saved to disk yet. 'click_to_open' is not checked anymore, because it was useless anyway, I'll remove it from the Menu preflet too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-19 20:04:19 +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
Axel Dörfler
90984a161a * Renaming or moving a directory within the known font directories is now
handled correctly.
* The path of moved styles is now updated (also when their parent directories
  are moved).
* FontManager::_AddPath() can no longer crash when you leave the _newDirectory
  parameter set to NULL.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-18 15:14:10 +00:00
Axel Dörfler
aca623bd06 Activating a window with B_AVOID_FOCUS set no longer changes focus - this prevents
the desktop window from losing focus when a menu opens.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17151 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-17 13:23:45 +00:00
Axel Dörfler
ccc21e3c82 Enabled fonts in the user font directory as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-16 15:38:11 +00:00
Axel Dörfler
604c8038ff Since the keyboard filter compared targets by their pointers, it could happen
that it didn't reset the EventDispatcher's focus target even though the object
underneath that same pointer had change, which caused the EventDispatcher to
drop the event.
This fixes bug #416, and should fix bug #409, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-16 14:16:31 +00:00
Axel Dörfler
6e69baffb1 Desktop::SendBehindWindow() now checks if the window is on the current
workspace, and do nothing if not. This fixes bug #442.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-16 13:49:41 +00:00
Axel Dörfler
6aa4743b51 Added TODO comments about some race conditions in the code because of unlocking
the desktop.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-16 13:18:35 +00:00
Jérôme Duval
68b599fbcc reusing the old settings message is a good idea (thanks Axel!)
we simply remove color data before storing the workspace color


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-14 10:50:47 +00:00
Jérôme Duval
8be3635fcf don't reuse old workspace settings, store method expects an empty message
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-14 09:55:00 +00:00
Axel Dörfler
b660dafd67 * More cleanup of Frontmost().
* Added support for kWindowScreenFeel (those are now on top of everything,
  even menus can't disturb them).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-13 15:18:16 +00:00
Axel Dörfler
fb072d3724 * When changing a window's feel, it's now also moved to the front if
necessary.
* Also, newly exposed window areas are now refreshed when a change
  of feel also changed the window order.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-13 14:44:00 +00:00