Commit Graph

2228 Commits

Author SHA1 Message Date
Stefano Ceccherini
2ec687d889 small corrections for BScrollBar and BScrollView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-23 14:32:12 +00:00
Axel Dörfler
05b4b0d7ce Node monitoring didn't work because unflattening KMessages didn't take the
message header into account. It worked before at some point as BLooper was
letting the looper handle messages to invalid targets - they are now just
dropped.
This fixes bug #93.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-23 13:30:17 +00:00
Stefano Ceccherini
ccee0bb56d renamed fToken to fAreaOffset and use it instead of fArea for the area offset. Less hacky.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-21 20:30:31 +00:00
Stefano Ceccherini
365a41fd5c Reduced the time hysteresis. Need more testing, though
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-21 20:08:58 +00:00
Stefano Ceccherini
0219459ba0 Added a small time hysteresis: submenus are only opened if the user keeps the mouse there for a while. I'd like feedback on this
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-21 09:23:59 +00:00
Stefano Ceccherini
3276412ef2 Resolved a TODO in BBitmap: now the bitmap area is cloned when needed: i.e. when Bits() or ImportBits() is called. Works fine, but I'd feel better if someone reviewed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-21 09:22:15 +00:00
Ingo Weinhold
e4b4a99228 Update the BDiskDevice object after mounting/unmounting a partition.
Untested, but should fix bug #92.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-20 14:49:16 +00:00
Axel Dörfler
e9e5c69a25 * Use _FindView() where possible instead of using BTokenSpace::GetToken() directly.
* Fixed some issues in _UnpackMessage():
  - The focus view could have been removed before its turn which was ignored
    (and could led to a crash, for example when moving the Deskbar around).
    It's now tested if it's still valid (can't use _FindView() here, as the
    the preferred handler of a window could be any BHandler).
  - fLastMouseMovedView could have been NULL in which case there is no
    need to let the message be processed (was harmless, though).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-20 13:27:11 +00:00
Stefano Ceccherini
9e8d2dd28b Removed PicturePlayer, it only contains code duplicated from TPicture. Some cleanups for BPicture. This commit also completes previous commit for BMenu
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-17 21:39:07 +00:00
Stefano Ceccherini
c592b98fd2 Reworked BMenu::Set/IsEnabled(). I tested what happens under beos and our code seems to be finally correct
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-17 20:11:07 +00:00
Ingo Weinhold
50f4cc4317 Added TODO. Just in case someone wants to tackle it. :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-16 23:47:38 +00:00
Stefano Ceccherini
0c7450238f followed stippi's suggestion and implemented SetEnabled more cleanly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-16 22:49:05 +00:00
Stefano Ceccherini
dd180e6378 SetEnabled() enables or disables the parent menu too, SetRadioMode() and SetLabelFromMarked() call each other if needed, BMenuBar::Draw() doesn't make a difference if the menubar is disabled or not, should even fix bug #87 as it was calling LayoutItems() every cycle. Work done by John Drinkwater and me
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-16 21:42:57 +00:00
Jérôme Duval
6462ba1115 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-15 22:12:07 +00:00
Jérôme Duval
843a7d9da4 make libmedia.so beos compatible (including several public headers)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-15 21:59:21 +00:00
Stefano Ceccherini
5364573ebd Partially reverted to 15464 to have less code duplication, now that the special case is handled in BMenu::CalcFrame()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-14 21:50:35 +00:00
Stefano Ceccherini
b5cd88a5c7 Small changes, nothing important
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-13 20:49:41 +00:00
Stefano Ceccherini
fc3a8a1c73 Fixed popup menus opened at the wrong position (mostly noticed in Installer) with a horrible hack which I can't see how to avoid
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-13 20:48:48 +00:00
Stefano Ceccherini
201381d6ab Menus make a better use of windows: when a child menu is opened, it asks the parent for a window, which is then cached for every other child for that parent menu. This avoids multiple creation/deletion of BWindows in a row. This also makes menus much nicer to use in qemu (together with the slight change in locking in BMenuBar (Lock() instead of LockWithTimeout))
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-13 17:47:35 +00:00
Stephan Aßmus
55f6067fcd * I thought it was a good idea to Flush() the server link
in all drawing methods in case the parent window was
  not in a "transaction" (fInTransaction). For ordinary
  updates, nothing has changed, but if you call drawing
  methods outside of an update, they will happen "immediately"
  rather than when the link is sporadically full and auto
  flushes. The effect is that the cursor in Terminal blinks
  reliably, the selection in BTextViews follows the mouse
  right on the spot (and so on). BWindow::BeginViewTransaction()
  and EndViewTransaction() now have a meaning in Haiku too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15927 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-12 12:22:34 +00:00
