Commit Graph
1047 Commits
Author SHA1 Message Date
Stefano Ceccherini 37cf3d970d Avoid attaching a menu to the BMenuWindow when not needed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-22 21:07:35 +00:00
Stefano Ceccherini b781587aff BMenuItems are invoked if needed when they are child of a menubar. Fixes bug 343
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16862 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-22 20:52:25 +00:00
Stefano Ceccherini b80eb9d443 Partially reverted axel's change, because it brings more troubles than benefits (menus lock when they reuse the supermenu's menuwindow). I'll try to resolve the various problems in another way. Some cleanups
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16861 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-22 20:47:52 +00:00
Axel Dörfler e87965deed * Fixed a possible crash when removing and adding items from a window.
* This does not yet close bug #233, but could also be a reason for this crash.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16851 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-21 17:49:42 +00:00
Stefano Ceccherini 7a2c9b35cd Reverted to r16487 due to various problems. I'll recommit the code once it's fully working.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-21 16:06:46 +00:00
Stefano Ceccherini ebaeaa1224 BMenu::InvalidateLayout() now just marks the cached layout as invalid, instead of recalculating it. This results in less computations. Reorganized the layout calculation due to that. Now it's done once in AttachedToWindow(), and in Draw(), only if needed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-20 21:49:11 +00:00
Stefano Ceccherini 65b4fb8ab1 Check if alt is the command key on BMenu::AttachedToWindow instead of doing it for every BMenuItem::Draw()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-20 20:20:29 +00:00
Axel Dörfler 5eae27a4d0 Fixed ValueForPoint() to correctly limit the value to the slider bounds.
This fixes bug #294.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-19 21:42:29 +00:00
Axel Dörfler 16ed1e1d15 * Removed headers/private/servers/app - everything is in src/servers/app now.
* Removed DisplaySupport.h, wasn't needed anymore.
* Removed private color set functions from InterfaceDefs.cpp - we might want
  something similar, but definitely not like that.
* Minor cleanup, added some missing licenses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-18 16:42:14 +00:00
Axel Dörfler 9a44fdc97c * Implemented a new client allocation method: instead of having all bitmaps of
all teams in serveral server areas, and instead of having to eventually clone
  them all several times in BBitmap, we now have one or more areas per team,
  and BBitmap will only clone areas once if needed. As a side effect, this
  method should be magnitudes faster than the previous version.
* This method is also much more secure: instead of putting the allocation
  maintenance structures into those everyone-read-write areas, they are now
  separated, so that faulty applications cannot crash the app_server this
  way anymore. This should fix bug #172.
* Freeing memory is not yet implemented though! (although all memory will
  be freed upon app exit)
* There are now 3 different bitmap allocation strategies: per ClientMemoryAllocator
  (ie. via ServerApp), per area (for overlays, not yet implemented), and using
  malloc()/free() for server-only bitmaps.
* ServerBitmap now deletes its buffers itself.
* Cleaned up BBitmap and BApplication a bit.
* The test environment currently doesn't build anymore, will fix it next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16826 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-18 13:43:26 +00:00
Stefano Ceccherini 98b5c6b926 Sorry, this was just a test and wasn't meant to be committed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16816 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-16 11:15:42 +00:00
Stefano Ceccherini 698e0e3fa7 draw shortcut char and bitmaps one pixel higher
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-16 11:11:28 +00:00
Axel Dörfler 0ce9ba6ba3 * BPrivate::ConvertBits() did not take the source or destination bits length
into account when copying to the same color space (new code isn't that fast,
  but it works).
* BBitmap::ImportBits() did not take the specified offset into account at all.
  This fixes bug #313.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16812 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-15 23:22:27 +00:00
Stefano Ceccherini 21f9f047fa Don't resize items if not needed, small change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16810 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-15 20:44:23 +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
Jérôme Duval 562f3db610 unused header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16808 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-15 13:02:03 +00:00
Axel Dörfler 49fe96777b * Removed ColorUtils.cc from libbe.so - I can't think of a reason why
these should be public (they don't match any basic Be naming style
  anyway :-).
