Commit Graph
91 Commits
Author SHA1 Message Date
Axel Dörfler 5727f0cfa2 B_WINDOW_RESIZED sends int32 values, not floats.
Made message parsing more robust for a lot of messages.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-28 00:58:26 +00:00
Axel Dörfler 84d9f25ac5 The thread renaming was broken under R5. Cleaned it up a little.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-27 01:58:56 +00:00
Axel Dörfler d2e5d36050 fMenuSem was not initialized, and therefore, the window tried to delete some
arbitrary semaphore on destruction.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-23 23:18:17 +00:00
Axel Dörfler 8eee00f687 No longer draws hidden views (the app_server still handles them wrong, though,
when they are hidden while being attached to the window).
DrawAfterChildren() is now called at the appropriate place.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-22 17:28:24 +00:00
Stephan Aßmus 4d67034226 a new graphics state is pushed before calling BView::Draw() and popped after it. So any state changes you do in your Draw() function will be forgotton when you're done, as on R5. I have not done a lot of testing for bugs in the state stack within the app_server though...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-16 12:37:30 +00:00
Axel Dörfler dd10337fd0 Renamed BAppServerLink to AppServerLink, BPortLink to PortLink, LinkMsgReader
to LinkReceiver, LinkMsgSender to LinkSender, and put everything into the
BPrivate namespace.
Made AppServerLink a cheap object - it will use the applications receiver/sender
and not create its own buffers.
Fixed broken communication stuff here and there (mostly Font.cpp).
Put the newly introduced set|get_system_colors() into the BPrivate namespace -
please don't introduce private functions into the public namespace!!!
Also fixed their broken communication use, as Darkwyrm obviously forgot about
it again: the sequence Flush(); GetNextMessage() without error checking is
purely wrong and can make the app hang and/or crash! :-)
Other minor cleanup.
The input_server used some test mode with the haiku build target which is
probably wrong.
Hopefully I did not forget anything this time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-14 21:28:56 +00:00
Stefano Ceccherini aa6f42c954 DispatchMessage() is called with the looper already locked, so we call fLink->Flush() directly, which does not lock it again. Changed some TODO to be more informative, removed one.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-12 14:46:22 +00:00
Stefano Ceccherini 9b7978ffe6 No need to Lock()/Unlock() as Flush() does it already. Sync() wouldn't have unlocked the window in case FlushWithReply() wouldn't succeed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 15:08:00 +00:00
Stephan Aßmus 56efd1ace8 Sometimes I have seen crashes in BWindow::determine_target(), and this could very well fix it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 14:28:54 +00:00
Stefano Ceccherini 95c58faa2d Now we flush the command buffer after handling a B_PULSE message. This fixes the PulseTest (and probably some other things).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-11 13:23:53 +00:00
Axel Dörfler 75936a02e4 BPortLink now has a FlushWithReply() method itself.
BPortLink::AttachString() now accepts a length argument, and will no longer
send a terminating null byte; LinkMsgReader::ReadString(), however, will
make sure the string read is null terminated.
Changed client communication code to use FlushWithReply() instead of Flush()
and GetNextReply() - there were many bugs and shortcomings in the code, I
hope I've fixed them all.
Converted ClientFontList.cpp to our coding style (but not completely, the
class members are missing).
Some more cleanup - I hope Adi will adopt our coding style one day!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-08 00:36:26 +00:00
Stephan Aßmus 442992bf26 fixed some pretty bad bugs that prevented menus from working (they now do): The BMessage* in AddShortcut is taken in responsibility by the BWindow, so we cannot directly use the message from BMenuItem, the be_app was locked in InitData but never unlocked, it fixes BMenus only working once, and who knows what else it fixes. A little cleanup with _BCmdKey usage, also note that it is inefficient to RemoveItem()s from a list in the destructor of any class using a BList as data container! Simply delete the items and be done with it. The BList destructor will take care of the rest and free its storage in one go.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-07 13:19:28 +00:00
Axel Dörfler e17b33e56b The window was removing the app_server connection too early, and thus hang in Quit().
Removed the stopConnection() method.
Cleaned up header a bit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-05 18:57:55 +00:00
Stephan Aßmus 59345e264f huge cleanup, support for SetSizeLimits, support for truncating strings, numerous decorator bug fixes, Layer does not draw when view color is B_TRANSPARENT_COLOR, cleaner dispatching of mouse events to the WinBorder in RootLayer, commented the char map selection in the font server, as it seems glyph lookup by unicode index works much better with the default map
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 19:50:30 +00:00
Stefano Ceccherini b9b38bc7b2 Fixed build with debug enabled. Renamed a static variable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-03 14:15:33 +00:00
Stefano Ceccherini 38b35d9caa BBitmap now uses the correct (private) BWindow constructor. Partially implemented that constructor. Fixed another typo in BView, verified and removed some TODOs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-29 06:32:16 +00:00
Stefano Ceccherini 87ab5d5c6d Now we delete the menu semaphore in the window's destructor
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12785 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-23 13:56:06 +00:00
Axel Dörfler 25500bdfd9 Fixed BWindow::UpdateIfNeeded() by moving the code from BView::GetMouse() over.
GetMouse() will now just call UpdateIfNeeded().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-19 17:20:36 +00:00
Axel Dörfler bcd8a1fad9 Converted Window.cpp to our coding style guide and (unfortunately) fixed a
myriad of small bugs here and there, as well as some very odd coding techniques:
- the "Minimize" property was not handled
- the "Minimize" property was not settable
- the property/scripting stuff was horrible, anyway
- there are more and better error codes than B_ERROR (could someone tell the
  app_server guys? :))