Axel Dörfler
238ba7d321 The last change accidently put messages to invalid targets back into the game.
_DetermineTarget() is no longer called for these messages, "handler" will stay
NULL and the message will be dropped.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-11 22:38:43 +00:00
Axel Dörfler
54354618d5 BWindow::_DetermineTarget() now defaults to the window, instead of no target at
all in case the window doesn't have a current focus view.
That allows shortcuts like Command+q/w to work again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-11 22:30:41 +00:00
Axel Dörfler
81202ff522 Imported DialogPane.cpp 1.3 from the OT repository: shouldn't crash anymore
under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-11 20:16:28 +00:00
Stefano Ceccherini
3d453d2da3 Fixed redrawing when alignment is center or right. Extended a comment to a bug which I can't reproduce anymore
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-11 17:44:22 +00:00
Stefano Ceccherini
f9f970d98c Yesterday's commit triggered some other visual bugs: hopefully fixed them all. A disabled menufield now doesn't open its associated menu anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-11 09:31:27 +00:00
Stefano Ceccherini
797d1a66fa menufields should default to B_ITEMS_IN_COLUMN. This fixes the workspaces menu (in Screen) opened at the wrong position. As a consequence of this, I had to change the drawing code a bit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-10 16:00:07 +00:00
Stefano Ceccherini
b120bcd665 Don't quit tracking the menu even if OverSuper() returns true, if HitTestItems() doesn't return NULL. This should fix (at least in part) bug #85
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-10 09:40:28 +00:00
Stephan Aßmus
7afc7c5074 ServerFont:
* fixed weird pointer conversion in SetStyle()
* fixed a potential mix up in operator=() in case the
  other ServerFont has fStyle == NULL

ServerWindow:
* the WindowLayer fTopLayer cannot be deleted by
  client request, just for safety reasons
* the link is flushed if there is no drawing engine,
  but this case is theoretical only
* deleting the ServerWindow object syncs with the
  client, so that when BBitmaps are deleted, they
  can be sure there are no pending messages (which
  would be executed in a nother thread)
* there is no timeout anymore when sending messages
  to the client, which made absolutely no sense

AGGTextRenderer:
* renamed fFontManager to fFontCache, because that's
  what it really is
* fLastFamilyAndStyle defaulted to the system plain
  font and therefor that font was never loaded when
  the font never changed meanwhile

DrawingMode:
* I'm not quite sure but I think there was the
  potential of a division by zero, at least I
  had crashes with "divide error"

HWInterface:
* fix update when the cursor shape changed in
  double buffered mode
 
ViewLayer:
* since the top layer is never really deleted
  before its time has come, it is not necessary
  to set it to NULL in the ViewLayer destructor

ViewLayer/WindowLayer:
* added a function to collect the view tokens
  that are affected by an update session

EventDispatcher:
* use the importance of the message for the timeout
  in _SendMessage()
* drop mouse moved events in the server if we're
  lagging behind more than 5 ms (Axel, maybe review)

View:
* there were some problems with the locking
  of the BWindow looper in RemoveSelf(), since
  this is called from the window destructor,
  also of BWindows from BBitmaps, which have
  never been run (this might need review), at
  least I seem to have solved the crashing
  problems introduced by actually deleting the
  view hirarchy in the BWindow destructor
* fixed _Draw() for being used non-recursively,
  temporarily disabled DrawAfterChildren, which
  didn't work yet anyways (because views cannot
  draw over children in the server yet)

Window:
* small cleanup when deleting shortcuts
* sync with the server when having send
  AS_DELETE_WINDOW (see ServerWindow above)
* fixed locking in Begin/EndViewTransaction()
* removed folding of _UPDATE_ messages, since
  there is only one ever in the queue
* set the fInTransaction flag during an update,
  I plan to use this in BView later to
  flush the link when drawing outside of an
  update