* Put the code that's used by the app_server where it's needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-15 00:22:01 +00:00
Axel Dörfler 1d125708f8 Added an empty implementation of the shift_color() function - BeIDE needs
this one, maybe we should find out what it does, make it public and
document it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 23:17:21 +00:00
Axel Dörfler 04cec2bbbd Implemented invocation on double click.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16799 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 21:38:11 +00:00
Stefano Ceccherini f6e3e0a259 Redraw the text when MakeResizable is called. Fixes bug 187
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16798 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 21:30:19 +00:00
Stefano Ceccherini c44a5bea8b Don't switch to I_BEAM cursor if the textview isn't editable nor selectable. Fixes bug 246 for real
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16797 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 21:02:39 +00:00
Stefano Ceccherini e3d0715523 Enlarged a bit the BMCMenuBar's frame, so that it's drawn more nicely
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16795 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 20:41:50 +00:00
Stefano Ceccherini 1fdb18f7dd BChannelControl::GetPreferredSize() is a pure virtual
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 20:41:04 +00:00
Stefano Ceccherini e78c06d170 Reverted change 16774 as stippi's wish. The offset should be ignored when drawing bitmaps, but it's obviously not, at least in some case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-14 08:04:35 +00:00
Stefano Ceccherini 23467f07d9 BBitmap's constructor offsets the passed BRect to B_ORIGIN in case it isn't already. This fixes bug 301. Offset the rect in ChannelSlider too just in case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16774 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-13 20:37:27 +00:00
Stefano Ceccherini deab92e7ed Minor changes, fixed a possible leak in Uninstall()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16773 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-13 20:36:04 +00:00
Stefano Ceccherini 88ae0d494c Seems like BeBook lies on BTextView's autoresizing mode. The textview itself isn't resized, but only the textrect is. Fixes bug 161, but maybe it needs more work
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-13 19:51:15 +00:00
Michael Lotz 0581480cfe * Fixed ServerBitmap::ImportBits() to use the correct width/height
* Extended ConvertBits() to properly handle negative offsets and overlapping lines
* Implemented blitting the software cursor to the bitmap returned from ReadBitmap()

Note: In the future we will have to directly use the final graphics buffer for ReadBitmap() if we want DirectWindow output too (R5 includes it). I don't know how R5 handles the hardware cursor though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-13 16:48:44 +00:00
Axel Dörfler 557e9c04eb Setting fRunCalled in case of failure is stupid, as this prevents the
window from being freed on Quit(). There still is a memory leak within
StressTest, though - but it's pretty tiny now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16753 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-12 23:12:17 +00:00
Axel Dörfler bc63570c9b BWindow::Show() will no longer Run() its looper without a valid app_server
connection.
StressTest now detects this case and quits those windows.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16752 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-12 22:59:49 +00:00
Axel Dörfler 3dd881e3af * Fixed memory leak in StressTest and BWindow: they both did not delete the
message they passed to a BMessageRunner object.
* Added note about the ownership of the message to the BMessageRunner
  documentation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16751 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-12 22:35:36 +00:00
Axel Dörfler ce0be66ff4 When the creation of the window failed, all further messages accidently went
to the ServerApp, instead of being dropped - the window link is now updated
correctly in that case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-12 22:04:35 +00:00
Axel Dörfler f025cd8b72 While the user resizes a window, programmatical resize operations are ignored,
likewise, while the user moves a window around, programmatical moves are ignored
as well.
This fixes bug #264.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-12 16:59:15 +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
Michael Lotz bdbd1cb441 Removing the USING_MESSAGE4 define.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 18:06:46 +00:00
Axel Dörfler 40fc37b0ae * Fixed GetPreferredSize()
* Text height was computed with roundf() instead of ceilf() (which makes more sense).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16706 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 17:21:17 +00:00
Axel Dörfler 067407432e * GetModeList() didn't correctly check if the mode list allocation failed.
* No longer changes the arguments in case of an error.
* Takes communication errors more gracefully.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 15:15:25 +00:00
Axel Dörfler 04d40ff247 * Fixed flattening/unflattening text_run_arrays; they have to be converted to
and from big endian - this fixes our StyledEdit not being able to read files
  written under BeOS and vice versa.
* Made UnflattenRunArray() more robust against missing fonts; the style is now
  tried to be preserved. Note that BeOS doesn't maintain the "face" field in
  the flattened run arrays correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-11 12:58:31 +00:00
Stefano Ceccherini bf8dbdb413 Draw the shortcut character a bit more to the right, in line with the menu symbol
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-10 22:50:34 +00:00
Stefano Ceccherini b704350079 Add the textrect border width to the total width of the control when in autoresize mode
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-10 22:35:30 +00:00
Jérôme Duval da192ba4dd implemented input_server notification of IM aware focus changes, not tested
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-10 16:53:50 +00:00
Axel Dörfler 36e7c9a636 SetValue(Value()) is a no op, and we need to invalidate a bit more than
that, anyway. This should fix the broken resize behaviour of the slider
(as, for example, seen in DiskProbe).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-10 14:39:53 +00:00
Axel Dörfler e0e1c52865 Fixed a possible endless recursion (just do a ResizeBy(0.4, 0.4) or something like this
in your FrameResized() method - exposed by the TextView auto resizing feature).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-10 12:40:01 +00:00
Axel Dörfler 68953d3a35 * Introduced a minimum cell size. This fixes bug #200.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-09 19:46:50 +00:00
Stefano Ceccherini 446d93a0cc sorry, this was meant to be removed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 23:19:12 +00:00
Stefano Ceccherini d8ca32c9aa Implemented unarchiving constructor more or less correctly. Minor cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 23:16:51 +00:00
Stefano Ceccherini 49b154d166 Fixed wrong calculation of the menu frame if layout is B_ITEMS_IN_ROW. Fixes bug 209
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 23:15:47 +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 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
Axel Dörfler 000d23ff71 * Removing items from the BOutlineListView should longer crash the application.
* Also, the selection should be updated correctly when items are removed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-03-08 15:56:36 +00:00