- added some ToDo items here and there
- and much more I don't remember


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 20:53:21 +00:00
Axel Dörfler 3405fff2a9 Implemented private function BWindow::DequeueAll() which reads all pending
messages from the port.
BView::GetMouse() now calls this function if it was called from the window's
thread and thus blocking the message loop.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-18 16:54:56 +00:00
Stephan Aßmus ad6b480400 Work in Progress. The server keeps the client window up to date on layer movement/resizing. This fixes quite a few problems and brings support for FrameMoved and Resized hooks. But implementing it this way has its own set of problem, most importantly: When a BView calles Window()->CurrentMessage() in its FrameMoved/Resized hooks, it will see something very different from what it would see in R5. This needs to be fixed, but I have not had a good idea how to do this other than faking the current message in BWindow, which I didn't look into.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 15:39:58 +00:00
Stephan Aßmus d557af5b96 Fixes to my fixes of BView::MakeFocus(), the previous focus BView needs to be unfocused of course so the derived classes implementation gets called. Simplified BWindow::setFocus(). BView calls FrameResized() and FrameMoved() if it has no parent, I don't know how R5 handles it, but I added a TODO...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 11:59:42 +00:00
Stefano Ceccherini 7bdfb0d996 Added handler for _MENUS_DONE_
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-07 13:24:25 +00:00
Stephan Aßmus fc72699071 added some safety checks, cosmetic changes - please note that it is safe to call delete with a NULL pointer, unlike free(), so please don't clutter the code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 21:54:44 +00:00
Stephan Aßmus 1596a167c0 work around for layers not being moved that have not yet been added to the tree. See WinBorder::MoveTo for the explaination. The same problem should be at other places and most likely for normal views as well. This fixes BWindow::MoveXX() when it is not yet Show()n
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12500 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 23:56:40 +00:00
Stephan Aßmus 9715a3e1bf fixed BWindow::MoveXX(), BWindow::ResizeXX() and BView::ConvertToScreen()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-28 12:31:25 +00:00
Stephan Aßmus 3505574164 Added some TODO comments in Window.cpp, improved coordinate conversion in View.cpp. I'm not sure if this really works correctly, I need to write more tests. The scrolling test actually does more of what it is supposed to. At least the scrolling properly follows the mouse now. Missing are the movement of child views, the rebuilding of clipping, and I think that the scrolling needs to be synced to update requests having been fullfilled, or else some parts of the View will be CopyBits()ed which have not been drawn after having been scrolled into view by previous calls to ScrollBy(). Any insights appreciated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 23:27:37 +00:00
Stephan Aßmus 28930a1240 small changes and fixes here and there
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-27 17:25:29 +00:00
Adi Oanca 6141cc1d5a Adjusted SetFeel() to current server implementation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-21 18:59:14 +00:00
Adi Oanca e86740b699 Forward message to the handler set inside task_looper() no to fFocus
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 21:17:07 +00:00
Adi Oanca 94b849e1e2 No more B_MESSAGE_NOT_UNDERSTOOD on B_UNMAPPED_KEY_DOWN, B_UNMAPPED_KEY_UP, B_MODIFIERS_CHANGED events
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-14 18:05:54 +00:00
Adi Oanca be9241bf17 Added server support for Workspaces() and SetWorkspaces()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-10 18:56:02 +00:00
Adi Oanca 9f7e77bd63 Forgot a warning message
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 16:39:18 +00:00
Adi Oanca 52bd978684 Send only one AS_BEGIN/END_UPDATE message, not for every view
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 16:36:34 +00:00
Michael Lotz 3c46b74895 Remove debug leftover.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 21:29:55 +00:00
Michael Lotz cd970020cb Implement the BWindow::task_loop again. I know that this is code duplication, but look at
the TODO item for an explanation. We could do this as a hack in Looper.cpp though.
Also implement the determine_target function (incomplete).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 21:08:38 +00:00
Adi Oanca 27e3da2fac BWindow's frame events hooks work now. Frame gets updated on window move/resize.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 12:16:31 +00:00
Michael Lotz ed16bb7885 Fix KeyDown/KeyUp calls so that we don't always get numBytes = 0.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-27 02:07:02 +00:00
Adi Oanca 642d7ca95e Implemented BView::SetEventMask()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-21 20:26:44 +00:00
Adi Oanca 494d1b2a5a This fixes a problem with window's contents not being redrawn after a Show(), Hide and Show() again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11876 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:22:23 +00:00
Axel Dörfler f51f1dda88 Fixed some weird includes (no need or even support to specify "posix" as part of the include path).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-05 13:37:13 +00:00
Adi Oanca 7b76dd8073 mouse & keyboard messages now use the full power of application_kit
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-07 00:32:32 +00:00
Adi Oanca 79c8040e93 BView::MouseUp/KeyDown/KeyUp() hook methods are called for the BView for which the action takes place
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 22:46:58 +00:00
Adi Oanca 0e835651a5 BView::MouseDown() finally gets called
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 21:41:09 +00:00
Adi Oanca 6e8a11dda4 Keyboard messages are dispached to BWindow's handler if no focus view
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 17:58:09 +00:00
DarkWyrm e09fd76fe6 Added some changes for the new mouse wheel support
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9813 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-06 19:45:49 +00:00
DarkWyrm f9ed3ba7d5 Fixed a stupid mistake in the message to create a window
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-22 00:10:44 +00:00
DarkWyrm 38e110b124 Client-server messaging fixes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-08 22:35:25 +00:00
haydentech f073f5d156 Fix 2 instances of mismatched locking
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-02 21:07:55 +00:00
DarkWyrm 3ceb31b96a Pahtz's changes from PortLink/BSession/PortMessage/PortQueue to BPortLink
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-30 15:15:27 +00:00