* BView::_Draw() is now called by view token,
  this gives the next leap forward in speed,
  the overhead because of drawing clean views
  was considerable



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-08 22:04:52 +00:00
Stephan Aßmus
f15ba33751 synced with version 1.59 of the OpenTracker rep
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15877 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-08 18:00:25 +00:00
Jérôme Duval
e2491d6b8a reverted to previous version
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15873 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-08 16:01:05 +00:00
Axel Dörfler
ea34f0f03b If there was a BMenuItem view with shortcut, it tried to delete the shortcut twice
(as the shortcut list wasn't emptied), courtesy of Stippi.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15866 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-08 13:05:33 +00:00
Stephan Aßmus
fb82d189d0 * BWindow deletes its view hirachry
* BViews set fOwner to NULL recursively when detached
* updated a comment


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15851 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-06 17:14:58 +00:00
Axel Dörfler
23ae1e249f Added drag&drop support, some cleanup - courtesy of stippi.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-06 11:49:06 +00:00
Stefano Ceccherini
7898383a8a Implemented AS_CREATE_PICTURE, started cleaning up Picture.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15843 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-05 10:27:29 +00:00
Stefano Ceccherini
8f3f25cf63 Merged the four AS_LAYER_DRAW_BITMAP handlers into just one handler
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-04 12:15:58 +00:00
Jérôme Duval
ebc8a403e5 Installer makes use of FSCopyFolder in libtracker.so
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-04 07:57:21 +00:00
Axel Dörfler
a6dd420a2b It's okay that SetMouseEventMask() doesn't do anything when called outside
BView::MouseDown() - or when it's not attached to a view - but it shouldn't
drop into the debugger in either case.
This fixes the desklink volume slider.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 23:14:34 +00:00
Axel Dörfler
fc62f08d8a * Fixed BView::_SetShelf(), it did not remove a previous shelf.
* Fixed BShelf::_AddReplicant(), at least a bit. I managed to add the "ScreenChanger"
  icon to the tray, although the icon was not drawn, and it was on the wrong
  position.
* _AddReplicant() also did not reply to the waiting message source in case
  of failure.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15829 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 21:56:26 +00:00
Axel Dörfler
4eeeeea969 * watch_node() now returns B_BAD_VALUE if it's used with a NULL node and
flags unequal B_WATCH_MOUNT/B_STOP_WATCHING set.
* Changed watch_node() and stop_watching() to be messenger based instead
  of handler/looper - that greatly simplifies the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15828 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 18:02:56 +00:00
Stefano Ceccherini
5b0c0d601d we don't need this hack anymore
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 13:53:29 +00:00
Stefano Ceccherini
a1a73d28be Force a Sync() in DrawPicture() instead of expecting a reply. Looks more correct
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 12:41:56 +00:00
Axel Dörfler
5edcfe9619 Cleanup!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15806 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 09:23:08 +00:00
Axel Dörfler
a31ddcb397 Forgot to include this in the last commit: added big endian support to R5 format.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 09:22:27 +00:00
Axel Dörfler
5c7f87685e Added big endian support for R5 messages, minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 09:21:35 +00:00
Stephan Aßmus
39e8aac151 implemented a "new" look for the BTabView, it is actually
a mix of the liblayout look (I hope Marcus doesn't mind)
and BMenuFields. I will have to clean up after myself one
day and calculate the tab rects properly instead of drawing
far out of the right side of tabs and adding a weird offset
to the label rendering and other places...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 18:15:30 +00:00
Stefano Ceccherini
598ed29546 Remove debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15798 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 15:11:11 +00:00
Stefano Ceccherini
bf9071ee27 SupportsWindowMode now always return true, at least for the moment. Chart works with DirectWindow in window mode even with the vesa driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15797 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 15:10:43 +00:00
Stefano Ceccherini
8e64a82404 Added a sort of hack which allows BPictureButton not to hang the app. Strangely, dereferencing a NULL pointer hangs the app instead of crashing it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 14:49:27 +00:00
Stefano Ceccherini
80be55c442 Some fixes, sort of fixed client side communication code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15790 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 13:07:22 +00:00
Axel Dörfler
4faa23ccb3 Minor fix, closes bug #81.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15788 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 12:17:14 +00:00